OSDN Git Service

2004-10-22 Eric Christopher <echristo@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-10-22  Eric Christopher  <echristo@redhat.com>
2
3         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
4         saves.
5
6 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
7
8         * config/rs6000/spe.md (spe_extendsfdf2): New.
9         (movdf_e500_double): New.
10         (spe_truncdfsf2): New.
11         (spe_absdf2): New.
12         (spe_nabsdf2): New.
13         (spe_negdf2): New.
14         (sub_adddf3): New.
15         (spe_subdf3): New.
16         (spe_muldf3): New.
17         (spe_floatsidf2): New.
18         (spe_floatunssidf2): New.
19         (fix_truncdfsi2): New.
20         (spe_fixuns_truncdfsi2): New.
21
22         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
23         (fpr_truncdfsf2): New.
24         (negdf2): Change to expander.
25         (fpr_negdf2): New.
26         (fpr_nabsdf2): Name pattern.
27         (adddf3): Change to expander.
28         (fpr_adddf3): Nem.
29         (subdf3): Change to expander.
30         (fpr_subdf3): New.
31         (muldf3): Change to expander.
32         (fpr_muldf3): New.
33         (divdf3): Change to expander.
34         (fpr_divdf3): New.
35         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
36         (cmpdf): Allow for TARGET_E500_DOUBLE.
37
38 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
39
40         * c-semantics.c (re_push_stmt_list): Remove.
41         * c-common.h: Remove the corresponding prototype.
42
43 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
44
45         * stmt.c (asm_op_is_mem_input): Remove.
46         * tree.h: Remove the corresponding prototype.
47
48 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
49
50         * tree-gimple.c (is_gimple_constructor_elt): Remove.
51         * tree-gimple.h: Remove the corresponding prototype.
52
53 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
54
55         * varasm.c (get_pool_mode_for_function, get_pool_offset):
56         Remove.
57         * rtl.h: Remove the corresponding prototypes.
58
59 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
60
61         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
62         edge information when we commit ourselves to threading a
63         particular jump.
64
65 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
66
67         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
68         into worklist instead of their indexes.
69
70 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
71
72         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
73         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
74         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
75         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
76         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
77         tree-scalar-evolution.c, tree-ssa-dom.c,
78         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
79         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
80         tree-vectorizer.c, vec.h: Fix comment formatting.
81
82 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
83
84         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
85         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
86
87 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
88
89         * config/ptx4.h, config/mcore/mcore-pe.h,
90         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
91
92 2004-10-22  Peter Barada <peter@the-baradas.com>
93
94         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
95         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
96         renaming of non-live registers in interrupt functions.
97         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
98
99 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
100
101         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
102         Use integer for loop counter.
103         (num_ending_zeros): New function.
104         (number_of_iterations_cond): Use num_ending_zeros.
105
106 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
107
108         * config.gcc: Add support for --enable-e500_double.
109
110         * config/rs6000/e500-double.h: New file.
111
112         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
113         TARGET_E500_DOUBLE.
114
115         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
116         TARGET_E500_DOUBLE.
117
118         * config/rs6000/linuxspe.h: Same.
119
120         * doc/invoke.texi (Option Summary): Document new options for
121         mfloat-gprs.
122         (RS/6000 and PowerPC Options): Same.
123
124         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
125         function.
126         (rs6000_override_options): Use it.  Use
127         SUB3TARGET_OVERRIDE_OPTIONS.
128         Add 8548 to processor_target_table.
129         (rs6000_legitimate_address): Handle e500 doubles.
130         (rs6000_legitimize_address): Same.
131         (rs6000_legitimize_reload_address): Same.
132         (rs6000_hard_regno_nregs): Same.
133         (spe_func_has_64bit_regs_p): Same.
134         (emit_frame_save): Same.
135         (gen_frame_mem_offset): Same.
136         (rs6000_dwarf_register_span): Same.
137         (rs6000_generate_compare): Same.
138         (easy_fp_constant): Same.
139         (legitimate_offset_address_p): Same.
140
141         * config/rs6000/spe.md: (cmdfeq_gpr): New.
142         (tstdfeq_gpr): New.
143         (cmpdfgt_gpr): New.
144         (tstdfgt_gpr): New.
145         (tstdfgt_gpr): New.
146         (cmpdflt_gpr): New.
147         (tstdflt_gpr): New.
148         Add new constants.
149
150 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
151
152         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
153
154 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
155
156         * dbxout.c: Remove unnecessary #undefs.
157         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
158         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
159         definition into use sites.
160         (cwd): Make local to dbxout_init.
161         (dbxout_init): Restructure cwd-using logic for clarity.  Use
162         IS_DIR_SEPARATOR.
163         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
164         STABS_GCC_MARKER folded in here.
165         * system.h: Poison now-unused macros.
166         * doc/tm.texi: Remove documentation of now-unused macros.
167
168 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
169
170         PR c/17538
171         * c-opts.c (push_command_line_include): Use the current file
172         name instead of the main one.
173
174 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
175
176         PR objc/17923
177         * tree.c (staticp): A CONST_DECL has static storage if either
178         TREE_STATIC or DECL_EXTERNAL is set.
179         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
180         have null names.
181
182 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
183
184         * expr.c (store_expr): Remove dont_store_target.
185
186 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
187
188         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
189
190 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
191
192         * tree-cfg.c (thread_jumps): Move a part of it to ...
193         (thread_jumps_from_bb): ... here.
194
195 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
196
197         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
198         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
199
200 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
201
202         * expr.c (store_expr): Clean up by renaming want_value to
203         call_param_p.
204
205 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
206
207         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
208         fixup pc here.
209
210 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
211
212         PR 18004.
213         * expmed.c (store_bit_field): Pass original 'value' before
214         recursing.
215
216 2004-10-21  Nicolas Pitre <nico@cam.org>
217
218         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
219         * config/arm/ieee754-df.S: Ditto.
220
221 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
222
223         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
224         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
225         Default to 0.
226         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
227         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
228         an internal label and an N_SLINE .stabn whose value is the
229         difference between that label and the function entry label.
230         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
231         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
232         label and an N_SO stab with an empty string referring to it.
233         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
234         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
235         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
236         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
237         macro is never defined.
238         * sdbout.c (sdbout_source_line_counter): Delete.
239         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
240         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
241         only two arguments.
242         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
243
244         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
245         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
246         definitions (identical to default).
247         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
248         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
249         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
250         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
251         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
252         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
253         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
254         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
255         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
256         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
257         (sym_lineno): Delete.
258         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
259         now-unused variable.
260         (alpha_output_lineno): Delete.
261         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
262         * config/mips/mips.c (mips_output_filename): Don't use
263         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
264         (mips_output_lineno): Delete.
265         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
266         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
267         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
268         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
269         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
270         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
271         * config/mmix/mmix.h: Likewise.
272         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
273         * config/mmix/mmix-protos.h: Don't prototype it.
274         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
275         no need to #undef ASM_OUTPUT_SOURCE_LINE.
276         * config/arm/aout.h: Remove RISCiX-specific definition of
277         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
278         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
279         ASM_OUTPUT_SOURCE_LINE.
280         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
281         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
282         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
283
284         * doc/tm.texi: Update.
285
286 2004-10-20  Richard Henderson  <rth@redhat.com>
287
288         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
289
290 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
291
292         * configure.ac: Revert my previous patch.
293         * configure: Regenerate.
294
295 2004-10-20  Ben Elliston  <bje@au.ibm.com>
296
297         * config/rs6000/rs6000.c
298         (rs6000_va_start): Use build_va_arg_indirect_ref.
299         (rs6000_gimplify_va_arg): Likewise.
300
301 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
302
303         PR java/15575
304         * configure.ac: Declare AM_LANGINFO_CODESET.
305         * aclocal.m4: Define AM_LANGINFO_CODESET.
306         * configure, config.in: Rebuilt.
307
308 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
309
310         * expr.c (store_expr): Remove code that is run when
311         want_value & 1 is nonzero.
312
313 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
314
315         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
316         from function pointer to void *.
317
318 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
319
320         PR target/18032
321         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
322         the frame pointer adjustment when exception handling is enabled.
323
324 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
325
326         * stor-layout.c: Fix a comment typo.
327
328 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
329
330         * expr.c (store_field): Remove two arguments value_mode and
331         unsignedp.
332         (expand_assignment, store_constructor_field,
333         expand_expr_real_1): Adjust calls to store_field.
334
335 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
336
337         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
338
339         PR target/17317
340         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
341         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
342         base and index register for loads.
343
344         * config/arc/t-arc: Fix multilib handling.
345
346 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
347
348         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
349         don't inspect BLOCK_FOR_INSN for barriers.
350         * emit-rtl.c (emit_barrier_before): Revert last change.
351         (emit_barrier_after, emit_barrier): Ditto.
352
353         * doc/extend.texi (Extended Asm): Warn and provide example
354         solution for using a call-clobbered asm register.
355         (Local Reg Vars): Similar.  Cross-reference example.
356
357 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
358
359         * tree-cfg.c (group_case_labels): Look at the second to last
360         case statement for combing with the default case.
361
362 2004-10-19  Richard Hendeson  <rth@redhat.com>
363
364         PR 17962
365         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
366
367 2004-10-19  Richard Hendeson  <rth@redhat.com>
368
369         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
370         succeeds, only expand the result.
371
372 2004-10-19  Richard Hendeson  <rth@redhat.com>
373
374         PR middle-end/17885
375         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
376         of INDIRECT_REF.
377
378 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
379
380         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
381         loop with goto.
382
383 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
384
385         * expr.c (expand_assignment): Remove the last argument.
386         Change the return type to void.
387         * expr.h: Update the prototype of expand_assignment.
388         * function.c (assign_parm_setup_reg): Update a call to
389         expand_assignment.
390         * stmt.c (expand_asm_expr): Likewise.
391
392 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
393
394         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
395         unnecessary assignments to temp.  Return const0_rtx.
396
397 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
398
399         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
400
401 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
402
403         * configure.ac (powerpc-*-darwin*): Require assembler to support
404         .machine directive.
405         * configure: Regenerate.
406
407 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
408
409         * reload1.c (ior_hard_reg_set): Remove.
410         (finish_spills): Use IOR_HARD_REG_SET instead of
411         ior_hard_reg_set.
412
413 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
414
415         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
416         the currently visited word to right.
417
418 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
419
420         PR middle-end/18045
421         * expmed.c (expand_smod_pow2): Handle modes whose size
422         is greater than that of HOST_WIDE_INT.
423
424 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
425
426         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
427
428 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
429             Roger Sayle  <roger@eyesopen.com>
430
431         PR middle-end/17813
432         * dojump.c (discard_pending_stack_adjust): New function.
433         (clear_pending_stack_adjust): Call it.
434         * expr.h (discard_pending_stack_adjust): Declare it.
435         * explow.c (emit_stack_save): Emit pending stack adjustments
436         before saving the stack pointer.
437         (emit_stack_restore): Discard pending stack adjustments before
438         restoring the stack pointer.
439
440 2004-10-18  Richard Henderson  <rth@redhat.com>
441
442         * c-common.c (handle_mode_attribute): Allow scalar->vector
443         type changes yet.
444
445 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
446
447         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
448         value to expand_assignment.
449
450 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
451
452         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
453         thread_jumps.
454         (thread_jumps): Iterate until no new forwarder block arises.
455
456 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
457
458         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
459         (thread_jumps): Use forwardable as cache of
460         tree_forwarder_block_p throughout the function.
461
462 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
463
464         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
465
466 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
467
468         PR middle-end/15014
469         PR middle-end/16973
470         * tree-cfg.c (remove_bb): If we have a label expression in the
471         basic block and the label we have taken the address, move the
472         label expression to the basic block which is previous in the
473         linked list.
474         (tree_verify_flow_info): Fix printing out the label name of the
475         problematic label expression.
476
477 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
478
479         PR rtl-optimization/18002
480         * simplify-rtx.c (mode_signbit_p): Externalize function...
481         * rtl.h (mode_signbit_p): ... to here.
482         * combine.c (simplify_shift_const): Recognize PLUS signbit as
483         canonical form of XOR signbit and move to outer op.
484
485 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
486
487         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
488         Update all callers.
489         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
490         Don't call fold_stmt more than once, use bsi_replace.
491
492 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
493
494         PR tree-optimization/17656
495         * tree-ssa.c (replace_immediate_uses): When replacing a
496         constant, if the call to fold_stmt produced a different
497         statement, get an appropriate statement pointer by scanning
498         STMT's basic block.
499
500 2004-10-18  Richard Henderson  <rth@redhat.com>
501
502         * pointer-set.c (hash1): Don't use libm functions in fallback case.
503
504 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
505
506         PR bootstrap/17684
507         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
508         (stage1-start): Remove and copy libunwind.a and
509         libunwind*$(SHLIB_EXT) instead of libunwind*.
510         (stage2-start): Likewise.
511         (stage3-start): Likewise.
512         (stage4-start): Likewise.
513         (stageprofile-start): Likewise.
514         (stagefeedback-start): Likewise.
515
516         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
517         the shared library to be created and don't remove the existing
518         shared library.
519         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
520         * config/i386/t-nwld (SHLIB_LINK): Likewise.
521         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
522         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
523         * config/sh/t-linux (SHLIB_LINK): Likewise.
524         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
525         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
526         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
527         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
528
529         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
530         files.
531
532 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
533
534         * basic-block.h (reg_set_iterator): New.
535         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
536         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
537         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
538         * caller-save.c (save_call_clobbered_regs): Adjust to the new
539         style.
540         * cfgcleanup.c (thread_jump): Likewise.
541         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
542         * conflict.c (conflict_graph_compute): Likewise.
543         * flow.c (verify_local_live_at_start, update_life_info,
544         initialize_uninitialized_subregs, propagate_one_insn,
545         init_propagate_block_info, free_propagate_block_info,
546         propagate_block, dump_regset): Likewise.
547         * global.c (global_conflicts): Likewise.
548         * graph.c (start_bb): Likewise.
549         * local-alloc.c (update_equiv_regs): Likewise.
550         * loop.c (load_mems): Likewise.
551         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
552         find_reg, finish_spills): Likewise.
553         * resource.c (mark_target_live_regs): Likewise.
554         * sched-deps.c (sched_analyze_insn): Likewise.
555         * sched-rgn.c (sched-rgn.c): Likewise.
556         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
557
558 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
559
560         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
561         operand 1 instead of 2
562
563 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
564
565         * loop-unroll.c: Fix comment typos.
566
567 2004-10-18  Revital Eres  <eres@il.ibm.com>
568
569         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
570         * loop-unroll.c: Include varray.h.
571         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
572         opt_info and expand it to support variable expansion.
573         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
574         expand it to support variable expansion.
575         (pt_info_start_duplication): Rename si_info_start_duplication.
576         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
577         to the variable expansion optimization.
578         (free_opt_info): Rename free_si_info.
579         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
580         expand_var_during_unrolling, insert_var_expansion_initialization,
581         combine_var_copies_in_loop_exit, release_var_copies,
582         get_expansion): New functions.
583         (peel_loop_completely, unroll_loop_constant_iterations,
584         unroll_loop_runtime_iterations, peel_loop_simple,
585         unroll_loop_stupid): Change uses of struct si_info
586         to struct opt_info
587         and add uses of fvariable-expansion-in-unroller flag.
588         * params.def: Add parameter to restrict the number of expansions.
589         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
590         the number of expansions.
591         * common.opt: (fvariable-expansion-in-unroller): New flag.
592         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
593
594 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
595
596         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
597         __GXX_MERGED_TYPEINFO_NAMES to 0.
598
599 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
600
601         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
602         handle barriers in a bb by checking that it points to a NULL bb.
603         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
604         (emit_barrier_after, emit_barrier): Ditto.
605
606 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
607
608         * doc/extend.texi (Attribute Syntax): Clarify details of
609         attributes on parameters.
610
611 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
612
613         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
614         loop.
615
616 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
617
618         Revert:
619         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
620
621         * c-typeck.c (default_function_array_conversion): Always create
622         &a[0] for array types.
623         (build_unary_op): Do not fold &a[x] into a + x.
624
625 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
626
627         PR middle-end/17925
628         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
629         block if there is a goto with a locus.
630
631 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
632
633         * config/elfos.h, config/gofast.h, config/interix.h,
634         config/netbsd.h, config/svr3.h, config/vxworks.h,
635         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
636         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
637         config/alpha/netbsd.h, config/arm/arm-modes.def,
638         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
639         config/cris/aout.h, config/frv/frv-modes.def,
640         config/i386/beos-elf.h, config/i386/gas.h,
641         config/i386/i386-coff.h, config/i386/i386-modes.def,
642         config/i386/linux.h, config/i386/linux64.h,
643         config/i386/mingw32.h, config/i386/netbsd-elf.h,
644         config/i386/netbsd64.h, config/i386/sco5.h,
645         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
646         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
647         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
648         config/mips/mips-modes.def, config/mips/sdb.h,
649         config/mips/vr.h, config/mips/vxworks.h,
650         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
651         config/pa/pa32-linux.h, config/rs6000/40x.md,
652         config/rs6000/7450.md, config/rs6000/8540.md,
653         config/rs6000/linuxspe.h, config/rs6000/power4.md,
654         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
655         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
656         config/s390/s390-modes.def, config/sh/elf.h,
657         config/sh/sh-modes.def, config/sh/sh64.h,
658         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
659         config/stormy16/stormy16.md, config/v850/v850-protos.h,
660         config/vax/vax.md: Update copyright.
661
662 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
663
664         * expr.c (expand_expr_real_1): Remove an obsolete comment.
665
666 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
667
668         * c-typeck.c (default_function_array_conversion): Always create
669         &a[0] for array types.
670         (build_unary_op): Do not fold &a[x] into a + x.
671
672 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
673
674         * pointer-set.c (hash1): Use integer part of 2^64 / phi
675         instead 2^32 / phi if long is 64-bit.
676
677 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
678
679         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
680         RID_PTRVALUE.
681         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
682         declarations.
683         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
684         __ptrextent__, __ptrvalue and __ptrvalue__.
685         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
686         entries.
687
688 2004-10-16  Dale Johannesen  <dalej@apple.com>
689
690         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
691
692 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
693
694         PR tree-optimization/17766
695         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
696         (dom_info_available_p): Declare.
697         * cfghooks.c (split_block, make_forwarder_block): Use
698         dom_info_available_p.
699         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
700         free_dominance_info, verify_dominators): Ditto.
701         (dom_info_available_p): New function.
702         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
703         (thread_jumps): Use dom_info_available_p.
704         * tree-complex.c (expand_complex_div_wide): Ditto.
705         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
706
707 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
708
709         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
710         (find_best_candidate): Take also important candidates into account.
711         (find_optimal_iv_set): Initialize important_candidates bitmap.
712
713 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
714
715         PR tree-optimization/17560
716         * predict.c (tree_estimate_probability): Mark irreducible
717         loops.
718
719 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
720
721         PR rtl-optimization/17723
722         * cfgcleanup.c (merge_memattrs): Handle case when
723         MEM_SIZE == NULL_RTX.
724
725 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
726
727         * toplev.c (dump_file_name): Change type to be const.
728
729 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
730
731         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
732         non_lvalue to stop something being a null pointer constant.
733
734 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
735
736         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
737         available for TARGET_FPRS.
738         (FUNCTION_VALUE_REGNO_P): Same.
739
740 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
741
742         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
743         -maltivec in same style as other ISA options.
744
745 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
746
747         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
748         definition.
749
750 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
751
752         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
753         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
754         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
755         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
756         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
757         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
758         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
759         predict.def, predict.h, protoize.c, reload.h, resource.h,
760         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
761         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
762         unwind-sjlj.c, value-prof.h: Update copyright.
763
764 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
765
766         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
767
768 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
769
770         * tree-optimize.c (execute_one_pass): Stop timer right after
771         executing the pass.
772
773 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
774
775         Revert:
776         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
777         PR middle-end/17967
778         Revert:
779                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
780                 (remove_useless_stmts_1):  Fold trees we know how to fold.
781
782 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
783
784         * configure.ac: Add .machine power4 directive when testing for
785         mfcr field.
786         * configure: Regenerate.
787
788 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
789
790         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
791
792 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
793
794         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
795         always.
796
797 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
798
799         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
800         for 'f' if !TARGET_FPRS.
801
802 2004-10-14  Richard Henderson  <rth@redhat.com>
803
804         PR debug/14492
805         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
806
807 2004-10-14  Richard Henderson  <rth@redhat.com>
808
809         PR c/17023
810         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
811         as error_mark_node.
812         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
813         instaed of current_function_decl non-null.
814
815 2004-10-14  Matt Austern  <austern@apple.com>
816
817         * pointer-set.c: New file, special-purpose hash table.
818         * pointer-set.h: New file.
819         * tree.h (struct pointer_set_t): Declare as opaque type.
820         (tree_walk): Last argument is pointer_set_t* now.
821         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
822         (walk_type_fields):
823         (walk_tree): Convert from htab_t to pointer_set_t for keeping
824         track of which nodes have already been visited.
825         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
826         * cgraphunit.c (cgraph_create_edges): Likewise.
827         (cgraph_characterize_statics_local): Likewise.
828         * tree-dfa.c (collect_dfa_stats): Likewise.
829         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
830         pointer_set_t* now.
831         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
832         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
833         of walk_subtrees is pointer_set_t* now.
834         * Makefile.in (OBJS-common): add pointer-set.o
835         (tree-inline.o): Depends on pointer-set.h
836         (tree-dfa.o): Likewise
837         (cgraphunit.o): Likewise
838
839 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
840
841         * config/rs6000/darwin.h (ASM_SPEC): Delete.
842         (TARGET_ASM_FILE_START): Define.
843         * config/darwin.h (ASM_SPEC): Define.
844         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
845         -mlong-double-128, it's the default.  Update comment about reason
846         for force_cpusubtype_ALL.
847         * config/rs6000/darwin-vecsave.asm: Supply .machine.
848         * config/rs6000/darwin-world.asm: Likewise.
849         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
850         (symbolic_operand): Delete #if 0ed code.
851
852 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
853
854         * stmt.c (add_case_node): Make sure that we have integer
855         constant before calling tree_int_cst_compare.
856
857 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
858
859         PR middle-end/17967
860         Revert:
861                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
862                 (remove_useless_stmts_1):  Fold trees we know how to fold.
863
864 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
865
866         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
867         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
868         -m64.
869
870 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
871
872         * reload.c (find_reloads): When reloading a PLUS with constant
873         operand, make sure the constant is pushed to the constant pool
874         if required.
875         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
876         reload bug workaround.
877         (s390_expand_plus_operand): Likewise.
878
879 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
880
881         * opts.c (common_handle_option): Do not enable
882         flag_speculative_prefetching for -fprofile-generate/use.
883
884 2004-10-14  Devang Patel  <dpatel@apple.com>
885
886         PR 17635
887         * tree-if-conv.c (process_phi_nodes): Process latch block.
888         (combine_blocks): Process latch block and update loop structure.
889
890 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
891
892         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
893         (vect_update_ivs_after_vectorizer):
894         (vect_transform_for_unknown_loop_bound):
895         (tree_duplicate_loop_to_edge):
896         (allocate_new_names):
897         (rename_use_op):
898         (rename_def_op):
899         (rename_variables_in_bb):
900         (free_new_names):
901         (rename_variables_in_loop):
902         (copy_phi_nodes):
903         (update_phis_for_duplicate_loop):
904         (update_phi_nodes_for_guard):
905         (make_loop_iterate_ntimes):
906         (tree_duplicate_loop_to_edge_cfg):
907         (add_loop_guard):
908         (vect_analyze_loop_with_symbolic_num_of_iters):
909         (verify_loop_for_duplication):
910         (vect_gen_niters_for_prolog_loop):
911         (vect_update_niters_after_peeling):
912         (vect_update_inits_of_dr):
913         (vect_update_inits_of_drs):
914         (vect_build_loop_niters):
915         (vect_do_peeling_for_alignment): New functions.
916         (vect_transform_loop): Add unknown and known but indivisible loop
917         bound support; add peeling for unalignment support.
918         (vect_analyze_loop_form): Support symbolic number of iterations.
919         (vect_transform_loop_bound): New input parameter.
920         (vect_get_loop_niters): Change input parameter type.
921         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
922         (vectorizable_store): Allow unaligned access.
923         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
924         (vect_analyze_data_refs_alignment): Allowed one unaligned
925         store.
926         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
927         to use tree.
928         (LOOP_VINFO_INT_NITERS): New macro.
929         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
930         (do_peeling_for_alignment):
931         (unaligned_drs): New members of _loop_vec_info.
932         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
933
934 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
935
936         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
937         (struct tree_string): Remove "const" qualifier for "str".
938
939 2004-10-14  Ira Rosen  <irar@il.ibm.com>
940
941         * tree-vectorizer.c (vect_analyze_data_refs): Call
942         vect_get_base_and_bit_offset to get memory tag for array ref.
943         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
944
945 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
946
947         * configure.ac: Use $LN_S for creating symlinks (not $LN).
948         * configure: Regenerate.
949
950 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
951
952         * doc/install.texi (*-*-solaris2*): Update with info about kernel
953         patches to solve spurious testsuite failures.
954
955 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
956
957         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
958         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
959         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
960         gcc_assert under ENABLE_CHECKING.
961         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
962         get_vectype_for_scalar_type).
963
964         (vect_get_vec_def_for_operand): Remove redundant variables.
965         (vect_transform_loop): Likewise.
966
967 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
968
969         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
970         global for -mcaller-super-interworking.
971         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
972         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
973         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
974         not need a frame pointer.
975         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
976         the soft frame pointer offset.
977         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
978         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
979         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
980         the stack.  Use frame_pointer_needed to choose between them.
981         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
982         (interwork_with_frame): New macro.
983         (interwork): Add _interwork_{r7,r11}_call_via_rN().
984
985 2004-10-14  Ben Elliston  <bje@au.ibm.com>
986
987         PR other/17900
988         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
989         up the filename looking for a previous directory separator.
990
991 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
992
993         * c-tree.h (enum c_typespec_kind, struct c_typespec,
994         parser_xref_tag): New.
995         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
996         typedef_p.
997         (declspecs_add_type): Adjust prototypes.
998         * c-parse.in (%union): Add tstype.
999         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
1000         typespec_reserved_attr, typespec_nonreserved_nonattr,
1001         structsp_attr, structsp_nonattr): Change to tstype.  Update
1002         actions.
1003         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
1004         (declspecs_add_type): Update to take struct c_typespec argument.
1005         Set tag_defined_p and typedef_p as appropriate.
1006         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
1007         Update to return struct c_typespec.
1008         (shadow_tag_warned): Don't let empty declarations with qualifiers
1009         or storage class specifiers redeclare a tag if a previous
1010         declaration is visible.
1011
1012 2004-10-13  Richard Henderson  <rth@redhat.com>
1013
1014         PR debug/15860
1015         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
1016         for DECL_INCOMING_RTL.
1017
1018 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
1019
1020         PR target/17984
1021         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
1022         trunc_int_for_mode for constants used in shortened mode.
1023
1024 2004-10-13  Richard Henderson  <rth@redhat.com>
1025
1026         PR c/17384
1027         * c-common.c (handle_mode_attribute): Disallow mode changes that
1028         alter the CODE of the top-level type.
1029
1030         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
1031         integer from internal limits macros.
1032         * config/i386/mm3dnow.h (__v2sf): Fix base type.
1033
1034 2004-10-13  Richard Henderson  <rth@redhat.com>
1035
1036         PR debug/13841
1037         * function.c (instantiate_decl): Recurse for CONCAT.
1038
1039 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
1040
1041         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
1042         andi./andis.
1043         (anddi3): Same.
1044         (extzvdi_internal1): Add attribute "compare".
1045         (extzvdi_internal2): Same.
1046
1047 2004-10-12  Tom Tromey  <tromey@redhat.com>
1048
1049         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
1050
1051 2004-10-13  Dale Johannesen  <dalej@apple.com>
1052
1053         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
1054
1055 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
1056
1057         * toplev.c (compile_file): Call mudflap_finish_file from here ...
1058         * c-decl.c (c_write_global_declarations): ... instead of here ...
1059         * cp/decl.c (cp_finish_file): ... and here.
1060         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
1061
1062 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
1063
1064         * tree-ssa-dom.c (record_range): Free the element if we are not
1065         going to use it.
1066
1067 2004-10-13  Tom Tromey  <tromey@redhat.com>
1068
1069         PR java/15578:
1070         * gcc.c (option_map): Added --extdirs and --encoding.
1071
1072 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1073
1074         PR target/14454
1075         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
1076         sparc_can_output_mi_thunk.
1077         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
1078         handling of vcall offset.
1079         (sparc_can_output_mi_thunk): New predicate.
1080         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
1081         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
1082         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
1083
1084         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
1085
1086         * config/sparc/sparc.md (movdi): Remove redundant test.
1087
1088 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
1089
1090         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
1091         TDF_IPA from -fdump-tree-*-all.
1092
1093 2004-10-13  Paul Brook  <paul@codesourcery.com>
1094
1095         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
1096         * config/arm/arm.c (thumb_find_work_register): Update comments.
1097         (arm_load_pic_register): Add argument for scratch register.
1098         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
1099         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
1100
1101 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
1102
1103         * tree-data-ref.c: Fix comment typos.
1104
1105 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
1106             Zdenek Dvorak  <dvorakz@suse.cz>
1107
1108         PR tree-optimization/17724
1109         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
1110
1111 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
1112
1113         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
1114         (altivec_builtin_mask_for_store): Likewise.
1115         (altivec_init_builtins): Use lang_hooks.builtin_function to
1116         create the decls for builtin_altivec_mask_for_load/store.
1117
1118 2004-10-13  Nick Clifton  <nickc@redhat.com>
1119
1120         * config/c4x/c4x.c: Remove inclusion of loop.h.
1121
1122 2004-10-12  Ben Elliston  <bje@au.ibm.com>
1123
1124         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
1125         (ei_container): New; renamed.
1126         (ei_start, ei_last): New macros.
1127         (ei_start_1, ei_last_1): Renamed from ei_start.
1128         (ei_last_1, ei_end_p): Use ei_container() where applicable.
1129         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
1130         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
1131
1132 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
1133
1134         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
1135         * cfgloop.c (initialize_loops_parallel_p): New.
1136         (flow_loops_find): Initialize the parallel_p field to true for all
1137         the loops.
1138         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
1139         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
1140         the size of the data accessed in the loop.
1141         (struct nb_iter_bound): Moved...
1142         * cfgloop.h (struct nb_iter_bound): ... here.
1143         (estimated_nb_iterations, parallel_p): New fields in struct loop.
1144         (record_estimate): Declare extern here.
1145         * tree-chrec.c: Fix comments.
1146         (nb_vars_in_chrec): New function.
1147         * tree-chrec.h (nb_vars_in_chrec): Declared here.
1148         * tree-data-ref.c: Don't include lambda.h, that is already included
1149         in tree-data-ref.h.
1150         (tree_fold_divides_p): Don't check for integer_onep.
1151         (tree_fold_bezout): Removed.
1152         (gcd): New static duplicated function.
1153         (int_divides_p, dump_subscript): New.
1154         (dump_data_dependence_relation): Use dump_subscript.
1155         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
1156         estimate_niter_from_size_of_data): New.
1157         (analyze_array_indexes, analyze_array): Call
1158         estimate_niter_from_size_of_data during the detection of array
1159         references.  Pass in a pointer to the statement that contains the
1160         array reference.
1161         (all_chrecs_equal_p): New.
1162         (compute_distance_vector): Renamed compute_subscript_distance.
1163         Deal with multivariate conflict functions.
1164         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
1165         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
1166         (non_affine_dependence_relation): New.
1167         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
1168         analyze_siv_subscript, analyze_miv_subscript,
1169         analyze_overlapping_iterations, subscript_dependence_tester):
1170         Initialize and return last_conflicts function.
1171         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
1172         compute_overlap_steps_for_affine_1_2): New.
1173         (analyze_siv_subscript_affine_cst): Removed.
1174         (analyze_subscript_affine_affine): Disprove dependences based on the
1175         iteration domains.  Solve the univariate dependence case as before,
1176         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
1177         Implement the multivariate case of 2 versus 1 variables.
1178         (build_classic_dist_vector, build_classic_dir_vector): Implement some
1179         unhandled cases.
1180         (find_data_references_in_loop): Compute and initialize
1181         loop->estimated_nb_iterations and loop->parallel_p.
1182         (analyze_all_data_dependences): Modify the debug dump order.
1183         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
1184         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
1185         (SUB_LAST_CONFLICT, subscript->last_conflict,
1186         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
1187         DDR_AFFINE_P, DDR_SIZE_VECT): New.
1188         (find_data_references_in_loop, initialize_data_dependence_relation,
1189         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
1190
1191 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
1192
1193         * configure: Regenerate.
1194
1195 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
1196
1197         PR 17892
1198         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
1199         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
1200         and constant folding of floating point MULT_EXPR/PLUS_EXPR
1201         expressions.
1202
1203 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
1204
1205         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
1206         (s390_gimplify_va_arg): Likewise.
1207
1208 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
1209
1210         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
1211         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
1212         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
1213         * regclass.c (record_address_regs): Remove ifdef.  Use
1214         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1215         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
1216         definition.
1217         (scan_rtx_address, replace_oldest_value_addr): Use
1218         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1219         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
1220         unnecessary definitions.
1221         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
1222         and MODE_BASE_REG_REG_CLASS.
1223         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
1224         (MODE_BASE_REG_REG_CLASS): Define.
1225         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
1226         (REG_MODE_OK_FOR_REG_BASE_P): Define.
1227         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
1228         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
1229
1230 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
1231
1232         * tree-ssa-alias.c (verify_name_tags): New function.
1233         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
1234         (verify_alias_info): Call verify_name_tags.
1235
1236 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
1237
1238         PR rtl-optimization/17931
1239         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
1240         ZERO_EXTRACT in it.
1241
1242 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
1243
1244         * arm.c (arm_print_operand): Use output_operand_lossage where possible
1245         rather than aborting.
1246
1247 2004-10-12  Paul Brook  <paul@coudesourcery.com>
1248
1249         * config.gcc: Add armv6{k,z,zk}
1250         * config/arm/arm-cores.def: Add arm1176 and mpcore.
1251         * config/arm/tune.md: Regenerate.
1252         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
1253         Define.
1254         (all_architectures): Add armv6k, armv6z, armv6zk.
1255         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
1256         * doc/invoke.texi: Document new arch and cpu values.
1257
1258 2004-10-12  Paul Brook  <paul@coodesourcery.com>
1259
1260         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
1261         meabi=4.
1262
1263 2004-10-12  Paul Brook  <paul@codesourcery.com>
1264
1265         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
1266         Handle negative constants.
1267
1268 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
1269
1270         PR c/17301
1271         * c-typeck.c (convert_arguments): Return error_mark_node if there
1272         are too few arguments.
1273         (build_function_call): Handle error_mark_node return from
1274         convert_arguments.
1275
1276 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
1277
1278         * configure.ac (symbolic_link): Replace with $LN_S.
1279         (Assembler/Linker): Hard link from gas and binutils trees.
1280         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
1281         * configure: Regenerate.
1282
1283 2004-10-12  Paul Brook  <paul@codesourcery.com>
1284
1285         * configure.ac: Don't look for host assembler when building a canadian
1286         cross.
1287         * configure: Regenerate.
1288
1289 2004-10-11  Roger Sayle  <roger@eyesopen.com>
1290
1291         PR other/17361
1292         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
1293         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
1294         line options for "-lang-asm" and if found allow any of the C-family
1295         front-end options.
1296         (c_common_handle_option): Remove last use of permit_fortran_options.
1297
1298 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1299
1300         * config/s390/s390.c (print_operand): Support 'S' format flag.
1301         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
1302         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
1303         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
1304         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
1305         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
1306         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
1307         ("*movstricthi"): Likewise.
1308         ("*load_multiple_di", "*load_multiple_si"): Likewise.
1309         ("*store_multiple_di", "*store_multiple_si"): Likewise.
1310         ("*sethiqisi", "*sethihisi"): Likewise.
1311         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
1312         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
1313         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
1314         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
1315         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
1316
1317         ("*tmhi_full"): Fix incorrect op_type attribute.
1318
1319         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
1320         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
1321         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
1322         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
1323
1324 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
1325
1326         PR middle-end/16266
1327         * function.c (temp_slots_at_level): Fix typo which creates too
1328         many temp stack slots levels.
1329
1330 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1331
1332         * config/s390/s390.c (s390_trampoline_template): Generate shorter
1333         trampoline code.
1334         (s390_trampoline_instantiate): Adapt.
1335         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
1336
1337 2004-10-11  Roger Sayle  <roger@eyesopen.com>
1338
1339         PR middle-end/17657
1340         * stmt.c (add_case_node): Add additional type argument.  Declare
1341         as static to match prototype.  Convert the upper and lower bounds
1342         to the specified index type.  Optimize away case ranges/values
1343         that are outside the index type's bounds.  Truncate case ranges
1344         that span the index type's bounds.
1345         (expand_case): Avoid unnessary computation and memory allocation
1346         when index type is error_mark_node.  Pass index_type as required
1347         by change to add_case_node API.  No need to convert case range
1348         bounds to index_type, this is now done by add_case_node.
1349
1350 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1351
1352         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
1353         * config/s390/s390.c (s390_offset_p): New function.
1354         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
1355         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
1356         transform Q->Q alternatives to *clc pattern.
1357         ("*clc"): Move.
1358         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
1359         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
1360         to transform Q->Q alternatives to *mvc pattern.
1361         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
1362         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
1363         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
1364         transform Q->Q alternatives to *nc pattern.
1365         ("*nc"): New insn.  New peephole to merge adjacent NCs.
1366         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
1367         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
1368         transform Q->Q alternatives to *oc pattern.
1369         ("*oc"): New insn.  New peephole to merge adjacent OCs.
1370         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
1371         transform Q->Q alternatives to *xc pattern.
1372         ("*xc"): New insn.  New peephole to merge adjacent XCs.
1373         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
1374
1375 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
1376
1377         * gimplify.c (gimple_push_condition): Make sure that we don't
1378         have any saved condition cleanup if we were at the top level.
1379
1380 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
1381
1382         * config/frv/frv.md (*adddi3_internal): Change name to...
1383         (adddi3): ...replacing the exisiting define_expand.  Combine
1384         alternatives.  Fix the range of the constant constraints ('J' instead
1385         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
1386         to extract the lower and upper halves of the DImode operands.
1387         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
1388         (adddi3_lower): Fix the range of the constant constraints and
1389         remove the bogus operands[2] check.
1390         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
1391         operand 2.  Use addxi to handle constant operands.
1392         (subdi3_lower, subdi3_upper): Don't handle constant operands.
1393
1394 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
1395
1396         * gengtype-lex.l: Add commented } & ) characters to unconfuse
1397         editor's paren matching. Allow #define inside a struct.
1398
1399 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
1400
1401         PR middle-end/17703
1402         part of PR c++/17657
1403         * fold-const.c (fold_build_cleanup_point_expr): New function.
1404         * tree.h (fold_build_cleanup_point_expr): Prototype.
1405
1406 2004-10-10  Eric Christopher  <echristo@redhat.com>
1407
1408         * dwarf2out.c: Move attribute to subprogram declaration
1409         instead of subroutine type.
1410
1411 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
1412
1413         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
1414         hoist_insn_after, and hoist_insn_to_edge.
1415         * rtl.h: Remove the prototypes for reg_referenced_between_p,
1416         no_jumps_between_p, and insn_dependent_p.
1417         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
1418         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
1419         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
1420         hoist_insn_to_edge): Remove.
1421
1422 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1423
1424         PR c/17881
1425         * c-decl.c (grokparms): Don't warn for parameters of incomplete
1426         type in declarations that are not definitions except for the case
1427         of parameters of void type.
1428
1429 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
1430
1431         * tree-cfg.c: Fix comment typos.
1432
1433 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1434
1435         PR c/17301
1436         * builtins.c (expand_builtin_va_start): Check for too few
1437         arguments to va_start.
1438
1439 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1440
1441         PR c/17189
1442         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
1443         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
1444         pedantic.
1445         * c-parse.in (component_decl): Don't pedwarn here for unnamed
1446         fields.
1447
1448 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
1449
1450         PR tree-optimization/17906
1451         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
1452         copy non-gimple reg arguments.
1453
1454 2004-10-09  Roger Sayle  <roger@eyesopen.com>
1455
1456         PR rtl-optimization/17853
1457         * simplify-rtx.c (simplify_relational_operation): Correct comment.
1458         Reorganize handling of comparison operations with floating point
1459         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
1460         Likewise, introduce support for comparison operations with vector
1461         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
1462
1463         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
1464         * doc/tm.texi: Likewise.
1465
1466 2004-10-09  Steven Bosscher  <stevenb@suse.de>
1467
1468         * regs.h (struct reg_info_def): Remove the last_node_uid and
1469         changes_mode fields.
1470         (REGNO_LAST_NOTE_UID): Don't define.
1471         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
1472         * regmove.c (copy_src_to_dest): Likewise.
1473
1474 2004-10-09  Roger Sayle  <roger@eyesopen.com>
1475
1476         PR middle-end/17894
1477         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
1478         relational comparison operator op needs to be swapped/reversed when
1479         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
1480
1481 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1482
1483         PR tree-opt/17902
1484         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
1485         instead of bsi_start.
1486         (value_replacement): Likewise.
1487         (abs_replacement): Likewise
1488
1489 2004-10-09  Steven Bosscher  <stevenb@suse.de>
1490
1491         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
1492         (expand_gimple_cond_expr, expand_gimple_tailcall,
1493         expand_gimple_basic_block): Use it to dump RTL for each stmt.
1494         (tree_expand_cfg): Announce full RTL function dump.
1495         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
1496         not the graph version.
1497         * tree-pretty-print.c (dump_generic_node): Allow empty statements
1498         in the arms of a COND_EXPR for lowered nodes.
1499
1500 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
1501
1502         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
1503         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
1504         strtoufix16, strtoufix32, strtoufix64): Declare.
1505
1506 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1507
1508         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
1509         for an out-of-range floating point constant.
1510         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
1511         warning if the target format does not support infinities.
1512
1513 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1514
1515         * emit-rtl.c (last_label_num, base_label_num): Remove.
1516         (max_label_num): Always return label_num.
1517         (set_new_last_label_num, restore_emit_status): Remove.
1518         (init_emit): Don't initialize last_label_num.
1519         * function.c (pop_function_context_from): Don't call
1520         restore_emit_status.
1521         * function.h: Remove the prototype for restore_emit_status.
1522         * rtl.h: Remove the prototype for set_new_last_label_num.
1523
1524 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1525
1526         * stmt.c (expand_decl_init): Remove.
1527         * tree.h: Remove the corresponding prototype.
1528
1529 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1530
1531         * integrate.c (try_constants, subst_constants, mark_stores):
1532         Remove.
1533         * integrate.h: Remove the prototype for try_constants.
1534
1535 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1536
1537         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
1538         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
1539         comments about its relevance to errors.
1540         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
1541
1542 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1543
1544         PR c/16999
1545         * c-ppoutput.c (cb_ident): Don't quote string as it is already
1546         quoted.
1547
1548 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
1549
1550         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
1551         reference_node_pool.
1552
1553 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1554
1555         * tree-cfg.c: Fix a comment typo.
1556
1557 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
1558
1559         * config/s390/s390.c (s390_register_info): Don't save fprs for
1560         -msoft-float.
1561         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
1562
1563 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
1564
1565         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
1566         (TARGET_DEFAULT): Use symbolic values.
1567         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
1568         (TARGET_DEFAULT): Use symbolic values.
1569         * config/s390/s390.c (s390_backchain_string): Initialize to
1570         TARGET_DEFAULT_BACKCHAIN.
1571
1572 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1573
1574         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
1575         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
1576         code.
1577         (expand_builtin_strcat): Accept a type parameter.
1578         (fold_builtin_mempcpy): Accept a type and endp parameter.
1579
1580         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
1581         Accept an `exp' instead of an `arglist'.
1582
1583 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
1584
1585         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
1586         reverting my 2004-09-07 patch to use build_int_cst.
1587
1588 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1589
1590         PR target/17245
1591         * config/sparc/sparc.c (input_operand): Remove redundant code
1592         for handling LO_SUM.
1593         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
1594         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
1595         Otherwise only accept it for TFmode if quad move insns are available.
1596
1597 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1598
1599         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
1600         common cases will be caught earlier than others.
1601
1602 2004-10-08  Michael Matz  <matz@suse.de>
1603
1604         * loop-doloop.c (doloop_optimize): Extend count.
1605
1606 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1607
1608         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
1609         (prefetch): Convert to expander.
1610
1611 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1612
1613         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
1614         first argument of CALL.
1615         (tls_local_dynamic): Likewise.
1616
1617 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1618
1619         * c-typeck.c (enum impl_conv): New.
1620         (convert_for_assignment): Use it.  Take tree for function called
1621         instead of its name.  Handle ObjC selectors for diagnostics at
1622         start of function.  Select diagnostic text within the function
1623         using full sentences for diagnsotics.  Use %qE to name functions
1624         in diagnostics.
1625         (convert_arguments, build_modify_expr,
1626         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
1627         callers to convert_for_assignment.
1628         (warn_for_assignment): Remove.
1629
1630 2004-10-08  Nick Clifton  <nickc@redhat.com>
1631
1632         * config/sh/symbian.c (symbian_possibly_export_base_class):
1633         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
1634         TYPE_CONTAINS_VPTR_P.
1635
1636 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1637
1638         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
1639         fixed registers form all_used_regs. Update call_really_used_regs.
1640         (CALL_REALLY_USED_REGISTERS): Define.
1641         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
1642         with call_really_used_regs.
1643
1644 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
1645
1646         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
1647         for -profile as well as -p and -pg.
1648
1649 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
1650
1651         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
1652
1653 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1654
1655         * tree-cfg.c (tree_block_forwards_to): Remove.
1656         * tree-flow.h: Remove the corresponding prototype.
1657
1658 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1659
1660         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
1661         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
1662
1663 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
1664
1665         Radar 3813796
1666         * config/rs6000/rs6000.c (rs6000_generate_compare): When
1667         flag_trapping_math is in effect, don't generate subtract
1668         instructions.
1669
1670 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
1671
1672         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
1673         * config/s390/s390.c (s390_narrow_logical_operator): New function.
1674         (s390_extra_constraint_str): Add 'A' constraints.
1675         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
1676         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
1677         (CONSTRAINT_LEN): Likewise.
1678         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
1679         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
1680         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
1681         ("*iordi3"): Add OI alternative and splitter.
1682         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
1683         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
1684         ("*xordi3"): Add XI alternative and splitter.
1685         ("*xorsi3", "*xorhi3"): Likewise.
1686
1687 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
1688
1689         * config/mips/mips.c (mips_function_rodata_section): New function.
1690         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
1691
1692 2004-10-07  Devang Patel  <dpatel@apple.com>
1693
1694         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
1695         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
1696         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
1697         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
1698         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
1699         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
1700         UNSPEC_VCONDU_V16QI): New constant defines.
1701         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
1702         vconduv16qi): New patterns.
1703         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
1704         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
1705         (get_vec_cmp_insn): Same.
1706         (get_vsel_insn): Same.
1707         (rs6000_emit_vector_compare): Same.
1708         (rs6000_emit_vector_select): Same.
1709         (INSN_NOT_AVAILABLE): New.
1710
1711 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
1712
1713         PR tree-optimization/17749
1714         * tree-tailcall.c (find_tail_calls): Check that parameter is
1715         a gimple_reg.
1716
1717 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1718
1719         * config/ia64/ia64.c: Fix a comment typo.
1720
1721 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1722
1723         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
1724
1725 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1726
1727         PR c++/17115
1728         * tree-inline.c (expand_call_inline): Do not warn for functions
1729         marked with attribute noinline.
1730
1731 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1732
1733         PR target/17862
1734         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
1735         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
1736
1737         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
1738         of 0 as 4th argument to pass_by_reference.
1739         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
1740
1741 2004-10-06  Eric Christopher  <echristo@redhat.com>
1742
1743         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
1744         attribute.
1745
1746 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
1747
1748         PR target/17770
1749         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
1750
1751 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
1752
1753         PR rtl-optimization/17791
1754         * loop-doloop.c (doloop_modify): Take number of iterations as
1755         argument.
1756         (doloop_optimize): Extend or shorten the number of iterations
1757         when changing mode of counter register.
1758         * loop-iv.c (lowpart_subreg): Export.
1759         * rtl.h (lowpart_subreg): Declare.
1760
1761 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
1762
1763         PR tree-optimization/17806
1764         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
1765         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
1766         flags moved to split_edge.
1767
1768 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1769
1770         PR middle-end/17835
1771         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
1772         before tentatively building the conditional move sequence.
1773
1774 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
1775
1776         PR target/16815
1777         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
1778         check.
1779         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
1780         function_arg_padding.
1781
1782 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
1783
1784         PR bootstrap/17857
1785         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
1786
1787 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1788
1789         * hooks.c (hook_int_void_1, hook_void_int): Remove.
1790         * hooks.h: Remove the corresponding prototypes.
1791
1792 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
1793
1794         PR middle-end/17849
1795         * tree-nested.c (walk_stmt_info): Add changed field.
1796         (convert_nonlocal_reference): Set changed to when we
1797         change a decl to unnested decl.
1798         <case ADDR_EXPR>: Instead of checking if the immediate part
1799         of the ADDR_EXPR changed, check the field changed.
1800         Use recompute_tree_invarant_for_addr_expr instead of unsetting
1801         TREE_INVARIANT.
1802         (convert_local_reference):  Set changed to when we
1803         change a decl to unnested decl.
1804         <case ADDR_EXPR>: Instead of checking if the immediate part
1805         of the ADDR_EXPR changed, check the field changed.
1806         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
1807
1808 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
1809
1810         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
1811         * dwarf2out.c (dwarf2out_init): Remove references to
1812         DWARF2_GENERATE_TEXT_SECTION_LABEL.
1813         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
1814         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
1815
1816 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1817
1818         * c-typeck.c (convert_arguments): Take expression for called
1819         function rather than its name.  Handle ObjC selectors directly
1820         rather than relying on warn_for_assignment to do so.  Call warning
1821         directly rather than warn_for_assignment.  Use %qE in diagnostics.
1822         Say "argument" rather than "arg" in diagnostics.
1823         (build_function_call): Update call to convert_arguments.
1824
1825 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
1826
1827         PR debug/17787
1828         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
1829         ENUMs specially instead of just saying we do.
1830
1831 2004-10-06  Eric Christopher  <echristo@redhat.com>
1832
1833         * dwarf2.h: Sync with include/elf/dwarf2.h
1834
1835 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
1836
1837         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
1838         and TREE_VEC nodes.
1839
1840 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
1841
1842         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
1843         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
1844
1845 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
1846
1847         * lambda-code.c (compute_nest_using_fourier_motzkin): New
1848         function.
1849         (lambda_compute_auxillary_space): Split from here.
1850
1851 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
1852
1853         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
1854         * tree-flow.h: Add prototype.
1855         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
1856         expr_invariant_in_loop.
1857
1858 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
1859
1860         * tree-cfg.c (thread_jumps): Remove a duplicate check for
1861         EXIT_BLOCK_PTR.
1862
1863 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
1864
1865         * config/s390/s390-protos.h (s_imm_operand): Remove.
1866         (s390_pool_operand): Add prototype.
1867         * config/s390/s390.c (general_s_operand): Remove.
1868         (s_imm_operand): Remove.
1869         (s_operand): Merge contents of general_s_operand.
1870         (s390_pool_operand): New function.
1871         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
1872         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
1873         ("*cmpdi_ccu"): Merge Q->Q alternative.
1874         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
1875         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
1876         ("*cli"): Remove.
1877         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
1878         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
1879         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
1880
1881 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
1882
1883         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
1884         call ia64_function_arg_boundary.
1885         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
1886         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
1887         (ia64_function_arg_advance): Do not put 128 bit floats into
1888         FP registers.
1889
1890 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1891
1892         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
1893         Accept an expression instead of an arglist.
1894         (expand_builtin_stpcpy): Accept an expression instead of an
1895         arglist.
1896
1897 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1898
1899         PR target/16007
1900         * doc/install.texi (*-*-solaris2*): Mention potential problem
1901         with Sun assembler + GNU linker and C++ programs.
1902         Document status of binutils 2.15 release.
1903
1904 2004-10-06  Jan Hubicka  <jh@suse.cz>
1905
1906         * cse.c (cse_main): Kill push/pop context.
1907
1908 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
1909
1910         * pretty-print.c: Include tree.h.
1911         (pp_base_prepare_to_format): New function, logic from
1912         text_specifies_location.
1913         (pp_base_format_text): Use gcc_assert.
1914         * pretty-print.h (pp_prepare_to_format): New macro.
1915         (pp_base_prepare_to_format): Prototype.
1916         * diagnostic.c (text_specifies_location): Delete.
1917         (bug_report_request): Delete.
1918         (diagnostic_set_info): Don't call text_specifies_location.
1919         (diagnostic_action_after_output): Put text from
1920         bug_report_request inline here.  Use gcc_unreachable.
1921         (diagnostic_report_current_function): Fix comment.
1922         (diagnostic_report_diagnostic): Clarify logic for error recursion.
1923         Call pp_prepare_to_format before diagnostic_starter.
1924         (trim_filename): Use IS_DIR_SEPARATOR.
1925         (fatal_error, internal_error): Use gcc_unreachable.
1926         (error_recursion): Call diagnostic_action_after_output to
1927         issue the bug_report_request message and exit.
1928         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
1929
1930         * c-parse.in: Add list of diagnostic messages to insulate
1931         translation template from version of yacc/bison used to
1932         compile the grammar.
1933
1934 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
1935
1936         PR 16406
1937         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
1938
1939 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1940
1941         * basic-block.h: Remove the prototype for
1942         flow_preorder_transversal_compute.
1943         * cfganal.c (dfst_node): Remove.
1944         (flow_preorder_transversal_compute): Likewise.
1945         * rtl.h: Remove the prototype for get_jump_table_offset.
1946         * rtlanal.c (get_jump_table_offset): Remove.
1947
1948 2004-10-05  Richard Henderson  <rth@redhat.com>
1949
1950         PR 17756
1951         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
1952
1953 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
1954
1955         PR bootstrap/17817
1956         * Makefile.in: Stage the build directory too.
1957
1958 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
1959
1960         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
1961
1962         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
1963         (frv_emit_move): Same.
1964
1965         * config/frv/frv.c (frv_emit_move): New.
1966         (frv_legitimize_address): New.
1967
1968         * config/frv/frv.md ("movsi"): Call frv_emit_move.
1969         ("movqi"): Same.
1970         ("movhi"): Same.
1971         ("movdi"): Same.
1972         ("movsf"): Same.
1973         ("movdf"): Same.
1974
1975 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1976
1977         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
1978         system headers.
1979
1980 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1981
1982         * c-decl.c (pushdecl): When an extern declaration at block scope
1983         refers to a visible entity with internal linkage, use the old DECL
1984         rather than the new one.
1985
1986 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1987
1988         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
1989         comments.
1990
1991 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1992
1993         * tree-cfg.c (thread_jumps): Remove a duplicate check for
1994         an infinite loop.
1995
1996 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1997
1998         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
1999         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
2000         blocks.
2001
2002 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2003
2004         * tree-cfg.c (cleanup_tree_cfg): Don't call
2005         delete_unreachable_blosk() after thread_jumps().
2006         (thread_jumps): Always remove basic blocks as they become
2007         unreachable.
2008
2009 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2010
2011         * tree-cfg.c (cleanup_tree_cfg): Remove variable
2012         something_changed.  Simplify the while loop.
2013
2014 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2015
2016         * builtins.c (expand_builtin_memmove): Delete duplicate code
2017         and accept a tree type for the result.
2018         (expand_builtin_bcopy): Accept a tree type for the result.
2019         (fold_builtin_memmove): Accept an arglist and tree type for
2020         the result.
2021
2022 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
2023
2024         * config/s390/s390.c (s390_dump_pool): Remove return value.
2025         Use gen_pool_align, gen_pool_section_start/end instead of
2026         gen_pool_start/end_31/64.
2027         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
2028         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
2029         ("pool_start_31", "pool_end_31"): Remove.
2030         ("pool_start_64", "pool_end_64"): Likewise.
2031         ("pool_align", "pool_section_start", "pool_section_end": New insns.
2032
2033         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
2034         (TARGET_CANNOT_COPY_INSN_P): Define.
2035         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
2036         (struct constant_pool): New member 'execute'.
2037         (s390_add_execute, s390_find_execute): New functions.
2038         (s390_execute_label, s390_execute_target): Likewise.
2039         (s390_dump_pool): Output in-pool execute target templates.
2040         (s390_dump_execute): New function.
2041         (s390_alloc_pool, s390_free_pool): Handle execute templates.
2042         (s390_mainpool_start, s390_mainpool_finish): Likewise.
2043         (s390_chunkify_start, s390_chunkify_finish): Likewise.
2044         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
2045         ("*execute"): New insn pattern.
2046         ("movmem_short", "*movmem_short"): Use splitters to generate
2047         explicit execute pattern, remove embedded execute.
2048         ("clrmem_short", "*clrmem_short"): Likewise.
2049         ("cmpmem_short", "*cmpmem_short"): Likewise.
2050
2051 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
2052
2053         * tree-ssa.c (verify_ssa): Verify phi arguments only
2054         contain renamed names.
2055
2056 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
2057
2058         * config/rs6000/linux.h: Formatting, whitespace.
2059         * config/rs6000/linux64.h: Likewise.
2060         * config/rs6000/rs6000-protos.h: Likewise.
2061         * config/rs6000/rs6000.c: Likewise.
2062         (easy_vector_splat_const): Add fall thru comments.
2063         (output_vec_const_move): Likewise.
2064
2065 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
2066
2067         * Makefile.in: Update -Wno-error exceptions for move to build dir.
2068
2069 2004-10-05  Chao-Ying Fu  <fu@mips.com>
2070             Richard Sandiford  <rsandifo@redhat.com>
2071
2072         * doc/invoke.texi (-mpaired-single): Link to the new description of the
2073         built-in functions.  Document dependencies.
2074         (-mips3d): Add link here too.
2075         * doc/extend.texi (MIPS Paired-Single Support): New section.
2076
2077 2004-10-04  Chao-ying Fu  <fu@mips.com>
2078
2079         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
2080
2081 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
2082
2083         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2084         Initialize OPT_STATS to 0.
2085
2086 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
2087
2088         * tree-data-ref.c: Fix comment typos.
2089
2090 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
2091
2092         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
2093         the predicate cannot be computed, don't initialize the result to
2094         false.
2095
2096 2004-10-01  Eric Christopher  <echristo@redhat.com>
2097
2098         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
2099         locally defined enum.
2100         * dwarf2out.c (add_calling_convention_attribute): Don't
2101         emit DW_CC_normal.
2102
2103 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
2104
2105         PR c/17178, PR c/17820
2106         * c-decl.c (pop_scope): Do not warn about unused static
2107         variables as they warned in the middle-end.
2108
2109 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2110
2111         * builtins.c (expand_builtin_memcpy): Delete duplicate code
2112         and make the first parameter the expression not the arglist.
2113
2114 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
2115
2116         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
2117         as valid modes to expand address expressions.
2118
2119 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
2120
2121         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
2122         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
2123         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
2124         code formatting conventions.
2125
2126 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
2127
2128         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
2129
2130 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
2131
2132         PR tree-optimization/16632
2133         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
2134         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
2135         where | is used instead of &.
2136
2137 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
2138
2139         * ginclude/stddef.h: Fix a comment typo.
2140
2141 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2142
2143         PR target/17443
2144         * config.gcc (i?86-*-solaris2*): Restore correct logic
2145         for --enable-threads option.
2146         (sparc64-*-solaris2*): Likewise.
2147         (sparc-*-solaris2*): Likewise.
2148
2149 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
2150
2151         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
2152         (OS_MISSING_POWERPC64): Move, and comment.
2153         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
2154         (OS_MISSING_POWERPC64): Move, and comment.
2155
2156 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
2157
2158         * arm.c (output_call_mem): Add missing \t.
2159
2160 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2161
2162         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
2163         expand_builtin_strncmp): Delete duplicate code.
2164
2165 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
2166
2167         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
2168         take check-base and -limit arguments.
2169         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
2170         check ranges for ARRAY_REF and COMPONENT_REF.
2171         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
2172         instrumentation.
2173
2174 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
2175
2176         * c-objc-common.c (c_tree_printer): Correct description of %E.
2177         Don't fall through after printing an expression.
2178
2179 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2180
2181         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
2182
2183 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2184
2185         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
2186         delete_unrechable_blocks() only when necessary.
2187
2188 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
2189
2190         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
2191         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
2192         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
2193         __gthread_recursive_mutex_unlock): New functions.
2194
2195 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
2196
2197         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
2198         * config/s390/tpf-eh.c: Remove file.
2199         * config/s390/tpf-unwind.h: New file.
2200         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
2201         (MD_UNWIND_SUPPORT): Define.
2202
2203 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
2204
2205         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
2206
2207 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
2208
2209         * config/s390/s390-protos.h (s390_comparison): Add prototype.
2210         * config/s390/s390.c (s390_comparison): New function.
2211         (s390_branch_condition_mask): Return -1 for invalid comparisons.
2212         (s390_branch_condition_mnemonic): Assert valid comparison.
2213         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
2214         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
2215         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
2216         s390_comparison instead of comparison_operator.
2217
2218         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
2219         ("cmpmemdi"): Remove.
2220         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
2221         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
2222         ("cmpint_si"): Rename to ...
2223         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
2224         ("cmpint_di", "*cmpint_di"): Likewise.
2225         * config/s390/s390.c (s390_canonicalize_comparison): Remove
2226         redundant UNSPEC_CMPINT conversions.
2227         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
2228
2229 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
2230
2231         * collect2.c (COLLECT_PARSE_FLAG): Remove.
2232         (main): Remove a reference to COLLECT_PARSE_FLAG
2233         * system.h: Poison COLLECT_PARSE_FLAG.
2234         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
2235
2236 2004-10-01  Paul Brook  <paul@codesourcery.com>
2237
2238         * config/arm/crti.asm: Give _init and _fini function type.
2239
2240 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
2241
2242         * common.opt (ftree-loop-ivcanon): Enable by default.
2243         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2244         Enable complete loop unrolling.
2245         (canonicalize_induction_variables, tree_unroll_loops_completely):
2246         Reset scev info.
2247
2248 2004-10-01  Paul Brook  <paul@codesourcery.com>
2249
2250         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
2251         not register number.
2252         (thumb_find_work_register): Search full register range.
2253
2254 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
2255
2256         PR tree-opt/17343
2257         * tree-cfg.c (group_case_labels): Get the label and not
2258         the case expr for the default case.
2259         When the label we looking at is the default, decrement the
2260         new_size.
2261
2262 2004-10-01  Jan Hubicka  <jh@suse.cz>
2263
2264         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
2265         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2266         * toplev.h (tree_rest_of_compilation): Update prototype.
2267         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
2268
2269 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
2270
2271         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
2272         cleanup_control_flow() out of the while loop.
2273
2274 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
2275
2276         * tree-vectorizer.c (vectorizable_operation): Fail unless
2277         the mode for the vector type is indeed a vector mode.
2278
2279 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
2280
2281         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
2282         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
2283         of convert.
2284         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2285         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
2286         follow_ssa_edge_in_rhs): Ditto.
2287         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
2288         (dump_iv): Dump base_object.
2289         (dump_use, dump_cand): Use dump_iv.
2290         (determine_base_object): New function.
2291         (alloc_iv): Initialize base_object field.
2292         (record_use): Clear the ssa_name field of iv.
2293         (get_computation_cost_at): Do not use difference of addresses of
2294         two different objects.
2295         (may_eliminate_iv): Do not require the loop to have just single exit.
2296         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
2297         (nonzero_p): New function.
2298         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
2299         tree_simplify_using_condition, simplify_using_initial_conditions,
2300         loop_niter_by_eval, find_loop_niter_by_eval,
2301         estimate_numbers_of_iterations_loop, compare_trees,
2302         upper_bound_in_type, lower_bound_in_type,
2303         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
2304         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
2305         instead of integer_(non)zerop.
2306
2307 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
2308
2309         Revert
2310         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2311
2312         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2313         and TI_VA_LIST_FPR_COUNTER_FIELD.
2314         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2315         * tree-pass.h (pass_stdarg): Add.
2316         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2317         * tree-stdarg.c: New file.
2318         * Makefile.in (OBJS-common): Add tree-stdarg.o.
2319         (tree-stdarg.o): Add dependencies.
2320         * function.h (struct function): Add va_list_gpr_size and
2321         va_list_fpr_size fields.
2322         * function.c (allocate_struct_function): Initialize them.
2323
2324         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2325         va_list_{g,f}pr_counter_field.
2326         (ix86_setup_incoming_varargs): Don't do anything if reg_save
2327         area will not be used.  Only save registers that tree-stdarg.c
2328         detected they need saving.
2329         (ix86_va_start): Don't set up fields that won't be used.
2330
2331         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2332         va_list_{g,f}pr_counter_field.
2333         (setup_incoming_varargs): Don't do anything if reg_save
2334         area will not be used.  Only save registers that tree-stdarg.c
2335         detected they need saving.
2336         (rs6000_va_start): Don't set up fields that won't be used.
2337
2338 2004-09-30  Eric Christopher  <echristo@redhat.com>
2339
2340         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
2341         sh abi.
2342         * dwarf2out.c (add_calling_convention_attribute): New function.
2343         (gen_subroutine_type_die): Use.
2344         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
2345         * target.h (gcc_target): Add dwarf_calling_convention.
2346         * hooks.c (hook_int_tree_0): New function.
2347         * hooks.h: Prototype.
2348         * config/sh/sh.c: Include dwarf2.h.
2349         (sh_dwarf_calling_convention): New function.
2350         (TARGET_DWARF_CALLING_CONVENTION): Use.
2351         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
2352
2353 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2354
2355         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2356         expand_builtin_strrchr, expand_builtin_strpbrk,
2357         expand_builtin_strncat, expand_builtin_strspn,
2358         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
2359         code.
2360
2361 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2362
2363         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
2364         prototype.
2365         (s390_logical_operator_ok_p): Likewise.
2366         * config/s390/s390.c (s390_expand_logical_operator): New function.
2367         (s390_logical_operator_ok_p): Likewise.
2368         * config/s390/s390.md ("anddi3"): New expander.
2369         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
2370         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
2371         ("andsi3"): Use s390_expand_logical_operator.
2372         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
2373         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
2374         ("andhi3"): New expander.
2375         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
2376         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
2377         ("andqi3"): New expander.
2378         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
2379         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
2380         ("iordi3"): New expander.
2381         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
2382         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
2383         ("iorsi3"): Use s390_expand_logical_operator.
2384         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
2385         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
2386         ("iorhi3"): New expiorer.
2387         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
2388         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
2389         ("iorqi3"): New expiorer.
2390         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
2391         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
2392         ("xordi3"): New expander.
2393         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
2394         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
2395         ("xorsi3"): New expander.
2396         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
2397         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
2398         ("xorhi3"): New expander.
2399         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
2400         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
2401         ("xorqi3"): New expander.
2402         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
2403         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
2404
2405 2004-09-30  Roger Sayle  <roger@eyesopen.com>
2406
2407         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
2408         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
2409         machine mode as the result.
2410
2411 2004-09-30  Ben Elliston  <bje@au.ibm.com>
2412
2413         PR bootstrap/17761
2414         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
2415         FOR_EACH_EDGE macros.
2416
2417 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2418
2419         * c-tree.h (readonly_error): Remove.
2420         * c-typeck (enum lvalue_use): New.
2421         (lvalue_or_else, readonly_error): Use it.  All callers changed.
2422         (readonly_error): Make static.
2423
2424 2004-09-30  Jan Hubicka  <jh@suse.cz>
2425
2426         PR debug/13974
2427         * cfgrtl.c (try_redirect_by_replacing_jump,
2428         force_nonfallthru_and_redirect, commit_one_edge_insertion,
2429         cfg_layout_merge_blocks):  Do not attach any line number information
2430         to newly inserted instructions.
2431         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
2432         emit_insn_*_noloc.
2433         (emit_*insn_before, emit_insn*_after): New.
2434         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
2435         existing locators.
2436         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
2437         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
2438
2439 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2440
2441         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
2442         (s390_return_address_offset): Remove.
2443         (s390_can_eliminate): Add prototype.
2444         (s390_initial_elimination_offset): Add prototype.
2445         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
2446         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
2447         * config/s390/s390.c (s390_arg_frame_offset): Remove.
2448         (s390_return_address_offset): Remove.
2449         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
2450         (struct machine_function): New member split_branches_pending_p.
2451         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
2452         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
2453         (s390_optimize_prologue): Remove base_used argument.  Call
2454         s390_update_frame_layout instead of s390_register_info.  Handle
2455         prologue/epilogue insns that touch only RETURN_REGNUM.
2456         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
2457         (s390_register_info): Remove base_used and return_addr_used
2458         arguments, compute special register usage inline.  Return live
2459         register data to caller.
2460         (s390_frame_info): Remove arguments, do not call s390_register_info.
2461         (s390_init_frame_layout): New function.
2462         (s390_update_frame_layout): Likewise.
2463         (s390_emit_prologue): Call s390_update_frame_layout; some code
2464         move to there.  Do not emit pool placeholder insn if unnecessary.
2465
2466 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2467
2468         * config/s390/s390.c (legitimate_reload_constant_p): Remove
2469         floating point constant workaround.
2470         (s390_secondary_input_reload_class): Handle PLUS reloads
2471         with too-large constant.
2472         (s390_expand_plus_operand): Likewise.
2473         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
2474         ("movsi"): Likewise.  Also, remove workaround for non-general
2475         operands.
2476         ("movdf"): Do not call force_const_mem.
2477         ("movsf"): Likewise.  Merge expander with *movsf insn.
2478         ("*movsf"): Remove, merge with movsf expander.
2479
2480 2004-09-30  Paul Brook  <paul@codesourcery.com>
2481
2482         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
2483         (ENDFILE_SPEC): Define.
2484         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
2485
2486 2004-09-30  Richard Henderson  <rth@redhat.com>
2487
2488         * config/alpha/qrnnd.asm: Mark for noexecstack.
2489
2490 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
2491
2492         * protoize.c, tree-cfg.c: Fix comment typos.
2493
2494 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2495
2496         PR c/17730
2497         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
2498
2499 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
2500
2501         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
2502         expressions...
2503         (add_pointed_to_expr): ... here.
2504         Call add_pointed_to_expr for variables with DECL_INITIAL set.
2505         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
2506         pointer variable, if set.
2507
2508 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
2509
2510         * config/sh/sh.c: Follow spelling conventions.
2511
2512 2004-09-29  Richard Henderson  <rth@redhat.com>
2513
2514         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
2515         * doc/tm.texi (DWARF_ZERO_REG): New.
2516
2517         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
2518         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
2519         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
2520
2521 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
2522
2523         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
2524         with a PLUS as source operand.
2525         (expand_movstr): Likewise.
2526         (expand_builtin_stpcpy): Likewise.
2527
2528 2004-09-29  Richard Henderson  <rth@redhat.com>
2529
2530         PR 17739
2531         * tree-gimple.c (is_gimple_reg): Reject hard registers.
2532         (is_gimple_asm_val): New.
2533         * tree-gimple.h (is_gimple_asm_val): Declare.
2534         * gimplify.c (gimplify_asm_expr): Use it.
2535         * tree-pretty-print.c (print_declaration): Dump hard regs.
2536         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
2537         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
2538         * tree-ssa-pre.c (is_undefined_value): Likewise.
2539         * tree-ssa-copy.c (may_propagate_copy): Likewise.
2540         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
2541         * tree-ssa.c (warn_uninit): Likewise.
2542         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
2543
2544 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
2545
2546         * c-decl.c (merge_decls): Use comptype when comparing
2547         types to decide on DECL_SIZE save of olddecl.
2548
2549 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
2550
2551         * tree.h (INDIRECT_REF_P): New macro.
2552         * alias.c (get_alias_set): Use it
2553         (nonoverlapping_memrefs_p): Ditto.
2554         * emit-rtl.c (mem_expr_equal_p): Ditto.
2555         (set_mem_attributes_minus_bitpos): Ditto.
2556         (is_gimple_addressable): Ditto.
2557         (get_base_address): Ditto.
2558         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
2559         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
2560         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
2561         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
2562         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
2563         (add_address_candidates): Ditto.
2564         (rewrite_address_base): Ditto.
2565
2566 2004-09-30  Ben Elliston  <bje@au.ibm.com>
2567
2568         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
2569         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
2570         (rewrite_ssa_into_ssa): Likewise.
2571         * tree-phinodes.c (create_phi_node): Access the number of
2572         predecessor edges using EDGE_COUNT() and not num_preds.
2573
2574 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2575
2576         PR c/7425
2577         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
2578
2579 2004-09-29  Eric Christopher  <echristo@redhat.com>
2580
2581         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
2582
2583 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
2584
2585         * config/cris/cris.md (moverside, movemside): With MEM, make sure
2586         the address is (plus reg mem).
2587
2588 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
2589
2590         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
2591
2592 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
2593
2594         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
2595         cascaded if ... else if with a switch.
2596
2597 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2598
2599         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
2600
2601 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2602
2603         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2604         and TI_VA_LIST_FPR_COUNTER_FIELD.
2605         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2606         * tree-pass.h (pass_stdarg): Add.
2607         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2608         * tree-stdarg.c: New file.
2609         * Makefile.in (OBJS-common): Add tree-stdarg.o.
2610         (tree-stdarg.o): Add dependencies.
2611         * function.h (struct function): Add va_list_gpr_size and
2612         va_list_fpr_size fields.
2613         * function.c (allocate_struct_function): Initialize them.
2614
2615         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2616         va_list_{g,f}pr_counter_field.
2617         (ix86_setup_incoming_varargs): Don't do anything if reg_save
2618         area will not be used.  Only save registers that tree-stdarg.c
2619         detected they need saving.
2620         (ix86_va_start): Don't set up fields that won't be used.
2621
2622         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2623         va_list_{g,f}pr_counter_field.
2624         (setup_incoming_varargs): Don't do anything if reg_save
2625         area will not be used.  Only save registers that tree-stdarg.c
2626         detected they need saving.
2627         (rs6000_va_start): Don't set up fields that won't be used.
2628
2629 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2630
2631         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
2632         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
2633         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
2634         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
2635         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
2636         ATTR_NONNULL_1_4): New.
2637
2638 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2639
2640         PR tree-optimization/17697
2641         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
2642         cfg if needed.
2643
2644 2004-09-28  Per Bothner  <per@bothner.com>
2645
2646         * profile.c (branch_prob): Pass correct value to output_location,
2647         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
2648
2649 2004-09-28  Richard Henderson  <rth@redhat.com>
2650
2651         PR 15089
2652         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
2653         * tree-flow.h (may_propagate_copy_into_asm): Declare.
2654         * tree-ssa-ccp.c (replace_uses_in): Use it.
2655         * tree-ssa-dom.c (cprop_operand): Likewise.
2656
2657 2004-09-28 Jeff Law  <law@redhat.com>
2658
2659         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
2660         that no outgoing edges be left in the duplicate block.  Do no
2661         update information on outgoing edges or PHI nodes in target
2662         blocks here.
2663         (remove_ctrl_stmt_and_useless_edges): Renamed from
2664         remove_last_stmt_and_useless_edges.  Handle case where the
2665         block is empty or has no control statements.  Do not update edge
2666         flags here.
2667         (thread_block): Create a template block rather than copying the
2668         original block every time.  Create outgoing edges from the
2669         duplicate blocks and update PHIs at the target of the outgoing
2670         edges here.  Fix edge flags for the original block if necessary.
2671         * cfghooks (duplicate_block): No longer assert that the original
2672         block has incoming edges.
2673
2674 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
2675
2676         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
2677         Reg Vars to enforce register allocation with general constraints.
2678         (Explicit Reg Vars): Clarify relation to asm statements.
2679         (Local Reg Vars): Similar.
2680
2681 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
2682
2683         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
2684         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
2685         build_control_flow, new_edge): Remove.
2686         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
2687         (bitlst, bitlst_table_last, bitlst_table): Remove.
2688         (bblst): Store basic_block pointer instead of block index.
2689         (bblst_table): Likewise.
2690         (edgelst): Store edge pointer instead of edge index.
2691         (edgelst_table, edgelst_last): New variables.
2692         (extract_bitlst): Rename to ...
2693         (extract_edgelst): ... this.  Return edge pointers, not indices.
2694         (split_edges): Update call.
2695         (rgn_edges): Store edge pointers instead of indices.
2696         (edge_to_bit): Remove.
2697         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
2698         (SET_EDGE_TO_BIT): New macro.
2699         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
2700         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
2701         data structures instead of haifa_edge et al.  Use edge pointers
2702         instead of edge indices everywhere.
2703         (compute_dom_prob_ps): Use standard CFG data structures.  Account
2704         for exit edges.
2705         (compute_trg_info): Likewise.
2706         (propagate_deps): Likewise.
2707         (debug_candidate): Account for bblst data structure change.
2708         (check_live_1, update_live_1, is_pfree): Likewise.
2709         (IS_REACHABLE): Use standard CFG data structures.
2710         (init_ready_list): Update bblst_table/edgelst_table allocation.
2711         (schedule_region): Update alloc/cleanup code to data structure
2712         changes.  Use edge->aux to store per-region edge index.
2713         (init_regions): No longer call build_control_flow.  Do not
2714         create edge list any more.
2715
2716 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
2717
2718         * cse.c (cse_insn): Avoid creating direct non-local jumps.
2719         * combine.c (can_combine_p): Likewise.
2720         * local-alloc. (update_equiv_regs): Likewise.
2721
2722 2004-09-28  Richard Henderson  <rth@redhat.com>
2723
2724         PR 17531
2725         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
2726         Don't check VOIDmode here.  Force PLUS operands to common type.
2727         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
2728         Pmode if given a non pointer type.
2729
2730 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2731
2732         PR 17531
2733         * optabs.c (expand_binop): Force constants to the correct mode.
2734
2735 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
2736
2737         * config/s390/s390.c (s390_adjust_cost): Remove.
2738         (TARGET_SCHED_ADJUST_COST): Do not redefine.
2739         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
2740         * config/s390/s390.md ("main_pool"): Use "larl" type
2741         attribute if TARGET_CPU_ZARCH.
2742
2743 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
2744
2745         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
2746         variable.
2747
2748 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
2749
2750         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
2751         name to the pass.
2752
2753 2004-09-28  Steven Bosscher  <stevenb@suse.de>
2754
2755         * common.opt (flag_gcse_sm): Disable by default.
2756         (flag_gcse_las): Likewise.
2757         (flag_web): Likewise.  Create from this file.
2758         * flags.h: Remove flag_web declaration.
2759         * toplev.c (flag_web): Likewise.
2760         (process_options): Never set flag_web.
2761
2762 2004-09-28  Steven Bosscher  <stevenb@suse.de>
2763
2764         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
2765         * tree-ssa-propagate.c: Include vec.h.
2766         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
2767         instead of varrays.
2768         (cfg_blocks_add): Assert the block is not already in the worklist.
2769         Update uses of interesting_ssa_edges and varying_ssa_edges.
2770         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
2771         ssa_propagate): Likewise.
2772
2773 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2774
2775         PR c/16409
2776         * c-decl.c (start_decl): Check for initializing incomplete array
2777         of VLAs.
2778         (build_compound_literal): Check for TYPE being error_mark_node.
2779         * c-parse.in (primary): Check for VLA compound literals.
2780
2781 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
2782
2783         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
2784         with --disable-checking.
2785
2786 2004-09-28  Devang Patel  <dpatel@apple.com>
2787
2788         * tree-pretty-print.c (dump_generic_node): Print vector types.
2789
2790 2004-09-28  Nick Clifton  <nickc@redhat.com>
2791
2792         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
2793         invocation of the function sh_init_cumulative_args.
2794         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
2795         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
2796         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
2797         * config/sh/sh.c (sh_init_cumulative_args): New function based
2798         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
2799         heuristic added to determine the setting of force_mem when a
2800         library function is being called.
2801
2802 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
2803
2804         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
2805         Skip constant arguments.
2806
2807 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
2808
2809         * tree-ssa-alias.c (create_name_tags): If PTR points to a
2810         volatile type, mark the tag volatile.
2811         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
2812         volatile.
2813
2814 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
2815
2816         * tree.def (vec_cond_expr): Fix. Change 'e'
2817         to tcc_expression.
2818
2819 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
2820
2821         * basic-block.h: Fix a comment typo.
2822
2823 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
2824
2825         * optabs.c, optabs.h: Fix comment typos.
2826
2827 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
2828
2829         * config/sparc/sparc.md (call_address_struct_value_sp32):
2830         Properly mask the immediate field of the 'unimp' instruction.
2831         (call_symbolic_struct_value_sp32): Likewise.
2832
2833 2004-09-28  Ben Elliston  <bje@au.ibm.com>
2834             Steven Bosscher  <stevenb@suse.de>
2835             Andrew Pinski  <pinskia@physics.uc.edu>
2836
2837         Merge from edge-vector-branch:
2838         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
2839         (struct edge_def): Remove pred_next, succ_next members.
2840         (struct basic_block_def): Remove pred, succ members.  Add preds
2841         and succs members of type VEC(edge).
2842         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
2843         (BRANCH_EDGE): Likewise.
2844         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
2845         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
2846         (edge_iterator): New.
2847         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
2848         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
2849         (FOR_EACH_EDGE): New.
2850         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
2851         where applicable.
2852         (rotate_loop): Likewise.
2853         (find_traces_1_route): Likewise.
2854         (bb_to_key): Likewise.
2855         (connect_traces): Likewise.
2856         (copy_bb_p): Likewise.
2857         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
2858         (add_labels_and_missing_jumps): Likewise.
2859         (fix_up_fall_thru_edges): Likewise.
2860         (find_jump_block): Likewise.
2861         (fix_crossing_conditional_branches): Likewise.
2862         (fix_crossing_unconditional_branches): Likewise.
2863         (add_reg_crossing_jump_notes): Likewise.
2864         * bt-load.c (augment_live_range): Likewise.
2865         * cfg.c (clear_edges): Likewise.
2866         (unchecked_make_edge): Likewise.
2867         (cached_make_edge): Likewise.
2868         (make_single_succ_edge): Likewise.
2869         (remove_edge): Likewise.
2870         (redirect_edge_succ_nodup): Likewise.
2871         (check_bb_profile): Likewise.
2872         (dump_flow_info): Likewise.
2873         (alloc_aux_for_edges): Likewise.
2874         (clear_aux_for_edges): Likewise.
2875         (dump_cfg_bb_info): Likewise.
2876         * cfganal.c (forwarder_block_p): Likewise.
2877         (can_fallthru): Likewise.
2878         (could_fall_through): Likewise.
2879         (mark_dfs_back_edges): Likewise.
2880         (set_edge_can_fallthru_flag): Likewise.
2881         (find_unreachable_blocks): Likewise.
2882         (create_edge_list): Likewise.
2883         (verify_edge_list): Likewise.
2884         (add_noreturn_fake_exit_edges): Likewise.
2885         (connect_infinite_loops_to_exit): Likewise.
2886         (flow_reverse_top_sort_order_compute): Likewise.
2887         (flow_depth_first_order_compute): Likewise.
2888         (flow_preorder_transversal_compute): Likewise.
2889         (flow_dfs_compute_reverse_execute): Likewise.
2890         (dfs_enumerate_from): Likewise.
2891         (compute_dominance_frontiers_1): Likewise.
2892         * cfgbuild.c (make_edges): Likewise.
2893         (compute_outgoing_frequencies): Likewise.
2894         (find_many_sub_basic_blocks): Likewise.
2895         (find_sub_basic_blocks): Likewise.
2896         * cfgcleanup.c (try_simplify_condjump): Likewise.
2897         (thread_jump): Likewise.
2898         (try_forward_edges): Likewise.
2899         (merge_blocks_move): Likewise.
2900         (outgoing_edges_match): Likewise.
2901         (try_crossjump_to_edge): Likewise.
2902         (try_crossjump_bb): Likewise.
2903         (try_optimize_cfg): Likewise.
2904         (merge_seq_blocks): Likewise.
2905         * cfgexpand.c (expand_gimple_tailcall): Likewise.
2906         (expand_gimple_basic_block): Likewise.
2907         (construct_init_block): Likewise.
2908         (construct_exit_block): Likewise.
2909         * cfghooks.c (verify_flow_info): Likewise.
2910         (dump_bb): Likewise.
2911         (delete_basic_block): Likewise.
2912         (split_edge): Likewise.
2913         (merge_blocks): Likewise.
2914         (make_forwarder_block): Likewise.
2915         (tidy_fallthru_edges): Likewise.
2916         (can_duplicate_block_p): Likewise.
2917         (duplicate_block): Likewise.
2918         * cfglayout.c (fixup_reorder_chain): Likewise.
2919         (fixup_fallthru_exit_predecessor): Likewise.
2920         (can_copy_bbs_p): Likewise.
2921         (copy_bbs): Likewise.
2922         * cfgloop.c (flow_loops_cfg_dump): Likewise.
2923         (flow_loop_entry_edges_find): Likewise.
2924         (flow_loop_exit_edges_find): Likewise.
2925         (flow_loop_nodes_find): Likewise.
2926         (mark_single_exit_loops): Likewise.
2927         (flow_loop_pre_header_scan): Likewise.
2928         (flow_loop_pre_header_find): Likewise.
2929         (update_latch_info): Likewise.
2930         (canonicalize_loop_headers): Likewise.
2931         (flow_loops_find): Likewise.
2932         (get_loop_body_in_bfs_order): Likewise.
2933         (get_loop_exit_edges): Likewise.
2934         (num_loop_branches): Likewise.
2935         (verify_loop_structure): Likewise.
2936         (loop_latch_edge): Likewise.
2937         (loop_preheader_edge): Likewise.
2938         * cfgloopanal.c (mark_irreducible_loops): Likewise.
2939         (expected_loop_iterations): Likewise.
2940         * cfgloopmanip.c (remove_bbs): Likewise.
2941         (fix_bb_placement): Likewise.
2942         (fix_irreducible_loops): Likewise.
2943         (remove_path): Likewise.
2944         (scale_bbs_frequencies): Likewise.
2945         (loopify): Likewise.
2946         (unloop): Likewise.
2947         (fix_loop_placement): Likewise.
2948         (loop_delete_branch_edge): Likewise.
2949         (duplicate_loop_to_header_edge): Likewise.
2950         (mfb_keep_just): Likewise.
2951         (create_preheader): Likewise.
2952         (force_single_succ_latches): Likewise.
2953         (loop_split_edge_with): Likewise.
2954         (create_loop_notes): Likewise.
2955         * cfgrtl.c (rtl_split_block): Likewise.
2956         (rtl_merge_blocks): Likewise.
2957         (rtl_can_merge_blocks): Likewise.
2958         (try_redirect_by_replacing_jump): Likewise.
2959         (force_nonfallthru_and_redirect): Likewise.
2960         (rtl_tidy_fallthru_edge): Likewise.
2961         (commit_one_edge_insertion): Likewise.
2962         (commit_edge_insertions): Likewise.
2963         (commit_edge_insertions_watch_calls): Likewise.
2964         (rtl_verify_flow_info_1): Likewise.
2965         (rtl_verify_flow_info): Likewise.
2966         (purge_dead_edges): Likewise.
2967         (cfg_layout_redirect_edge_and_branch): Likewise.
2968         (cfg_layout_can_merge_blocks_p): Likewise.
2969         (rtl_flow_call_edges_add): Likewise.
2970         * cse.c (cse_cc_succs): Likewise.
2971         * df.c (hybrid_search): Likewise.
2972         * dominance.c (calc_dfs_tree_nonrec): Likewise.
2973         (calc_dfs_tree): Likewise.
2974         (calc_idoms): Likewise.
2975         (recount_dominator): Likewise.
2976         * domwalk.c (walk_dominator_tree): Likewise.
2977         * except.c (emit_to_new_bb_before): Likewise.
2978         (connect_post_landing_pads): Likewise.
2979         (sjlj_emit_function_enter): Likewise.
2980         (sjlj_emit_function_exit): Likewise.
2981         (finish_eh_generation): Likewise.
2982         * final.c (compute_alignments): Likewise.
2983         * flow.c (calculate_global_regs_live): Likewise.
2984         (initialize_uninitialized_subregs): Likewise.
2985         (init_propagate_block_info): Likewise.
2986         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2987         * gcse.c (find_implicit_sets): Likewise.
2988         (bypass_block): Likewise.
2989         (bypass_conditional_jumps): Likewise.
2990         (compute_pre_data): Likewise.
2991         (insert_insn_end_bb): Likewise.
2992         (insert_store): Likewise.
2993         (remove_reachable_equiv_notes): Likewise.
2994         * global.c (global_conflicts): Likewise.
2995         (calculate_reg_pav): Likewise.
2996         * graph.c (print_rtl_graph_with_bb): Likewise.
2997         * ifcvt.c (mark_loop_exit_edges): Likewise.
2998         (merge_if_block): Likewise.
2999         (find_if_header): Likewise.
3000         (block_jumps_and_fallthru_p): Likewise.
3001         (find_if_block): Likewise.
3002         (find_cond_trap): Likewise.
3003         (block_has_only_trap): Likewise.
3004         (find_if_case1): Likewise.
3005         (find_if_case_2): Likewise.
3006         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
3007         (perfect_nestify): Likewise.
3008         * lcm.c (compute_antinout_edge): Likewise.
3009         (compute_laterin): Likewise.
3010         (compute_available): Likewise.
3011         (compute_nearerout): Likewise.
3012         * loop-doloop.c (doloop_modify): Likewise.
3013         * loop-init.c (loop_optimizer_init): Likewise.
3014         * loop-invariant.c (find_exits): Likewise.
3015         * loop-iv.c (simplify_using_initial_values): Likewise.
3016         (check_simple_exit): Likewise.
3017         (find_simple_exit): Likewise.
3018         * loop-unroll.c (peel_loop_completely): Likewise.
3019         (unroll_loop_constant_iterations): Likewise.
3020         (unroll_loop_runtime_iterations): Likewise.
3021         * loop-unswitch.c (may_unswitch_on): Likewise.
3022         (unswitch_loop): Likewise.
3023         * modulo-sched.c (generate_prolog_epilog): Likewise.
3024         (sms_schedule): Likewise.
3025         * postreload-gcse.c (eliminate_partially_redundant_load):
3026         Likewise.
3027         * predict.c (can_predict_insn_p): Likewise.
3028         (set_even_probabilities): Likewise.
3029         (combine_predictions_for_bb): Likewise.
3030         (predict_loops): Likewise.
3031         (estimate_probability): Likewise.
3032         (tree_predict_by_opcode): Likewise.
3033         (tree_estimate_probability): Likewise.
3034         (last_basic_block_p): Likewise.
3035         (propagate_freq): Likewise.
3036         (estimate_loops_at_level): Likewise.
3037         (estimate_bb_frequencies): Likewise.
3038         * profile.c (instrument_edges): Likewise.
3039         (get_exec_counts): Likewise.
3040         (compute_branch_probabilities): Likewise.
3041         (branch_prob): Likewise.
3042         * ra-build.c (live_in): Likewise.
3043         * ra-rewrite.c (rewrite_program2): Likewise.
3044         * ra.c (reg_alloc): Likewise.
3045         * reg-stack.c (reg_to_stack): Likewise.
3046         (convert_regs_entry): Likewise.
3047         (compensate_edge): Likewise.
3048         (convert_regs_1): Likewise,
3049         (convert_regs_2): Likewise.
3050         (convert_regs): Likewise.
3051         * regrename.c (copyprop_hardreg_forward): Likewise.
3052         * reload1.c (fixup_abnormal_edges): Likewise.
3053         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
3054         (sbitmap_insersection_of_preds): Likewise.
3055         (sbitmap_union_of_succs): Likewise.
3056         (sbitmap_union_of_preds): Likewise.
3057         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
3058         (fix_basic_block_boundaries): Likewise.
3059         (sched_ebbs): Likewise.
3060         * sched-rgn.c (build_control_flow): Likewise.
3061         (find_rgns): Likewise.
3062         * tracer.c (find_best_successor): Likewise.
3063         (find_best_predecessor): Likewise.
3064         (tail_duplicate): Likewise.
3065         * tree-cfg.c (make_edges): Likewise.
3066         (make_ctrl_stmt_edges): Likewise.
3067         (make_goto_expr_edges): Likewise.
3068         (tree_can_merge_blocks_p): Likewise.
3069         (tree_merge_blocks): Likewise.
3070         (cfg_remove_useless_stmts_bb): Likewise.
3071         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3072         (tree_block_forwards_to): Likewise.
3073         (cleanup_control_expr_graph): Likewise.
3074         (find_taken_edge): Likewise.
3075         (dump_cfg_stats): Likewise.
3076         (tree_cfg2vcg): Likewise.
3077         (disband_implicit_edges): Likewise.
3078         (tree_find_edge_insert_loc): Likewise.
3079         (bsi_commit_edge_inserts): Likewise.
3080         (tree_split_edge): Likewise.
3081         (tree_verify_flow_info): Likewise.
3082         (tree_make_forwarder_block): Likewise.
3083         (tree_forwarder_block_p): Likewise.
3084         (thread_jumps): Likewise.
3085         (tree_try_redirect_by_replacing_jump): Likewise.
3086         (tree_split_block): Likewise.
3087         (add_phi_args_after_copy_bb): Likewise.
3088         (rewrite_to_new_ssa_names_bb): Likewise.
3089         (dump_function_to_file): Likewise.
3090         (print_pred_bbs): Likewise.
3091         (print_loop): Likewise.
3092         (tree_flow_call_edges_add): Likewise.
3093         (split_critical_edges): Likewise.
3094         (execute_warn_function_return): Likewise.
3095         (extract_true_false_edges_from_block): Likewise.
3096         * tree-if-conv.c (tree_if_conversion): Likewise.
3097         (if_convertable_bb_p): Likewise.
3098         (find_phi_replacement_condition): Likewise.
3099         (combine_blocks): Likewise.
3100         * tree-into-ssa.c (compute_global_livein): Likewise.
3101         (ssa_mark_phi_uses): Likewise.
3102         (ssa_rewrite_initialize_block): Likewise.
3103         (rewrite_add_phi_arguments): Likewise.
3104         (ssa_rewrite_phi_arguments): Likewise.
3105         (insert_phi_nodes_for): Likewise.
3106         (rewrite_into_ssa): Likewise.
3107         (rewrite_ssa_into_ssa): Likewise.
3108         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
3109         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
3110         (rewrite_trees): Likewise.
3111         * tree-pretty-print.c (dump_bb_header): Likewise.
3112         (dump_implicit_edges): Likewise.
3113         * tree-sra.c (insert_edge_copies): Likewise.
3114         (find_obviously_necessary_stmts): Likewise.
3115         (remove_data_stmt): Likewise.
3116         * tree-ssa-dom.c (thread_across_edge): Likewise.
3117         (dom_opt_finalize_block): Likewise.
3118         (single_incoming_edge_ignoring_loop_edges): Likewise.
3119         (record_equivalences_from_incoming_edges): Likewise.
3120         (cprop_into_successor_phis): Likewise.
3121         * tree-ssa-live.c (live_worklist): Likewise.
3122         (calculate_live_on_entry): Likewise.
3123         (calculate_live_on_exit): Likewise.
3124         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
3125         (copy_loop_headers): Likewise.
3126         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
3127         (fill_always_executed_in): Likewise.
3128         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
3129         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
3130         (compute_phi_arg_on_exit): Likewise.
3131         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
3132         (get_loops_exit): Likewise.
3133         (split_loop_exit_edge): Likewise.
3134         (ip_normal_pos): Likewise.
3135         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
3136         Likewise.
3137         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
3138         (replace_phi_with_stmt): Likewise.
3139         (value_replacement): Likewise.
3140         * tree-ssa-pre.c (compute_antic_aux): Likewise.
3141         (insert_aux): Likewise.
3142         (init_pre): Likewise.
3143         * tree-ssa-propagate.c (simulate_stmt): Likewise.
3144         (simulate_block): Likewise.
3145         (ssa_prop_init): Likewise.
3146         * tree-ssa-threadupdate.c (thread_block): Likewise.
3147         (create_block_for_threading): Likewise.
3148         (remove_last_stmt_and_useless_edges): Likewise.
3149         * tree-ssa.c (verify_phi_args): Likewise.
3150         (verify_ssa): Likewise.
3151         * tree_tailcall.c (independent_of_stmt_p): Likewise.
3152         (find_tail_calls): Likewise.
3153         (eliminate_tail_call): Likewise.
3154         (tree_optimize_tail_calls_1): Likewise.
3155         * tree-vectorizer.c (vect_transform_loop): Likewise.
3156         * var-tracking.c (prologue_stack_adjust): Likewise.
3157         (vt_stack_adjustments): Likewise.
3158         (vt_find_locations): Likewise.
3159         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
3160         * config/i386/i386.c (ix86_pad_returns): Likewise.
3161         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3162         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3163
3164 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
3165
3166         PR target/16532
3167         * config/sparc/sparc.c (struct machine_function): New field
3168         'leaf_function_p' and 'prologue_data_valid_p'.
3169         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
3170         to conveniently access the above fields.
3171         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
3172         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
3173         of the generic flavor 'current_function_uses_only_leaf_regs'.
3174         (eligible_for_sibcall_delay): Likewise.
3175         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
3176         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
3177         (sparc_asm_function_prologue): Add sanity check for the assumption
3178         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
3179         (sparc_can_use_return_insn_p): New function.
3180         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
3181         (output_restore): Likewise.
3182         (output_sibcall): Likewise.
3183         (sparc_output_mi_thunk): Likewise.
3184         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
3185         * config/sparc/sparc.md (return): New expander.
3186
3187         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
3188
3189 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
3190
3191         PR c++/17642
3192         * stor-layout.c (layout_decl): Use fold_convert, not convert.
3193         (bit_from_pos): Likewise.
3194         (byte_from_pos): Likewise.
3195         (pos_from_bit): Likewise.
3196         (normalize_offset): Likewise.
3197         (place_field): Likewise.
3198         (finalize_type_size): Likewise.
3199         (layout_type): Likewise.
3200         * tree.c (build_index_type): Likewise.
3201
3202 2004-09-27  Devang Patel  <dpatel@apple.com>
3203
3204         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
3205         * genopinit.c (optabs): New entry for vcond_gen_code and
3206         vcondu_gen_code.
3207         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
3208         (get_rtx_code): New function.
3209         (vector_compare_rtx): New function.
3210         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
3211         (expand_vec_cond_expr_p): New function.
3212         (expand_vec_cond_expr): New function.
3213         (get_vcond_icode): New function.
3214         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
3215         (vcond_gen_code, vcondu_gen_code): Same.
3216
3217 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
3218
3219         * Makefile.in (STAGESTUFF): Split into ...
3220         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
3221         (mostlyclean): Update.
3222         (stage1-start, stage2-start, stage3-start, stage4-start,
3223         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
3224         Move the STAGEMOVESTUFF.
3225
3226 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
3227
3228         * system.h (getpagesize): Return 'int' instead of 'long'.
3229
3230 2004-09-27  Michael Matz <matz@suse.de>
3231
3232         PR bootstrap/17698
3233         PR bootstrap/17702
3234         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
3235         bmp_iter_and_init): Shift by bit_in_word.
3236
3237 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
3238
3239         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
3240         * configure.ac: Don't sinclude it here.
3241         * configure: Regenerate.
3242
3243 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
3244
3245         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
3246         Handle AND pattern
3247
3248 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
3249
3250         PR c/13804
3251         * c-typeck.c (build_component_ref): Name type involved in
3252         diagnostic for structure or union without a member of the given
3253         name.
3254
3255 2004-09-27  DJ Delorie  <dj@redhat.com>
3256
3257         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
3258         .comm alignment is bytes, not bits.
3259
3260 2004-09-27  Devang Patel  <dpatel@apple.com>
3261
3262         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
3263         (print_call_name): Do not print VEC_COND_EXPR.
3264
3265 2004-09-27  Devang Patel  <dpatel@apple.com>
3266
3267         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
3268
3269 2004-09-27  Jan Hubicka  <jh@suse.cz>
3270
3271         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
3272
3273 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
3274
3275         * bitmap.h: Fix a comment typo.
3276
3277 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
3278
3279         * libgcc2.c (getpagesize): Change type of return value to int.
3280
3281 2004-09-26  Matt Austern  <austern@apple.com>
3282
3283         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
3284         using mmap.
3285
3286 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3287
3288         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
3289         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
3290         (bitmap_iterator): New type.
3291         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
3292         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
3293         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
3294         bmp_iter_and_init, bmp_iter_and_next): New functions.
3295         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
3296         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
3297         use iterator-style EXECUTE_IF_IN_BITMAP macros.
3298         * bitmap.c (bitmap_print): Ditto.
3299         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
3300         btr_def_live_range): Ditto.
3301         * cfganal.c (compute_dominance_frontiers_1) Ditto.
3302         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
3303         Ditto.
3304         * ddg.c (build_inter_loop_deps): Ditto.
3305         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
3306         Ditto.
3307         * except.c (remove_eh_handler): Ditto.
3308         * flow.c (reg_set_to_hard_reg_set): Ditto.
3309         * gcse.c (clear_modify_mem_tables): Ditto.
3310         * global.c (build_insn_chain): Ditto.
3311         * ifcvt.c (dead_or_predicable): Ditto.
3312         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
3313         Ditto.
3314         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
3315         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
3316         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
3317         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
3318         tree_purge_all_dead_eh_edges): Ditto.
3319         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
3320         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
3321         rewrite_ssa_into_ssa): Ditto.
3322         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
3323         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
3324         Ditto.
3325         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
3326         compute_flow_sensitive_aliasing, maybe_create_global_var,
3327         dump_points_to_info_for): Ditto.
3328         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
3329         * tree-ssa-dse.c (dse_finalize_block): Ditto.
3330         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
3331         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
3332         Ditto.
3333         * tree-ssa-loop-ivopts.c (find_induction_variables,
3334         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
3335         determine_use_iv_costs, determine_set_costs, find_best_candidate,
3336         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
3337         Ditto.
3338         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
3339         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
3340         add_call_read_ops): Ditto.
3341         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
3342
3343 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3344
3345         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
3346         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
3347
3348 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
3349
3350         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
3351         reflect size of memory regions being compared.
3352
3353 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
3354
3355         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
3356         expressions.  Always clear MEM_SIZE and alias set.
3357
3358 2004-09-26  Roger Sayle  <roger@eyesopen.com>
3359             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3360
3361         PR middle-end/17112
3362         * stor-layout.c (compute_record_mode): For records with a single
3363         field, only use the field's mode if its size matches what we'd
3364         have choosen for the record ourselves.  This forces the use of
3365         BLKmode for packed records that don't completely fill a mode.
3366
3367 2004-09-26  Roger Sayle  <roger@eyesopen.com>
3368
3369         PR middle-end/17151
3370         * combine.c (force_to_mode): Remove dubious early return test that
3371         inhibits further optimization.
3372
3373 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
3374
3375         * profile.c: Fix a comment typo.
3376
3377 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3378
3379         PR bootstrap/17591
3380         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
3381         with varying offset.
3382         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
3383         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
3384         ARRAY_REFS.
3385         (expr_invariant_in_loop_p): New function.
3386         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
3387         component_ref_field_offset for COMPONENT_REFs.  Do not allow
3388         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
3389         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
3390         MISALIGNED_INDIRECT_REFs.
3391         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
3392         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
3393         MISALIGNED_INDIRECT_REFs.
3394
3395 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
3396
3397         PR c/11459
3398         * gcc.c (cpp_options, cc1_options): Preserve relative order of
3399         -std and -ansi options.
3400
3401 2004-09-26  Jan Hubicka  <jh@suse.cz>
3402
3403         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
3404         for nested functions whose proper parent has not been output.
3405
3406         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
3407         when re-constructing profile previously invalidated by loop.
3408
3409 2004-09-25  Dale Johannesen  <dalej@apple.com>
3410
3411         * tree-gimple.c:  Move GIMPLE definition...
3412         * doc/tree-ssa.texi:  here.
3413
3414 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3415
3416         * tree-vectorizer.c: Fix a comment typo.
3417
3418 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3419
3420         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
3421         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
3422         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
3423         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
3424
3425 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3426
3427         * tree-ssa-loop-unswitch.c: Fix a comment typo.
3428
3429 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3430
3431         * doc/passes.texi: Fix a typo.
3432
3433 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3434
3435         * tree-optimize.c (init_tree_optimization_passes): Add
3436         pass_record_bounds.
3437         * tree-pass.h (pass_record_bounds): Declare.
3438         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
3439         New pass.
3440
3441 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3442
3443         PR tree-optimization/17474
3444         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
3445         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
3446
3447 2004-09-25  Jan Hubicka  <jh@suse.cz>
3448
3449         * predict.c (counts_to_freqs): Make global.
3450         * predict.h (counts_to_freqa): Declare.
3451         * profile.c (compute_branch_probabilities): Compute frequencies
3452         * tree-profile.c (do_tree_profiling): Refine conditional on when
3453         tree profiling pass is needed.
3454
3455         * passes.c (rest_of_handle_cfg): Disable const/pure function
3456         detection when doing tree based profiling.
3457
3458         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
3459         conditional.
3460
3461 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
3462
3463         * config/mips/mips.h (struct mips_args): Clarify comments.
3464         * config/mips/mips.c (struct mips_arg_info): Likewise.
3465         (mips_arg_info): Don't allow fpr_p to affect the register or
3466         stack alignment.  Remove o64 silliness.
3467         (function_arg): Deal with the o32 float,float case specially.
3468
3469 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
3470
3471         * config/mips/mips.md (loadx, storex): Define for V2SF.
3472
3473 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
3474
3475         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
3476         * config/s390/s390.c (s390_back_chain_rtx): New function.
3477         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
3478         Call anti_adjust_stack.
3479         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
3480         only if compiling with back chain.
3481         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
3482         back chain only if back chain enabled.  Use s390_back_chain_rtx.
3483
3484 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
3485
3486         * doc/trouble.texi: Remove obsolete information.  Update
3487         information on how to regenerate fixincluded headers.
3488
3489 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
3490
3491         PR c/12951
3492         * doc/invoke.texi: Document that
3493         -Wno-error-implicit-function-declaration is not accepted.
3494
3495 2004-09-24  Richard Henderson  <rth@redhat.com>
3496
3497         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
3498         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
3499         on TARGET_MAX.
3500         (alpha_expand_mov): Allow unaligned vectors.
3501         (alpha_expand_unaligned_store): Use CONST0_RTX.
3502         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
3503
3504 2004-09-24 Jeff Law  <law@redhat.com>
3505
3506         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
3507         aliasing rules.
3508         (simplify_cond_and_lookup_avail_expr): Likewise.
3509
3510 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3511
3512         PR c/12802
3513         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
3514         title.  Document interaction with -fms-extensions.
3515         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
3516         section.
3517
3518 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3519
3520         PR c/12713
3521         * doc/extend.texi: Document interaction of attribute noreturn and
3522         longjmp.
3523
3524 2004-09-24  Richard Henderson  <rth@redhat.com>
3525
3526         PR rtl-opt/17503
3527         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
3528         (som_hash, som_eq): New.
3529         (init_subregs_of_mode, record_subregs_of_mode): New.
3530         (cannot_change_mode_set_regs): Rewrite for htab implementation.
3531         (invalid_mode_change_p): Likewise.
3532         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
3533         * flow.c (mark_used_regs): Likewise.
3534         (life_analysis): Use init_subregs_of_mode.
3535         * regs.h (subregs_of_mode): Remove.
3536         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
3537
3538 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
3539
3540         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
3541         type with the copy of the conditional.
3542
3543 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
3544
3545         PR tree-opt/16954
3546         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
3547         Prevent renaming if the aliasing sets of the type which the
3548         pointer points to are different.
3549
3550 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3551
3552         PR c/17188
3553         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
3554         declarations of enumerators.
3555         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
3556         for redefinition.  Check for nested redefinition.
3557         (finish_struct): Don't check for nested redefinition.
3558         (start_enum): Check for nested redefinition.
3559
3560 2004-09-24  Devang Patel  <dpatel@apple.com>
3561
3562         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
3563         only when necesssary.
3564         (combine_blocks): Combine loop header and exit block.
3565
3566 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
3567
3568         * hooks.c (hook_tree_tree_bool_null): New.
3569         * hooks.h (hook_tree_tree_bool_null): Declare it.
3570         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
3571         * targhooks.c (default_fold_builtin): Remove.
3572         * targhooks.h (default_fold_builtin): Remove.
3573
3574 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3575
3576         PR rtl-optimization/17625
3577         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
3578
3579 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
3580
3581         PR tree-opt/17624
3582         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
3583         Reject if any of the operands occur in an abnormal PHI.
3584
3585 2004-09-24  Andreas Schwab  <schwab@suse.de>
3586
3587         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
3588         rules.
3589
3590 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3591
3592         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
3593         if the GNU assembler is used.
3594         (sparc-*-solaris2*): Likewise.
3595         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
3596         (dbxout_function_end): Protect N_ENSYM with it.
3597         (dbxout_begin_prologue): Protect N_BNSYM with it.
3598         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
3599         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
3600         * config/sparc/sol2-gas.h: New file.
3601
3602 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
3603
3604         PR bootstrap/17369
3605         * Makefile.in (@set_gcc_lib_path@): Added.
3606
3607         * configure.ac: Include ../config/gcc-lib-path.m4. Use
3608         TL_AC_GNU_MAKE_GCC_LIB_PATH.
3609         * configure: Regenerated.
3610
3611 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3612
3613         PR c/6980
3614         * c-typeck.c (build_c_cast): Improve wording of
3615         -Wbad-function-cast diagnostic.
3616
3617 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
3618
3619         PR target/17626
3620         * config/cris/cris.md (moverside, movemside): Rename variable
3621         "reg" to "otherop".  To generate canonical RTX, check that otherop
3622         isn't constant instead of checking that operand 1 is a register.
3623
3624 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
3625
3626         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
3627
3628 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
3629             Jakub Jelinek  <jakub@redhat.com>
3630
3631         * tree-flow.h (find_new_referenced_vars): Add prototype.
3632         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
3633         Move to...
3634         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
3635         ... here.
3636         (mark_new_vars_to_rename): Walk through all operands.
3637         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
3638         (execute_fold_all_builtins): Use it.
3639         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
3640
3641 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
3642
3643         * gthr-tpf.h: New file.
3644         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
3645         * gthr.h: Use gthr-tpf.h on TPF OS.
3646
3647 2004-09-23 Jeff Law  <law@redhat.com>
3648
3649         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
3650         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
3651         (substitute_and_fold):  Likewise.
3652         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
3653         except invariants from SSA_NAME_VALUE.
3654         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
3655         and SET_SSA_NAME_EQUIV.
3656         (restore_vars_to_original_value, record_const_or_copy): Likewise.
3657         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
3658         (record_equality, cprop_into_successor_phis): Likewise.
3659         (record_equivalences_from_stmt, cprop_operand): Likewise.
3660         (lookup_avail_expr): Likewise.
3661         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
3662         from SSA_NAME_VALUE.
3663         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
3664         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
3665         annotation from the VALUE_HANDLE field.
3666
3667 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
3668
3669         PR c++/13989
3670         PR c++/9844
3671         * tree.c (reconstruct_complex_type): Remove extra "this".
3672         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
3673         Add V4SFmode to case statement.
3674
3675 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3676
3677         PR c/16833
3678         * doc/extend.texi, doc/invoke.texi: Document interaction of
3679         -fno-builtin with format checks.  Note that built-in functions
3680         have effects beyond generating code that avoids calls to those
3681         functions.
3682
3683 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
3684
3685         PR tree-optimization/17533
3686         * dominance.c (verify_dominators): Tolerate even more incorrect
3687         dominance data during error message printing.
3688         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
3689         and edges more correctly.
3690
3691 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
3692
3693         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
3694         New tree-codes.
3695         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
3696         MISALIGNED_INDIRECT_REF.
3697         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
3698         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
3699         Likewise.
3700         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
3701         (find_interesting_uses_address): Likewise.
3702         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
3703         (build_fold_addr_expr_with_type): Likewise.
3704         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
3705         * print-rtl.c (print_mem_expr): Likewise.
3706         * tree-dump.c (dequeue_and_dump): Likewise.
3707         * tree-eh.c (tree_could_trap_p): Likewise.
3708         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
3709         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
3710         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
3711         Likewise.
3712         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3713         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
3714         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
3715         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
3716         (add_address_candidates, rewrite_address_base): Likewise.
3717         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
3718         Likewise.
3719         * tree.c (staticp, build1_stat): Likewise.
3720
3721         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
3722         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
3723         * tree-ssa-operands.c (get_expr_operands): Likewise.
3724         * expr.c (expand_expr_real_1): Likewise.
3725
3726         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
3727         optabs.
3728         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
3729         for the new optabs.
3730         (expand_ternary_op): New function.
3731         * genopinit.c (optabs): Handle the new optabs.
3732         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
3733         (init_optabs): Initialize vec_realign_load_optab.
3734         (expand_ternary_op): New functions.
3735
3736         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
3737         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
3738         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
3739         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
3740         * target.h (struct vectorize): New member for struct gcc_target.
3741         (misaligned_mem_ok): New member for targetm.vectorize.
3742         (builtin_mask_for_load): Likewise.
3743         (builtin_mask_for_store): Likewise.
3744         * targethooks.c (default_vect_misaligned_mem_ok): New function.
3745         * targethooks.h (default_vect_misaligned_mem_ok): New function.
3746
3747         * config/rs6000/altivec.md (build_vector_mask_for_load): New
3748         define_expand.
3749         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
3750         (vec_realign_load_v16qi): New define_insn.
3751         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
3752         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
3753         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
3754         (altivec_builtin_mask_for_store): New variables.
3755         (rs6000_builtin_mask_for_load): New function. Implements
3756         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
3757         (rs6000_builtin_mask_for_store): New function. Implements
3758         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
3759         (rs6000_expand_builtin): Expand the target builtins
3760         builtin_mask_for_load and builtin_mask_for_store.
3761         (altivec_init_builtins): Initialize the new target builtins.
3762         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
3763         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
3764
3765         * tree-vectorizer.c (vect_create_data_ref): Renamed to
3766         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
3767         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
3768         (vectorizable_store): Call vect_create_data_ref_ptr with additional
3769         arguments, and create an indirect_ref with its return value data_ref.
3770         Check aligned_access_p.
3771         (vectorizable_load): Handle misaligned loads, using software-pipelined
3772         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
3773         vec_realign_load_optab is supported, or using a scheme without
3774         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
3775         misaligned_mem_ok is supported.
3776
3777         (vect_finish_stmt_generation): Typo.
3778         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
3779         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
3780         presence of misaligned loads.
3781         (vect_analyze_data_ref_access): Add check for constant init.
3782         (vect_get_symbl_and_dr): Remove duplicate line.
3783         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
3784
3785 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
3786
3787         * builtins.c: Fix a comment typo.
3788
3789 2004-09-23  Jan Hubicka  <jh@suse.cz>
3790
3791         * profile.c (branch_prob): Do not verify flow info in the middle of the
3792         pass.
3793
3794 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3795
3796         * cfgloop.h (update_single_exits_after_duplication): Declare.
3797         (loopify, split_loop_bb): Declaration changed.
3798         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
3799         of rtx.
3800         (loopify): Added redirect_all_edges argument.
3801         (update_single_exits_after_duplication): Export.
3802         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
3803         * tree-flow.h (tree_duplicate_loop_to_header_edge,
3804         tree_ssa_loop_version): Declare.
3805         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
3806         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
3807         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
3808         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
3809
3810         * tree-ssa-loop-unswitch.c: New file.
3811         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
3812         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
3813         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
3814         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
3815         * tree-pass.h (pass_unswitch): Declare.
3816         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
3817         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
3818         * doc/passes.texi: Documen tree level loop unswitching.
3819
3820 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
3821
3822         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
3823
3824 2004-09-22  Eric Christopher  <echristo@redhat.com>
3825
3826         * builtins.c (simplify_builtin_va_start): Remove.
3827         (simplify_builtin): Ditto.
3828         (fold_builtin_strchr): Ditto.
3829         (simplify_builtin_*): Rename remainders to fold_builtin_*.
3830         (expand_builtin): Fix up for above changes.
3831         (fold_builtin_1): Add new folders. Change for above.
3832         (expand_builtin_va_start): Call fold_builtin_next_arg.
3833         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
3834         * tree.h: Remove prototype for simplify_builtin.
3835
3836 2004-09-23  Jan Hubicka  <jh@suse.cz>
3837
3838         PR debug/17389
3839         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
3840         of fully inlined functions.
3841         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
3842         inlined.
3843
3844         * cfgexpand.c (add_reg_br_prob_note): New function.
3845         (expand_gimple_cond_expr): Use it.
3846         (tree_expand_cfg): No longer kill the profile.
3847         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
3848         only if it is present.
3849         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
3850         * predict.c (combine_predictions_for_insn): Set the probabilities
3851         based on REG_BR_PROB note if present.
3852         * predict.c (branch_prob): Profile is read only with
3853         flag_branch_probabilities.
3854
3855 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
3856
3857         * aclocal.m4: Add in gettext's m4 includes.
3858         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
3859         * configure.ac: Add in check for iconv.h
3860         * configure: Regenerate.
3861
3862 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
3863
3864         * aclocal.m4: Update for rename of gettext-sister.m4.
3865
3866 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
3867
3868         Fix PR tree-optimization/17587
3869         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
3870         (insert_aux): Instead of here.
3871
3872 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
3873
3874         PR tree-optimization/16721
3875         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
3876         * tree-ssa-alias.c (create_memory_tag): Move setting of
3877         TREE_THIS_VOLATILE ...
3878         (get_tmt_for): ... here.
3879
3880 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3881
3882         * config/sparc/sparc.md (cmove splitter): Fix formatting.
3883         (conditional_trap expander): Reject inappropriate CCmodes.
3884         (conditional trap insn): Use V9 syntax if possible.
3885
3886 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3887
3888         PR c/16566
3889         * c-typeck.c (build_component_ref): Don't special-case
3890         COMPOUND_EXPR.
3891
3892 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
3893
3894         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
3895         returns NULL.
3896
3897 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
3898
3899         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
3900         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
3901         TRUTH_XOR_EXPR): Mention the restriction on types.
3902
3903 2004-09-22  Matt Austern  <austern@apple.com>
3904
3905         * config/darwin.c (darwin_make_decl_one_only):
3906         Allow coalesced symbol to appear in static archive's table of contents
3907
3908 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
3909
3910         PR tree-optimization/17512
3911         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
3912         special cases.
3913
3914 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
3915
3916         * dbxout.c (get_lang_number): Do not define if
3917         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
3918
3919 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
3920
3921         PR target/15583
3922         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
3923         builtin_define ("__USE_INIT_FINI__").
3924
3925 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
3926
3927         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
3928         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
3929         * config/s390/s390.h (TARGET_TPF): New macro.
3930         * config/s390/s390.md ("eh_return"): New expander.
3931         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
3932         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
3933         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
3934         * config/s390/tpf.h (TARGET_TPF): Define to 1.
3935         (STACK_POINTER_OFFSET): Increase to 448.
3936         (TARGET_DEFAULT): Set -mtpf-trace on as default.
3937         (TPF_LOC_DIFF_OFFSET): New macro.
3938         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
3939         encoding.
3940         (__isPATrange): Add prototype.
3941         (MD_FALLBACK_FRAME_STATE_FOR): Define.
3942         * config/s390/tpf-eh.c: New file.
3943
3944 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
3945
3946         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
3947         operands in an integer comparison.
3948         * tree-cfg.c (find_taken_edge): Call fold() to determine
3949         whether the predicate is known.
3950
3951 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
3952
3953         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
3954         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
3955         Create build and doc directories along with the language directories.
3956         Don't create doc directory separately.
3957         * configure: Regenerate.
3958         * Makefile.in: Create all object and executables files built
3959         with the build compiler in a build/ directory.
3960         (genobjnames): Add missing build objects.
3961         (STAGESTUFF): Don't stage the gen* programs.
3962         (ggc-none.o): Define dependencies for the target compiler.
3963         (build-print-rtl.o): Rename to build/print-rtl.o.
3964         (build-errors.o): Rename to build/errors.o.
3965         (build-varray.o): Rename to build/varray.o.
3966         (maintainerclean): Delete the contents of the build directory.
3967         ($(genobjs): %.o): Explicitly use -o.
3968         (build/insn-conditions.o): Delete specfic rule to use generic rule.
3969         (build/gengtype-lex.o): Likewise.
3970         (build/gengtype-yacc.o): Likewise.
3971         (build/gcov-iov.o): Likewise.
3972
3973 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
3974
3975         * vec.h (VEC_space): Return true if there _is_ space.
3976         (VEC_reserve): Adjust.
3977
3978 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
3979
3980         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
3981         use FPRs for scalar, complex and vector types only.
3982
3983 2004-09-21 Jeff Law  <law@redhat.com>
3984
3985         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
3986         the opt_stats_d structure.
3987         (vrp_data): Change from a varray into a hash table.
3988         (vrp_hash_elt): New structure for elements in the vrp hash table.
3989         (vrp_hash, vrp_eq):New functions for hashing and testing equality
3990         in the vrp hash table.
3991         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
3992         initialization slightly to make it easier to read.  No longer need
3993         to grow/clear the varray.  Instead empty and delete the hash table.
3994         (dom_opt_finalize_block): Update due to change of VRP_DATA from
3995         a varray to a hash table.
3996         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
3997
3998         * tree-ssa-ccp.c (get_default_value): If we have a constant
3999         value recorded for an SSA_NAME, then use that constant as
4000         the initial lattice value.
4001         (substitute_and_fold): Transfer equivalences discovered into
4002         SSA_NAME_EQUIV.
4003
4004         * tree.h (SSA_NAME_EQUIV): Add comments.
4005         (SET_SSA_NAME_EQUIV): Similarly.
4006
4007 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
4008
4009         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
4010
4011         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
4012
4013 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
4014
4015         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
4016         (finish_decl): Likewise.
4017
4018 2004-09-21  Devang Patel  <dpatel@apple.com>
4019
4020         * tree.def (VEC_COND_EXPR): New tree node.
4021         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
4022
4023 2004-09-21  Stan Shebs  <shebs@apple.com>
4024
4025         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
4026         * config/rs6000/darwin-world.asm: Likewise.
4027
4028 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
4029
4030         * tree-ssa.c (verify_def): Use print_generic_stmt,
4031         not debug_generic_stmt.
4032         (verify_use): Ditto.
4033         (verify_phi_args): Ditto.
4034         (verify_ssa): Ditto.
4035
4036 2004-09-21  Paul Brook  <paul@codesourcery.com>
4037
4038         * varasm.c (default_assemble_integer): Return false for values wider
4039         than the target word size.  Works around GAS bug.
4040
4041 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
4042
4043         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
4044         gets value 0.
4045         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
4046         if it has value 0.
4047
4048 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
4049
4050         * c-typeck.c (build_function_call): Give name of object
4051         we are attempting to call in error message.
4052         * c-objc-common.c (c_tree_printer): Call pp_expression,
4053         not return false, for 'E' case.
4054
4055 2004-09-21  Steven Bosscher  <stevenb@suse.de>
4056
4057         PR rtl-optimization/17482
4058         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
4059         load_killed_in_block_p): Clarify comments.
4060         (record_last_reg_set_info): Make static inline.
4061         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
4062         (record_opr_changes): New function to replace the above.
4063         (compute_hash_table): Clarify comments.  Use record_opr_changes.
4064         (reg_set_between_after_reload_p): Clean up.
4065         (reg_used_between_after_reload_p): Likewise.
4066         (eliminate_partially_redundant_load): Clarify comments.
4067
4068 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4069
4070         PR rtl-optimization/17266
4071         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
4072
4073 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
4074
4075         PR rtl-optimization/14851
4076         * rtlanal.c (commutative_operand_precedence): Calculate
4077         precedence of stripped constant.
4078
4079 2004-09-20 Jeff Law  <law@redhat.com>
4080            Jan Hubicka  <jh@suse.cz>
4081
4082         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
4083         initialize key elements here.
4084         (release_ssa_name): Zero the released SSA_NAME here.
4085         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
4086         (struct tree_ssa_name): Add new "equiv" field.
4087         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
4088         (tree_ssa_dominator_optimize): No longer allocate, resize or
4089         clear CONST_AND_COPIES.
4090         (get_value_for, set_value_for): Kill.
4091         (thread_across_edge): Get/set the equivalency using
4092         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
4093         (restore_vars_to_original_value): Likewise.
4094         (record_equivalences_from_phis): Likewise.
4095         (record_dominating_conditions): Likewise.
4096         (record_const_or_copy, record_equality): Likewise.
4097         (lookup_avail_expr): Likewise.
4098         (record_equivalences_from_stmt, cprop_operand): Likewise.
4099         (cprop_into_successor_phis): No longer need to pass around
4100         CONST_AND_COPIES.  Callers updated. Get equivalences via
4101         SSA_NAME_EQUIV.
4102         (cprop_into_phis): Likewise.
4103
4104 2004-09-20  Matt Austern <austern@apple.com>
4105             Zack Weinberg  <zack@codesourcery.com>
4106
4107         * c-common.c (fix_string_type): Build the unqualified array
4108         type unconditionally, then use c_build_qualified_type to get
4109         the proper const-qualified variant, and set its
4110         TYPE_MAIN_VARIANT to refer to the unqualified type.
4111         * c-lex.c (c_lex_return_raw_string): New global.
4112         (c_lex_with_flags): Honor it.
4113         * c-pragma.h: Declare it.
4114
4115 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
4116
4117         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
4118
4119 2004-09-21  Jan Hubicka  <jh@suse.cz>
4120
4121         PR middle-end/17126
4122         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
4123         (tree_rest_of_compilation): Cleanup.
4124
4125 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
4126
4127         * config/s390/s390.c (s390_select_rtx_section): Remove.
4128         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
4129
4130 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4131
4132         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
4133         note to pretend a direct save from the original register when an
4134         intermediate register is used for the save.
4135
4136 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4137
4138         * tsystem.h (alloca): Provide a default definition.
4139
4140         Revert:
4141         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4142             * unwind-dw2.c: Call __builtin_alloca, not alloca.
4143
4144 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
4145
4146         PR tree-opt/17558
4147         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
4148         aliasing sets are the same rather than just conflicting.
4149
4150 2004-09-20  Jan Hubicka  <jh@suse.cz>
4151
4152         PR middle-end/16460
4153
4154         * cgraph.c (cgraph_unnest_node): New function.
4155         (c_finalize): Rename to ....
4156         (c_warn_unused_result_recursivly): ... this one; do only the warning
4157         (finish_function): Finalize the toplevel function; do not lower nested tree.
4158         * cgraph.h (cgraph_unnest_node): Declare.
4159         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
4160         nestedness datastructure.
4161         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
4162         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
4163         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
4164
4165 2004-09-20  Richard Henderson  <rth@redhat.com>
4166
4167         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
4168         from some_small_symbolic_operand_1; export.
4169         (some_small_symbolic_operand): Remove.
4170         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
4171         extra C check.
4172         * config/alpha/predicates.md (some_small_symbolic_operand): New.
4173
4174 2004-09-20  Jan Hubicka  <jh@suse.cz>
4175
4176         * predict.c (return_prediction): New function.
4177         (apply_return_prediction): Likewise.
4178         (tree_bb_level_predictions): Likewise.
4179         (tree_estimate_probability): Add noreturn exit edges; call
4180         bb_level_predictions; fix logic of return heuristics.
4181         (predict_paths_leading_to):  Rescuesce from old CVS version of
4182         process_note_prediction function.
4183         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
4184
4185 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
4186
4187         * config/s390/s390.c (s390_frame_info): Added alignment statement for
4188         floating point register area on stack.
4189
4190 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
4191
4192         * predict.c (expr_expected_value): Use *_CLASS_P macros.
4193
4194 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
4195
4196         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
4197         generating useless garbage.
4198
4199 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
4200
4201         * builtins.c (fold_builtin): Call the new omonymous
4202         target hook for machine-dependent built-ins.
4203         * target-def.h (TARGET_FOLD_BUILTIN): New.
4204         * target.h (struct gcc_target): Add the fold_builtin hook.
4205         * targhooks.c (default_fold_builtin): New.
4206         * targhooks.h (default_fold_builtin): Declare it.
4207
4208 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
4209
4210         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
4211         comment typos.
4212
4213 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
4214
4215         PR target/17565
4216         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
4217
4218 2004-09-20  Jan Hubicka  <jh@suse.cz>
4219
4220         * predict.c (estimate_probability): Remove unnecesary code.
4221
4222 2004-09-19  Ira Rosen  <irar@il.ibm.com>
4223
4224         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
4225         (STMT_VINFO_VECT_DR_BASE): Declare.
4226         (VECT_SMODULO): Declare.
4227         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
4228         (vect_compute_array_base_alignment): New function.
4229         (vect_analyze_data_ref_access): Check array indices. Remove one
4230         dimensional arrays restriction.
4231         (vect_get_ptr_offset): New function.
4232         (vect_get_symbl_and_dr): New function.
4233         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
4234         (former name vect_get_base_decl_and_bit_offset).
4235         (vect_create_index_for_array_ref): Removed.
4236         (vect_create_index_for_vector_ref): New function.
4237         (vect_create_addr_base_for_vector_ref): New function.
4238         (vect_create_data_ref): Handle additional data refs. Call
4239         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
4240         (vect_compute_data_ref_alignment): Support the changes. Call
4241         vect_get_base_and_bit_offset.
4242         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
4243         data refs. Store vect_dr_base.
4244         (vect_analyze_data_ref_accesses): Support nonconstant init.
4245         (new_stmt_vec_info): Initialize vect_dr_base field.
4246         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
4247         (get_vectype_for_scalar_type): Check for BLKmode.
4248         * tree-chrec.h (initial_condition_in_loop_num): Declare.
4249         * tree-chrec.c (initial_condition_in_loop_num): New function.
4250         (chrec_component_in_loop_num): New function.
4251         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
4252         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
4253         to be pointer to varray_type.
4254
4255 2004-09-19  Jan Hubicka  <jh@suse.cz>
4256
4257         * basic-block.h (update_bb_profile_after_threading): Declare.
4258         * cfg.c (update_bb_profile_after_threading): Break out from ...
4259         * cfgcleanup.c (try_forward_edges): ... here; use it.
4260         * tree-ssa-dom.c (thread_across_edge): Use it.
4261         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
4262         profile of the new BB.
4263
4264 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
4265
4266         * tree-ssa-pre.c (insert_into_set): Don't put
4267         is_gimple_min_invariant values into the set.
4268
4269 2004-09-19  Andreas Jaeger  <aj@suse.de>
4270
4271         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
4272         prototype.
4273
4274 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4275
4276         * config/cris/cris.h: Preserve the original spelling in a
4277         quote.
4278
4279 2004-09-18 Jeff Law  <law@redhat.com>
4280
4281         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
4282         global varrays to replace the block local varrays.
4283         (struct dom_walk_block_data): Remove, no longer used.
4284         (get_eq_expr_value): No longer need to pass around pointers to local
4285         varrays.  Callers updated.  Unused markers added to unused parameters.
4286         (record_range, record_equivalences_from_stmt): Likewise.
4287         (record_equivalences_from_incoming_edge): Likewise.
4288         (record_var_is_nonzero): Likewise.  Update now that we have a
4289         single global varray of SSA_NAMEs that need restoring.
4290         (dom_opt_initialize_block_local_data): Kill, no longer used.
4291         (tree_ssa_dominator_optimize): Initialize new global varrays.
4292         Update callbacks in dominator walker structure.
4293         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
4294         VRP_VARIABLES_STACK.
4295         (restore_nonzero_vars_to_original_value): Update now that we have
4296         a single global varray of SSA_NAMEs that need restoring.
4297         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
4298         Remove unused variables.
4299         (optimize_stmt): Remove unused variable.
4300
4301 2004-09-18  Jan Hubicka  <jh@suse.cz>
4302
4303         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
4304
4305         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
4306         verify_cgraph call.
4307
4308 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4309
4310         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
4311         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
4312         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
4313         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
4314         tree-ssa-operands.c, tree-ssa-phiopt.c,
4315         tree-ssa-threadupdate.c: Fix comment typos.
4316
4317 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4318
4319         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
4320         config/arm/README-interworking, config/arm/arm-cores.def,
4321         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
4322         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
4323         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
4324         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
4325         config/frv/frv.md, config/i386/winnt.c,
4326         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
4327         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
4328         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
4329         config/mcore/mcore.c, config/mips/mips.h,
4330         config/mn10300/mn10300.md, config/pa/pa.c,
4331         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
4332         config/rs6000/rs6000.c, config/sh/symbian.c,
4333         config/sparc/sparc.h: Fix comment typos.  Follow spelling
4334         conventions.
4335
4336 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
4337
4338         PR c/17424
4339         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
4340
4341 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
4342
4343         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
4344         remove TREE_ADDRESSABLE from RESULT_DECL.
4345
4346 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
4347
4348         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
4349
4350 2004-09-18  Jan Hubicka  <jh@suse.cz>
4351
4352         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
4353         NULL.
4354         * tree-ssa-alias.c (init_alias_info): Likewise.
4355         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
4356         (verify_ssa): Likewise.
4357         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
4358
4359 2004-09-18  Jan Hubicka  <jh@suse.cz>
4360
4361         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
4362         huge offset.
4363
4364 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4365
4366         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
4367         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
4368         DW_EH_PE_sdata* for data.
4369         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
4370
4371 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
4372
4373         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
4374         shared anyway.
4375
4376         PR pch/13361
4377         * c-typeck.c (constructor_asmspec): Delete.
4378         (struct initializer_stack): Delete field 'asmspec'.
4379         (start_init): Delete saving of asmspec.
4380         (finish_init): Don't update constructor_asmspec.
4381         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
4382         * stmt.c (expand_asm): Duplicate strings from tree.
4383         (expand_asm_operands): Likewise.
4384         * tree.c (tree_size): Update computation of size of STRING_CST.
4385         (make_node): Don't make STRING_CST nodes.
4386         (build_string): Allocate string with tree node.
4387         (tree_code_size): Clean up assertions, don't allow requests
4388         for "the size of a STRING_CST".
4389         * tree.def (STRING_CST): Update comment.
4390         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
4391         (tree_string): Place contents of string in tree node.
4392         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
4393         from tree.
4394
4395 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
4396
4397         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
4398         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
4399
4400 2004-09-17  Jones Desougi  <jones@ingate.com>
4401
4402         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
4403         * configure, config.in: Regenerate.
4404
4405 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
4406
4407         * tree.c, tree.h (tree_class_strings): Make array const.
4408         Reindent per coding convention.  Move asterisk to proper place
4409         per coding convention.
4410
4411 2004-09-18  Andreas Schwab  <schwab@suse.de>
4412
4413         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
4414         (tree-vectorizer.o): Likewise.
4415         (targhooks.o): Likewise.
4416
4417 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
4418             Zack Weinberg  <zack@codesourcery.com>
4419
4420         * alias.c (find_base_decl): Remove unreachable case '3' block.
4421         * expr.c (safe_from_p): Abort if passed a type.
4422         * tree-gimple.c (recalculate_side_effects): Abort if passed
4423         anything other than an expression.
4424         * tree-ssa-pre.c (phi_translate): Return expr immediately if
4425         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
4426         Abort on un-handled tree classes.
4427         (valid_in_set): Likewise.
4428         * tree.c (tree_code_class_strings): New static data.
4429
4430         * tree.h (enum tree_code_class): New.
4431         (tree_code_class_strings): Declare.
4432         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
4433         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
4434         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
4435         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
4436         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
4437
4438         * tree.def, c-common.def, objc/objc-tree.def: Use
4439         tree_code_class enumeration constants instead of code letters.
4440
4441         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
4442         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
4443         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
4444         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
4445         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
4446         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
4447         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
4448         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
4449         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
4450         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
4451         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
4452         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
4453         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
4454         Update to match.
4455
4456         * LANGUAGES: Add note about change.
4457
4458 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
4459
4460         PR tree-optimization/17319
4461         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
4462         examine pointers on the LHS of an assignment.
4463         (collect_points_to_info_r): Handle RETURN_EXPR.
4464
4465 2004-09-17 Jeff Law  <law@redhat.com>
4466
4467         * tree-ssa-dom.c (const_and_copies_stack): New.
4468         (dom_walk_block_data): Remove const_and_copies field.
4469         (record_const_or_copy): No longer need to pass in varray_type *.
4470         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
4471         Callers updated.
4472         (record_equality): Similarly.
4473         (restore_vars_to_original_value): Similarly.  Revamp to use new
4474         single global stack rather than per-block stacks.
4475         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
4476         (thread_across_edge): Remove now unused parameters.
4477         (dom_opt_initialize_block_local_data): No longer test the block
4478         local CONST_AND_COPIES.
4479         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
4480
4481 2004-09-17  Jan Hubicka  <jh@suse.cz>
4482
4483         PR tree-optimization/17509
4484         * tree-optimize.c (update_inlined_to_pointers): New function.
4485         (tree_rest_of_compilation): Use it.
4486
4487 2004-09-17  Devang Patel  <dpatel@apple.com>
4488
4489         * dbxout.c (get_lang_number): New.
4490         (dbxout_init): Include lang number in N_SO  stab.
4491         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
4492         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
4493
4494 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
4495
4496         PR tree-optimization/17273
4497         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
4498         replacement is a constant.
4499
4500 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
4501
4502         * c-tree.h (enum c_typespec_keyword): New.
4503         (struct c_declspecs): Adjust description of "type".  Remove
4504         specbits, explicit_int_p and explicit_char_p.  Rename
4505         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
4506         short_p, signed_p, unsigned_p and complex_p.
4507         (finish_declspecs): New.
4508         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
4509         typename): Call finish_declspecs.
4510         * c-decl.c (finish_declspecs): New.
4511         (declspecs_add_type): Check for combinations which cannot occur in
4512         valid specifier lists.  Update comments.
4513         (shadow_tag_warned): Remove checks done in finish_declspecs.
4514         Don't report useless type name if type defaulted to int.
4515         (grokdeclarator): Remove checks and actions done in
4516         finish_declspecs.  Don't allow for type being NULL.  Update for
4517         datastructures changes.  Initialize decl_attr.
4518         (build_null_declspecs, quals_from_declspecs): Update for
4519         datastructures changes.
4520
4521 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
4522
4523         * doc/extend.texi: Fix duplicated word.
4524
4525 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
4526
4527         * doc/invoke.texi: Remove stray explanation on
4528         -freduce-all-givs and -fmove-all-movables.
4529
4530 2004-09-17  James Morrison  <phython@gcc.gnu.org>
4531
4532         * doc/cfg.texi: Use @smallexample.
4533         * doc/md.texi: Likewise.
4534         * doc/tree-ssa.texi: Likewise.
4535         * doc/extend.texi: Likewise.  Use @r{} in comments.
4536         * doc/trouble.texi: Use @r{} in comments.
4537
4538 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
4539
4540         * configure.ac (gcc_cv_gld_version): Handle whitespace before
4541         "VERSION=".
4542         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
4543         * configure: Regenerate.
4544
4545 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
4546
4547         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
4548         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
4549         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
4550         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
4551         slashes in substitutions.
4552         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
4553
4554 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
4555
4556         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
4557         gimplify.c, lambda-code.c, optabs.c, predict.c,
4558         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
4559         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
4560         conventions.
4561
4562 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
4563
4564         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
4565         doc/extend.texi, doc/install.texi, doc/invoke.texi,
4566         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
4567         doc/trouble.texi: Use @option around options.
4568
4569 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
4570
4571         * Makefile.in (gen-protos.o): Depend on errors.h.
4572
4573 2004-09-17  Steven Bosscher  <stevenb@suse.de>
4574
4575         PR tree-optimization/17513
4576         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
4577         for successors of the entry block.
4578
4579 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
4580
4581         PR rtl-optimization/15187
4582         * ifcvt.c (noce_try_cmove_arith): Exit early if total
4583         insn_rtx_cost of both branches > BRANCH_COST
4584
4585 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
4586
4587         PR tree-optimization/17528
4588         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
4589         erase the may-alias set for a tag when merging it with
4590         another.
4591
4592 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
4593
4594         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
4595         for 32-bit TARGET_SHMEDIA.
4596         (call_value): Likewise.
4597
4598 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
4599
4600         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
4601         test apply only to TREE_STATIC and DECL_EXTERNAL.
4602
4603 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4604
4605         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
4606         * basic-block.h (get_dominated_by_region): Declare.
4607         * dominance.c (get_dominated_by_region): New function.
4608         * tree-cfg.c: Include cfglayout.h.
4609         (tree_duplicate_bb): Duplicate also phi nodes.
4610         (struct ssa_name_map_entry): New type.
4611         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
4612         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
4613         allocate_ssa_names, rewrite_to_new_ssa_names_def,
4614         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
4615         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
4616         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
4617         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
4618         rewrite_to_new_ssa_names, allocate_ssa_names,
4619         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
4620         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
4621         (copy_loop_headers): Use tree_duplicate_sese_region.
4622
4623 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
4624
4625         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
4626
4627 2004-09-16 Jeff Law  <law@redhat.com>
4628
4629         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
4630         (rewrite_block_data): Remove, no longer used.
4631         (rewrite_initialize_block_local_data): Remove, no longer used.
4632         (rewrite_initialize_block): Mark parameters as unused as needed.
4633         Change references to the block local block_defs to be block_defs_stack.
4634         Push a marker onto the block_defs_stack.
4635         (ssa_rewrite_initialize_block): Similarly.
4636         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
4637         (ssa_register_new_def): No longer needs varray argument.  Use
4638         block_defs_stack instead.  No longer handle possibly null block_defs
4639         varray.  Reverse order of items we push on the stack to make it
4640         easier to identify our marker.
4641         (register_new_def): No longer handle possibly null block_defs
4642         varray.
4643         (rewrite_finalize_block): Revamp to look for markers in the global
4644         block_defs_stack varray rather than wiping a block local varray.
4645         Mark arguments as unused as needed.
4646         (ssa_rewrite_finalize_block): Similarly.
4647         (rewrite_into_ssa): Update initialization of dom walker structure
4648         to reflect that we don't need block local data anymore.  Initialize
4649         the block_defs_stack varray.
4650         (rewrite_ssa_into_ssa): Similarly.
4651         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
4652         (struct dom_walk_data): Kill block_defs field.
4653         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
4654         (thread_across_edge): Use the global block_defs_stack instead of
4655         the old block_defs varray.
4656         (dom_opt_initialize_block_local_data): Update now that we don't have
4657         block_defs field to check anymore.
4658         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
4659         (restore_currdefs_to_original_value): Use the new block_defs_stack
4660         instead of a block local varray.
4661         (dom_opt_finalize_block): Similarly.
4662         (record_equivalencs_from_phis): Similarly.
4663         (optimize_stmt, register_definitions_for_stmt): Similarly.
4664
4665 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
4666
4667         PR tree-optimization/17517
4668         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
4669         coalesce same-root variables without checking for abnormal PHI usage.
4670
4671 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
4672
4673         * cfgloop.h (duplicate_loop):  Add prototype.
4674         * cfgloopmanip.c (duplicate_loop): Make non-static.
4675         * lambda-code.c (perfect_nestify): Factor out test whether
4676         we can handle this loop into separate function.
4677         Call it.
4678         (can_convert_to_perfect_nest): New function.
4679         (replace_uses_of_x_with_y): Add modify_stmt call.
4680         * tree-loop-linear.c (linear_transform_loops): Call
4681         rewrite_into_loop_closed_ssa and free_df.
4682
4683 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
4684
4685         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
4686         loop invariant as well.
4687         (perfect_nestify): new function.
4688         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
4689         upper bounds, and steps.
4690         Set outerinductionvar properly.
4691         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
4692         parameters.
4693         Return NULL if we need a perfect loop and can't make one.
4694         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
4695         (not_interesting_stmt): New function.
4696         (phi_loop_edge_uses_def): Ditto.
4697         (stmt_uses_phi_result): Ditto.
4698         (stmt_is_bumper_for_loop): Ditto.
4699         (perfect_nest_p): Ditto.
4700         (nestify_update_pending_stmts): Ditto.
4701         (replace_uses_of_x_with_y): Ditto.
4702         (stmt_uses_op): Ditto.
4703         (perfect_nestify): Ditto.
4704         * lambda-mat.c (lambda_matrix_id_p): New function.
4705         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
4706         * lambda.h: Update prototypes.
4707         * tree-loop-linear (linear_transform_loop): Use new
4708         perfect_nest_p. Detect and ignore identity transform.
4709         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
4710
4711 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
4712
4713         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
4714         Gather also strides of accessed data.  Pass in the data references
4715         array.
4716         (try_interchange_loops): Add a new heuristic for handling the temporal
4717         locality.  Pass in the data references array.
4718         (linear_transform_loops): Pass the data references array to
4719         try_interchange_loops.
4720
4721 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
4722
4723         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
4724
4725 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
4726
4727         * doc/c-tree.texi (Classes): Remove index entries for
4728         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
4729
4730 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4731
4732         * fold-const.c (fold): Fold difference of addresses.
4733         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
4734         get_inner_reference.
4735         * tree-ssa-loop-ivopts.c (peel_address): Removed.
4736         (ptr_difference_const): Moved to fold-const.c.
4737         (split_address_cost): Use get_inner_reference instead of peel_address.
4738         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
4739         * tree.h (ptr_difference_const): Export.
4740
4741         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
4742         variable type to the dump.  Fix indentation.
4743         (idx_find_step): Handle nonconstant array_ref_element_size and
4744         array_ref_low_bound.
4745         (idx_record_use): Handle array_ref_element_size and
4746         array_ref_low_bound.
4747         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
4748         statements correctly.
4749         (get_computation_at, iv_value): Do not unshare expressions here.
4750         (rewrite_use_outer): Unshare the expression before it is emitted
4751         to code.
4752         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
4753         Moved to tree.c.
4754         * tree.c (unsigned_type_for, signed_type_for): Moved from
4755         tree-ssa-loop-niter.c.  Use langhooks.
4756         * tree.h (signed_type_for): Export.
4757
4758 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
4759
4760         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
4761         prototype.
4762
4763 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
4764
4765         PR target/11572
4766         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
4767         Add two parameters to extra_includes.
4768         (C_INCPATH_INIT): Remove.
4769         * c-incpath.c (register_include_chains): Call extra_pre_includes
4770         before adding the standard include directory.
4771         Update call to extra_includes.
4772         (!defined TARGET_EXTRA_INCLUDES): Update
4773         hook_void_charptr_charptr_int and add !define
4774         TARGET_EXTRA_PRE_INCLUDES.
4775         (!define TARGET_EXTRA_INCLUDES): Define as
4776         hook_void_charptr_charptr_int.
4777         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
4778         (target_c_incpath): Always declare.
4779         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
4780         empty function.
4781         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
4782         * config/darwin.h: (darwin_register_frameworks): Update for
4783         the two new parameters.
4784         (darwin_register_objc_includes): Add prototype.
4785         (TARGET_EXTRA_PRE_INCLUDES): Define.
4786         * config/darwin-c.c (darwin_register_objc_includes): New function.
4787         (darwin_register_frameworks): Update for the two new parameters.
4788         (target_c_incpath): Remove.
4789         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
4790         the compile line.
4791         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
4792         parameters.
4793         (TARGET_EXTRA_PRE_INCLUDES): Document.
4794
4795         * gcc.c (spec_function): Add replace-outfile.
4796         (replace_outfile_spec_function): New function.
4797         * config/darwin.h (LINK_SPEC): Add replace
4798         -lobjc with -lobjc-gnu if -fgnu-runtime is
4799         supplied.
4800         * invoke.texi (replace-outfile): Document.
4801
4802 2004-09-13  Jan Hubicka  <jh@suse.cz>
4803
4804         * predict.c (expr_expected_value, strip_builtin_expect): New function.
4805         (tree_predict_by_opcode): Use it.
4806         (tree_estimate_probability): Add, for now disabled,
4807         strip_builtin_expect call.
4808
4809 2004-09-15  James E Wilson  <wilson@specifixinc.com>
4810
4811         PR target/17455
4812         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
4813         if current_function_decl is a sibcall.
4814
4815 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
4816
4817         * varasm.c (default_function_rdodata_section): Make sure to pass
4818         along a decl for a link-once section.
4819
4820 2004-09-15  Richard Henderson  <rth@redhat.com>
4821
4822         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
4823         warning with code disable.  Fix formatting.
4824
4825 2004-09-15  Steven Bosscher  <stevenb@suse.de>
4826
4827         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
4828         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
4829         after propagating into an ADDR_EXPR.
4830
4831 2004-09-15  Andrew Pinski  <apinski@apple.com>
4832
4833         PR rtl-opt/17427
4834         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
4835         Move it out of gcc_assert.
4836
4837 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
4838
4839         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
4840         except.c, fold-const.c, function.c, langhooks.c, params.c,
4841         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
4842         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
4843         for quoting in diagnostics going through pretty-print.c.  Use ''
4844         for quoting in other diagnostic text.
4845         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
4846         translation.
4847         * Makefile.in (langhooks.o): Update dependencies.
4848         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
4849         formats.
4850
4851 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
4852
4853         * configure.ac: Check for COMDAT support.  Robustify check for
4854         SHF_MERGE support.
4855         * configure: Regenerated.
4856         * config.in: Likewise.
4857         * langhooks-def.h (lhd_comdat_group): New function.
4858         (LANG_HOOKS_COMDAT_GROUP): New macro.
4859         (LANG_HOOKS_DECLS): Use it.
4860         * langhooks.c (lhd_comdat_group): Define.
4861         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
4862         * output.h (named_section_flags): Make it a macro.
4863         (named_section_real): New function.
4864         (default_no_named_section): Add decl parameter.
4865         (default_elf_asm_named_section): Likewise.
4866         (default_coff_asm_named_section): Likewise.
4867         (default_pe_asm_named_section): Likewise.
4868         * target.h (gcc_target): Adjust type of named_section.
4869         * varasm.c (named_section_flags): Rename to named_section_real.
4870         Add decl parameter.
4871         (default_no_named_section): Add decl parameter.
4872         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
4873         with the case that ASM_COMMENT_START is "@".
4874         (default_coff_asm_named_section): Add decl parameter.
4875         (default_pe_asm_named_section): Likewise.
4876         * config/alpha/alpha.c (vms_asm_named_section): Add decl
4877         parameter.
4878         (unicosmk_asm_named_section): Likewise.
4879         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
4880         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
4881         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
4882         * config/cris/cris-protos.h (cris_target_asm_named_section):
4883         Likewise.
4884         * config/cris/cris.c (cris_target_asm_named_section):
4885         Likewise.
4886         * config/darwin/darwin-protos.h (darwin_asm_named_section):
4887         Likewise.
4888         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
4889         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
4890         * config/i386/i386-protos.h (i386_pe_asm_named_section):
4891         Likewise.
4892         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
4893         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
4894         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
4895         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
4896         Likewise.
4897         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
4898         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
4899         * cp/cp-tree.h (cxx_comdat_group): Declare.
4900         * cp/decl.c (cxx_comdat_group): New function.
4901
4902 2004-09-15  Jan Hubicka  <jh@suse.cz>
4903
4904         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
4905         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
4906
4907         * tree-cfg.c (remove_bb): Release SSA defs.
4908
4909 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
4910
4911         * doc/tm.texi: Follow spelling conventions.
4912
4913 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
4914
4915         * tree-ssa-dom.c: Fix comment typos.
4916
4917 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
4918
4919         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
4920         include ccr.
4921         (ppc_fallback_frame_state): Save location of CR.
4922
4923 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
4924
4925         * expr.c (string_constant): Handle also read-only variables
4926         initialized to string literals.
4927
4928         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
4929         into memcpy (x, y, 1) if memcpy can be expanded inline.
4930
4931 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4932
4933         PR tree-optimization/17468
4934         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
4935         definition inside a block precede uses.
4936         * tree-tailcall.c (adjust_return_value): Emit statements in the
4937         correct order.
4938
4939 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
4940
4941         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
4942
4943 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
4944
4945         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
4946
4947 2004-09-14 Jeff Law  <law@redhat.com>
4948
4949         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
4950         (struct dom_walk_block_data): Remove avail_exprs member.
4951         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
4952         (lookup_avail_expr): No longer need to pass in address of
4953         the block local available exprs stack.  All callers changed.
4954         (simplify_cond_and_lookup_avail_expr): Similarly.
4955         (simplify_switch_and_lookup_avail_expr): Similarly.
4956         (get_eq_expr_value, record_cond): Likewise.
4957         (record_dominating_conditions): Likewise.
4958         (update_rhs_and_lookup_avail_expr): Likewise.
4959         (record_equivalences_from_stmt): Likewise.
4960         (dom_opt_initialize_block_local_data): No longer test state of
4961         block local avail_exprs.
4962         (dom_opt_initialize_block): Mark unwind point in the global
4963         avail_expr stack.
4964         (remove_expressions_from_table): Update to unwind to the
4965         most recent unwind marker in the global avail_expr stack.
4966         All callers changed.
4967         (dom_opt_finalize_block): Mark unwind point in the global
4968         avail_expr stack as needed.
4969         (record_cond): Push elements into the global avail_exprs stack.
4970
4971         * tree-dfa.c (free_df_for_stmt): No longer static.
4972         (free_df): Update comments.
4973         * tree-flow.h (free_df_for_stmt): Prototype.
4974         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
4975         call release_defs.
4976
4977 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
4978
4979         PR tree-optimization/17252
4980         * tree-ssa-alias.c (may_alias_p): Don't assume that a
4981         pointer may not point to itself when using relaxed
4982         aliasing rules.
4983
4984 2004-09-14  Richard Henderson  <rth@redhat.com>
4985
4986         PR middle-end/17397
4987         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
4988         while folding <ADDR_EXPR <INDIRECT_REF X>>.
4989
4990 2004-09-14  Andrew Pinski  <apinski@apple.com>
4991
4992         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
4993         sets of the pointers but the aliasing sets of what they point to.
4994
4995 2004-09-14  Roger Sayle  <roger@eyesopen.com>
4996
4997         PR rtl-optimization/9771
4998         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
4999         conditional compilation in init_reg_sets_1.
5000         (init_reg_sets_1): Let global_regs[i] take priority over the frame
5001         (but not stack) pointer exceptions to regs_invalidated_by_call.
5002         (globalize_reg): Globalizing a fixed register may need to update
5003         regs_invalidated_by_call.
5004
5005 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
5006
5007         PR tree-optimization/15262
5008         * tree-dfa.c (dump_variable): Also print the type of the
5009         variable.
5010         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
5011         memory tags are of conflicting alias sets but have no aliased
5012         symbols in common, add one tag to the alias set of the other.
5013         (setup_pointers_and_addressables): Remove hack to deal with
5014         programs with no aliased symbols.
5015         (may_alias_p): Don't special case aggregate types.
5016
5017 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5018
5019         PR c/15498
5020         * doc/invoke.texi (Environment Variables): Correct example locale.
5021
5022 2004-09-14  Jan Hubicka  <jh@suse.cz>
5023
5024         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
5025
5026 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
5027
5028         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
5029
5030 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5031
5032         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
5033         restrict_p.
5034         (struct c_declarator): Change u.array.quals and pointer_quals to
5035         int.  Add u.array.attrs.
5036         (quals_from_declspecs): New.
5037         * c-decl.c (quals_from_declspecs): New.
5038         (shadow_tag_warned): Give more specific message for useless type
5039         qualifiers.
5040         (build_array_declarator, set_array_declarator_inner,
5041         grokdeclarator, make_pointer_declarator, build_null_declspecs,
5042         declspecs_add_qual): Update for changed structures.
5043
5044 2004-09-14  Jeff Law  <law@redhat.com>
5045
5046         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
5047         to a global varray.
5048         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
5049         (dom_opt_initialize_block_local_data): No longer test state
5050         of stmts_to_rescan.
5051         (dom_opt_finalize_block): Update due to change in scope of
5052         stmts_to_rescan.
5053         (optimize_stmt): Similarly.
5054
5055 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5056
5057         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
5058         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
5059         comment typos.  Follow spelling conventions.
5060
5061 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5062
5063         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
5064         config/i386/predicates.md, config/sparc/sparc.c: Follow
5065         spelling conventions.
5066
5067 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5068             Steven Bosscher  <stevenb@suse.de>
5069
5070         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
5071         * basic-block.h (struct reorder_block_def): Add copy_number field.
5072         * cfgloop.h (biv_p): Declare.
5073         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
5074         * common.opt (fsplit-ivs-in-unroller): New flag.
5075         * loop-iv.c (biv_p): New function.
5076         * loop-unroll.c: Include hashtab.h and recog.h.
5077         (struct iv_to_split, struct split_ivs_info): New types.
5078         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
5079         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
5080         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
5081         insert_base_initialization, split_iv): New functions.
5082         (peel_loop_completely, unroll_loop_constant_iterations,
5083         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
5084         Use them.
5085         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
5086
5087 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5088
5089         * tree-cfg.c (thread_jumps): Update dominators correctly in
5090         case destination of threaded edge dominates its source.
5091
5092 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5093
5094         * unroll.c: Removed.
5095         * loop.h: Removed.
5096         * Makefile.in (LOOP_H, unroll.o): Removed.
5097         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
5098         dependency.
5099         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
5100         reference.
5101         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
5102         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
5103         * loop.c: Do not include loop.h.
5104         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
5105         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
5106         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
5107         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
5108         struct loop_regs, struct loop_movables, struct loop_info): Moved
5109         from loop.h.
5110         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
5111         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
5112         find_common_reg_term, loop_iterations, final_giv_value): Moved
5113         from unroll.c.
5114         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
5115         loop_dump_stream, for_each_insn_in_loop, express_from,
5116         extend_value_for_giv, loop_iv_add_mult_emit_before,
5117         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
5118         loop_insn_first_p, get_condition_for_loop,
5119         loop_insn_emit_before, loop_insn_hoist,
5120         loop_insn_sink): Made static.
5121         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
5122         reference.
5123         (strength_reduce): Do not call unroller.
5124         (record_giv): Do not initialize unrolled field.
5125         (prescan_loop): Do not set loop_info->preconditioned.
5126         * passes.c: Do not include loop.h.
5127         (rest_of_handle_loop_optimize): Do not call unroller.
5128         * predict.c: Do not include loop.h.
5129         * rtl.h (NOTE_PRECONDITIONED): Removed.
5130         * stmt.c: Do not include loop.h.
5131         * toplev.c: Do not include loop.h.
5132         (process_options): Do not handle flag_old_unroll_loops.
5133
5134         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
5135         Documentation removed.
5136         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
5137
5138 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
5139
5140         * Makefile.in (STAGE1_CHECKING): New variable.
5141         (stage1_build): Use it.
5142         * tree-ssa.c (verify_ssa): Preserve state of dominance
5143         information.
5144
5145 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
5146
5147         * config/i386/i386.c (output_fp_compare): Add generation
5148         of ftst instruction.
5149         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
5150         Use output_fp_compare () function.
5151         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
5152         (fix_truncdi_memory): Remove operands[5] copy.
5153
5154 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5155
5156         * config/m32r/m32r.md, config/m68k/m68kelf.h,
5157         config/mcore/mcore.md, config/rs6000/linux64.h,
5158         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
5159         typos.
5160
5161 2004-09-13  James E Wilson  <wilson@specifixinc.com>
5162
5163         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
5164         * gen-protos.c: Include errors.h.
5165         (progname): Delete.
5166
5167 2004-09-14  Jan Hubicka  <jh@suse.cz>
5168
5169         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
5170         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
5171         (predict_loops): Use number_of_iterations_exit to predict
5172         number of iterations on trees.
5173
5174 2004-09-13  Dale Johannesen  <dalej@apple.com>
5175
5176         PR 17408
5177         PR 17409
5178         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
5179         objects declared extern.
5180
5181 2004-09-14  Paul Brook  <paul@codesourcery.com>
5182
5183         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
5184         HOST_WIDE_INT.
5185
5186 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
5187
5188         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
5189         Only use TYPE_BINFO for aggregates.
5190
5191 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
5192
5193         * expmed.c (synth_mult): Initialize latency.  Check cost before
5194         checking ops count.
5195
5196 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
5197
5198         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
5199         add_call_clobber_ops and add_call_read_ops.
5200         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
5201         the number of vdefs and vuses inserted based on analysis of global
5202         variables across calls.  * tree-dfa.c (find_referenced_vars):
5203         Needed to reset static var maps before each function is compiled.
5204         * cgraphunit.c:
5205         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
5206         static_vars_info,functions_to_static_vars_info,module_statics_escape,
5207         all_module_statics,searchc_env,dfs_info): New fields to support
5208         analysis of static global variables.
5209         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
5210         cgraph_reset_static_var_maps, get_global_static_vars_info,
5211         get_global_statics_not_read, get_global_statics_not_written,
5212         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
5213         check_rhs_var, check_lhs_var, get_asm_expr_operands,
5214         process_call_for_static_vars, scan_for_static_refs,
5215         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
5216         clear_static_vars_maps, cgraph_propagate_bits,
5217         cgraph_characterize_statics): New. Functions to support analysis
5218         of static global variables.
5219         (cgraph_mark_local_and_external_functions): Renamed from:
5220         (cgraph_mark_local_functions)
5221         (cgraph_expand_all_functions): Remove call to
5222         cgraph_mark_local_and_external_functions.
5223         (cgraph_optimize): Added driver to analyze static variables whose
5224         scope is within the compilation unit.  * cgraph.h (struct
5225         cgraph_local_info, GTY): Added statics_read, statics_written,
5226         local, calls_read_all, calls_write_all, for_functions_valid.
5227         (struct cgraph_node): Added next_cycle.  * cgraph.c
5228         (dump_cgraph_node): Added print routines for new fields.  *
5229         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
5230         list.
5231
5232 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
5233
5234         * c-decl.c (grokdeclarator): Correct comments about where storage
5235         class specifiers are rejected by grammar and add corresponding
5236         asserts.  Diagnose typedefs and parameters declared inline.
5237         Change warning for inline main to a pedwarn.  Only diagnose inline
5238         main if hosted.
5239         (declspecs_add_scspec): Allow duplicate "inline".
5240
5241 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
5242
5243         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
5244         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
5245
5246 2004-09-13  Richard Henderson  <rth@redhat.com>
5247
5248         PR 17436
5249         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
5250         (tree_type): Replace spare with contains_placeholder_bits.
5251         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
5252         make static.  Remove seen_types list.
5253         (type_contains_placeholder_p): New.
5254
5255 2004-09-13  James E Wilson  <wilson@specifixinc.com>
5256
5257         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
5258         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
5259         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
5260         bdesc_arrays instead of mips_bdesc.
5261         (mips_init_builtins): Likewise.
5262         * config/mips/mips.h (TARGET_SB1): New.
5263         (HAVE_SQRT_P): Delete.
5264         * config/mips/mips.md (divide_condition): Support V2SF.
5265         (sqrt_condition, recip_condition): New.
5266         (div<mode>3): Use ANYF instead of SCALARF.
5267         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
5268         MODE.
5269         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
5270         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
5271         instead of MODE.
5272         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
5273         instead of SCALARF.  Use UNITMODE instead of MODE.
5274
5275 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
5276
5277         * config.in: Regenerate after removal of libbanshee.
5278
5279 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
5280
5281         PR tree-optimization/17400
5282         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
5283         coalesce partitions when one occurs in an abnormal PHI.
5284
5285 2004-09-13  Andrew Pinski  <apinski@apple.com>
5286
5287         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
5288         name to _new_size.
5289
5290 2004-09-13  Richard Henderson  <rth@redhat.com>
5291
5292         PR inline-asm/6806
5293         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
5294         (cselib_invalidate_rtx_note_stores): New.
5295         (cselib_record_sets, cselib_process_insn): Update to match.
5296         * cselib.h (cselib_invalidate_rtx): Declare.
5297         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
5298
5299 2004-09-13  Richard Henderson  <rth@redhat.com>
5300
5301         PR tree-opt/10528
5302         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
5303         after copying its argument.
5304
5305 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
5306
5307         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
5308         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
5309         in diagnostics.  Use %' for English apostrophes.
5310         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
5311         (pedwarn_c90, pedwarn_c99): Use it.
5312         * c-decl.c (lookup_label): Quote label name in diagnostic.
5313         * c-parse.in (yyprint): Use ' instead of ` for left quote.
5314         * c-typeck.c (warn_for_assignment): Likewise.
5315
5316 2004-09-13  Jan Hubicka  <jh@suse.cz>
5317
5318         * i386.c (x86_schedule): New global variable.
5319         (override_options): Disable scheduling when not supported.
5320         * i386.h (x86_schedule): Declare.
5321         (TARGET_SCHEDULE): New macro.
5322
5323 2004-09-12  Richard Henderson  <rth@redhat.com>
5324
5325         PR c++/16254
5326         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
5327         * tree.c, tree.h (has_cleanups): Remove.
5328
5329 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5330
5331         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
5332         arguments of the phi nodes correctly.
5333
5334 2004-09-12  Jan Hubicka  <jh@suse.cz>
5335
5336         * ggc-common.c (cmp_statistics): Fix sorting.
5337
5338 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
5339
5340         PR target/16795
5341         * expmed.c (expand_divmod): If cheap power of 2 divide is
5342         available, use it for negative constant as well.
5343
5344 2004-09-12  Andrew Pinski  <apinski@apple.com>
5345
5346         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
5347         size of 0.
5348
5349         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
5350
5351 2004-09-12  Richard Henderson  <rth@redhat.com>
5352
5353         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
5354         or minus one.
5355         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
5356         post-reload, and scratch NULL.
5357         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
5358         (x86_shift_adj_2): Use ix86_expand_clear.
5359         (ashldi3): Remove CMOVE expansion difference.
5360         (ashldi3_1): Remove.
5361         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
5362         add constraints for immediates.  New peephole for split-with-temp.
5363         Run splitter after peep2 pass.
5364         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
5365         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
5366         (setcc_2): Rename with *.
5367         * config/i386/predicates.md (reg_or_pm1_operand): New.
5368         (ashldi_input_operand): New.
5369
5370 2004-09-12  Richard Henderson  <rth@redhat.com
5371
5372         * print-rtl.c (print_decl_name): New.
5373         (print_mem_expr): Use it.
5374
5375 2004-09-12  Richard Henderson  <rth@redhat.com
5376
5377         PR 17186, part deux
5378         * except.c (sjlj_emit_function_exit): Fix logic locating
5379         sjlj_exit_after in final block.
5380
5381 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
5382
5383         * common.opt: Remove flags -fmove-all-movables and
5384         -freduce-all-givs.
5385         * loop-invariant.c (find_invariants_to_move):
5386         Remove all uses of flag_move_all_movables.
5387         * loop.c (move_movables): Remove all uses of
5388         flag_move_all_movables.
5389         (strength_reduce): Remove all uses of
5390         flag_reduce_all_givs.
5391         * doc/invoke.texi: Remove documentation of flags
5392         -fremove-all-movables and -freduce-all-givs.
5393
5394 2004-09-11  Roger Sayle  <roger@eyesopen.com>
5395
5396         PR middle-end/17411
5397         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
5398         change. elt->type may be a floating point type, so use fold_convert.
5399
5400 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
5401
5402         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
5403         the thing referenced as used, not the stub itself.
5404
5405 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
5406
5407         * c-tree.h (enum c_storage_class): New.
5408         (struct c_declspecs): Add storage_class, inline_p and thread_p.
5409         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
5410         declarations and "auto" or "register" in file scope empty
5411         declarations.  Give more specific warnings for other cases of
5412         storage class specifiers in empty declarations.
5413         (grokdeclarator): Update for new structures.  Don't check for
5414         multiple storage classes.  Diagnose file-scope "register" if
5415         pedantic.
5416         (build_null_declspecs): Update.
5417         (declspecs_add_scspec): Update.  Diagnose multiple storage class
5418         specifiers and invalid uses of "__thread".
5419
5420 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
5421
5422         * tree.c (tree_code_size): New function, bulk of code from tree_size.
5423         (tree_size, make_node): Use it.
5424         * tree-ssa-pre.c (init_pre): Use it.
5425         * tree.h: Prototype it.
5426
5427 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5428
5429         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
5430         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
5431         redirect_immediate_use): Use PHI_DF.
5432         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
5433         (bb_for_stmt): Use PHI_BB.
5434         (get_immediate_uses): Use PHI_DF.
5435         * tree-ssa-dse.c (max_stmt_uid): New variable.
5436         (get_stmt_uid): New function.
5437         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
5438         node annotations.
5439         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
5440         (max_uid): Renamed to max_stmt_uid.
5441         (get_stmt_uid): New function.
5442         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
5443         phi node annotations.
5444         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
5445         * tree.h (PHI_BB, PHI_DF): New accessor functions.
5446         (struct tree_phi_node): Add bb and df fields.
5447
5448 2004-09-11  Richard Henderson  <rth@redhat.com>
5449
5450         PR middle-end/17416
5451         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
5452         in conflict loop.
5453
5454 2004-09-11  Jan Hubicka  <jh@suse.cz>
5455
5456         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
5457         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
5458         * i386.md (i387_cw): Add 'uninitialized' mode.
5459
5460         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
5461         (output_location): Break out from ....
5462         (branch_prob): ... here; handle gcov output on trees.
5463         * toplev.c (process_options): No longer be sorry about coverage for
5464         trees.
5465
5466 2004-09-11  Steven Bosscher  <stevenb@suse.de>
5467
5468         PR c++/17412
5469         * fold-const.c (fold): Do not try to fold the operand of a
5470         CLEANUP_POINT_EXPR if that operand does itself not have any
5471         operands.
5472
5473         PR middle-end/17417
5474         * langhooks.c (lhd_decl_printable_name): Make sure that this
5475         function is called with is a decl node that has an identifier.
5476         * tree-pretty-print.c (dump_function_name): New function to
5477         wrap PRINT_FUNCTION_NAME and dump_decl_name.
5478         (print_call_name): Use it.
5479
5480 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
5481
5482         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
5483         "config.h" if not.
5484
5485 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
5486
5487         * tree-ssa-alias.c (collect_points_to_info_r): Handle
5488         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
5489         to OFFSET.
5490
5491 2004-09-11  Richard Henderson  <rth@redhat.com>
5492
5493         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
5494         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
5495         operand of the ADDR_EXPR.
5496         (expand_expr_real_1): Update to match.
5497
5498 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
5499
5500         PR target/17277
5501         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
5502         choose 64-bit version.
5503
5504 2004-09-11  Richard Henderson  <rth@redhat.com>
5505
5506         PR c/17396
5507         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
5508
5509 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
5510
5511         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
5512         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
5513         Insert @: after i.e. or e.g.
5514
5515 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
5516
5517         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
5518         D.xxx rather than <Dxxx>.
5519
5520 2004-09-10  Adam Nemet  <anemet@lnxw.com>
5521
5522         * configure.ac (AC_MSG_CHECKING(what linker to use)):
5523         in_tree_ld_is_elf should be true for LynxOS.
5524         * configure: Regenerate.
5525
5526 2004-09-10  Adam Nemet  <anemet@lnxw.com>
5527
5528         * Makefile.in (all.cross): Add srcextra.
5529
5530 2004-09-10  Roger Sayle  <roger@eyesopen.com>
5531
5532         PR middle-end/17024
5533         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
5534         floating point comparison operators.  Change aborts to gcc_asserts.
5535
5536 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
5537
5538         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
5539
5540 2004-09-10  James E Wilson  <wilson@specifixinc.com>
5541
5542         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
5543         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
5544
5545         * convert.c (convert_to_vector): Replace recursive call with
5546         error_mark_node.
5547
5548         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
5549         Add integer argument named constant.  Use const_tiny_rtx instead of
5550         CONST0_RTX.
5551         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
5552         and CONST1_RTX.
5553         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
5554         vector types.
5555         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
5556         of gen_rtx_raw_CONST_VECTOR.
5557
5558 2004-09-10  Eric Christopher  <echristo@redhat.com>
5559
5560         PR c/16046
5561         * c-parse.in (attribute): Add NULL_TREE for error case
5562         for error recovery.
5563
5564 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
5565
5566         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
5567         (extract_interface_info): Delete prototype.
5568         * c-decl.c (extract_interface_info): Delete stub.
5569         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
5570         it's not already been done ...
5571         (init_c_lex): ... not here.
5572         (fe_file_change): Don't call extract_interface_info.
5573
5574 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
5575
5576         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
5577         typedef_p and typedef_signed_p.
5578         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
5579         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
5580         Check typedef_p and typedef_signed_p, not typedef_decl.
5581         (grokfield): Check typedef_p, not typedef_decl.
5582         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
5583         not typedef_decl.
5584         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
5585         typedef_decl.
5586
5587 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5588
5589         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
5590
5591 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
5592
5593         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
5594         temporary variables.
5595
5596         * dbxout.c (dbxout_block): Update for
5597         current_function_func_begin_label a string.
5598         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
5599         * except.c (dw2_output_call_site_table): Likewise.
5600         * toplev.c (current_function_func_begin_label): Likewise.
5601         * tree.h (current_function_func_begin_label): Likewise.
5602         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
5603
5604         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
5605         loop.
5606
5607         * config/darwin.c: Include target.h.
5608         (struct machopic_indirection): Make ptr_name a string.
5609         (machopic_indirection_hash): Update for ptr_name a string.
5610         (machopic_indirection_eq): Likewise.
5611         (machopic_indirection_name): Likewise.
5612         (machopic_output_indirection): Likewise.
5613         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
5614         string.  Don't expect stub names to be in the identifier hash table.
5615         Do call strip_name_encoding before looking up entry in ID hash table.
5616         * config/t-darwin (darwin.o): Add target.h to dependencies.
5617
5618         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
5619         of fprintf for register names.
5620
5621         * output.h (unlikely_section_label): Delete declaration.
5622         (unlikely_text_section_name): Likewise.
5623         * varasm.c (unlikely_section_label_printed): Make static.
5624         (unlikely_section_label): Likewise.
5625         (unlikely_text_section_name): Likewise.
5626         (assemble_start_function): Use reconcat.
5627
5628         * rtl.def (REG): Add comment to describe third field.
5629
5630 2004-09-10  Andrew Pinski  <apinski@apple.com>
5631
5632         * config/darwin.c (machopic_mcount_stub_name): Call
5633         machopic_indirection_name instead of making the string
5634         ourselves.
5635
5636 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
5637
5638         Revert
5639
5640         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
5641
5642             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
5643             memory tag is call clobbered, so are its aliases.
5644             (group_aliases): When two memory tags being grouped, if one is
5645             call clobbered, so are the other and its aliases.
5646             (add_may_alias): Remove call-clobbering stuff.
5647             (replace_may_alias): Likewise.
5648             (merge_pointed_to_info): Merge pt_global_mem
5649
5650 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5651
5652         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
5653         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
5654         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
5655         tree-scalar-evolution.c, tree-ssa-copyrename.c,
5656         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
5657
5658 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
5659
5660         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
5661         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
5662         pair.  Remove match_dup from inputs.  Remove masaccs handling.
5663         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
5664         (masaccs, mdasaccs): Turn into define_insns.
5665
5666 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
5667
5668         * tree-tailcall.c (process_assignment): Only do accumulator transforms
5669         for floating-point types if flag_unsafe_math_optimizations.
5670
5671 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5672
5673         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
5674         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
5675         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
5676         config/h8300/h8300.md, config/i386/gmm_malloc.h,
5677         config/ia64/ia64.md, config/ip2k/libgcc.S,
5678         config/mips/mips-ps-3d.md, config/mips/mips.c,
5679         config/rs6000/rs6000.c, config/s390/s390.c,
5680         config/sh/symbian.c: Fix comment typos.
5681
5682 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5683
5684         * config/s390/s390.c (s390_emit_prologue): Added missing
5685         "{}" brackets.
5686
5687 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5688
5689         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
5690         typos.  Follow spelling conventions.
5691
5692 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
5693
5694         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
5695         in diagnostic.  Don't dereference NULL TYPE_NAME.
5696
5697 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5698
5699         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
5700         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
5701         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
5702         value-prof.c: Fix comment typos.  Follow spelling conventions.
5703
5704 2004-09-10  Jan Hubicka  <jh@suse.cz>
5705
5706         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
5707         * tree-split_edge.c (tree_split_edge): Likewise.
5708         (thread_jumps): Likewise.
5709
5710 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5711
5712         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
5713         typos.
5714
5715 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
5716
5717         * cgraph.h (cgraph_dump_file): Do not declare.
5718         * cgraphunit.c (cgraph_dump_file): Declare as static.
5719         (init_cgraph): New.
5720         * toplev.c (cgraph_dump_file): Do not declare.
5721         (compile_file): Call init_cgraph.
5722         * tree-dump.c (dump_files): Add IPA dump file, remove
5723         XML dump of call graph.
5724         (get_dump_file_name): Support IPA dump file naming scheme.
5725         * tree.h (enum tree_dump_index): Add IPA dump file, remove
5726         XML dump of call graph.
5727         * doc/invoke.texi (Debugging Options): Document the new options.
5728
5729 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
5730
5731         * doc/extend.texi: Document the FR-V built-in functions.
5732
5733 2004-09-09  James E Wilson  <wilson@specifixinc.com>
5734
5735         * doc/sourcebuild.texi: Delete libbanshee reference.
5736
5737 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
5738
5739         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
5740
5741 2004-09-09  James E Wilson  <wilson@specifixinc.com>
5742
5743         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
5744         before calling vector_types_convertible_p.
5745         (digest_init): Check that inside_init has VECTOR_TYPE before calling
5746         vector_types_convertible_p.  Don't give another error if
5747         convert_for_assignment returns error_mark_node.
5748
5749 2004-09-09  Roger Sayle  <roger@eyesopen.com>
5750
5751         PR middle-end/17055
5752         * fold-const.c (build_zero_vector): New function to construct a
5753         vector (either floating point or integer) of zeros.
5754         (fold_convert): Internally, enable conversions of integer zero
5755         to arbitrary vector types, using the new build_zero_vector.
5756
5757 2004-09-09  Roger Sayle  <roger@eyesopen.com>
5758
5759         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
5760         expand a left shift by an immediate constant as either an ashl or
5761         a sequence of additions.
5762         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
5763         instead of calling gen_ashlsi3 with a constant directly.
5764
5765 2004-09-09  Roger Sayle  <roger@eyesopen.com>
5766
5767         * config/i386/i386.c (ix86_split_long_move): When optimizing for
5768         size, and the low and high parts of a DImode constant are equal,
5769         copy one register to another instead of loading the same immediate
5770         value twice.
5771
5772 2004-09-09  Richard Henderson  <rth@redhat.com>
5773
5774         PR middle-end/17367
5775         * function.c (assign_parm_setup_block): Only put PARALLELs into
5776         a register if use_register_for_decl.
5777
5778 2004-09-09  Eric Christopher  <echristo@redhat.com>
5779
5780         * ra-colorize.c (reset_lists): Move variable declaration inside
5781         ENABLE_CHECKING to avoid unused variable warnings when
5782         not --enable-checking.
5783         (check_colors): Ditto.
5784
5785 2004-09-09  Mike Stump  <mrs@apple.com>
5786
5787         * version.c (version_string): Bump to 4.0.0.
5788         * doc/include/gcc-common.texi (version-GCC): Likewise.
5789
5790 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
5791
5792         * doc/extend.texi (nothrow attribute): The attribute is not
5793         implemented in 3.2 and earlier.
5794
5795 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
5796
5797         * genrecog.c (compute_predicate_codes): Use op0_codes
5798         instead of codes.
5799
5800 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
5801
5802         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
5803         implementation changes.
5804
5805 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
5806
5807         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
5808         a PARALLEL instead of a SET due to added clobbers.
5809
5810 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
5811
5812         * reload.c (find_reloads_address): Pass correct operand to
5813         maybe_memory_address_p.
5814
5815 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
5816
5817         * Makefile.in: Remove libbanshee, tree-alias-*.
5818         Remove tree-alias-common.h dependencies.
5819         * common.opt: Remove -ftree-points-to.
5820         * configure.ac: Remove libbanshee.
5821         * flags.h: Remove pta_type, flag_tree_points_to.
5822         * gengtype.c (open_base_files): Remove tree-alias-type.h.
5823         * opts.c (OPT_ftree_points_to): Remove.
5824         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
5825         * tree-dfa.c: Remove tree-alias-common.h
5826         * tree-into-ssa.c: Ditto.
5827         * tree-outof-ssa.c: Ditto.
5828         * tree-ssa-copyrename.c: Ditto.
5829         * tree-ssa-live.c: Ditto.
5830         * tree-optimize.c: Ditto.
5831         * tree-ssa.c: Ditto.
5832         Remove pass_build_pta, pass_del_pta.
5833         * tree-pass.h: Ditto.
5834         * tree-ssa-alias.c: Remove tree-alias-common.h.
5835         (struct alias_stats_d): Remove pta_queries, pta_resolved.
5836         (pass_may_alias): Remove PROP_pta requirement.
5837         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
5838         (get_tmt_for): Ditto.
5839         (dump_alias_stats): Ditto.
5840         * doc/passes.texi: Remove blurb about points-to analysis.
5841         * fortran/Make-lang.in: Remove tree-alias-*.o.
5842
5843 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
5844
5845         * genattrtab.c (write_insn_cases): New function, split out from
5846         write_attr_case.  Correctly handle define_peepholes when printing
5847         the instruction name.
5848         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
5849
5850 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
5851
5852         PR target/17377
5853         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
5854         * config/cris/cris.c (cris_return_address_on_stack): New function.
5855         * config/cris/cris.md ("return"): For location of return address,
5856         also check cris_return_address_on_stack.
5857
5858 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
5859
5860         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
5861         calling phi_ssa_name_p.
5862
5863 2004-09-09  Richard Henderson  <rth@redhat.com>
5864
5865         PR c/17322
5866         * c-typeck.c (valid_compound_expr_initializer): Use only
5867         initializer_constant_valid_p, and not TREE_CONSTANT.
5868         (digest_init): Likewise.
5869         (output_init_element): Likewise.
5870
5871 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
5872
5873         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
5874         live_out_1, prune_hardregs_for_mode, init_one_web_common,
5875         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
5876         record_conflict, compare_and_free_webs, init_webs_defs_uses,
5877         parts_to_webs_1, parts_to_webs, reset_conflicts,
5878         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
5879         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
5880         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
5881         put_move, remove_move, combine, select_spill, colorize_one_web,
5882         try_recolor_web, insert_coalesced_conflicts, check_colors,
5883         break_precolored_alias, restore_conflicts_from_coalesce,
5884         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
5885         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
5886         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
5887         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
5888         check_df): Likewise.
5889         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
5890         real_arithmetic, real_compare, real_exponent, real_ldexp,
5891         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
5892         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
5893         real_digit, real_nan, real_maxval, round_for_format, real_convert,
5894         real_to_target, real_from_target, real_hash, encode_ieee_single,
5895         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
5896         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
5897         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
5898         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
5899         extract_insn, peep2_next_insn, peep2_reg_dead_p,
5900         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
5901         if_test_bypass_p): Likewise.
5902         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
5903         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
5904         emit_swap_insn, swap_to_top, move_for_stack_reg,
5905         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
5906         compensate_edge, convert_regs_1): Likewise.
5907         * regclass.c (init_reg_sets, init_reg_sets_1,
5908         memory_move_secondary_cost): Likewise.
5909         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
5910         Likewise.
5911         * reload.c (push_secondary_reload, find_valid_class, push_reload,
5912         operands_match_p, decompose, immune_p, find_reloads,
5913         find_reloads_toplev, find_reloads_address_1, subst_reloads,
5914         copy_replacements, refers_to_regno_for_reload_p,
5915         reg_overlap_mentioned_for_reload_p): Likewise.
5916         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
5917         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
5918         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
5919         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
5920         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
5921         do_output_reload, fixup_abnormal_edges): Likewise.
5922         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
5923         fill_slots_from_thread, relax_delay_slots): Likewise.
5924         * resource.c (mark_referenced_resources, mark_set_resources):
5925         Likewise.
5926         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
5927         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
5928         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
5929         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
5930         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
5931         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
5932         * rtlhooks.c (gen_lowpart_general): Likewise.
5933         * sbitmap.c (sbitmap_difference): Likewise.
5934         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
5935         sched_analyze, add_forward_dependence): Likewise.
5936         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
5937         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
5938         schedule_insns): Likewise.
5939         * sched-vis.c (print_pattern): Likewise.
5940         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
5941         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
5942         simplify_const_relational_operation, simplify_ternary_operation,
5943         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
5944         Likewise.
5945         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
5946         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
5947         resolve_operand_name_1, expand_return, expand_decl,
5948         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
5949         * stor-layout.c (put_pending_size, smallest_mode_for_size,
5950         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
5951         set_sizetype, get_mode_bounds): Likewise.
5952
5953 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
5954
5955         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
5956         * config/arm/pecoff.h, config/i386/beos-elf.h
5957         * config/i386/cygming.h, config/i386/i386-interix.h:
5958         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
5959         comment cloned from manual.
5960         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
5961
5962 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
5963
5964         * builtins.c (build_va_arg_indirect_ref): New function.
5965         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
5966         build_fold_indirect_ref.
5967         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
5968         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
5969         * tree.h: Declare new function.
5970
5971 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
5972
5973         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
5974         dumping for development builds.
5975         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
5976         development builds only.
5977         * genattrtab.c (write_eligible_delay): Fix typo in previous
5978         commit.
5979         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
5980         gcc_assert.
5981
5982 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
5983
5984         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
5985         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
5986         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
5987         hoist_code, extract_mentioned_regs_helper, compute_store_table,
5988         insert_store): Use gcc_assert and gcc_unreachable.
5989         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
5990         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
5991         ggc_record_overhead): Likewise.
5992         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
5993         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
5994         ggc_pop_context, clear_marks, validate_free_objects,
5995         ggc_pch_read): Likewise.
5996         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
5997         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
5998         ggc_push_context, check_cookies, ggc_collect,
5999         ggc_print_statistics): Likewise.
6000         * gimple-low.c (lower_function_body, lower_stmt,
6001         lower_bind_expr): Likewise.
6002         * gimplify.c (gimple_tree_eq, push_gimplify_context,
6003         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
6004         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
6005         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
6006         gimplify_case_label_expr, gimplify_exit_block_expr,
6007         canonicalize_component_ref, gimplify_compound_lval,
6008         gimplify_self_mod_expr, gimplify_call_expr,
6009         gimplify_init_ctor_eval, gimplify_init_constructor,
6010         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
6011         gimplify_expr, check_pointer_types_r,
6012         force_gimple_operand): Likewise.
6013         * global.c (global_alloc, build_insn_chain): Likewise.
6014         * graph.c (clean_graph_dump_file,
6015         finish_graph_dump_file): Likewise.
6016         gcov-io.c (gcov_open): Use GCOV_CHECK.
6017
6018 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6019
6020         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
6021
6022 2004-09-09  Jan Hubicka  <jh@suse.cz>
6023
6024         middle-end/17128
6025         * tree-inline.c (expand_call_inline): Make overactive sanity check
6026         happy.
6027
6028 2004-09-09  Jan Hubicka  <jh@suse.cz>
6029
6030         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
6031         VIEW_CONVERT_EXPR.
6032
6033 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6034
6035         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
6036         (gengtype.o): Depend on errors.h.
6037         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
6038         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
6039         attr_alt_subset_p, attr_alt_subset_of_compl_p,
6040         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
6041         write_test_expr, write_attr_value, write_eligible_delay,
6042         make_internal_attr, make_numeric_value): Likewise.
6043         * genautomata.c (regexp_name, get_str_vect,
6044         gen_presence_absence_set, automaton_decl_hash,
6045         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
6046         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
6047         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
6048         test_unit_reserv, it_is_empty_reserv_sets,
6049         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
6050         reserv_sets_and, output_cycle_reservs, get_free_state,
6051         intersected_state_reservs_p, states_union, remove_arc,
6052         copy_insn_regexp, transform_1, transform_2, transform_3,
6053         regexp_transform_func, store_alt_unit_usage,
6054         check_regexp_units_distribution, process_seq_for_forming_states,
6055         process_alts_for_forming_states, make_automaton,
6056         form_arcs_marked_by_insn, create_composed_state,
6057         set_out_arc_insns_equiv_num, partition_equiv_class,
6058         process_insn_equiv_class, set_insn_equiv_classes,
6059         units_to_automata_heuristic_distr, form_regexp,
6060         longest_path_length, output_dfa_max_issue_rate, add_vect,
6061         out_state_arcs_num, add_vect_el, output_trans_table,
6062         output_state_alts_table, output_dead_lock_vect,
6063         output_max_insn_queue_index_def,
6064         output_min_insn_conflict_delay_func,
6065         output_internal_insn_latency_func, output_print_reservation_func,
6066         output_cpu_unit_reservation_p, output_state_arcs,
6067         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
6068         make_default_insn_latency_attr,
6069         form_important_insn_automata_lists): Likewise.
6070         * genemit.c (gen_exp, output_add_clobbers,
6071         output_added_clobbers_hard_reg_p): Likewise.
6072         * genextract.c (print_path, main): Likewise.
6073         * genflags.c (gen_macro): Likewise.
6074         * gengenrtl.c: Include errors.h
6075         (type_from_format, accessor_from_format): Likewise.
6076         * gengtype.c (get_file_basename, output_mangled_typename,
6077         walk_type, write_types_process_field,
6078         write_types_local_process_field): Likewise.
6079         * genmodes.c (complete_mode): Likewise.
6080         * genopinit.c (gen_insn): Likewise.
6081         * genoutput.c (output_insn_data, check_constraint_len,
6082         constraint_len): Likewise.
6083         * genpreds.c (add_mode_tests):Likewise.
6084         * gen-protos.c (add_hash): Likewise.
6085         * genrecog.c (find_operand, find_matching_operand,
6086         validate_pattern, add_to_sequence, maybe_both_true,
6087         nodes_identical_1, merge_trees, write_switch, write_cond,
6088         write_action, is_unconditional, make_insn_sequence,
6089         debug_decision_2): Likewise.
6090         * gensupport.c (is_predicable, collect_insn_data,
6091         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
6092
6093 2004-09-09  Jan Hubicka  <jh@suse.cz>
6094
6095         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
6096         * cfgbuild.c (compute_outgoing_frequencies): When probability is
6097         missing, guess it.
6098         (find_many_sub_basic_blocks): Do update profile only when it is
6099         present.
6100         * predict.c (set_even_probabilities): Break out from ...
6101         (combine_predictions_for_insn): ... here; deal with
6102         !can_predict_insn_p insns.
6103         (combine_predictions_for_bb): Use set_even_probabilities.
6104         (bb_estimate_probability_locally): Break out from ....
6105         (estimate_probability): ... here.
6106         (guess_outgoing_edge_probabilities): New entry point.
6107
6108 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6109
6110         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
6111         handle_braces, process_brace_body, main, used_arg,
6112         set_multilib_dir, print_multilib_info): Use fatal, not abort.
6113
6114         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
6115
6116         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
6117         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
6118         Morgan's theorem in last checkin.
6119
6120 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6121             Nathan Sidwell  <nathan@codesourcery.com>
6122
6123         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
6124         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
6125         * timevar.c (timevar_push, timevar_pop, timevar_start,
6126         timevar_stop): Likewise.
6127         * toplev.c (default_pch_valid_p): Likewise.
6128         * tracer.c (tail_duplicate): Likewise.
6129         * tree-alias-common.c (get_alias_var_decl,
6130         get_values_from_constructor, create_alias_var, delete_alias_vars,
6131         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
6132         Likewise.
6133         * tree.c (tree_size, make_node_stat, copy_node_stat,
6134         build_int_cst_wide, integer_all_onesp, list_length, chainon,
6135         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
6136         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
6137         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
6138         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
6139         build_method_type_directly, decl_type_context, get_callee_fndecl,
6140         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
6141         tree_fold_gcd): Likewise.
6142         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
6143         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
6144         cleanup_control_expr_graph, find_taken_edge,
6145         find_taken_edge_switch_expr, phi_alternatives_equal,
6146         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
6147         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
6148         tree_split_edge, tree_verify_flow_info, thread_jumps,
6149         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
6150         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
6151         chrec_fold_multiply_poly_poly): Likewise.
6152         * tree-complex.c (extract_component, expand_complex_division,
6153         expand_complex_comparison, expand_complex_operations_1,
6154         build_replicated_const, expand_vector_operations_1): Likewise.
6155         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
6156         build_classic_dir_vector): Likewise.
6157         * tree-dfa.c (compute_immediate_uses_for_phi,
6158         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
6159         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
6160         * tree-dump.c (dequeue_and_dump): Likewise.
6161         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
6162         record_in_finally_tree, replace_goto_queue_1,
6163         maybe_record_in_goto_queue, verify_norecord_switch_expr,
6164         do_return_redirection): Likewise.
6165         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
6166         add_to_dst_predicate_list, find_phi_replacement_condition,
6167         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
6168         Likewise.
6169         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
6170         initialize_inlined_parameters, declare_return_variable,
6171         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
6172         optimize_inline_calls, copy_tree_r): Likewise.
6173         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
6174         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
6175         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
6176         tsi_split_statement_list_after, tsi_split_statement_list_before):
6177         Likewise.
6178         * tree-mudflap.c (mf_varname_tree): Likewise.
6179         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
6180         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
6181         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6182         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
6183         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
6184         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
6185         Likewise.
6186         * tree-phinodes.c (resize_phi_node, add_phi_arg,
6187         remove_all_phi_nodes_for): Likewise.
6188         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
6189         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
6190         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
6191         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
6192         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
6193         generate_one_element_ref, generate_element_copy,
6194         generate_element_zero, scalarize_copy, scalarize_init,
6195         scalarize_ldst): Likewise.
6196         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
6197         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
6198         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
6199         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
6200         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
6201         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
6202         widen_bitfield, ccp_fold_builtin): Likewise.
6203         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
6204         replace_exp_1, propagate_tree_value): Likewise.
6205         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
6206         * tree-ssa-dce.c (set_control_dependence_map_bit,
6207         find_control_dependence, find_pdom, mark_operand_necessary,
6208         mark_stmt_if_obviously_necessary,
6209         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
6210         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
6211         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
6212         eliminate_redundant_computations, avail_expr_eq): Likewise.
6213         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
6214         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
6215         duplicate_blocks): Likewise.
6216         * tree-ssa-loop-im.c (for_each_index, set_level,
6217         is_call_clobbered_ref): Likewise.
6218         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
6219         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
6220         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
6221         peel_address, ptr_difference_cost, may_replace_final_value,
6222         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
6223         rewrite_use, rewrite_uses): Likewise.
6224         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
6225         check_loop_closed_ssa_use): Likewise.
6226         * tree-ssanames.c (make_ssa_name): Likewise.
6227         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
6228         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
6229         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
6230         get_indirect_ref_operands, add_stmt_operand): Likewise.
6231         * tree-ssa-pre.c (value_exists_in_set_bitmap,
6232         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
6233         phi_translate, valid_in_set, compute_antic,
6234         find_or_generate_expression, create_expression_by_pieces, insert_aux,
6235         create_value_expr_from, eliminate): Likewise.
6236         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
6237         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
6238         Likewise.
6239         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
6240         eliminate_tail_call): Likewise.
6241         * tree-vectorizer.c (vect_create_index_for_array_ref,
6242         vect_align_data_ref, vect_create_data_ref,
6243         vect_create_destination_var, vect_get_vec_def_for_operand,
6244         vect_finish_stmt_generation, vect_transform_stmt,
6245         vect_transform_loop_bound, vect_transform_loop,
6246         vect_analyze_operations): Likewise.
6247         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
6248         Likewise.
6249         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
6250         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
6251         bsi_after_labels, bsi_last): Likewise.
6252         * tree-ssa-live.c (var_union, change_partition_var,
6253         create_ssa_var_map, calculate_live_on_entry, root_var_init,
6254         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
6255         Likewise.
6256         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
6257         tpa_find_tree): Likewise.
6258         (register_ssa_partition_check): Declare.
6259         (register_ssa_partition): use it.
6260         * tree-ssa-live.c: Include errors.h.
6261         (register_ssa_partition_check): New.
6262         * tree-ssa-operands.c: Include errors.h.
6263         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
6264
6265 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6266             Catherine Moore  <clm@redhat.com>
6267
6268         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
6269         (FRV_CPU_FR405): New processor enums.
6270         (frv_issue_rate, frv_acc_group): Declare.
6271         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
6272         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
6273         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
6274         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
6275         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
6276         handled by CPP_SPEC.
6277         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
6278         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
6279         (ACC_MASK): New macro.
6280         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
6281         (TARGET_MEDIA_FR450): New macro.
6282         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
6283         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
6284         (LABEL_ALIGN_AFTER_BARRIER): Define.
6285         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
6286         (IACC_FIRST, IACC_LAST): New pair of SPRs.
6287         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
6288         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
6289         (REGISTER_NAMES): Add entries for new registers.
6290         (REG_CLASS_CONTENTS): Update for new register ranges.
6291         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
6292         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
6293         (PACKING_FLAG_USED_P): Delete.
6294         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
6295         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
6296         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
6297         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
6298         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
6299         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
6300         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
6301         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
6302         (CPU_UNITS_QUERY): Define to 1.
6303         * config/frv/frv.c: Include gt-frv.h
6304         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
6305         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
6306         (frv_insn_group): New enumeration.
6307         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
6308         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
6309         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
6310         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
6311         gap left by REGSTATE_LIVE.
6312         (regstate_t): New typedef.
6313         (TARGET_MACHINE_DEPENDENT_REORG): Define.
6314         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
6315         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
6316         Initialize frv_unit_codes[] and frv_type_to_unit[].
6317         (frv_conditional_register_usage): Remove redundant fixing of
6318         accumulator registers.
6319         (frv_insn_packing_flag): Update specification.
6320         (frv_function_prologue): Don't set frv_insn_packing_flag here.
6321         Zero out frv_nops[].
6322         (frv_expand_epilogue): Remove comments about the no-longer-present
6323         SIBCALL_P argument.
6324         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
6325         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
6326         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
6327         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
6328         packing is disabled and if INSN can only issue to M1.
6329         (call_operand): Check TARGET_LONG_CALLS.
6330         (acc_operand, even_acc_operand, quad_acc_operand)
6331         (accg_operand): Simplify.  Don't accept pseudo registers.
6332         (output_move_single): Handle SPR<-zero moves.
6333         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
6334         (frv_registers_update, frv_registers_used_p): Delete.
6335         (frv_registers_set_p): Delete.
6336         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
6337         (frv_issues_to_branch_unit_p): New function.
6338         (frv_packet): New structure.
6339         (frv_cond_flags, frv_regstate_conflict_p): New functions.
6340         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
6341         (frv_registers_update_1, frv_registers_update): New functions.
6342         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
6343         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
6344         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
6345         (frv_sort_insn_group, frv_reorder_packet): New functions.
6346         (frv_pack_insns): Use frv_reorder_packet.
6347         (frv_packet_address): New variable.
6348         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
6349         (frv_register_nop, frv_reorg): New functions.
6350         (bdesc_1arg): Add __SCUTSS.
6351         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
6352         __SUBSS, __SLASS and __SCAN.
6353         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
6354         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
6355         (frv_init_builtins): Register the above builtins.
6356         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
6357         registers.  Turn the referenced accumulators into global registers.
6358         (frv_read_iacc_argument): New function.
6359         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
6360         (frv_split_iacc_move): New function.
6361         (frv_expand_builtin): Handle the new builtins.
6362         * config/frv/frv.md: Replace old schedulers with new order-independent
6363         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
6364         packing algorithm.
6365         (cpu): Add fr550, fr450 and fr405.
6366         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
6367         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
6368         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
6369         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
6370         (fnop, mnop): New patterns.
6371         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
6372         New constants.
6373         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
6374         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
6375         registers.
6376         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
6377         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
6378         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
6379         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
6380         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
6381         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
6382         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
6383         (frv_prefetch0, frv_prefetch): New patterns.
6384         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
6385         -mcpu=simple.  Add -mcpu=fr550.
6386         (MULTILIB_DIRNAMES): Update accordingly.
6387         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
6388         -mcpu=fr450.
6389         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
6390         -mlong-calls and -malign-labels options for FR-V.
6391
6392 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
6393
6394         PR c/8420
6395         * c-tree.h (struct c_declspecs): New.
6396         (struct c_declarator, struct c_type_name, struct c_parm): Update
6397         element types.
6398         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
6399         start_function, start_decl, build_c_parm,
6400         make_pointer_declarator): Update prototypes.
6401         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
6402         declspecs_add_scspec, declspecs_add_attrs): New.
6403         (split_specs_attrs): Remove.
6404         * c-parse.in (%union): Add dsptype.
6405         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
6406         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
6407         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
6408         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
6409         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
6410         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
6411         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
6412         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
6413         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
6414         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
6415         maybe_type_quals_attrs): Change to dsptype.
6416         (struct c_declspec_stack): New.
6417         (current_declspecs, declspec_stack): Change type.
6418         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
6419         structures.
6420         (extdefs): Likewise.
6421         (setspecs): Likewise.
6422         (fndef): Use current_declspecs for empty declspecs list.
6423         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
6424         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
6425         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
6426         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
6427         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
6428         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
6429         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
6430         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
6431         structures and helper functions.  Update comments.
6432         (typespec_nonattr): Correct comment.
6433         (maybe_type_quals_attrs, typename): Update to new structures.
6434         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
6435         shadow_tag, shadow_tag_warned, start_function, start_decl,
6436         build_c_parm, make_pointer_declarator,
6437         set_array_declarator_inner, groktypename): Update to new
6438         structures.
6439         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
6440         declspecs_add_scspec, declspecs_add_attrs): New.
6441         (split_specs_attrs): Remove.
6442         (shadow_tag_warned): Make warning for useless type names a
6443         pedwarn.  Give hard error for long, short, signed, unsigned or
6444         _Complex used with struct, union or enum in empty declaration.
6445         Make found_tag a bool.
6446         (grokdeclarator): Remove checks now done at parse time.
6447
6448 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
6449
6450         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
6451         c_declarator, struct c_type_name, struct c_parm): New.
6452         (build_array_declarator, set_array_declarator_inner,
6453         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
6454         start_function, start_decl, build_c_parm, build_attrs_declarator,
6455         build_function_declarator, make_pointer_declarator, c_cast_expr,
6456         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
6457         (build_id_declarator): New.
6458         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
6459         structures.
6460         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
6461         ARG_INFO_OTHERS): Remove.
6462         (build_id_declarator): New.
6463         (build_array_declarator, set_array_declarator_inner, groktypename,
6464         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
6465         grokfield, start_function, store_parm_decls_newstyle,
6466         store_parm_decls_oldstyle, store_parm_decls,
6467         build_c_parm, build_attrs_declarator, build_function_declarator,
6468         make_pointer_declarator, grokdeclarator): Update to new
6469         structures.
6470         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
6471         parmtype.
6472         (declarator, notype_declarator, after_type_declarator,
6473         parm_declarator, parm_declarator_starttypename,
6474         parm_declarator_nostarttypename, array_declarator, typename,
6475         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
6476         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
6477         parmlist_1, parmlist_2, parmlist_or_identifiers,
6478         parmlist_or_identifiers_1): Use these types.
6479         (primary, after_type_declarator, parm_declarator_starttypename,
6480         notype_declarator, component_decl, component_declarator,
6481         component_notype_declarator, typename, absdcl,
6482         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
6483         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
6484
6485 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
6486
6487         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
6488         in_typeof, record_maybe_used_decl, pop_maybe_used,
6489         c_expr_sizeof_expr, c_expr_sizeof_type): New.
6490         * c-decl.c (parser_obstack): New.
6491         (c_init_decl_processing): Initialize parser_obstack.
6492         (c_write_global_declarations_1): Check for used but undefined
6493         static functions.
6494         * c-parse.in (%union): Add otype.
6495         (save_obstack_position): New.
6496         (extdefs): Use it.
6497         (unary_expr): Update in_sizeof and in_alignof.  Use
6498         c_expr_sizeof_expr and c_expr_sizeof_type.
6499         (sizeof): Update in_sizeof.
6500         (alignof): Update in_alignof.
6501         (typeof): Update in_typeof.
6502         (typespec_nonreserved_nonattr): Call pop_maybe_used.
6503         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
6504         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
6505         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
6506         (build_external_ref): Set C_DECL_USED or call
6507         record_maybe_used_decl if appropriate.
6508         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
6509
6510 2004-09-08  Eric Christopher  <echristo@redhat.com>
6511
6512         * builtins.c: Fix prototype for fold_builtin_atan.
6513
6514 2004-09-08  Eric Christopher  <echristo@redhat.com>
6515
6516         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
6517         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
6518         fold_builtin_atan): New functions. Migrate function bodies...
6519         (fold_builtin_1): ... from here.
6520
6521 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
6522
6523         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
6524         save_size.
6525
6526 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
6527
6528         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
6529         * config/rs6000/power5.md (power5-lmul): Same.
6530
6531 2004-09-08  Richard Henderson  <rth@redhat.com>
6532
6533         PR rtl-opt/17186
6534         * function.c (expand_function_end): Have fall-off-the-end
6535         return path jump around return register setup.
6536
6537 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6538
6539         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
6540         (output_return): Do not test for the presence of the 'unimp' insn.
6541         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
6542         as predicates instead of custom ones.  Return raw strings when
6543         possible.
6544         (output_sibcall): Likewise.  Concatenate strings.
6545         (output_ubranch): Remove kludge for TurboSPARC.
6546         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
6547         (output_v9branch): Likewise.
6548         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
6549         <#>: Set sparc_indent_opcode if the delay slot is filled.
6550         <(>: Likewise.
6551         <)>: New operand to emit the displacement from the saved PC on return.
6552         <@>: Remove.
6553         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
6554         (ASM_OUTPUT_OPCODE): New macro.
6555         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
6556         * config/sparc/sparc.md (normal_branch, inverted_branch,
6557         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
6558         inverted_fpe_branch): Adjust call to output_cbranch.
6559         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
6560         call to output_v9branch.
6561         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
6562         (output_v9branch): Likewise.
6563
6564 2004-09-08  Devang Patel  <dpatel@apple.com>
6565
6566         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
6567         -segs_read_only_addr and -segs_read_write_addr.
6568         (WORD_SWITCH_TAKES_ARG): Same.
6569         (LINK_SPEC): Same.
6570         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
6571         -segs_read_write_addr.
6572
6573 2004-09-08  Richard Henderson  <rth@redhat.com>
6574
6575         * function.c (reference_callee_copied): New.
6576         (assign_parm_setup_reg): Use it.
6577         * calls.c (initialize_argument_information): Likewise.
6578         (emit_library_call_value_1): Likewise.
6579         * function.h (reference_callee_copied): Declare.
6580
6581         * target.h (struct gcc_target): Add callee_copies.
6582         * target-def.h (TARGET_CALLEE_COPIES): New.
6583         (TARGET_PASS_BY_REFERENCE): Update default.
6584         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6585         * targhooks.c (hook_callee_copies_named): New.
6586         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
6587         hook_pass_by_reference_false.
6588         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
6589         * targhooks.h: Update decls.
6590         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
6591         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6592         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
6593         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
6594         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6595         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
6596         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6597         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
6598         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6599         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
6600         (mips_callee_copies): New.
6601         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6602         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
6603         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6604         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
6605         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6606         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
6607         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6608         * config/sh/sh.c (sh_callee_copies): New.
6609         (TARGET_CALLEE_COPIES): New.
6610         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6611         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
6612         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6613         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
6614         for FUNCTION_ARG_CALLEE_COPIES.
6615         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
6616
6617 2004-09-08  Devang Patel  <dpatel@apple.com>
6618
6619         * tree-if-conv.c (find_phi_replacement_condition): Return true
6620         edge block.
6621         (replace_phi_with_cond_modify_expr): Select conditional expr args
6622         based on true edge basic block.
6623
6624 2004-09-08  Jan Hubicka  <jh@suse.cz>
6625
6626         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
6627         variables being alias set.
6628
6629 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6630
6631         * final.c (shorten_branches, final, get_insn_template,
6632         output_alternate_entry_point, final_scan_insn, alter_subreg,
6633         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
6634         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
6635         * fix-header.c (lookup_std_proto): Likewise.
6636         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
6637         verify_local_live_at_start, update_life_info, mark_reg,
6638         calculate_global_regs_live, allocate_reg_life_data,
6639         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
6640         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
6641         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
6642         * fold-const.c (force_fit_type, div_and_round_double,
6643         may_negate_without_overflow_p, int_const_binop, const_binop,
6644         size_binop, size_diffop, fold_convert_const, fold_convert,
6645         invert_tree_comparison, swap_tree_comparison,
6646         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
6647         range_binop, make_range, fold_cond_expr_with_comparison,
6648         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
6649         fold_abs_const, fold_not_const, fold_relational_const, round_up,
6650         round_down): Likewise.
6651         * function.c (find_function_data, assign_stack_temp_for_type,
6652         instantiate_virtual_regs_lossage, aggregate_value_p,
6653         assign_parm_find_entry_rtl, assign_parm_setup_block,
6654         expand_function_start, expand_function_end, keep_stack_depressed,
6655         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
6656
6657 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
6658
6659         * Makefile.in (tree-loop-linear.o): Added.
6660         (OBJS-common): Add tree-loop-linear.o
6661         * common.opt: New flag, ftree-loop-linear.
6662         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
6663         * tree-flow.h: Add prototype for linear_transform_loops.
6664         * tree-optimize.c: Add linear transform after vectorization.
6665         * tree-pass.h: Add struct pass_linear_transform.
6666         * tree-ssa-loop.c: Add pass_linear_transform.
6667         * tree-loop-linear.c: New file.
6668         * lambda-code.c: gcc_assertify.
6669         (gcc_loop_to_lambda_loop): Handle all exit tests.
6670         Handle case where we have (invariant >= induction var).
6671         (find_induction_var_from_exit_cond): Ditto.
6672
6673 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
6674
6675         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
6676         memory tag is call clobbered, so are its aliases.
6677         (group_aliases): When two memory tags being grouped, if one is
6678         call clobbered, so are the other and its aliases.
6679         (add_may_alias): Remove call-clobbering stuff.
6680         (replace_may_alias): Likewise.
6681         (merge_pointed_to_info): Merge pt_global_mem
6682
6683 2004-09-08  Jan Hubicka  <jh@suse.cz>
6684
6685         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
6686         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
6687         (cgraph_expand_function): Remove stale cgraph edges of currently
6688         compiled function; fix non-unit-at-a-time code copying function
6689         node for later reuse.
6690
6691 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6692
6693         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
6694         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
6695         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
6696         (vec_gc_free, vec_heap_free): New.
6697         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
6698         (DEF_VEC_P): Add allocator argument. Adjust.
6699         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
6700         (DEF_VEC_O): Add allocator argument. Adjust.
6701         (VEC(free)): New.
6702
6703         * tree.h (tree): Define a GC'd vector.
6704         * lamba-code.c (lambda_loop): Likewise.
6705         * value-prof.h (histogram_value): Likewise.
6706
6707 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6708
6709         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
6710         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
6711         gen_lowpart_common, gen_highpart, gen_highpart_mode,
6712         subreg_highpart_offset, operand_subword, operand_subword_force,
6713         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
6714         set_mem_alias_set, change_address_1, verify_rtx_sharing,
6715         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
6716         try_split, add_insn_after, add_insn_before, remove_insn,
6717         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
6718         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
6719         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
6720         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
6721         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
6722         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
6723         record_path_before_1, check_path_after_1, check_path_after): Likewise.
6724         * except.c (gen_eh_region, resolve_one_fixup_region,
6725         remove_unreachable_regions, convert_from_eh_region_ranges_1,
6726         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
6727         connect_post_landing_pads, sjlj_emit_function_exit,
6728         remove_exception_handler_label, remove_eh_handler,
6729         reachable_next_level, collect_one_action_chain,
6730         output_function_exception_table): Likewise.
6731         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
6732         optimize_save_area_alloca, allocate_dynamic_stack_space,
6733         probe_stack_range, hard_function_value): Likewise.
6734         * expmed.c (mode_for_extraction, store_bit_field,
6735         store_fixed_bit_field, extract_bit_field, expand_shift,
6736         expand_mult_const, expand_mult, choose_multiplier,
6737         expand_mult_highpart, expand_divmod, emit_store_flag,
6738         do_cmp_and_jump): Likewise.
6739         * expr.c (convert_move, convert_modes, move_by_pieces,
6740         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
6741         move_block_from_reg, gen_group_rtx, emit_group_load,
6742         emit_group_move, emit_group_store, use_reg, use_regs,
6743         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
6744         emit_move_insn, emit_move_insn_1, emit_push_insn,
6745         expand_assignment, store_expr, count_type_elements,
6746         store_constructor, store_field, safe_from_p, expand_var,
6747         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
6748
6749 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6750
6751         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
6752         gcc_assert and gcc_unreachable.
6753         * ddg.c (create_ddg_dependence, add_deps_for_def,
6754         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
6755         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
6756         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
6757         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
6758         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
6759         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
6760         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
6761         dataflow_set_copy, hybrid_search, diagnostic.c,
6762         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
6763         * dojump.c (do_jump): Likewise.
6764         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
6765         compute_dom_fast_query, calculate_dominance_info,
6766         free_dominance_info, get_immediate_dominator,
6767         set_immediate_dominator, get_dominated_by,
6768         redirect_immediate_dominators, nearest_common_dominator,
6769         dominated_by_p, verify_dominators, recount_dominator,
6770         iterate_fix_dominators, add_to_dominance_info,
6771         delete_from_dominance_info): Likewise.
6772         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
6773         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
6774         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
6775         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
6776         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
6777         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
6778         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
6779         output_call_frame_info, output_loc_operands, build_cfa_loc,
6780         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
6781         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
6782         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
6783         splice_child_die, attr_checksum, same_dw_val_p,
6784         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
6785         unmark_dies, value_format, output_loc_list, output_die,
6786         output_pubnames, output_aranges, base_type_die, is_base_type,
6787         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
6788         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
6789         field_byte_offset, add_data_member_location_attribute,
6790         add_const_value_attribute, rtl_for_decl_location,
6791         add_location_or_const_value_attribute, add_byte_size_attribute,
6792         add_bit_offset_attribute, add_bit_size_attribute,
6793         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
6794         decl_start_label, gen_formal_parameter_die,
6795         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
6796         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
6797         force_decl_die, force_type_die, gen_decl_die,
6798         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
6799         dwarf2out_finish): Likewise.
6800
6801 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
6802
6803         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
6804         * builtins.c: Include tree-mudflap.h.
6805
6806 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
6807
6808         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
6809         force operand 0.0 into register in XFmode. Also do not force
6810         operand 0.0 into register if !TARGET_CMOVE.
6811         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
6812         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
6813         implement ftst x87 instruction.
6814         (*fp_jcc_7): New insn pattern. Change corresponding split
6815         pattern to handle "general_operand" instead of
6816         "nonimmediate_operand".
6817
6818 2004-09-08  Ben Elliston  <bje@au.ibm.com>
6819
6820         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
6821
6822 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
6823
6824         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
6825         generated from standard va_arg expansion.
6826         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
6827         marked nodes.
6828         (mf_varname_tree, mf_file_function_line_tree): Add some support
6829         for column numbers if compiled with USE_MAPPED_LOCATION.
6830
6831 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
6832
6833         * c-decl.c (groktypename_in_parm_context): Remove function.
6834         * c-tree.h (groktypename_in_parm_context): Remove prototype.
6835
6836 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
6837
6838         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
6839         * c-parse.in: Include c-common.h instead of objc-act.h.
6840         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
6841         myparms, myparm): Remove %type declarations.
6842         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
6843         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
6844         declarations.
6845         (objc_inherit_code, objc_public_flag): Remove.
6846         (typespec_nonreserved_nonattr): Call
6847         objc_get_protocol_qualified_type() instead of get_static_reference()
6848         and get_protocol_reference().
6849         (stmt_nocomp): Call grokparm() on @catch parameter.
6850         (objcdef): Move semantic action to objc_finish_implementation().
6851         (classdef): Move semantic action to objc_start_class_interface(),
6852         objc_continue_interface(), objc_finish_interface(),
6853         objc_start_class_implementation(), objc_continue_implementation(),
6854         objc_start_category_interface() and
6855         objc_start_category_implementation().
6856         (protocoldef): Move semantic actions to objc_start_protocol() and
6857         objc_finish_interface().
6858         (ivar_decl_list): Remove nonterminal.
6859         (visibility_spec): Move semantic actions to objc_set_visibility().
6860         (ivar_decls): Remove assignment to $$.
6861         (ivar_decl): Rephrase in terms of component_decl; call
6862         objc_add_instance_variable().
6863         (ivars, ivar_declarator): Remove nonterminals.
6864         (opt_semi): New nonterminal.
6865         (methodtype): Remove semantic actions.
6866         (methoddef): Move semantic actions to objc_set_method_type(),
6867         objc_start_method_definition() and objc_finish_method_definition().
6868         (methodproto): Move semantic actions to objc_set_method_type() and
6869         objc_add_method_declaration().
6870         (methoddecl): Use objc_typename instead of typename; move semantic
6871         actions to objc_build_method_signature().
6872         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
6873         (optparmlist): Express in terms of optparms and optellipsis.
6874         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
6875         nonterminals.
6876         (keyworddecl): Use objc_typename instead of typename.
6877         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
6878         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
6879
6880 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
6881
6882         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
6883         (MD_FALLBACK_FRAME_STATE_FOR): Update.
6884         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
6885         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
6886         (MD_FROB_UPDATE_CONTEXT): Remove default.
6887         (uw_update_context_1): Instead #ifdef invocation.
6888         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
6889         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
6890         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
6891         (MD_UNWIND_SUPPORT): Undefine this instead.
6892         * config/i386/gnu.h: Likewise.
6893         * config/alpha/linux-unwind.h: New file, macro converted to
6894         function, extracted from..
6895         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
6896         (MD_UNWIND_SUPPORT): Define.
6897         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
6898         * config/i386/linux-unwind.h, config/i386/linux.h,
6899         config/i386/linux64.h: Likewise.
6900         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
6901         MD_HANDLE_UNWABI too.
6902         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
6903         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
6904         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
6905         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
6906         * config/sparc/linux-unwind.h, config/sparc/linux.h,
6907         config/sparc/linux64.h: Likewise.
6908         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
6909         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
6910         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
6911         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
6912         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
6913
6914 2004-09-07  Jan Hubicka  <jh@suse.cz>
6915
6916         * cse.c (fold_rtx):  Avoid building of
6917         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
6918
6919         * tree-ssa-pre.c (grand_bitmap_obstack): New.
6920         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
6921         (init_pre): Initialize obstack.
6922         (fini_pre): Free obstack.
6923
6924 2004-09-07  David Daney  <ddaney@avtrex.com>
6925
6926         * config.gcc: Added support for --with-divide=[breaks|traps] for
6927         mips targets.
6928         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
6929         (TARGET_DIVIDE_TRAPS): New macro.
6930         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
6931         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
6932         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
6933         GENERATE_DIVIDE_TRAPS.
6934         (mips_output_division): Emit conditional trap if
6935         GENERATE_DIVIDE_TRAPS is set.
6936         * doc/install.texi: Document --with-divide.
6937         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
6938
6939 2004-09-07  Caroline Tice  <ctice@apple.com>
6940
6941         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
6942         EDGE_CROSSING, to flags test case.
6943
6944 2004-09-07  Jan Hubicka  <jh@suse.cz>
6945
6946         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
6947         class too.
6948
6949 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
6950
6951         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
6952         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
6953         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
6954         or gcc_unreachable.
6955         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
6956         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
6957         alloc_aux_for_edges, free_aux_for_edges): Likewise.
6958         * cfgcleanup.c (try_forward_edges,
6959         merge_blocks_move_predecessor_nojumps,
6960         merge_blocks_move_successor_nojumps): Likewise.
6961         * cfgexpand.c (expand_gimple_cond_expr,
6962         expand_gimple_tailcall): Likewise.
6963         * cfghooks.c (duplicate_block): Likewise.
6964         * cfglayout.c (record_effective_endpoints,
6965         insn_locators_initialize, change_scope, fixup_reorder_chain,
6966         verify_insn_chain, fixup_fallthru_exit_predecessor,
6967         duplicate_insn_chain, cfg_layout_finalize): Likewise.
6968         * cfgloopanal.c (check_irred): Likewise.
6969         * cfgloop.c (superloop_at_depth, flow_loops_free,
6970         flow_loop_entry_edges_find, flow_loops_find,
6971         flow_loop_outside_edge_p, get_loop_body,
6972         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
6973         get_loop_exit_edges, num_loop_branches, cancel_loop,
6974         verify_loop_structure): Likewise.
6975         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
6976         duplicate_loop_to_header_edge, create_preheader,
6977         create_loop_notes): Likewise.
6978         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
6979         edirect_branch_edge, force_nonfallthru_and_redirect,
6980         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
6981         commit_edge_insertions, commit_edge_insertions_watch_calls,
6982         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
6983         cfg_layout_redirect_edge_and_branch_force,
6984         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
6985         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
6986         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
6987         cgraph_varpool_node): Likewise.
6988         * cgraphunit.c (cgraph_finalize_function,
6989         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
6990         cgraph_expand_function, cgraph_remove_unreachable_nodes,
6991         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
6992         cgraph_mark_inline, cgraph_expand_all_functions,
6993         cgraph_build_static_cdtor): Likewise.
6994         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
6995         simplify_logical, distribute_notes, insn_cuid): Likewise.
6996         * conflict.c (conflict_graph_add, print_conflict): Likewise.
6997         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
6998         coverage_checksum_string): Likewise.
6999         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
7000         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
7001         cse_cc_succs, cse_condition_code_reg): Likewise.
7002         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
7003         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
7004         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
7005         cselib_record_set): Likewise.
7006
7007 2004-09-07  Jan Hubicka  <jh@suse.cz>
7008
7009         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
7010
7011 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7012
7013         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
7014         fold_convert.
7015         (fold_builtin_strpbrk): Likewise.
7016         * expr.c (array_ref_low_bound): Likewise.
7017         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
7018         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
7019         * tree-sra.c (generate_element_zero): Likewise.
7020         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
7021         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
7022         add_old_iv_candidates, add_iv_candidates): Likewise.
7023         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
7024
7025 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7026
7027         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
7028         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
7029         c_expand_expr, boolean_increment, nonnull_check_p,
7030         check_function_arguments_recurse, fold_offsetof_1): Likewise.
7031         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
7032         builtin_define_type_max): Likewise.
7033         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
7034         implicit_decl_warning, builtin_function, build_compound_literal,
7035         complete_array_type, grokdeclarator, get_parm_info,
7036         start_function, store_parm_decls_oldstyle,
7037         c_write_global_declarations): Likewise.
7038         * c-format.c (get_constant, decode_format_attr,
7039         maybe_read_dollar_number, get_flag_spec, check_format_arg,
7040         check_format_types, format_type_warning,
7041         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
7042         init_dynamic_diag_info, handle_format_attribute): Likewise.
7043         * c-gimplify.c (push_context, pop_context, finish_bc_block):
7044         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
7045         * c-objc-common.c (c_tree_printer): Likewise.
7046         * c-pch.c (pch_init): Likewise.
7047         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
7048         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
7049         * c-typeck.c (c_incomplete_type_error, composite_type,
7050         common_pointer_type, common_type, same_translation_unit_p,
7051         tagged_types_tu_compatible_p, finish_init, pop_init_level,
7052         set_designator, set_nonincremental_init_from_string,
7053         process_init_element, c_finish_if_stmt): Likewise.
7054         * caller-save.c (init_caller_save, save_call_clobbered_regs,
7055         insert_restore, insert_save, insert_one_insn): Likewise.
7056         * calls.c (emit_call_1, compute_argument_block_size,
7057         precompute_arguments, expand_call, emit_library_call_value_1,
7058         store_one_arg): Likewise.
7059
7060 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7061
7062         * configure.ac (enable-checking): Add release option. Reorganize
7063         to avoid repetition.
7064         * configure: Rebuilt.
7065         * doc/install.texi (enable-checking): Amend documentation.
7066
7067 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
7068
7069         PR bootstrap/17313
7070         * Makefile.in (specs.ready): Depend on cc1$(exeext).
7071
7072 2004-09-06  James E Wilson  <wilson@specifixinc.com>
7073
7074         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
7075         movdf_hardfloat_32bit): Split fG into two alternatives.
7076         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
7077
7078         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
7079
7080 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7081
7082         * final.c (output_in_slot): Delete.
7083         (final_scan_insn): Revert 2004-09-03 change.
7084         (output_asm_insn): Likewise.
7085         * config/sparc/sparc.c (output_return): Likewise.
7086         (output_sibcall): Likewise.
7087
7088 2004-09-06  Jan Hubicka  <jh@suse.cz>
7089
7090         * loop.c (loop_dump_aux): Do not print RTL when not available.
7091         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
7092         frontend specific type nodes.
7093         (produce_memory_decl_rtl): Break out from ...
7094         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
7095         (get_computation_at): Avoid random tree sharing.
7096         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
7097
7098 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
7099
7100         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
7101         unnecessary commands.
7102
7103 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
7104
7105         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
7106         (bitmap.o): Likewise.
7107
7108 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
7109
7110         Unify the management of RTL and tree-level dump files.
7111
7112         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
7113         Don't print function name to the dump file, the pass manager
7114         would do this for us. Add code from the top of
7115         rest_of_compilation, up to the initial RTL dump.
7116         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
7117         close the DFI_sibling dump file.
7118         (rest_of_compilation): Don't do that here.  Remove code up to the
7119         initial RTL dump.
7120         (init_optimization_passes): Remove.
7121         (pass_rest_of_compilation): Change pass name to NULL.
7122         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
7123         Do not call init_optimization_passes.
7124         * toplev.h (init_optimization_passes): Remove.
7125
7126         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
7127         finish_graph_dump_file): Remove SUFFIX parameter.
7128         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
7129         finish_graph_dump_file): Likewise.
7130
7131         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
7132         * cfgexpand.c (pass_expand): Adjust.
7133         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
7134         * passes.c (pass_rest_of_compilation): Adjust.
7135         * predict.c (pass_profile): Adjust.
7136         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
7137         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
7138         pass_split_crit_edges, pass_warn_function_return): Adjust.
7139         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
7140         * tree-dfa.c (pass_referenced_vars): Adjust.
7141         * tree-eh.c (pass_lower_eh): Adjust.
7142         * tree-if-conv.c (pass_build_ssa): Adjust.
7143         * tree-into-ssa.c (pass_build_ssa): Adjust.
7144         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
7145         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
7146         * tree-nrv.c (pass_nrv): Adjust.
7147         * tree-optimize.c (pass_gimple, pass_all_optimizations,
7148         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
7149         pass_init_datastructures): Adjust.
7150         * tree-outof-ssa.c (pass_del_ssa): Adjust.
7151         * tree-profile.c (pass_tree_profile): Adjust.
7152         * tree-sra.c (pass_sra): Adjust.
7153         * tree-ssa-alias.c (pass_may_alias): Adjust.
7154         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
7155         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
7156         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
7157         * tree-ssa-dom.c (pass_dominator): Adjust.
7158         * tree-ssa-dse.c (pass_dse): Adjust.
7159         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
7160         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
7161         * tree-ssa-loop-ch.c (pass_ch): Adjust.
7162         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
7163         pass_loop_done, pass_complete_unroll, pass_iv_canon,
7164         pass_iv_optimize, pass_vectorize): Adjust.
7165         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
7166         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
7167         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
7168         pass_late_warn_uninnitialized): Adjust.
7169         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
7170
7171         * Makefile.in (tree-dump.o): Add new dependencies.
7172         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
7173         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
7174         Likewise.
7175         * toplev.c (dump_file_name): New.
7176         * tree-dump.c (dump_enable_all): Add LETTER parameter.
7177         (struct dump_file_info): Add NUM and LETTER fields.
7178         (dump_files): Adjust and add RTL dump files.
7179         (dump_register): Add NUM and LETTER fields.
7180         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
7181         (dump_begin): Use get_dump_file_name.
7182         (dump_switch_p_1): Adjust call to dump_enable_all.
7183         * tree-dump.h (dump_register): Adjust prototype.
7184         * tree-optimize.c (register_one_dump_file): Take dump file index.
7185         Support flags for RTL dumps.
7186         (register_dump_files): Fill in NUM field of struct dump_file_info.
7187         Track properties both when the gate is executed and when it is not.
7188         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
7189         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
7190         dumps of RTL.
7191         * tree-pass.h (dump_file_name): New.
7192         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
7193         New.
7194
7195         * Makefile.in (passes.o): Add new dependencies.
7196         * passes.c (struct dump_file_info, enum dump_file_index,
7197         dump_file_tbl, init_optimization_passes): Remove.
7198         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
7199         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
7200         dump_enabled_p.
7201         (finish_optimization_passes): Update finish_graph_dump_file loop.
7202         (enable_rtl_dump_file): Remove.
7203         * tree-dump.c (dump_files): Adjust and add RTL dump files.
7204         (enable_rtl_dump_file): Add here.
7205         * tree.h (enum tree_dump_index): Add RTL dump file indices.
7206         * doc/invoke.texi (Debugging options): Document new RTL debugging
7207         options.  Update.
7208
7209 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
7210
7211         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
7212         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
7213         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
7214         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
7215         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
7216         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
7217         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
7218         vec.h: Fix comment formatting.
7219
7220 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
7221
7222         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
7223         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
7224         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
7225         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
7226         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
7227         tree-ssa-loop-niter.c, tree-ssa-operands.c,
7228         tree-ssa-operands.h, tree-ssa-propagate.c,
7229         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
7230         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
7231
7232 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
7233
7234         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
7235         vectorizer is enabled.
7236
7237 2004-09-05  Andreas Jaeger  <aj@suse.de>
7238
7239         * tree-if-conv.c: Spell check comments and clean up whitespace.
7240
7241 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7242
7243         * tree-ssa-loop-ivopts.c: New file.
7244         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
7245         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
7246         target_pres_cost, target_spill_cost): Declare.
7247         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
7248         spill_cost): Renamed to ...
7249         (target_avail_regs, target_res_regs, target_small_cost,
7250         target_pres_cost, target_spill_cost): ... and exported.
7251         (init_set_costs, global_cost_for_size): Work with renamed variables.
7252         * common.opt (flag_ivopts): New flag.
7253         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
7254         REF_ORIGINAL.
7255         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
7256         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
7257         generating SSA form.
7258         (force_gimple_operand): New function.
7259         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
7260         * tree-cfg.c (stmt_bsi): New function.
7261         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
7262         PARAM_IV_MAX_CONSIDERED_USES): New.
7263         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
7264         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
7265         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
7266         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
7267         * tree-nested.c (build_addr): Export.
7268         * tree-optimize.c (init_tree_optimization_passes): Add
7269         pass_iv_optimize.
7270         * tree-pass.h (pass_iv_optimize): Declare.
7271         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
7272         IMAGPART_EXPR.
7273         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
7274         as a phi node argument.
7275         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
7276         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
7277         functions.
7278         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
7279         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
7280         pass_iv_optimize): New pass.
7281         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
7282         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
7283         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
7284         * tree.h (REF_ORIGINAL): New macro.
7285         (build_int_cst_type, unsigned_type_for, zero_p,
7286         cst_and_fits_in_hwi, build_addr): Declare.
7287         * doc/invoke.texi (-fivopts): Document.
7288         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
7289         PARAM_IV_MAX_CONSIDERED_USES): Document.
7290         * doc/passes.texi: Document induction variable optimizations pass.
7291
7292 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7293
7294         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
7295         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
7296         * c-common.c (c_common_attribute_table): Accept parameters to
7297         sentinel attribute.
7298         (check_function_sentinel, handle_sentinel_attribute): Likewise.
7299         * doc/extend.texi: Update accordingly.
7300
7301 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7302
7303         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
7304         New.
7305         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
7306         attribute.
7307         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
7308         New functions.
7309         (c_common_attribute_table): Add `sentinel' attribute.
7310         (check_function_arguments): Handle `sentinel' attribute.
7311         * doc/extend.texi: Document `sentinel' attribute.
7312
7313 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
7314
7315         * configure: Regenerated.
7316
7317 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7318
7319         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
7320
7321         * tree.c (save_expr): No longer TREE_READONLY.
7322
7323 2004-09-04  Jan Hubicka  <jh@suse.cz>
7324
7325         * passes.c (rest_of_clean_state):  Fix merge conflict made during
7326         commiting the patch.
7327
7328 2004-09-04  Jan Hubicka  <jh@suse.cz>
7329
7330         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
7331
7332 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
7333
7334         * doc/md.texi (shift patterns): New anchor.  Add reference to
7335         TARGET_SHIFT_TRUNCATION_MASK.
7336         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
7337         * target.h (shift_truncation_mask): New target hook.
7338         * targhook.h (default_shift_truncation_mask): Declare.
7339         * targhook.c (default_shift_truncation_mask): Define.
7340         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
7341         (TARGET_INITIALIZER): Include it.
7342         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
7343         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
7344         reject all out-of-range values.  Fix sign-extension code for modes
7345         whose width is smaller than HOST_BITS_PER_WIDE_INT.
7346         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
7347         (expand_superword_shift, expand_subword_shift): Likewise.
7348         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
7349         (expand_binop): Use them to implement double-word shifts.
7350         * config/arm/arm.c (arm_shift_truncation_mask): New function.
7351         (TARGET_SHIFT_TRUNCATION_MASK): Define.
7352
7353 2004-09-04  Jan Hubicka  <jh@suse.cz>
7354
7355         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
7356         (mix): New macro copied from hashtab.c
7357         (iterative_hash_hashval_t, iterative_hash_pointer,
7358         iterative_hash_host_wide_int): New functions based on hashtab.c
7359         implementation.
7360
7361 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
7362
7363         * config/mips/mips.md (mask): New mode attribute.
7364         (zero_extendsidi2): Add memory alternative.
7365         (*zero_extendsidi2_mem): Delete.
7366         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
7367         memory_operand in the TARGET_MIPS16 check.
7368         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
7369         Redefine using :GPR and :SHORT.
7370         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
7371
7372 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
7373
7374         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
7375         using rint_optab.
7376         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
7377         expand_builtin_mathfn.
7378         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
7379         btrunc?f patterns for btrunc_optab. Implement rint_optab using
7380         rint?f patterns.
7381         * optabs.c (init_optabs): Initialize rint_optab.
7382         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
7383         Add new OTI_rint.
7384         (btrunc_optab): Rename macro from trunc_optab.
7385         (rint_optab): Define corresponding macro.
7386
7387         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
7388         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
7389
7390         * config/i386/i386-protos.h (emit_i387_cw_initialization):
7391         Change prototype. Add new int parameter.
7392         * config/i386/i386.c (emit_i387_cw_initialization):
7393         Handle new rounding modes.
7394
7395         * config/i386/i386.h (enum fp_cw_mode): Delete.
7396         (MODE_NEEDED): Handle new rounding modes.
7397         (EMIT_MODE_SET): Change condition to handle new rounding modes.
7398
7399         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
7400         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
7401         represent different rounding modes of frndint insn.
7402         (type): Add frndint type.
7403         (i387, length, memory): Handle this type.
7404         (i387_cw): New attribute definition.
7405         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
7406         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
7407         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
7408         Add "i387_cw" attribute defined to "trunc".
7409         (x86_fnstcw_1): Remove comment.
7410         (*frndintxf2): Rename insn definition to frndintxf2. Move
7411         insn definition near rint?f2 expanders.
7412         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
7413         rintf and rintl built-ins as inline x87 intrinsics.
7414         (frndintxf2_floor): New pattern to implement floor rounding
7415         mode with frndint x87 instruction.
7416         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
7417         floorf and floorl built-ins as inline x87 intrinsics.
7418         (frndintxf2_ceil): New pattern to implement ceil rounding
7419         mode with frndint x87 instruction.
7420         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
7421         ceilf and ceill built-ins as inline x87 intrinsics.
7422         (frndintxf2_trunc): New pattern to implement trunc rounding
7423         mode with frndint x87 instruction.
7424         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
7425         truncf and truncl built-ins as inline x87 intrinsics.
7426         (frndintxf2_mask_pm): New pattern to implement rounding
7427         mode with exceptions with frndint x87 instruction.
7428         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
7429         implement nearbyint, nearbyintf and nearbyintl built-ins as
7430         inline x87 intrinsics.
7431
7432 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
7433
7434         * config/mips/mips.md (SHORT): New mode macro.
7435         (size): New mode attribute.
7436         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
7437         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
7438         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
7439         !ISA_HAS_SEB_SEH.
7440         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
7441         *extend[qh]isi2_hw patterns and extending them to di.
7442         (extendqihi2): Implement as define_insn_and_split that produces
7443         extendqisi2 after reload.
7444
7445 2004-09-03  Devang Patel  <dpatel@apple.com>
7446
7447         * Makefile.in (OBJS-common): Add tree-if-conv.o
7448         (tree-if-conv.o): New rule.
7449         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
7450         (get_loop_body_in_bfs_order): New.
7451         * cfgloop.h (get_loop_body_in_bfs_order): New.
7452         * tree-flow.h (enum move_pos): Move here from ..
7453         * tree-ssa-loop-im.c (enum move_pos): here.
7454         (movement_possibility): Make externally visible.
7455         * tree-optimize.c (init_tree_optimization_passes): New entry for
7456         if conversion pass.
7457         * tree-pass.h (pass_if_conversion): New.
7458         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
7459         * tree-if-conv.c: New file.
7460         * doc/passes.texi: Document tree if-conversion pass.
7461         * doc/tree-ssa.texi: Same.
7462
7463 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
7464
7465         PR target/14925:
7466         Makefile.in (LIB2ADDEHSTATIC): New.
7467         (LIB2ADDEHSHARED): New.
7468         (LIBUNWIND): New.
7469         (LIBUNWINDDEP): New.
7470         (SHLIBUNWIND_LINK): New.
7471         (SHLIBUNWIND_INSTALL): New.
7472         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
7473         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
7474         (clean): Remove libunwind*
7475         (stage1-start): Remove and copy stage1/libunwind*.
7476         (stage2-start): Remove and copy stage2/libunwind*.
7477         (stage3-start): Remove and copy stage3/libunwind*.
7478         (stage4-start): Remove and copy stage4/libunwind*.
7479         (stageprofile-start): Remove and copy stageprofile/libunwind*.
7480         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
7481
7482         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
7483         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
7484         tmake_file if --with-system-libunwind isn't used.
7485
7486         * config/ia64/t-glibc-libunwind: New file.
7487         * config/t-libunwind-elf: Likewise.
7488         * unwind-compat.c: Likewise.
7489         * unwind-compat.h: Likewise.
7490         * unwind-dw2-fde-compat.c: Likewise.
7491
7492         * config/ia64/t-glibc (LIB2ADDEH): Updated.
7493         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
7494
7495         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
7496         aliases if needed.
7497         * unwind-dw2-fde-glibc.c: Likewise.
7498         * unwind-dw2.c: Likewise.
7499
7500         * config/t-libunwind (LIB2ADDEH): Updated.
7501         (LIB2ADDEHSTATIC): New.
7502         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
7503         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
7504
7505         * configure.ac: Change --enable-libunwind-exceptions to
7506         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
7507         * configure: Regenerated.
7508         * config.in: Updated.
7509
7510         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
7511         above and mention --with-system-libunwind.
7512         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
7513         removed in gcc 3.4.3 and later.
7514
7515         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
7516         USE_LIBUNWIND_EXCEPTIONS is defined.
7517
7518         * mklibgcc.in: Support libunwind.
7519
7520 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
7521
7522         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
7523         m_NOCONA.
7524
7525 2004-09-03  Richard Henderson  <rth@redhat.com>
7526
7527         PR middle-end/9997
7528         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
7529         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
7530         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
7531         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
7532         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
7533         resize_stack_vars_conflict, add_stack_var_conflict,
7534         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
7535         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
7536         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
7537         expand_one_static_var, expand_one_hard_reg_var,
7538         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
7539         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
7540         (expand_used_vars): Rewrite.
7541         * Makefile.in (cfgexpand.o): Update dependencies.
7542
7543 2004-09-04  Jan Hubicka  <jh@suse.cz>
7544
7545         * cfg.c (free_edge): Use ggc_free.
7546         (expunge_block): Use ggc_free.
7547         * passes.c (rest_of_clean_state): Free after compilation.
7548         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
7549         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
7550
7551 2004-09-03  James E Wilson  <wilson@specifixinc.com>
7552
7553         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
7554         DECL_EXTERNAL check.
7555
7556 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7557
7558         * final.c (output_in_slot): New global variable.
7559         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
7560         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
7561         'output_in_slot' before invoking output_asm_insn.
7562         (output_asm_insn): Add a space after the tab if 'output_in_slot'
7563         is set.
7564         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
7565         final_scan_insn.
7566         (output_sibcall): Likewise.
7567
7568 2004-09-03  Jan Hubicka  <jh@suse.cz>
7569
7570         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
7571         * tree-ssanames (init_ssanames): Likewise.
7572
7573 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
7574
7575         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
7576         objc_declare_protocols, objc_start_protocol,
7577         objc_start_class_interface, objc_start_category_interface,
7578         objc_continue_interface, objc_finish_interface,
7579         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
7580         objc_start_class_implementation, objc_start_category_implementation,
7581         objc_continue_implementation, objc_finish_implementation,
7582         objc_add_method_declaration, objc_start_method_definition,
7583         objc_finish_method_definition, objc_build_keyword_decl,
7584         objc_build_method_signature, objc_build_encode_expr,
7585         objc_build_protocol_expr, objc_build_selector_expr,
7586         objc_build_message_expr, objc_build_string_object,
7587         objc_get_class_reference, objc_get_protocol_qualified_type,
7588         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
7589
7590 2004-09-03  James E Wilson  <wilson@specifixinc.com>
7591
7592         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
7593
7594         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
7595         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
7596         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
7597         (mips_recip1_<fmt>): Use frdiv1 type.
7598         (mips_recip2_<fmt>): Use frdiv2 type.
7599         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
7600         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
7601         and frsqrt1.
7602         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
7603
7604 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
7605
7606         * reload.c (find_reloads): Swap operand_loc pointers for
7607         find_dummy_reload if we have swapped two operands.
7608
7609 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
7610
7611         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
7612         to get the tablejump-insn before the jump-table label.
7613
7614 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
7615
7616         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
7617         objc_declare_protocols, objc_build_message_expr,
7618         objc_finish_message_expr, objc_build_selector_expr,
7619         objc_build_protocol_expr, objc_build_encode_expr,
7620         objc_build_string_object, objc_get_protocol_qualified_type,
7621         objc_get_class_reference, objc_get_class_ivars,
7622         objc_start_class_interface, objc_start_category_interface,
7623         objc_start_protocol, objc_continue_interface, objc_finish_interface,
7624         objc_start_class_implementation, objc_start_category_implementation,
7625         objc_continue_implementation, objc_finish_implementation,
7626         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
7627         objc_add_method_declaration, objc_start_method_definition,
7628         objc_finish_method_definition, objc_add_instance_variable,
7629         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
7630         objc_finish_try_stmt, objc_begin_catch_clause,
7631         objc_finish_catch_clause, objc_build_finally_clause,
7632         objc_build_synchronized, objc_static_init_needed_p,
7633         objc_generate_static_init_call): New prototypes.
7634
7635 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
7636
7637         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
7638         is only one reg.
7639         (ia64_function_value): Ditto.
7640
7641 2004-09-03  Jan Beulich  <jbeulich@novell.com>
7642
7643         * config.gcc: Resurrect NetWare as a target. Handle special case of
7644         Novell linker to be used (specified through --with-ld=) and threading
7645         model of either Posix (default) or NKS.
7646         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
7647         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
7648         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
7649         * config/i386/netware.c, config/i386/netware.h: New.
7650         * config/i386/nwld.c, config/i386/nwld.h: New.
7651         * config/i386/netware-crt0.c: New.
7652         * config/i386/netware-libgcc.c: New.
7653         * config/i386/netware-libgcc.def: New.
7654         * config/i386/netware-libgcc.exp: New.
7655         * config/i386/t-netware, config/i386/t-nwld: New.
7656         * gthr-nks.h: New.
7657         * doc/install.texi: Document NKS threading model.
7658
7659 2004-09-03  Jan Beulich  <jbeulich@novell.com>
7660
7661         PR c/7054
7662         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
7663         * tree.h (initial_max_fld_align): Declare
7664         * stor-layout.c (initial_max_fld_align): Define and initialize.
7665         (maximum_field_alignment): Initialize to the same value.
7666         * common.opt: Add -fpack-struct= variant of switch.
7667         * opts.c: Handle -fpack-struct= variant of switch.
7668         * c-pragma.c: Change #pragma pack() handling so that it becomes
7669         compatible to other compilers: accept individual 'push' argument,
7670         make final pop restore (command line) default, correct interaction
7671         of push/pop and sole specification of a new alignment (so that the
7672         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
7673         to #pragma pack(push, <n>).
7674         * doc/extend.texi: New node "Structure-Packing Pragmas" under
7675         "Pragmas", describing #pragma pack.
7676         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
7677         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
7678         Document new TARGET_DEFAULT_PACK_STRUCT.
7679
7680 2004-09-03  Devang Patel  <dpatel@apple.com>
7681
7682         * dwarf2out.c (gen_field_die). Equate decl number to die.
7683
7684 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
7685
7686         PR target/15832
7687         * global.c (modify_reg_pav): New function.
7688         (make_accurate_live_analysis): Call the new function.  Move pavin
7689         modification by earlyclobber set into the new function.
7690
7691 2004-09-03  Andreas Schwab  <schwab@suse.de>
7692
7693         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
7694         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
7695         extended.
7696
7697 2004-09-02  Jan Beulich  <jbeulich@novell.com>
7698
7699         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
7700         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
7701         not unwind code specific ones.
7702         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
7703         Remove unwind code specific dependencies.
7704         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
7705         Remove gbl-ctors.h.
7706         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
7707         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
7708         * tsystem.h: Declare memcpy and memset when inhibit_libc.
7709
7710 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
7711
7712         * combine.c (try_combine): Delay modifying of insns which cannot
7713         be easily undone.
7714
7715 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
7716
7717         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
7718         tree-loop-im.
7719         * gcc/tree-ssa-loop.c: Ditto
7720         * gcc/tree-ssa-loop-ivcanon.c: Ditto
7721         * gcc/doc/invoke.texi: Ditto.
7722
7723 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
7724
7725         * c-decl.c (store_parm_decls_newstyle): Make static.
7726         (store_parm_decls_from): New function.
7727         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
7728         (store_parm_decls_from): New prototype.
7729
7730 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
7731
7732         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
7733         HImode with STRICT_ALIGNMENT.
7734
7735 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
7736
7737         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
7738         (TARGET_OS_CPP_BUILTINS): Likewise.
7739         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
7740         TARGET_BPABI_CPP_BUILTINS.
7741
7742 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
7743
7744         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
7745
7746 2004-09-02  Eric Christopher  <echristo@redhat.com>
7747
7748         * builtins.c (expand_builtin_cabs): Delete.
7749         (expand_builtin): If unable to fold the values do a normal
7750         library call for builtin_cab*.
7751         (fold_builtin_cabs): Depend on optimize and optimize_size.
7752         * optabs.c (expand_cmplxdiv_straight): Delete.
7753         (expand_cmplxdiv_wide): Ditto.
7754         (expand_vector_binop): Ditto.
7755         (expand_vector_unop): Ditto.
7756         (expand_complex_abs): Delete.
7757         (expand_binop): Remove calls to above functions.
7758         Remove open coding of complex arithmetic.
7759         (expand_unop): Ditto.
7760         * optabs.h: Remove prototypes.
7761
7762 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
7763
7764         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
7765         * c-tree.h (store_parm_decls_newstyle): New prototype.
7766
7767 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
7768
7769         * config/rs6000/rs6000.c (expand_block_clear): Use vector
7770         instructions if available.
7771         (expand_block_move): Likewise.
7772
7773 2004-09-03  Jan Hubicka  <jh@suse.cz>
7774
7775         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
7776
7777 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
7778
7779         * config/arm/symbian.h (LIB_SPEC): Define to empty.
7780         * config/arm/t-symbian (SHLIB_LC): Likewise.
7781
7782 2004-09-02  Paul Brook  <paul@codesourcery.com>
7783
7784         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
7785
7786 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
7787
7788         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
7789         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
7790         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
7791         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
7792         (mips_issue_rate): Remove unreachable abort.
7793         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
7794         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
7795         (mips_block_move_straight, print_operand_address, mips_file_start)
7796         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
7797         (mips_output_conditional_branch, mips_expand_builtin_direct)
7798         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
7799         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
7800         with gcc_assert.
7801
7802 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
7803
7804         * config/mips/mips.md (*lea_high64): Change split condition to
7805         flow2_completed.  Add a peephole2 to generate a more parallel version.
7806
7807 2004-09-02  Jan Hubicka  <jh@suse.cz>
7808
7809         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
7810         GGC.
7811
7812         * ggc-page.c: include tree-flow.h.
7813         (extra_order_size_table): Add stmt_ann_d.
7814         (STAT_LABEL): Rename from ....
7815         (LABEL): ... this one.
7816         * Makefile.in (ggc-page.o): Add dependency.
7817
7818         * ggc-common.c (ggc_force_collect): New global variable.
7819         (loc_description): Add fields "freed", "collected"
7820         (ptr_hash): New static hash
7821         (ptr_hash_entry): New structure.
7822         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
7823         (ggc_record_overhead): Take ptr argument, record it
7824         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
7825         (cmp_statistics): Imrove sorting.
7826         (dump_ggc_loc_statistics): Output newly collected statistics
7827         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
7828         (ggc_free): Call ggc_free_overhead.
7829         (ggc_collect): Force collection when asked to be forced.
7830         (ggc_collect): Call ggc_prune_overhead_list.
7831         * ggc.h (ggc_force_collect): Declare
7832         (ggc_record_overhead): Update prototype.
7833         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
7834
7835 2004-09-02  James E Wilson  <wilson@specifixinc.com>
7836
7837         * common.opt (ftrapping-math): Default to on.
7838
7839 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
7840
7841         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
7842
7843 2004-09-02  Denis Chertykov  <denisc@overta.ru>
7844
7845         PR target/16884
7846         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
7847         match_scratch.
7848         (*movmemqi_insn): Likewise.
7849         (*movmemhi): Likewise.
7850         (clrmemhi): Likewise.
7851         (*clrmemqi): Likewise.
7852         (*clrmemhi): Likewise.
7853
7854 2004-09-02  Paul Brook  <paul@codesourcery.com>
7855
7856         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
7857         default_use_cxa_atexit=yes.
7858
7859 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
7860
7861         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
7862         (struct kernel_old_ucontext): Delete.
7863         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
7864         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
7865         when IN_LIGGCC2.
7866
7867 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
7868
7869         * toplev.c (process_options): Fix typo.
7870
7871 2004-09-01  Richard Henderson  <rth@redhat.com>
7872
7873         PR middle-end/17258
7874         * calls.c (initialize_argument_information): Tighten pass-through
7875         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
7876         Use build_fold_addr_expr.
7877         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
7878         that assumes ADDR_EXPR allocates stack space.
7879         * fold-const.c (build_fold_addr_expr_with_type): Look through
7880         WITH_SIZE_EXPR.
7881
7882 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
7883
7884         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
7885         * ggc.h (ggc_alloc_rtx): Delete.
7886
7887 2004-09-01  Roger Sayle  <roger@eyesopen.com>
7888
7889         * expmed.c (enum alg_code): Remove long unused enumeration values.
7890         (struct mult_cost): New structure to hold the "score" of a synthetic
7891         multiply sequence, including both a rtx_cost and a latency field.
7892         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
7893         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
7894         (struct algorithm): Change type of cost field to be mult_cost.
7895         (synth_mult): Change type of cost_limit argument to be a
7896         pointer to a mult_cost.  Update all cost comparisons to use the
7897         new mult_cost infrastructure.  For alg_add_factor and
7898         alg_sub_factor operations, latency is lower than the rtx_cost.
7899         (choose_mult_variant):  Update calls to synth_mult.  Perform
7900         cost comparisons using the new mult_cost infrastructure.
7901         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
7902         to optain the total rtx_cost of a synth_mult "algorithm".
7903
7904 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
7905
7906         * config/rs6000/power4.md: Increase store latency to 12.
7907         * config/rs6000/power5.md: Same.
7908
7909 2004-09-01  James E Wilson  <wilson@specifixinc.com>
7910
7911         PR target/14064
7912         * config/avr/avr.c (avr_unique_section): Delete prototype and
7913         definition.
7914         (TARGET_ASM_UNIQUE_SECTION): Delete.
7915
7916 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
7917
7918         * c-parse.in (primary): Call objc_build_message_expr(),
7919         objc_build_selector_expr(), objc_build_protocol_expr(),
7920         objc_build_encode_expr() and objc_build_string_object() instead of
7921         build_message_expr(), build_selector_expr(), build_protocol_expr(),
7922         build_encode_expr() and build_objc_string_object(), respectively.
7923         (component_decl_list2): Call objc_get_class_ivars() instead of
7924         get_class_ivars_from_name().
7925         (keyworddecl): Call objc_build_keyword_decl() instead of
7926         build_keyword_decl().
7927         (receiver): Call objc_get_class_reference() instead of
7928         get_class_reference().
7929         (reswords): Add blank line before @@ifobjc section, for clarity.
7930
7931 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
7932
7933         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
7934         to Altivec vetors.
7935
7936 2004-09-01  Wu Yongwei  <adah@sh163.net>
7937             Danny Smith  <dannysmith@users.sourceforge.net>
7938
7939         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
7940         not Windows 'DWORD'.
7941         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
7942         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
7943         (__gthr_win32_recursive_mutex_init_function): Add prototype for
7944         __GTHREAD_HIDE_WIN32API case..
7945         (__gthr_win32_recursive_mutex_lock): Likewise.
7946         (__gthr_win32_recursive_mutex_trylock): Likewise.
7947         (__gthr_win32_recursive_mutex_unlock): Likewise.
7948         (__gthread_recursive_mutex_init_function); Add definition for
7949         __GTHREAD_HIDE_WIN32API case.
7950         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
7951         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
7952         call to InterlockedDecrement.
7953
7954 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7955
7956         * tree-tailcall.c (find_tail_calls): Also fail is statement has
7957         volatile operands.
7958
7959         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
7960
7961         * doc/c-tree.texi: Document new operands for ARRAY_REF and
7962         COMPONENT_REF.
7963
7964 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7965
7966         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
7967         * common.opt (fspeculative-prefetching): New.
7968         * flags.h (flag_speculative_prefetching_set): Declare.
7969         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
7970         values.
7971         * opts.c (flag_sepculative_prefetching_set): New variable.
7972         (common_handle_option): Handle -fspeculative-prefetching.
7973         * passes.c (rest_of_compilation): Ditto.
7974         * profile.c (instrument_values, compute_value_histograms, branch_prob):
7975         Use vectors instead of arrays.
7976         * toplev.c (process_options): Handle -fspeculative-prefetching.
7977         * rtl-profile.c: Include ggc.h.
7978         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
7979         rtl_gen_one_value_profiler_no_edge_manipulation,
7980         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
7981         argument changed.
7982         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
7983         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
7984         argument changed.
7985         * value-prof.c: Include ggc.h.
7986         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
7987         macros.
7988         (insn_prefetch_values_to_profile, find_mem_reference_1,
7989         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
7990         speculative_prefetching_transform): New.
7991         (value_profile_transformations): Call speculative_prefetching_transform.
7992         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
7993         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
7994         tree_find_values_to_profile, find_values to profile): Use vectors
7995         instead of arrays.
7996         (free_profiled_values): Removed.
7997         * value-prof.h (struct histogram_value): Renamed to
7998         struct histogram_value_t.
7999         (histogram_value, histogram_values): New types.
8000         (find_values_to_profile): Declaration changed.
8001         (free_profiled_values): Removed.
8002         (struct profile_hooks): Type of argument of the hooks changed to
8003         histogram_value.
8004         * doc/invoke.texi (-fspeculative-prefetching): Document.
8005
8006 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8007
8008         PR rtl-optimization/16408
8009         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
8010
8011 2004-09-01  Richard Henderson  <rth@redhat.com>
8012
8013         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
8014         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
8015
8016 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8017
8018         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
8019
8020 2004-09-01  Mike Stump  <mrs@apple.com>
8021
8022         * config/darwin.c (machopic_symbol_defined_p): In addition to
8023         being SYMBOL_REF_LOCAL_P, a symbol must also be
8024         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
8025         defined in this output file, or translation unit in the case
8026         of IMA not being used.
8027         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
8028         never need .indirect_symbol when indirecting.
8029
8030 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8031
8032         * Makefile.in (bb-reorder.o): Add several dependencies.
8033
8034 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8035
8036         * fold-const.c (operand_equal_p): Require equal sign also for
8037         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
8038
8039 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8040
8041         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
8042         for use in configargs.h.  Put the cname in a separate variable.  Use
8043         that to set target_cpu_default2.
8044
8045 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
8046             Nick Clifton  <nickc@redhat.com>
8047
8048         * config/sh/sh.md ("length"): Increase branch length when
8049         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
8050         constant, 2 byte for aligning the constant.
8051
8052 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8053
8054         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
8055         CPU.
8056         (arm7tdmi-s): New CPU name.
8057         * arm/arm.c (ARM_CORE): Update for new format.
8058         * arm/arm.h (ARM_CORE): Likewise.
8059         * arm/gentune.sh: Update for extra field.
8060         * config.gcc: Likewise.
8061         * arm/arm-tune.md: Regenerate.
8062         * doc/invoke.texi: Document the real processor names for ARM cpus.
8063
8064 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8065
8066         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
8067         (floatdidf): New functions.
8068         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
8069         (floatdisf): New functions.
8070         * t-arm-elf: Use them.
8071
8072 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
8073
8074         * c-common.h (lookup_interface): Remove prototype.
8075         (is_class_name): Rename to objc_is_class_name.
8076         (lookup_objc_ivar): Rename to objc_lookup_ivar.
8077         (get_current_scope): Rename to objc_get_current_scope.
8078         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
8079         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
8080         (yylexname): Call objc_is_class_name() instead of is_class_name().
8081         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
8082         instead of lookup_objc_ivar().
8083         * stub-objc.c (lookup_interface): Remove stub.
8084         (is_class_name): Rename to objc_is_class_name.
8085         (lookup_objc_ivar): Rename to objc_lookup_ivar.
8086
8087 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8088
8089         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
8090         * config/arm/lib1funcs.asm: Do not include supplemental .S files
8091         when compiling for Symbian.
8092         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
8093         (TARGET_OS_CPP_BUILTINS): Likewise.
8094         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
8095
8096 2004-08-31  Stan Shebs  <shebs@apple.com>
8097
8098         * toplev.c (process_options): Ensure debug_hooks is initialized.
8099
8100 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8101
8102         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
8103         * target.h (cxx): Add export_class_data.
8104         * config/arm/arm.c (arm_cxx_export_class_data): New function.
8105         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
8106         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
8107
8108 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
8109
8110         * config/sh/sh.c (output_branch): Check the insn length possibly
8111         in the delayed slot.
8112
8113 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8114
8115         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
8116         blank after ')'.
8117         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
8118
8119         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
8120         (c_sizeof_of_alignof_type): Likewise.
8121         * expr.c (array_ref_element_size): Likewise.
8122         (highest_pow2_factor_for_target): Likewise.
8123         * gimplify.c (canonicalize_addr_expr): Likewise.
8124         (gimplify_compound_lval): Likewise.
8125         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
8126         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
8127         * varasm.c (assemble_variable): Likewise.
8128         (output_constant_def_contents): Alignments are unsigned.
8129
8130 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8131             Jeff Law  <law@redhat.com>
8132
8133         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
8134         gets modified.
8135
8136 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8137
8138         * hooks.c (hook_bool_void_true): New function.
8139         * hooks.h (hook_bool_void_true): Declare.
8140         * target-def.h (TARGET_CXX): Add
8141         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
8142         * target.h (struct cxx): Add key_method_may_be_inline.
8143         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
8144         function.
8145         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
8146         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
8147         __THUMB_INTERWORK.
8148
8149 2004-08-31  Denis Chertykov  <denisc@overta.ru>
8150
8151         PR target/15417
8152         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
8153         frame pointer register only in Pmode while reload in progress.
8154
8155 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
8156
8157         PR target/15334
8158         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
8159         because it breaks the 32-bit shift patterns that rely on a match_dup.
8160
8161 2004-08-31  Matt Austern  <austern@apple.com>
8162
8163         * config/darwin.c (darwin_make_decl_one_only): Allocate section
8164         names once per compilation, instead of once per symbol.
8165
8166 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
8167
8168         * Makefile.in (build_subdir): New substitution.
8169         (fixinc.sh): Simplify heavily since fixincludes is already built.
8170         (stmp-fixinc): Depend on specs.ready.
8171         (install-mkheaders): Use new location of fixincludes.
8172         (clean): Do not descend into fixinc.
8173         (FORBUILD): Replace with ../$(build_subdir).
8174         * configure.ac (build_subdir): Substitute.
8175         (FORBUILD): Do not set.
8176         (all_outputs): Remove fixinc/Makefile.
8177         (default commands): Do not create links in fixinc.
8178         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
8179         the fixincludes configuration steps and substituting
8180         @FIXINCL@ in fixinc.in.
8181         * fixinc.in: New, from fixinc/fixincl.sh.
8182
8183         * fixinc/*: Removed.
8184
8185 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
8186
8187         * attribs.c (strip_attrs): Remove.
8188         (split_specs_attrs): Move ...
8189         * c-decl.c: ... to here.
8190         * tree.h (split_specs_attrs, strip_attrs): Remove.
8191         * c-tree.h (split_specs_attrs): Declare.
8192
8193 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
8194
8195         * read-rtl.c: Disable RTL checking.
8196         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
8197
8198 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
8199
8200         * config/mips/mips.md (fcond): New code macro and attribute.
8201         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
8202         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
8203         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
8204
8205 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
8206
8207         Revert:
8208         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
8209         PR rtl-optimization/16590
8210         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
8211
8212 2004-08-30  Andrew Pinski  <apinski@apple.com>
8213
8214         * hard-reg-set.h:
8215         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
8216         * ChangeLog: Fix previous ChangeLog entry.
8217
8218         PR rtl-opt/13987
8219         * config.host (use_long_long_for_widest_fast_int): New, default is
8220         off.
8221         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
8222         * configure.ac: If use_long_long_for_widest_fast_int, then
8223         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
8224         * configure: Regenerate.
8225         * config.in: Regenerate.
8226         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
8227         New: widest integer type supported efficiently in hardware for the
8228         host.
8229         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
8230         HOST_BITS_PER_WIDEST_FAST_INT.
8231         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
8232         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
8233         HOST_WIDEST_FAST_INT
8234         instead of HOST_WIDE_INT.
8235         (HARD_REG_SET_LONGS): Likewise.
8236         (UHOST_BITS_PER_WIDE_INT): Likewise.
8237         Change the checks for the fast cases to be based on
8238         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
8239
8240 2004-08-30  Steven Bosscher  <stevenb@suse.de>
8241
8242         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
8243         not the pointers.
8244
8245 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
8246
8247         PR 12738
8248         PR 17205
8249         Radar 3460526
8250         Radar 3775729
8251         * c-decl.c (grokdeclarator): Produce error for 'static' on local
8252         function declaration.
8253
8254 2004-08-30  Richard Henderson  <rth@redhat.com>
8255
8256         * expr.c (array_ref_element_size): Force aligned_size back to
8257         sizetype.
8258         (component_ref_field_offset): Similarly for aligned_offset.
8259         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
8260         low-bound, element-size, field-offset fields rather than
8261         computed values.
8262
8263 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8264
8265         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
8266         redundant code.
8267
8268 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8269
8270         * c-tree.h (struct language_function): Add arg_info element.
8271         * c-decl.c (current_function_arg_info): New.
8272         (grokdeclarator, store_parm_decls): Use it instead of
8273         DECL_ARGUMENTS.
8274         (c_push_function_context, c_pop_function_context): Save and
8275         restore it.
8276
8277 2004-08-30  Richard Henderson  <rth@redhat.com>
8278
8279         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
8280         COMPONENT_REF to pointer arithmetic.
8281         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
8282         constant "c" as a valid constant initializer.  Allow narrowing of
8283         differences against the same base object, for any base object.
8284
8285 2004-08-30  Richard Henderson  <rth@redhat.com>
8286
8287         * expr.c (expand_expr_addr_expr): New.
8288         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
8289
8290 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
8291
8292         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
8293         (mips_fp_condition): New enum.
8294         (mips_fp_conditions): New array.
8295         (print_fcc_operand): Delete.
8296         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
8297         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
8298         (builtin_description): Add "cond" field.
8299         (DIRECT_BUILTIN): Initialize it.
8300         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
8301         into INSN and CODE.  Initialize the "cond" field.
8302         (CMP_BUILTINS): Update accordingly.
8303         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
8304         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
8305         mips_fp_condition as argument.  Make it the final operand of the
8306         comparison instruction.
8307         (mips_expand_builtin): Update accordingly.
8308         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
8309         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
8310         the gaps.
8311         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
8312         Don't use the 'Q' operand prefix; just print the operand normally.
8313         (mips_cabs_*, mips_c_*): Delete, replacing with...
8314         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
8315         patterns.  Split the 4s versions into 2 ps patterns after reload.
8316
8317 2004-08-30  Richard Henderson  <rth@redhat.com>
8318
8319         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
8320         assuming an ADDR_EXPR is non-null.
8321
8322 2004-08-30  Jason Merrill  <jason@redhat.com>
8323
8324         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
8325
8326 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8327
8328         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
8329         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
8330         gcc_assert and gcc_unreachable instead of abort.
8331         * alloc-pool.c (abort, fancy_abort): Remove.
8332         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
8333         gcc_assert or gcc_unreachable.
8334         * attribs.c (init_attributes, decl_attributes): Likewise.
8335         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
8336         mark_bb_for_unlikely_executed_section,
8337         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
8338         fix_crossing_unconditional_branches):  Likewise.
8339         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
8340         bitmap_operation):  Likewise.
8341         * bt-load.c (insn_sets_btr_p, augment_live_range,
8342         move_btr_def):  Likewise.
8343         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
8344         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
8345         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
8346         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
8347         expand_builtin_memcmp, expand_builtin_args_info,
8348         std_gimplify_va_arg_expr, expand_builtin_unop,
8349         expand_builtin_fputs, expand_builtin_profile_func,
8350         expand_builtin_fork_or_exec, fold_builtin_bitop,
8351         fold_builtin_classify, fold_builtin_fputs): Likewise.
8352
8353 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8354
8355         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
8356         * gcov.c (abort): Remove undef.
8357
8358         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
8359         (struct tree_binfo): Remove primary field.
8360
8361 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
8362
8363         * fixinc/Makefile.in (machname.h): Remove.
8364         (fixincl.x): Do not pass $@ to genfixes.
8365         * fixinc/genfixes: Remove code to produce machname.h.
8366         * fixinc/fixincl.sh: Move it here instead.
8367         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
8368         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
8369         return a bool indicating whether pz_mn_name_pat is NULL.
8370         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
8371         Declare extern C variables for the ENV_TABLE.
8372         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
8373         instead use the result of mn_get_regexps.
8374         * fixinc/fixtests.c: Likewise.
8375
8376 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
8377
8378         * configure.ac: Do not run fixincludes after stage1 during
8379         toplevel bootstrap.
8380         * configure: Regenerate.
8381
8382 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
8383
8384         * sched-deps.c (get_condition): Partially revert previous, by never
8385         trying to extract the condition from a condjump.
8386
8387 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8388
8389         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
8390         (handle_visibility_attribute, c_determine_visibility): Likewise.
8391         * c-common.h (my_friendly_assert): Remove.
8392
8393 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
8394
8395         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
8396         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
8397         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
8398         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
8399         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
8400
8401 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
8402
8403         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
8404         in COMPONENT_REF nodes.
8405
8406 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8407
8408         PR c++/15378
8409         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
8410         global_dc->warning_as_error_requested.
8411         * diagnostic.c (diagnostic_initialize): Tidy.
8412         * diagnostic.h (diagnostic_context::x_data): Remove
8413         (diagnostic_context::issue_warnings_are_errors_message): Rename
8414         from warnings_are_errors_message.
8415         (diagnostic_context::warning_as_error_requested): New.
8416
8417 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
8418
8419         * sched-deps.c (get_condition): Fix breakage in previous patch.
8420
8421 2004-08-30  Paul Brook  <paul@codesourcery.com>
8422
8423         * doc/install.texi: Fix broken mpfr link.
8424
8425 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
8426
8427         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
8428         other FreeBSD platforms.
8429
8430 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
8431
8432         * arm.h (REVERSE_CONDITION): Define.
8433         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
8434
8435 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
8436
8437         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
8438         just the codes, call reversed_comparison_code ().
8439         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
8440         (not_reg_cond): Use reversed_comparison_code.
8441         (and_reg_cond): Likewise.
8442         * ifcvt.c (cond_exec_process_if_block): Likewise.
8443         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
8444
8445 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
8446
8447         * sched-deps.c (get_condition): Rewrite using jump support functions.
8448         Use reversed_comparison_code.
8449         (conditions_mutex_p): Use reversed_comparison_code.
8450
8451 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8452
8453         * config/mips/mips.c (override_options): Disable hot/cold partitioning
8454         for MIPS16.
8455
8456 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8457
8458         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
8459         (mips_function_type): Move to mips.c.
8460         * config/mips/mips.c (mips_builtin_type): New enum.
8461         (builtin_description): Replace code and ftype with builtin_type
8462         and function_type.
8463         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
8464         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
8465         (CODE_FOR_mips_abs_ps): Define.
8466         (mips_bdesc): Use new macros.
8467         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
8468         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
8469         (mips_expand_builtin_direct): New function.
8470         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
8471         builtin.  Replace boolean parameter with builtin_type.
8472         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
8473         (mips_expand_4s_compare_builtin): Delete, replacing with...
8474         (mips_expand_builtin_compare): ...this new function.
8475
8476 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
8477
8478         PR rtl-optimization/16590
8479         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
8480
8481 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
8482
8483         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
8484         * tree-ssa-propagate.c: Fix documentation.
8485
8486 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8487
8488         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
8489         (mov[sd]fcc): Likewise.
8490
8491 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8492
8493         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
8494
8495 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8496
8497         * config/mips/mips.md (divide_condition): New mode attribute.
8498         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
8499         (sqrt[sd]f3): Redefine using SCALARF.
8500         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
8501         patterns.
8502
8503 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8504
8505         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
8506         (loadx, storex, fmt, UNITMODE): New mode attributes.
8507         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
8508         (mul[sd]f3): Redefine using :SCALARF.
8509         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
8510         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
8511         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
8512         Check TARGET_FUSED_MADD for V2SF too.
8513         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
8514         were already named.
8515         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
8516         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
8517
8518 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8519
8520         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
8521         V2SF_type_node if it will be needed.
8522
8523 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8524
8525         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
8526         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
8527         (mips_prepare_builtin_target): New function.
8528         (mips_expand_builtin): Use them.  Update calls to subroutines.
8529         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
8530         cmp_choice with a boolean argument to select between movt and movf.
8531         Take the comparison's icode as an argument, not the function's fcode.
8532         (mips_expand_compare_builtin): New function.  Rename existing function
8533         to mips_expand_scalar_compare_builtin.
8534         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
8535         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
8536         comparison's icode as an argument, not the builtin's fcode.
8537
8538 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8539
8540         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
8541         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
8542         registers are false and -1 if all registers are true.
8543         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
8544         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
8545         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
8546         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
8547         (bc1any2t, bc1any2f): Likewise CCV2.
8548         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
8549
8550 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8551
8552         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
8553         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
8554         UNSPEC rather than an IF_THEN_ELSE.
8555         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
8556         mips_cond_move_tf_ps by name.
8557
8558 2004-08-29  Chao-ying Fu  <fu@mips.com>
8559             James E Wilson  <wilson@specifixinc.com>
8560
8561         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
8562         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
8563         * config/mips/mips-ps-3d.md: New file.
8564         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
8565         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
8566         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
8567         (mips_output_move): Emit "mov.ps" for V2SFmode.
8568         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
8569         MODE_VECTOR_FLOAT.
8570         (override_options): Check if TARGET_MIPS3D and there was an explicit
8571         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
8572         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
8573         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
8574         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
8575         and allow CCV2 and CCV4 to occupy two and four CC registers.
8576         (print_fcc_operand): New function.
8577         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
8578         %Z to call print_fcc_operand.
8579         (mips_function_value): Handle MODE_VECTOR_FLOAT.
8580         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
8581         (mips_vector_mode_supported_p): New function.
8582         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
8583         (builtin_description): New struct.
8584         (mips_bdesc): New array of struct builtin_description.
8585         (mips_expand_builtin, mips_init_builtins,
8586         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
8587         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
8588         functions.
8589         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
8590         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
8591         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
8592         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
8593         "-mips3d", and "-mno-mips3d".
8594         (ASM_SPEC): Map -mips3d to -mips3d in gas.
8595         (EXTRA_CONSTRAINT_Y): New macro.
8596         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
8597         multi-letter constraint 'Y'.
8598         (CONSTRAINT_LEN): New macro.
8599         (enum mips_builtins): New for MIPS builtin functions.
8600         (enum mips_function_type): New for the types of MIPS builtin functions.
8601         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
8602         * config/mips/mips.md: New constants for paired single and MIPS-3D
8603         instructions.  Include the new mips-ps-3d.md file.
8604         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
8605         movv2sf_hardfloat_64bit): New named patterns.
8606         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
8607         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
8608         sdxc1_v2sf_di): New unnamed patterns.
8609         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
8610         const_vector support.
8611         (const_0_or_1_operand): New predicate.
8612         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
8613
8614 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
8615
8616         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
8617         (tree-ssa-propagate.o): New rule.
8618         (GTFILES): Add tree-ssa-propagate.c.
8619         * tree-flow.h (struct stmt_ann_d): Remove field
8620         in_ccp_worklist.
8621         * tree-ssa-propagate.c: New file.
8622         * tree-ssa-propagate.h: New file.
8623         * tree-ssa-ccp.c: Re-write to use the routines from
8624         tree-ssa-propagate.c.
8625
8626 2004-08-28  Andrew Pinski  <apinski@apple.com>
8627
8628         * tree-ssa-loop.c: Remove extra include of basic-block.h.
8629
8630 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
8631
8632         * c-common.h: Update comments about ObjC/ObjC++ entry points.
8633         (objc_is_reserved_word): New prototype.
8634         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
8635         separate section; these are call-backs.
8636         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
8637         ObjC/ObjC++ "@" keywords.
8638         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
8639         prototypes; they already live in c-common.h.
8640         * stub-objc.c: Update copyright notice.
8641         (objc_is_reserved_word): New stub.
8642
8643 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
8644
8645         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
8646         even when not checking.
8647
8648 2004-08-27  Jason Merrill  <jason@redhat.com>
8649
8650         PR c++/13684
8651         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
8652         (gimple_push_cleanup): Add eh_only parm.
8653         (gimplify_target_expr): Pass it.
8654         * c.opt (-fno-threadsafe-statics): New option.
8655         * c-opts.c (c_common_handle_option): Handle it.
8656         * c-common.h (flag_threadsafe_statics): Declare it.
8657         * c-common.c (flag_threadsafe_statics): Record it.
8658         * doc/invoke.texi: Document it.
8659         * tsystem.h (_GNU_SOURCE): Define.
8660         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
8661         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
8662         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
8663         (__gthread_recursive_mutex_init_function): New fn.
8664         (__gthread_recursive_mutex_lock): New fn.
8665         (__gthread_recursive_mutex_trylock): New fn.
8666         (__gthread_recursive_mutex_unlock): New fn.
8667         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
8668         * gthr-win32.h, gthr-vxworks.h: Likewise.
8669         * gthr.h: Document.
8670
8671 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
8672
8673         * config/rs6000/rs6000.c (rs6000_override_options): Increase
8674         maximum skip to 15.  Set function alignment, jump alignment, and
8675         loop alignment to 16 for processors that form dispatch groups.
8676         (rs6000_rtx_costs): outer_code is used.
8677
8678 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
8679
8680         * stor-layout.c (sizetype_set): Remove.
8681         (set_sizetype): Don't test or set it.
8682
8683         * tree.h (size_int_type): Remove.
8684         * fold-const.c: Do not #include gt-fold-const.h.
8685         (size_htab_hash, size_htab_eq): Remove.
8686         (size_int_kind): Use build_int_cst.
8687         (new_const, size_htab): Remove.
8688         (size_int_type): Remove.
8689         (round_up): Use build_int_cst.
8690         (round_down): Likewise. Remove spurious constant build.
8691
8692 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
8693
8694         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
8695         Add is_release variable, use it for --enable-werror and
8696         --enable-checking defaults.
8697         * system.h (gcc_assert, gcc_unreachable): New.
8698         * doc/install.texi (--enable-checking): Update.
8699         * configure, config.in: Rebuilt.
8700
8701 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
8702
8703         * rtl.h (read_rtx): Change prototype.
8704         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
8705         line number.  Return true on success.
8706         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
8707         callers accordingly.
8708
8709 2004-08-26  Richard Henderson  <rth@redhat.com>
8710
8711         * c-typeck.c (build_offsetof): Remove.
8712         * c-tree.h (build_offsetof): Remove.
8713         * c-common.c (fold_offsetof_1, fold_offsetof): New.
8714         * c-common.h (fold_offsetof): Declare.
8715         * c-parse.in (offsetof_base): New.
8716         (offsetof_member_designator): Use it.  Build references, not just
8717         a tree list.
8718         (primary): Use fold_offsetof, not build_offsetof.
8719
8720 2004-08-26  Richard Henderson  <rth@redhat.com>
8721
8722         * tree.c (staticp): Return the static object.
8723         * tree.h (staticp): Update decl.
8724         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
8725         * langhooks.c (lhd_staticp): Return NULL_TREE.
8726         * langhooks-def.h (lhd_staticp): Update decl.
8727         * c-common.c (c_staticp): Return the static object.
8728         * c-common.h (c_staticp): Update decl.
8729
8730 2004-08-26  Richard Henderson  <rth@redhat.com>
8731
8732         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
8733         modes.
8734
8735 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
8736
8737         PR c/13801
8738         * c-decl.c (struct c_binding): Add type and inner_comp fields.
8739         (bind): Set type and inner_comp fields.
8740         (pop_scope): Restore type of decl to the correct type from an
8741         outer scope.  Give error when popping file scope for incomplete
8742         arrays completed incompatibly with default initialization in an
8743         inner scope.
8744         (diagnose_mismatched_decls): Handle externs with initializers at
8745         block scope.
8746         (pushdecl): Set type of external declaration at block scope based
8747         only on the visible declarations.  Save type when changing the
8748         type of a declaration.  Merge an external declaration at block
8749         scope with a visible static declaration at file scope.
8750         (implicitly_declare): Give recycled old declaration the new type
8751         except for incompatible declarations of built-in functions, saving
8752         the old type.
8753
8754 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
8755
8756         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
8757
8758 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
8759
8760         * tree-alias-common.c (gate_pta): New function.
8761         (pass_build_pta): Use it.
8762         (pass_del_pta): Use it.
8763         (delete_alias_vars): Don't check flag_tree_points_to.
8764
8765 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
8766
8767         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
8768         TFmode as additional register mode cloberred by call.
8769
8770 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
8771
8772         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
8773         parallel pattern for library call returning DImode in
8774         mixed mode.
8775
8776 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
8777
8778         * config/rs6000/rs6000.c (function_arg): Generate parallel
8779         pattern for more split args.
8780
8781 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
8782
8783         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
8784         either gen_movdi_di_update or gen_movdi_si_update depending on
8785         target mode.
8786         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
8787         to generate two versions.
8788
8789 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
8790
8791         * Makefile.in (lambda-code.o): New.
8792         (lambda-trans.o): Ditto.
8793         (TREE_DATA_REF_H): Ditto.
8794         (LAMBDA_H): Ditto.
8795         (lambda-mat.o): Use LAMBDA_H.
8796         (tree-data-ref.o): Ditto.
8797         * lambda-code.c: New file.  Lambda code generation algorithm.
8798         * lambda-trans.c: Ditto. Lambda transformation matrix support.
8799         * lambda.h: Add lambda loop structures.
8800         Add lambda loopnest structures.
8801         Add lambda body vector structure.
8802         Add lambda linear expression structures.
8803         Add prototypes for functions in new files.
8804         * lambda-mat.c: Include tree.h
8805
8806 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
8807             Sebastian Pop  <pop@cri.ensmp.fr>
8808
8809         * tree-data-ref.h: Include lambda.h
8810         (free_dependence_relation): Declared here.
8811         (free_dependence_relations): Ditto.
8812         (free_data_refs): Ditto.
8813         * tree-data-ref.c (free_dependence_relation): New function.
8814         (free_dependence_relations): Ditto.
8815         (free_data_refs): Ditot.
8816         (analyze_all_data_dependences): Free datarefs and dependence_relations.
8817         (build_classic_dist_vector): Store in the dependence_relations the
8818         information. Each arc in the dependence_relations graph is labelled
8819         with the distance and direction vectors.
8820         (build_classic_dir_vector): Ditto.
8821         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
8822         Now computes again the whole dependence graph including read-read
8823         relations.
8824         (compute_data_dependences_for_loop): Now dependence_relations contains
8825         all the data, and thus it doesn't need to initialize the classic_dir
8826         and classic_dist vectors.
8827         (analyze_all_data_dependences): Adjusted for using the new interface of
8828         compute_data_dependences_for_loop.  Remove the statistics dump.
8829
8830 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
8831
8832         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
8833         (xtensa_expand_block_move): Update comment.
8834         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
8835
8836 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
8837
8838         PR target/13506
8839         * toplev.c (crash_signal): If we crashed while emitting
8840         a user asm, then die more gracefully.
8841
8842 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
8843
8844         PR target/17119.
8845         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
8846         checking for a valid constant, regardless of sign.
8847
8848 2004-08-25  Richard Henderson  <rth@redhat.com>
8849
8850         PR target/16974
8851         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
8852         if the constant satisfies add_operand.
8853
8854 2004-08-25  Richard Henderson  <rth@redhat.com>
8855
8856         PR debug/10695
8857         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
8858         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
8859         unwind info for >16-bit frames.
8860
8861 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
8862
8863         PR target/17171
8864         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
8865
8866 2004-08-25  Richard Henderson  <rth@redhat.com>
8867
8868         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
8869         (TARGET_CANNOT_FORCE_CONST_MEM): New.
8870
8871 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
8872
8873         * doc/tree-ssa.texi: Document new operand iterator.
8874
8875 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
8876
8877         PR target/16480
8878         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
8879         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
8880         as PLUS base regs.
8881
8882 2005-08-28  Paul Brook  <paul@codesourcery.com>
8883
8884         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
8885         -mfpu=vfp -march=armv5t
8886         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
8887
8888 2004-08-25  Richard Henderson  <rth@redhat.com>
8889
8890         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
8891         * target.h (struct gcc_target): Add scalar_mode_supported_p.
8892         * targhooks.c (default_scalar_mode_supported_p): New.
8893         * targhooks.h (default_scalar_mode_supported_p): Declare.
8894         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
8895
8896         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
8897         before attempting to create types.  Tidy.
8898         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
8899
8900         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
8901         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
8902
8903 2004-08-25  Richard Henderson  <rth@redhat.com>
8904
8905         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
8906         set REAL_MODE_FORMAT for TFmode.
8907
8908 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
8909
8910         * c-decl.c (grokparm): New function.
8911         * c-tree.h (grokparm): New prototype.
8912
8913 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
8914
8915         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
8916         iterator controlling structure.
8917         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
8918         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
8919         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
8920         iterator flags.
8921         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
8922         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
8923         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
8924         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
8925         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
8926         Empty operand pointers.
8927         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
8928         (op_iter_next_use): New.  Return next use_operand_p.
8929         (op_iter_next_def): New.  Return next def_operand_p.
8930         (op_iter_next_tree): New.  Return next operands as a tree.
8931         (op_iter_init): New.  Initialize an iterator structure.
8932         (op_iter_init_use): New.  Initialize structure and get the first use.
8933         (op_iter_init_def): New.  Initialize structure and get the first def.
8934         (op_iter_init_tree): New.  Initialize structure and get the first tree.
8935         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
8936         (op_iter_init_maydef): New.  Initialize structure and get the first
8937         V_MAY_DEF operands.
8938         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
8939         * tree-dfa.c (compute_immediate_uses_for_stmt,
8940         redirect_immediate_uses): Use new operand iterator.
8941         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
8942         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
8943         operands instead of using *_disappeared_p routines.
8944         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
8945         ssa_rewrite_stmt): Use new operand iterator.
8946         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
8947         rewrite_trees): Use new operand iterator.
8948         * tree-pretty-print.c (dump_vops): Use new operand iterator.
8949         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
8950         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
8951         dump_points_to_info): Use new operand iterator.
8952         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
8953         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
8954         operand iterator.
8955         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
8956         propagate_necessity): Use new operand iterator.
8957         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
8958         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
8959         a parameter instead of a stmt_ann_t.
8960         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
8961         build_tree_conflict_graph): Use new operand iterator.
8962         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
8963         rewrite_mem_refs): Use new operand iterator.
8964         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
8965         check_loop_closed_ssa_use): Use new operand iterator.
8966         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
8967         * tree-ssanames.c (release_defs): Use new operand iterator.
8968         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
8969
8970 2004-08-25  Adam Nemet  <anemet@lnxw.com>
8971
8972         * tlink.c (initial_cwd): New variable.
8973         (tlink_init): Initialize it.
8974         (recompile_files): Use tlink_execute() instead of system().  Don't
8975         duplicate verbose output of collect_execute.  Restore initial_cwd.
8976         Update comment before the function.
8977
8978 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
8979
8980         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
8981         accept) a cast from one Objective-C pointer type to another.
8982
8983 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
8984
8985         * doc/install.texi: Document that libstdc++-v3 requires
8986         now automake 1.9.1.
8987
8988 2004-08-25  Caroline Tice  <ctice@apple.com>
8989
8990         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
8991         to comments at start of function.
8992         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
8993         comment.
8994         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
8995         merge_blocks_move_predecessor_nojumps,
8996         merge_blocks_move_successor_nojumps, merge_blocks_move,
8997         try_crossjump_to_edge, try_crossjump_bb): Likewise.
8998         * cfglayout.c (fixup_reorder_chain): Likewise.
8999         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
9000         cfg_layout_can_merge_blocks_p):  Likewise.
9001         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
9002         * passes.c (rest_of_compilation): Update comments for calling
9003         optimization that partitions hot/cold basic blocks.
9004         * doc/invoke.texi:  Update documentation of
9005         freorder-blocks-and-partition flag.
9006
9007 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
9008
9009         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
9010         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
9011
9012 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
9013
9014         * config/mips/mips.md (any_shift): New code macro.
9015         (optab, insn): New code attributes.
9016         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
9017         Use the standard rather than internal patterns for the MIPS16
9018         double-shift optimization.
9019         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
9020         Redefine using :GPR and any_shift.
9021         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
9022         to cover all three shifts.
9023         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
9024         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
9025         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
9026
9027 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
9028
9029         * gimplify.c (lookup_tmp_var): Separate temporaries when not
9030         optimizing.
9031
9032 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9033
9034         PR libstdc++/17005 (fix for HP-UX 11.11)
9035         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
9036         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
9037         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
9038         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
9039         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
9040         (LINK_SPEC): Handle march=1.0 option.
9041         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
9042         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
9043         (SUBTARGET_OPTIONS): New define.
9044         (LINK_SPEC): Handle march=1.0 option.
9045         (STARTFILE_SPEC): New define.
9046         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
9047         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
9048         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
9049         (SUBTARGET_OPTIONS): New define.
9050         (LINK_SPEC): Handle march=1.0 option.
9051         (STARTFILE_SPEC): New define.
9052         * config/pa/pa.c (override_options): Add code to process -munix= option.
9053         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
9054         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
9055         defines.
9056         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
9057         (SUBTARGET_OPTIONS): Provide default define.
9058         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
9059         STANDARD_STARTFILE_PREFIX_2): New defines.
9060         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
9061         (ENDFILE_SPEC): Use %O.
9062         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
9063         Mention issue caused by changing namespace and runtime to UNIX 95/98.
9064         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
9065         Document -munix=std option.
9066
9067 2004-08-25  Steven Bosscher  <stevenb@suse.de>
9068
9069         * cse.c (cse_around_loop, cse_check_loop_start,
9070         cse_set_around_loop): Remove.
9071         (cse_basic_block): Remove the around_loop argument.
9072         (cse_end_of_basic_block): Remove the after_loop argument.
9073         (cse_main): Likewise.
9074         * rtl.h (cse_main): Update prototype.
9075         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
9076         rest_of_handle_gcse): Update cse_main calls.
9077
9078 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
9079
9080         * tree.h  (build_int_cst): New, sign extended constant.
9081         (build_int_cstu): New, zero extended constant.
9082         (build_int_cst_wide): Renamed from build_int_cst.
9083         * tree.c (build_int_cst, build_int_cstu): New.
9084         (build_int_cst_wide): Renamed from build_int_cst.
9085         (make_vector_type, build_common_tree_nodes,
9086         build_common_tree_nodes_2): Adjust build_int_cst calls.
9087         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
9088         expand_builtin_strpbrk, expand_builtin_fputs,
9089         build_string_literal, expand_builtin_printf,
9090         expand_builtin_sprintf, fold_builtin_classify_type,
9091         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
9092         fold_builtin_toascii, fold_builtin_isdigit,
9093         simplify_builtin_strstr, simplify_builtin_strpbrk,
9094         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
9095         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
9096         DEF_ATTR_INT): Likewise.
9097         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
9098         Likewise.
9099         * c-lex.c (interpret_integer, lex_charconst): Likewise.
9100         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
9101         * c-pretty-print.c (pp_c_integer_constant): Likewise.
9102         * c-typeck.c (really_start_incremental_init, push_init_level,
9103         set_nonincremental_init_from_string): Likewise.
9104         * calls.c (load_register_parameters): Likewise.
9105         convert.c (convert_to_pointer): Likewise.
9106         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
9107         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
9108         build_gcov_info): Likewise.
9109         * except.c (init_eh, assign_filter_values): Likewise.
9110         * expmed.c (store_fixed_bit_field, extract_bit_field,
9111         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
9112         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
9113         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
9114         * expr.c (convert_move, emit_group_load, emit_group_store,
9115         expand_assignment, store_constructor, store_field,
9116         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
9117         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
9118         invert_truthvalue, optimize_bit_field_compare,
9119         decode_field_reference, all_ones_mask_p, constant_boolean_node,
9120         fold_div_compare, fold, fold_read_from_constant_string,
9121         fold_negate_const, fold_abs_const, fold_not_const, round_up,
9122         round_down): Likewise.
9123         * function.c (assign_parm_setup_block): Likewise.
9124         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
9125         Likewise.
9126         * stor-layout.c (layout_type, initialize_sizetypes,
9127         set_min_and_max_values_for_integral_type): Likewise.
9128         * tree-chrec.c (chrec_fold_multiply_poly_poly,
9129         reset_evolution_in_loop): Likewise.
9130         * tree-chrec.h (build_polynomial_chrec): Likewise.
9131         * tree-complex.c (build_replicated_const): Likewise.
9132         * tree-eh.c (honor_protect_cleanup_actions,
9133         lower_try_finally_onedest, lower_try_finally_copy,
9134         lower_try_finally_switch): Likewise.
9135         * tree-mudflap.c (mf_build_string, mx_register_decls,
9136         mudflap_register_call, mudflap_enqueue_constant): Likewise.
9137         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
9138         * tree-pretty-print.c (dump_generic_node): Likewise.
9139         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
9140         Likewise.
9141         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
9142         * tree-ssa-loop-niter.c (number_of_iterations_cond,
9143         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
9144         Likewise.
9145         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
9146         canonicalize_loop_induction_variables): Likewise.
9147         * tree-vectorizer.c (vect_create_index_for_array_ref,
9148         vect_transform_loop_bound, vect_compute_data_ref_alignment):
9149         Likewise.
9150
9151         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
9152         alpha_gimplify_va_arg_1): Likewise.
9153         * config/arm/arm.c (arm_get_cookie_size): Likewise.
9154         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
9155         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
9156         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
9157         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
9158         mips_gimplify_va_arg_expr): Likewise.
9159         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9160         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
9161         add_compiler_branch_island): Likewise.
9162         * config/s390/s390.c (s390_va_start): Likewise.
9163         * config/sh/sh.c (sh_va_start): Likewise.
9164         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
9165         Likewise.
9166         * config/xtensa/xtensa.c (xtensa_va_start,
9167         xtensa_gimplify_va_arg_expr): Likewise.
9168
9169         * objc/objc-act.c (build_objc_string_object,
9170         build_objc_symtab_template, init_def_list, init_objc_symtab,
9171         init_module_descriptor, generate_static_references,
9172         build_selector_translation_table, get_proto_encoding,
9173         build_typed_selector_reference, build_selector_reference,
9174         build_next_objc_exception_stuff,
9175         build_method_prototype_list_template, generate_descriptor_table,
9176         generate_protocols, build_protocol_initializer,
9177         build_ivar_list_template, build_method_list_template,
9178         build_ivar_list_initializer, generate_ivars_list,
9179         generate_dispatch_table, generate_protocol_list,
9180         build_category_initializer, build_shared_structure_initializer,
9181         generate_shared_structures, handle_impent,
9182         generate_objc_image_info): Likewise.
9183
9184 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
9185
9186         * cfglayout.c (duplicate_insn_chain): Remove references to
9187         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
9188         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
9189         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
9190         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
9191         and NOTE_INSN_LOOP_CONT.
9192         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
9193         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
9194         and NOTE_INSN_LOOP_CONT.
9195         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
9196         check_dbra_loop, loop_dump_aux): Remove references to removed notes
9197         and fields.
9198         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
9199         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
9200         references to removed notes and fields.
9201         (subtract_reg_term, ujump_to_loop_cont): Remove.
9202
9203 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
9204
9205         * doc/install.texi: Document that libcpp does not require
9206         Automake any longer.  Document that Automake 1.9.1 should
9207         work everywhere.
9208
9209 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
9210
9211         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
9212         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
9213         DWARF_DEBUGGING_INFO from choice-of-definition chain;
9214         restructure using C89 features (#elif, #error).
9215         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
9216         * config/sh/sh.h: Remove references to DWARF_DEBUG.
9217         * doc/invoke.texi: Remove references to DWARF version 1;
9218         clarify why -gdwarf-2<n> doesn't work.
9219
9220 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
9221
9222         * basic-block.h (BB_SET_PARTITION): Clear old value first.
9223         * cfg.c (clear_bb_flags): Don't clear partition setting.
9224         * ifcvt.c (find_if_case_1): Remove ??? comment.
9225
9226 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
9227
9228         PR target/17052
9229         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
9230         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
9231         current_function_stdarg in place of sysv_varargs_p.
9232         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
9233         sysv_varargs_p.
9234
9235 2004-08-24  Richard Henderson  <rth@redhat.com>
9236
9237         PR target/16298
9238         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
9239         random codes within CONST.
9240
9241 2004-08-24  James E Wilson  <wilson@specifixinc.com>
9242
9243         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
9244         -freorder-blocks-and-partition.
9245
9246 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9247
9248         PR middle-end/17044
9249         * tree-ssa-threadupdate.c (redirection_data): Make static.
9250         (thread_block): Use ggc_alloc_cleared to allocate struct
9251         redirection_data.  Don't free elements in redirection_data.
9252
9253 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9254
9255         * config/mips/predicates.md (small_data_pattern): Match prefetches.
9256
9257 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9258
9259         PR tree-optimization/17016
9260         * tree-ssa-loop-niter.c (number_of_iterations_cond,
9261         number_of_iterations_exit): Use POINTER_TYPE_P instead
9262         of testing for POINTER_TYPE.
9263
9264 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9265
9266         * tree-ssa-loop-ivcanon.c: New file.
9267         * tree-ssa-loop-manip.c (create_iv): New function.
9268         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
9269         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
9270         * cfgloop.c (mark_single_exit_loops): New function.
9271         (verify_loop_structure): Verify single-exit loops.
9272         * cfgloop.h (struct loop): Add single_exit field.
9273         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
9274         (mark_single_exit_loops): Declare.
9275         (tree_num_loop_insns): Declare.
9276         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
9277         (duplicate_loop_to_header_edge): Use it.
9278         * common.opt (fivcanon): New flag.
9279         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
9280         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
9281         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
9282         (bsi_insert_on_edge_immediate): New function.
9283         * tree-flow.h (bsi_insert_on_edge_immediate,
9284         canonicalize_induction_variables, tree_unroll_loops_completely,
9285         create_iv): Declare.
9286         * tree-optimize.c (init_tree_optimization_passes): Add
9287         pass_iv_canon and pass_complete_unroll.
9288         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
9289         * tree-scalar-evolution.c (get_loop_exit_condition,
9290         get_exit_conditions_rec, number_of_iterations_in_loop,
9291         scev_initialize): Use single_exit information.
9292         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
9293         missing assumptions.
9294         (loop_niter_by_eval):  Return number of iterations as unsigned
9295         int.
9296         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
9297         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
9298         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
9299         New passes.
9300         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
9301         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
9302         the defining statement is ready.
9303         * tree-vectorizer.c (vect_create_iv_simple): Removed.
9304         (vect_create_index_for_array_ref, vect_transform_loop_bound):
9305         Use create_iv.
9306         (vect_transform_loop_bound): Use single_exit information.
9307         (vect_analyze_loop_form): Cleanup bogus tests.
9308         (vectorize_loops): Do not call flow_loop_scan.
9309         * tree.h (may_negate_without_overflow_p): Declare.
9310         * fold-const.c (may_negate_without_overflow_p): Split out from ...
9311         (negate_expr_p): ... this function.
9312         (tree_expr_nonzero_p): Handle overflowed constants correctly.
9313         * doc/invoke.texi (-fivcanon): Document.
9314         * doc/passes.texi: Document canonical induction variable creation.
9315
9316 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9317
9318         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
9319         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
9320         using the mode of the operand to decide between them.
9321         * config/mips/mips.md (MOVECC): New mode macro.
9322         (ccreg): New mode attribute.
9323         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
9324         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
9325         (mov[sd]icc): Redefine using :GPR.
9326
9327 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9328
9329         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
9330         (mips_prefetch_cookie): New function.
9331         * config/mips/mips.c (print_operand_address): Fix handling of
9332         ADDRESS_CONST_INT.
9333         (mips_emit_prefetch): Delete.
9334         (mips_prefetch_cookie): New function.
9335         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
9336         mode of QImode for the address_operand.  Use mips_prefetch_cookie
9337         to calculate the first "pref" operand.
9338         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
9339         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
9340
9341 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
9342
9343         * arm.md: Include predicates.md.
9344         * predicates.md: New file.
9345         * arm.c (s_register_operand, arm_hard_register_operand)
9346         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
9347         (arm_immediate_operand, arm_neg_immediate_operand)
9348         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
9349         (arm_add_operand, arm_addimm_operand, arm_not_operand)
9350         (offsettable_memory_operand, alignable_memory_operand)
9351         (arm_reload_memory_operand, arm_float_rhs_operand)
9352         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
9353         (index_operand, shiftable_operator, logical_binary_operator)
9354         (shift_operator, equality_operator, arm_comparison_operator)
9355         (minmax_operator, cc_register, dominant_cc_register)
9356         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
9357         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
9358         (const_shift_operand, load_multiple_operation)
9359         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
9360         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
9361         (cirrus_register_operand, cirrus_fp_register)
9362         (cirrus_shift_const): Delete, replaced with equivalents in
9363         predicates.md.
9364         (shift_op): Handle ROTATE.
9365         * arm-protos.h: Delete declarations for above.
9366         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
9367         * t-arm (MD_INCLUDES): Add predicates.md.
9368         (s-preds): Depends on MD_INCLUDES.
9369
9370 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9371
9372         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
9373         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
9374         patterns.  Redefine using :GPR.  Give the match_operator a mode.
9375         Use '%2' rather than '%z2' for operand 2.
9376
9377 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9378
9379         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
9380         attribute.
9381
9382 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9383
9384         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
9385         of internal patterns.
9386         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
9387         Redefine using :P.
9388         (tablejump): Use expand_binop to calculate address.  Adjust names
9389         of internal patterns.
9390         (tablejump[sd]i): Renamed from tablejump_internal[12].
9391         Redefine using :P.
9392         (tablejump_mips16[12]): Delete.
9393
9394 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9395
9396         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
9397         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
9398         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
9399         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
9400         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
9401
9402 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9403
9404         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
9405         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
9406         using :GPR.
9407         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
9408         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
9409         (*branch_equality[sd]i_inverted): Likewise
9410         branch_equality{,_di}_inverted.
9411         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
9412         Redefine using :GPR.
9413
9414 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
9415
9416         * rtl.def: Reorganize, placing all codes used only in machine
9417         descriptions at the end.
9418
9419         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
9420         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
9421         rtx_name, rtx_format arrays by direct reference to rtl.def,
9422         first undefining GENERATOR_FILE.  Define enum insn_note and
9423         note_insn_name array by direct reference to insn-notes.def.
9424         (adjust_field_rtx_def): Remove local definition of rtx_name.
9425         Use symbolic names for insn notes.
9426         * Makefile.in (gengtype.o): Update dependencies.
9427
9428 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
9429
9430         * basic-block.h (struct basic_block_def): Reorder fields to
9431         eliminate interior padding.  Remove 'partition' field.
9432         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
9433         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
9434         (BB_COPY_PARTITION): New macros.
9435         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
9436         Replace all references to the 'partition' field of a basic
9437         block with new macros.
9438
9439         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
9440         * final.c (final_scan_insn): Don't handle it.
9441         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
9442         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
9443         * sched-rgn.c (sched_is_disabled_for_current_region_p):
9444         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
9445
9446 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
9447
9448         * c-decl.c (c_init_decl_processing): Adjust
9449         build_common_tree_nodes call.
9450         * expmed.c (const_mult_add_overflow_p): Use
9451         build_distinct_type_copy.
9452         * stor-layout.c (early_type_list): Remove.
9453         (layout_type): Don't append to early_type_list.
9454         (initialize_sizetypes): Add signed_p argument.
9455         (set_sizetype): Overwrite the stub type nodes directly.
9456         * tree.c (copy_node_stat): Clear a type's value cache here ...
9457         (build_distinct_type): ... not here.
9458         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
9459         * tree.h (initialize_sizetypes): Add signed_p argument.
9460         (build_common_tree_nodes): Likewise.
9461
9462         * objc/objc-act.c (get_static_reference): Use
9463         build_variant_type_copy.
9464         (get_protocol_reference): Likewise.
9465         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
9466
9467 2004-08-24  Richard Henderson  <rth@redhat.com>
9468             Andrew Pinski  <apinski@apple.com>
9469
9470         * gimplify.c (gimplify_array_ref_to_plus): Delete.
9471         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
9472         for ARRAY_REF.
9473
9474         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
9475         ARRAY_REF also to get to the STRING_CST.
9476
9477 2004-08-24  Paul Brook  <paul@codesourcery.com>
9478
9479         * config/arm/arm.c (arm_override_options): Update error message.
9480         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
9481         TARGET_HARD_FLOAT_ABI.
9482         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
9483         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
9484
9485 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
9486
9487         PR target/17093
9488         * config/m32r.md (movsi_sda): Add SI mode specification to
9489         UNSPEC.
9490
9491 2004-08-24  Nick Clifton  <nickc@redhat.com>
9492
9493         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
9494         of seth_add3_operand.
9495
9496 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
9497
9498         * Makefile.in (PROTO_OBJS): Add errors.o.
9499         * protoize.c (fancy_abort): Remove.
9500         * mips-tfile.c (fancy_abort): Add parameters.
9501
9502 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
9503
9504         * doc/trouble.texi (C++ misunderstandings): Fix example code.
9505
9506 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
9507
9508         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
9509         (host-default.o): Add dependency on HOOKS_H.
9510         * config/x-linux: Likewise.
9511         * config/x-solaris: Likewise.
9512         * config/i386/x-mingw32: Likewise.
9513         * config/rs6000/x-darwin: Likewise.
9514
9515 2004-08-23  James E Wilson  <wilson@specifixinc.com>
9516
9517         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
9518         DEF_REG_NOTE.
9519
9520 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
9521
9522         PR c/14492
9523         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
9524
9525 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
9526
9527         * cfg.c (check_bb_profile): Fix typos.
9528         * function.c (assign_parm_is_stack_parm): Likewise.
9529         * tree-nested.c: Likewise.
9530
9531 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
9532
9533         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
9534         Remove TYPECODE.
9535         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
9536
9537 2004-08-23  Eric Christopher  <echristo@redhat.com>
9538
9539         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
9540         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
9541         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
9542         * target.h: Ditto.
9543         * hooks.h: Include machmode.h.
9544         (hook_bool_mode_false): Declare.
9545         * hooks.c (hook_bool_mode_false): Define.
9546         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
9547         * stor-layout.c (layout_type): Ditto.
9548         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
9549         Define to target macro.
9550         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
9551         * config/arm/arm.c: Ditto. Use.
9552         * config/arm/arm.h: Ditto.
9553         * config/arm/arm-protos.h: Ditto.
9554         * config/i386/i386.c: Ditto.
9555         * config/i386/i386.h: Ditto.
9556         * config/rs6000/rs6000.c: Ditto.
9557         * config/rs6000/rs6000.h: Ditto.
9558         * config/sh/sh.c: Ditto.
9559         * config/sh/sh.h: Ditto.
9560         * config/sh/sh-protos.h: Ditto.
9561         * config/sh/sh.md: Use.
9562         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
9563         to TARGET_VECTOR_MODE_SUPPORTED_P.
9564
9565 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
9566
9567         * Makefile.in (BUILD_ERRORS): Set to build-errors.
9568         (errors.o): New target for host.
9569         (build-errors.o): New target for build.
9570         (genobjs): Replace errors.o with build-errors.
9571         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
9572         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
9573         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
9574         (fix-header.o): Add errors.h
9575         * collect2.c (fancy_abort): Add parameters.
9576         * collect2.h (fancy_abort): Don't declare.
9577         * errors.h (fancy_abort): Don't declare.
9578         * errors.c: Include either bconfig.h or config.h.
9579         (fancy_abort): Trim filename.
9580         * fix-header.c (v_fatal, fatal): Remove.
9581         (progname): Remove definition.
9582         (main): Set progname here.
9583         * gcc.c (fancy_abort): Add parameters.
9584         * gcc.h (fancy_abort): Remove declaration.
9585         * gcov.c (fancy_abort): Remove.
9586         * rtl.h (fancy_abort): Don't declare.
9587         (abort): Don't define.
9588         * tree.h (fancy_abort): Don't declare.
9589         (abort): Don't define.
9590         * system.h (fancy_abort): Declare.
9591         (abort): Define to fancy_abort.
9592         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
9593
9594         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
9595         (usize_type, ubitsizetype): Remove.
9596         * stor-layout.c (set_sizetype): Don't initialize usizetype,
9597         ubitsizetype.
9598         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
9599
9600         * tree.h (build_distinct_type_copy): New.
9601         (build_type_copy): ... here.  Rename to ...
9602         (build_variant_type_copy): ... here.
9603         * tree.c (build_qualified_type): Rename build_type_copy call.
9604         (build_distinct_type_copy): New, broken out of ...
9605         (build_type_copy): ... here.  Rename to ...
9606         (build_variant_type_copy): ... here.  Use
9607         build_distinct_type_copy.
9608         (build_common_tree_nodes_2): Rename build_type_copy call.
9609         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
9610         call.
9611         (handle_packed_attribute, handle_unused_attribute,
9612         handle_transparanet_union_attribute, handle_aligned_attribute,
9613         handle_deprecated_attribute): Likewise.
9614         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
9615         Likewise.
9616         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
9617         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
9618         build_distinct_type_copy.
9619
9620 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9621
9622         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
9623         attribute.
9624
9625 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9626
9627         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
9628         loads and stores.
9629         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
9630         formerly unnamed patterns.  Redefine using :P for the address.  Remove
9631         explicit length attributes.
9632
9633 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9634
9635         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
9636         New functions.
9637         (single_reachable_address): Use them.
9638         (schedule_sm): Add dump.
9639         (is_call_clobbered_ref): New function.
9640         (determine_lsm_reg): Check whether the reference is call clobbered.
9641         Only work for gimple_reg_type values.
9642
9643 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9644
9645         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
9646         $31 store insns.  Redefine using :GPR.
9647
9648 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9649
9650         * config/mips/mips.md (P): New mode macro.
9651         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
9652         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
9653         Add mode attributes.
9654
9655 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9656
9657         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
9658         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
9659         later constants to cover the gap.
9660         (load, store): New mode attributes.
9661         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
9662         Use new unspec constants.
9663
9664 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9665
9666         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
9667         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
9668         to use register_operand rather than uns_arith_operand as the predicate
9669         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
9670         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
9671         Redefine using :GPR.  Make same predicate change here.  Extend the
9672         commutativity of operands 1 and 2 from the SImode version to the
9673         DImode one.
9674         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
9675         but with no predicate changes.
9676         (*nor[sd]i3): Redefine using :GPR.
9677
9678 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9679
9680         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
9681         noreturn functions.
9682
9683 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9684
9685         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
9686         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
9687         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
9688         rather than "%z2" (with a fake const0_rtx for operand 2).
9689         (ffs[sd]i2): Redefine using :GPR.
9690         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
9691
9692 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9693
9694         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
9695
9696 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9697
9698         * config/mips/mips.md (any_extend): New code macro.
9699         (u, su): New code attributes.
9700         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
9701         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
9702         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
9703         (*{s,u}mul_acc_di): Redefine using any_extend.
9704         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
9705         to reflect real insn names.
9706         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
9707         with an any_extend template.
9708         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
9709         Add '*' to name.
9710
9711 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9712
9713         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
9714         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
9715         (mul[sd]i3_r4000): Redefine using :GPR.
9716         (mulsi3_mult3): Don't check TARGET_MAD separately.
9717         (muldi3_mult3): Moved after mulsi_mult3.
9718
9719 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9720
9721         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
9722         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
9723         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
9724         (TARGET_GAS, TARGET_MIPS_AS): Delete.
9725         (TARGET_GPWORD): Define to true for n32 on IRIX.
9726         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
9727         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
9728         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
9729         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
9730         (MDEBUG_ASM_SPEC): Delete, folding into...
9731         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
9732         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
9733         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
9734         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
9735         to define asm_abi_default_spec.
9736         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
9737         (TARGET_ASM_SELECT_SECTION): Delete.
9738         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
9739         for non-mips16 code, removing previous workaround for SGI assemblers.
9740         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
9741         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
9742         (override_options): Remove !TARGET_GAS and !have_named_sections code.
9743         (print_operand): Fold TARGET_GAS conditionals into asm strings.
9744         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
9745         ASM_STABS_OP and ASM_STABN_OP.
9746         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
9747         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
9748         (mips_output_function_prologue): Remove !TARGET_GAS code.
9749         (mips_select_rtx_section): Remove !have_named_sections code.
9750         (mips_select_section): Delete.
9751         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
9752         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
9753         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
9754         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
9755         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
9756         * config/mips/windiss.h (ASM_SPEC): Likewise.
9757
9758 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9759
9760         * read-rtl.c (map_value, mapping, macro_group): New structures.
9761         (BELLWETHER_CODE): New macro.
9762         (modes, codes, bellwether_codes): New variables.
9763         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
9764         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
9765         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
9766         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
9767         (add_map_value, initialize_macros): New functions.
9768         (def_hash, def_hash_eq_p): Generalize to anything that points to,
9769         or starts with, a char * field.
9770         (find_macro, read_mapping, check_code_macro): New functions.
9771         (read_rtx_1): New, split out from read_rtx.  Handle the new
9772         define_{mode,code}_{macro,attr} constructs.  Use find_macro
9773         to parse the name of a code or mode.  Use BELLWETHER_CODE to
9774         extract the format and to choose a suitable code for rtx_alloc.
9775         Modify recursive invocations to use read_rtx_1.
9776         (read_rtx): Call initialize_macros.  Apply code and mode macros
9777         to the rtx returned by read_rtx_1.  Cache everything after the
9778         first macro expansion for subsequent read_rtx calls.
9779         * doc/md.texi: Document new .md constructs.
9780         * config/mips/mips.md (GPR): New mode macro.
9781         (d, si8_di5): New mode attributes.
9782         (any_cond): New code macro.
9783         (add[sd]i3): Redefine using :GPR.
9784         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
9785         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
9786         previously unnamed MIPS16 patterns.
9787         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
9788         lines.  Don't match (plus (const_int 0) ...).
9789         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
9790         Use a define_split to generate the addition.
9791         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
9792         (subsi3_internal): Delete.
9793         (*subsi3_extended): Renamed from subsi3_internal_2.
9794         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
9795         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
9796         using an any_cond template.
9797
9798 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9799
9800         * read-rtl.c (read_rtx): Tidy use of format_ptr.
9801
9802 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9803
9804         * read-rtl.c (string_obstack): New file-scope variable.
9805         (read_string, read_quoted_string, read_braced_string)
9806         (read_escape): Remove obstack parameter and use string_obstack instead.
9807         (read_rtx): Remove function-local rtl_obstack and initialize
9808         string_obstack instead.  Update call to read_string.
9809
9810 2004-08-22  Andrew Pinski  <apinski@apple.com>
9811
9812         PR c/15262
9813         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
9814         expression is not constant.
9815         (c_finish_return): Do not go through INDIRECT_REF when looking
9816         for the inner expression of an ADDR_EXPR for warning about.
9817
9818 2004-08-22  Richard Henderson  <rth@redhat.com>
9819
9820         PR 17075
9821         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
9822         create new blocks and fall through.
9823         (expand_gimple_basic_block): Update to match.
9824
9825 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
9826
9827         * reload.c (find_reloads_address): Make return value tri-state.
9828         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
9829         (find_reloads): Assume that reloaded addresses match 'o' or
9830         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
9831         returned 1 (not -1).  Omit optional reloads for address operands
9832         only if find_reloads_address returned 1 (not -1).
9833
9834         * config/s390/s390.c (legitimize_reload_address): New function.
9835         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
9836         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
9837         legitimize_reload_address.
9838
9839 2004-08-22  Richard Hendersion  <rth@redhat.com>
9840
9841         * tree.h (SAVE_EXPR_RESOLVED_P): New.
9842         * gimplify.c (gimplify_save_expr): Use it.
9843         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
9844         on the temporary variable.
9845
9846 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
9847
9848         * fold-const.c (rtl_expr_nonnegative_p): Delete.
9849         * tree.h (rtl_expr_nonnegative_p): Remove.
9850
9851 2004-08-22  Steven Bosscher  <stevenb@suse.de>
9852
9853         * config/i386/ppro.md (ppro_complex_insn): Add missing check
9854         for cpu==pentiumpro.
9855
9856         * combine.c (struct reg_stat): Fix comment typo.
9857
9858 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9859
9860         * c-tree.h (c_sizeof_nowarn): Remove.
9861
9862 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
9863
9864         * c-decl.c (set_array_declarator_type): Rename to
9865         set_array_declarator_inner.
9866         (build_c_parm, build_attrs_declarator, build_function_declarator):
9867         New functions.
9868         (make_pointer_declarator): Call build_attrs_declarator.
9869         * c-tree.h (set_array_declarator_type): Rename to
9870         set_array_declarator_inner.
9871         (build_c_parm, build_attrs_declarator, build_function_declarator):
9872         New prototypes.
9873         * c-parse.in (after_type_declarator,
9874         parm_declarator_starttypename, parm_declarator_nostarttypename,
9875         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
9876         firstparm): Use these functions
9877
9878 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
9879
9880         * c-decl.c (build_array_declarator, set_array_declarator_type,
9881         start_decl, grokdeclarator, grokparms): Change boolean parameters
9882         to type bool.
9883         * c-tree.h (build_array_declarator, set_array_declarator_type,
9884         start_decl): Update prototypes.
9885         * c-decl.c, c-parse.in: All callers changed.
9886
9887 2004-08-21  Mike Stump  <mrs@apple.com>
9888
9889         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
9890         (darwin_fix_and_continue): Likewise.
9891         (darwin_fix_and_continue_switch): Likewise.
9892         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
9893         (darwin_fix_and_continue): Likewise.
9894         (darwin_fix_and_continue_switch): Likewise.
9895
9896 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
9897
9898         PR  c++/16030
9899         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
9900         Remove, merging into ...
9901         (gen_stdcall_or_fastcall_suffix): New function, returning tree
9902         rather than const char*, and accepting additional parameter.
9903         Don't add suffix to '*'-prefixed symbols or variadic functions.
9904         (i386_pe_encode_section_info): Adjust for call to new function.
9905         Call change_decl_assembler_name.
9906
9907 2004-08-20  Mike Stump  <mrs@apple.com>
9908
9909         * config/darwin.c (machopic_indirect_data_reference): Mark
9910         stubs as defined.
9911         * config/386/386.c (darwin_local_data_pic): Add.
9912         (legitimate_constant_p): Reorder so that PLUS handling runs
9913         before darwin_local_data_pic to match the ordering in
9914         legitimate_pic_address_disp_p and so that MINUS runs after
9915         darwin_local_data_pic as otherwise the darwin_local_data_pic
9916         logic can be skipped, which would be very bad.
9917         (legitimate_pic_address_disp_p): Move from from here to
9918         darwin_local_data_pic so it can be reused.
9919
9920 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
9921
9922         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
9923         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
9924         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
9925         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
9926         (RS6000_ABI_NAME): Define as "linux".
9927         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
9928         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
9929         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
9930         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
9931         * config/rs6000/rs6000.c (dot_symbols): New global var.
9932         (rs6000_output_function_entry): New function, modified for
9933         !DOT_SYMBOLS..
9934         (print_operand <case 'z'>): ..extracted from here.
9935         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
9936         (rs6000_output_function_epilogue): Likewise.
9937         (rs6000_elf_declare_function_name): Likewise.
9938         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
9939         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
9940         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
9941         * configure: Regenerate.
9942         * config.in: Regenerate.
9943
9944 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
9945
9946         * reload.c (find_reloads_address): Fix thinko in previous change.
9947
9948         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
9949         a CONST_INT.
9950
9951 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
9952
9953         PR rtl-optimization/17099
9954         * combine.c (force_to_mode): Check if inner_mask has any bits set
9955         outside of GET_MODE (x) instead of op_mode.
9956
9957 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
9958
9959         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
9960         fragment.
9961         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
9962         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
9963         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
9964         architecture.
9965         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
9966         configurations.
9967         * config/arm/t-symbian: New file.
9968
9969 2004-08-20  Andrew Pinski  <apinski@apple.com>
9970
9971         * regrename.c (kill_value_regno): ANSIfy.
9972
9973 2004-08-20  Dale Johannesen  <dalej@apple.com>
9974
9975         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
9976
9977 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
9978
9979         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
9980         (kill_value_regno): New function, derived from kill_value.
9981         (kill_value): Update.
9982         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
9983
9984 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
9985
9986         Fix PR tree-optimization/17111
9987         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
9988         of non-value_handles.
9989         (bitmap_set_contains): All constants are in every set.
9990
9991 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
9992
9993         * fold-const.c (round_up, round_down): Use build_int_cst.
9994         Optimize common case.
9995
9996 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
9997             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9998
9999         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
10000         one_only_data_section): Rename to som_readonly_data_section,
10001         som_one_only_readonly_data_section and som_one_only_data_section.
10002         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
10003         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
10004         conditional defines.
10005         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
10006         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
10007         string values.
10008         (pa_select_section): Use renamed section functions.
10009         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
10010         SOM_READONLY_DATA_SECTION_FUNCTION,
10011         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
10012         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
10013         Define here ...
10014         * config/pa/som.h: ... not here.
10015         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
10016         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
10017         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
10018         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
10019         (READONLY_DATA_SECTION): Use som_readonly_data_section.
10020
10021 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
10022
10023         * fold-const.c (int_const_binop): Don't generate non-overflowing
10024         size-types specially.
10025         (fold_convert_const): Likewise.
10026
10027         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
10028         clear cache on copied sizetype.
10029
10030 2004-08-20  Ben Elliston  <bje@au.ibm.com>
10031
10032         * configure.ac: Don't escape apostrophe in --enable-coverage help.
10033         * configure: Regenerate.
10034
10035 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
10036
10037         PR 5620
10038         * gcc.c (struct stat input_stat): Don't define if
10039         HOST_LACKS_INODE_NUMBERS
10040         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
10041         than stat to determine if temp file is same as input file.
10042         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
10043         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
10044
10045 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
10046
10047         * configure.ac (mips*-*-*): Print an error if not using GAS.
10048         * configure: Regenerated.
10049         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
10050         comments about buggy MIPSpro assemblers.
10051         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
10052         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
10053         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
10054         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
10055         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
10056         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
10057         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
10058         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
10059         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
10060         of more general IRIX 6 definitions.
10061         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
10062         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
10063         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
10064         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
10065         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
10066         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
10067         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
10068         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
10069         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
10070         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
10071         (LINK_SPEC): Move most of definition to iris.h.
10072         (SUBTARGET_LINK_SPEC): New macro.
10073         (IRIX_STARTFILE_SPEC): Fold into...
10074         (STARTFILE_SPEC): ...here.
10075         (IRIX_ENDFILE_SPEC): Fold into...
10076         (ENDFILE_SPEC): ...here.
10077         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
10078         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
10079         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
10080         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
10081         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
10082         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
10083         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
10084         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
10085         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
10086         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
10087         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
10088         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
10089         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
10090         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
10091         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
10092         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
10093         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
10094         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
10095         (TARGET_IRIX6): Define to 1.
10096         (DRIVER_SELF_SPECS): Define.
10097         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
10098         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
10099         (SUBTARGET_LINK_SPEC): New macro.
10100         (IRIX_STARTFILE_SPEC): Fold into...
10101         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
10102         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
10103         (LIB_SPEC, LIBGCC_SPEC): Use them.
10104         (LIB_SPEC): Remove !mabi=* case.
10105         (IRIX_ENDFILE_SPEC): Fold into...
10106         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
10107         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
10108         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
10109         (TARGET_IRIX6): New macro.
10110         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
10111         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
10112         (LABEL_AFTER_LOC): Delete.
10113         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
10114         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
10115         (mips_build_builtin_va_list): Check TARGET_IRIX6.
10116         (override_options): Remove TARGET_SGI_O32_AS-related code.
10117         (irix_output_external_libcall): Make static.
10118         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
10119         LABEL_AFTER_LOC.
10120         (mips_file_start): Tidy guard for ABI sections.  Remove use of
10121         ABICALLS_ASM_OP; use .abicalls instead.
10122         (mips_output_aligned_decl_common, mips_declare_object_name)
10123         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
10124         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
10125         .globl foo .text directives.
10126         (irix_asm_named_section_1, irix_asm_named_section)
10127         (irix_section_align_entry, irix_section_align_htab)
10128         (irix_orig_asm_out_file, irix_section_align_entry_eq)
10129         (irix_section_align_entry_hash, irix_asm_output_align)
10130         (irix_file_start, irix_section_align_1, copy_file_data)
10131         (irix_file_end, irix_section_type_flags): Delete.
10132         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
10133         Use standard section syntax.  Remove protective "jr $31".
10134         (__gcc_fini): Likewise .gcc_fini.
10135         * config/mips/irix-crtn.asm: Adjust sections accordingly.
10136         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
10137         iris5gas.h.
10138         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
10139         from t-irix-gld.
10140         (EXTRA_MULTILIB_PARTS): Define.
10141         * config/mips/t-iris6: Remove bogus comment.
10142         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
10143         * config/mips/iris5gas.h, config/mips/iris5gld.h,
10144         config/mips/iris6gas.h, config/mips/iris6gld.h,
10145         config/mips/t-iris5-as, config/mips/t-iris5-gas
10146         config/mips/t-irix-gld: Delete.
10147         * config/mips/iris.h: New file.
10148         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
10149
10150 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
10151
10152         * postreload.c (reload_cse_move2add): Allow any condjump, but check
10153         that the implicit set isn't clobbered in the jump insn.
10154
10155 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
10156
10157         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
10158         * optabs.c (init_optabs): Don't check it.
10159         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
10160         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
10161
10162 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
10163
10164         * config/s390/s390.md (s390_warn_framesize_string)
10165         (s390_warn_dynamic_string, s390_stack_size_string)
10166         (s390_stack_guard_string): New global string variables.
10167         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
10168         (s390_stack_guard): New global variables.
10169         (override_options): Added checks for the new options.
10170         (s390_emit_prologue): Emit stack check and trap code and perform
10171         compile time stack size checking.
10172
10173         * config/s390/s390.h (TARGET_OPTIONS): Added new options
10174         "warn-framesize", "warn-dynamicstack", "stack-size" and
10175         "stack-guard".
10176
10177         * doc/invoke.texi: Added documentation for the new options.
10178
10179 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
10180
10181         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
10182         to eliminate warning.
10183         (linear_search_fdes): Declare p as unsigned.
10184         (binary_search_mixed_encoding_fdes): Likewise.
10185         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
10186         to eliminate warning.
10187         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
10188         type cast.
10189
10190 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
10191
10192         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
10193         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
10194         instead of one.  Check for strictly legitimate address.
10195         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
10196         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
10197
10198 2004-08-19  Eric Christopher  <echristo@redhat.com>
10199
10200         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
10201         * langhooks.h (unsave_expr_now): Ditto.
10202         * tree.h (unsave_expr_1): Remove prototype.
10203         (lhd_unsave_expr_now): Rename to unsave_expr_now.
10204         * tree-inline.c (unsave_expr_1): Move here
10205         from tree.c. Make static.
10206         (unsave_expr_now): Rename from lhd_unsave_expr_now.
10207         * tree-sra.c: Fix up for rename.
10208         * tree-ssa-copy.c: Ditto.
10209         * tree-eh.c: Ditto.
10210         * tree.c (unsave_expr_1): Move to tree-inline.c.
10211
10212 2004-08-19  Caroline Tice  <ctice@apple.com>
10213
10214         * config/i386/cygming.h (switch_to_section):  Fix typo (change
10215         in_unlikely_text_section to in_unlikely_executed_text).
10216
10217 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
10218
10219         * vec.h (VEC_lower_bound): New macro.
10220
10221 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
10222
10223         PR target/16446
10224         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
10225         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
10226         treat each ABI separately.  Deal with n32/n64 complex float arguments.
10227         (function_arg): Add associated complex handling here.
10228
10229 2004-08-19  Richard Henderson  <rth@redhat.com>
10230
10231         * config/arm/arm.c (arm_gen_load_multiple): Use
10232         adjust_automodify_address.  Take base memory and offset instead
10233         of unchanging/struct/scalar bits.
10234         (arm_gen_store_multiple): Likewise.
10235         (arm_gen_movmemqi): Use adjust_automodify_address.
10236         * config/arm/arm-protos.h: Update decls.
10237         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
10238         (store_multiple): Similarly.
10239
10240 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
10241
10242         * regclass.c (globalize_reg): Update call_really_used_regs.
10243
10244 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
10245
10246         * doc/invoke.texi (integer-share-limit): Document.
10247
10248         * tree.h (TYPE_CACHED_VALUES_P): New.
10249         (TYPE_CACHED_VALUES): New.
10250         (TYPE_ORIG_SIZE_TYPE): Adjust.
10251         * tree.def (INTEGER_CST): Update documentation.
10252         * tree.c: Inlcude params.h.
10253         (build_int_cst): Cache small values.
10254         (build_type_copy): Do not copy the value cache.
10255         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
10256         unneeded zeroing.
10257         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
10258         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
10259         cache.
10260         * fold-const.c (force_fit_type): Copy value when setting
10261         overflows.
10262         (int_const_binop): Likewise.
10263         * stor-layout.c: Include params.h
10264         (set_sizetype): Create values cache.
10265         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
10266         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
10267         * params.h (INTEGER_SHARE_LIMIT): New.
10268         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
10269
10270 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
10271
10272         * gimplify.c (gimplify_minimax_expr): Remove.
10273         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
10274
10275 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
10276
10277         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
10278         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
10279
10280 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
10281
10282         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
10283
10284 2004-08-18  Andrew Pinski  <apinski@apple.com>
10285
10286         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
10287
10288 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
10289
10290         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
10291         (__aeabi_ul2f): Likewise.
10292
10293 2004-08-18  Richard Henderson  <rth@redhat.com>
10294
10295         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
10296         move to rtl completely.
10297         (struct meminsnbuf, xtensa_emit_block_move): Remove.
10298         (xtensa_find_mode_for_size): Remove.
10299         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
10300         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
10301
10302 2004-08-18  Richard Henderson  <rth@redhat.com>
10303
10304         * config/mcore/mcore.c (mode_from_align): Remove DImode.
10305         (block_move_sequence): Rewrite to use adjust_address.
10306         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
10307         Return boolean indicating success/failure.
10308         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
10309         * config/mcore/mcore.md (movmemsi): Update to match.
10310
10311 2004-08-18  Mike Stump  <mrs@apple.com>
10312
10313         * doc/invoke.texi (-mfix-and-continue): Add support for
10314         fast turn around debugging.
10315         (-ffix-and-continue): Likewise.
10316         (-mindirect-data): Likewise.
10317         (-findirect-data): Likewise.
10318         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
10319         (indirect_data): Likewise.
10320         (machopic_data_defined_p): Likewise.
10321         (machopic_output_indirection): Likewise.
10322         (darwin_encode_section_info): Likewise.
10323         (darwin_fix_and_continue): Likewise.
10324         (darwin_fix_and_continue_switch): Likewise.
10325         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
10326         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
10327         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
10328         (SUBTARGET_OPTIONS): Likewise.
10329         (darwin_fix_and_continue): Likewise.
10330         (darwin_fix_and_continue_switch): Likewise.
10331         (TARGET_FIX_AND_CONTINUE): Likewise.
10332         * config/rs6000.c (rs6000_emit_prologue): Likewise.
10333
10334 2004-08-19  Steven Bosscher  <stevenb@suse.de>
10335
10336         * basic-block.h (struct edge_def): Remove crossing_edge.
10337         (EDGE_CROSSING): New define.
10338         (EDGE_ALL_FLAGS): Update.
10339         * bb-reorder.c (find_traces_1_round, better_edge_p,
10340         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
10341         find_jump_block, fix_crossing_conditional_branches,
10342         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
10343         Replace all occurences of crossing_edge with an edge flag check
10344         or set/reset.
10345         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
10346         try_crossjump_bb): Likewise.
10347         * cfglayout.c (fixup_reorder_chain): Likewise.
10348         * cfgrtl.c (force_nonfallthru_and_redirect,
10349         commit_one_edge_insertion): Likewise.
10350
10351         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
10352         * tree-flow.h (compute_dominance_frontiers): Move prototype...
10353         * basic-block.h:  ...here.
10354         * tree-cfg.c (compute_dominance_frontiers_1,
10355         compute_dominance_frontiers): Move from here...
10356         * cfganal.c: ...to here.  Include timevar.h.
10357
10358 2004-08-18  James E Wilson  <wilson@specifixinc.com>
10359
10360         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
10361         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
10362
10363         * config/mips/mips.md (type): Add frdiv.
10364         (divsf3+1, divsf3+2): Change type to frdiv.
10365         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
10366         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
10367
10368         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
10369         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
10370         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
10371         * config/mips/5000.md (r5k_fdiv_single): Likewise.
10372         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
10373         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
10374         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
10375         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
10376         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
10377         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
10378         Likewise.
10379         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
10380
10381 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
10382
10383         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
10384         get regression tester working again.
10385
10386 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
10387
10388         * insn-notes.def, reg-notes.def: New files.
10389         * rtl.h: Use them to define enum insn_note and enum reg_note.
10390         * rtl.c: Use them to define note_insn_name and reg_note_name.
10391         * Makefile.in (RTL_BASE_H): Update.
10392
10393         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
10394         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
10395
10396 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
10397
10398         * arm.c (arm_size_rtx_costs): New function.
10399         (arm_override_options): Use it if optimizing for space.
10400
10401 2004-08-18  Richard Henderson  <rth@redhat.com>
10402
10403         * emit-rtl.c (gen_const_mem): New.
10404         * rtl.h (gen_const_mem): Declare.
10405         * expr.c (do_tablejump): Use it.
10406         * varasm.c (force_const_mem): Likewise.
10407         * config/darwin.c (machopic_indirect_data_reference): Likewise.
10408         (machopic_legitimize_pic_address): Likewise.
10409         * config/arm/arm.c (legitimize_pic_address): Likewise.
10410         * config/i386/i386.c (legitimize_pic_address): Likewise.
10411         (legitimize_tls_address): Likewise.
10412         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
10413         * config/ia64/ia64.md (load_fptr): Likewise.
10414         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
10415         * config/pa/pa.c (legitimize_pic_address): Likewise.
10416         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
10417         (rs6000_emit_move): Likewise.
10418         * config/s390/s390.c (legitimize_pic_address): Likewise.
10419         (legitimize_tls_address): Likewise.
10420         * config/s390/s390.md (casesi): Likewise.
10421         * config/sh/sh.c (sh_reorg): Likewise.
10422         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
10423         * config/v850/v850.md (casesi): Likewise.
10424
10425         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
10426         * config/sh/sh.c (prepare_move_operands): Remove incorrect
10427         use of MEM_READONLY_P.
10428
10429 2004-08-18  Steven Bosscher  <stevenb@suse.de>
10430
10431         * Makefile.in (OBJS-common): Add postreload-gcse.c.
10432         Add new postreload-gcse.o.
10433         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
10434         (lookup_as_function, insert, rehash_using_reg, use_related_value,
10435         equiv_constant): Use SAFE_HASH instead of safe_hash.
10436         (exp_equiv_p): Export.  Add for_gcse argument when comparing
10437         for GCSE.
10438         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
10439         find_comparison_args, fold_rtx, cse_insn): Update callers.
10440         (hash_rtx): New function derived from old canon_hash and bits
10441         from gcse.c hash_expr_1.
10442         (canon_hash_string): Rename to hash_rtx_string.
10443         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
10444         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
10445         (cselib_lookup): Update this caller.
10446         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
10447         Make static.
10448         (hash_expr): Call hash_rtx.
10449         (ldst_entry): Likewise.
10450         (expr_equiv_p): Call exp_equiv_p.
10451         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
10452         reg_used_on_edge, reg_set_between_after_reload_p,
10453         reg_used_between_after_reload_p, get_avail_load_store_reg,
10454         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10455         get_bb_avail_insn, hash_scan_set_after_reload,
10456         compute_hash_table_after_reload,
10457         eliminate_partially_redundant_loads, gcse_after_reload,
10458         get_bb_avail_insn, gcse_after_reload_main): Remove.
10459         * postreload-gcse.c: New file, reincarnating most of the above.
10460         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
10461         (gcse_after_reload_main): Update prototype.
10462         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
10463         * passes.c (rest_of_handle_gcse2): Use it.
10464
10465 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
10466
10467         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
10468         (pass_loop_done): Likewise.
10469
10470 2004-08-18  Andrew Pinski  <apinski@apple.com>
10471
10472         * config/rs6000/darwin.md: Delete the altivec patterns which are
10473         handled differently now.
10474         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
10475         (macho_correct_pic_di): Likewise.
10476         (call_indirect_nonlocal_darwin64): Likewise.
10477         Delete the save world/saveFP/saveVec patterns.
10478
10479         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
10480         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
10481         * config/rs6000/rs6000.md: Include darwin.md.
10482         (builtin_setjmp_receiver): Add DImode case.
10483         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
10484         Darwin bits.
10485
10486 2004-08-18  Matt Austern  <austern@apple.com>
10487
10488         Dead code stripping
10489         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
10490         * darwin.c (darwin_file_end): Mark file as potentially strippable.
10491
10492 2004-08-18  Richard Henderson  <rth@redhat.com>
10493
10494         * alias.c (readonly_fields_p): Remove.
10495         (objects_must_conflict_p): Don't call it.
10496         * tree.h (readonly_fields_p): Remove.
10497         * langhooks.h (struct lang_hooks): Remove honor_readonly.
10498         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
10499
10500 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
10501
10502         * tree-dfa.c (add_referenced_var): Only global variables are
10503         call-clobbered.
10504         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
10505         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
10506         all pointers dereferenced if the statement dereferences them.
10507         (create_name_tags): Do not create memory tags for pointers
10508         that have PT_ANYTHING set.
10509         Also check if PT_VARS is not empty before creating a name tag.
10510         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
10511         variables that share the same alias set with a pointer that
10512         may point anywhere.
10513         (add_may_alias): Add FIXME comment to remove clobbering
10514         aliased variables and tags.
10515         (replace_may_alias): Likewise.
10516         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
10517         (merge_pointed_to_info): If the original variable has not
10518         points-to information, call set_pt_anything.
10519         (add_pointed_to_var): Do not prevent adding a pointed-to
10520         variable if the pointers is PT_ANYTHING.
10521         If the variable is a global, set PT_GLOBAL_MEM.
10522         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
10523         pointer type only come in PTR+OFFSET flavours.
10524         Always call merge_pointed_to_info on PHI arguments that are
10525         SSA_NAMEs.
10526         (get_nmt_for): Mark call-clobbered tags whose pointer points
10527         to global memory.
10528         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
10529         values.
10530         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
10531         FLAGS.
10532         (add_stmt_operand): Abort if the caller tried to add a killing
10533         definition for a memory tag.
10534         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
10535         unnecessary checks.
10536
10537 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
10538
10539         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
10540         from call_used_regs.  Update call_really_used_regs.
10541         (CALL_REALLY_USED_REGISTERS): Define.
10542         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
10543         Replace call_used_regs with call_really_used_regs.
10544         (calc_live_regs, sh_media_register_for_return): Likewise.
10545         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
10546         * sh.md (return_media): Likewise.
10547
10548 2004-08-18  Andrew Pinski  <apinski@apple.com>
10549
10550         * config/darwin.c (machopic_legitimize_pic_address): Only set
10551         MEM_READONLY_P in the non TARGET_TOC case.
10552
10553 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
10554
10555         * rtl.def (NIL): Delete.
10556         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
10557         Tighten the syntax a little.
10558
10559         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
10560         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
10561         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
10562         * config/i386/predicates.md, config/m32r/m32r.h
10563         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
10564         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
10565         * config/sparc/sparc.h, doc/tm.texi:
10566         Replace all occurrences of NIL with UNKNOWN.
10567
10568 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
10569
10570         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
10571         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
10572         sequence inline.  Move drop_through_label code into this
10573         block, being the only place it is used.  Adjust comments.
10574
10575 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
10576
10577         * config/rs6000/altivec.md: Add new patterns for calls to
10578         save_world/rest_world functions.
10579
10580         * config/rs6000/rs6000-protos.h: (save_world_operation,
10581         restore_world_operation) new declarations.
10582
10583         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
10584         field added.
10585         (rs6000_stack_info): Set world_save_p field.
10586         (save_world_operation): New function.
10587         (restore_world_operation): New function.
10588         (compute_save_world_info): New function.
10589         (rs6000_stack_info): Call compute_save_world_info.
10590         (rs6000_emit_prologue): Check for world_save_p and generate
10591         pattern to call save_world for saving all non-volatile and
10592         special registers.
10593         (rs6000_emit_epilogue): Check for world_save_p and generate
10594         pattern to call rest_world to restore saved registers.
10595
10596         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
10597         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
10598         (rs6000_reg_names): New entries added for save_world_operation and
10599         restore_world_operation.
10600
10601 2004-08-18  Caroline Tice  <ctice@apple.com>
10602
10603         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
10604         "-freorder-blocks-and-partition" to the flags used in second
10605         stage of profiledbootstrap.
10606         * bb-reorder.c (push_to_next_round_p): Add new variable,
10607         next_round_is_last; set and use variable to make sure, when
10608         partitioning, that the last trace construction round consists
10609         of all (and only) cold basic blocks.
10610         (rotate_loop): Don't copy blocks that end in a section
10611         crossing jump.
10612         (copy_bb): Correctly initialize "partition" of duplicated bb.
10613         (add_unlikely_executed_notes): Add a comment.
10614         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
10615         to make sure, if function contains hot blocks, that the
10616         successors of ENTRY_BLOCK_PTR are hot; also, only look for
10617         crossing edges if the architecture supports named sections.
10618         (mark_bb_for_unlikely_executed_section): Modify to always
10619         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
10620         the basic block note insn.
10621         (fix_crossing_unconditional_branches): Remove extra space.
10622         (fix_edges_for_rarely_executed_code): Modify to only do
10623         partitioning work if the architecture supports named sections.
10624         (reorder_basic_blocks): Modify to only add
10625         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
10626         supports named sections.
10627         * c-common.c (handle_section_attribute): Initialize new global
10628         variable, user_defined_section_attribute, to true if user has
10629         specified one.
10630         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
10631         forward edges that cross section boundaries.
10632         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
10633         partitioning information if the architecture supports named
10634         sections.
10635         * cfgrtl.c (target.h): Add statement to include this.
10636         (rtl_split_block): Make sure newly created bb gets correct
10637         partition.
10638         (try_redirect_by_replacing_jump): Make sure redirection isn't
10639         attempting to cross section boundaries.
10640         (force_nonfallthru_and_redirect): Only do partition fix up if
10641         architecture supports named sections.
10642         (rtl_split_edge): Make sure newly created bb ends up in
10643         correct partition.
10644         (commit_one_edge_insertion): Remove code that incorrectly
10645         updated basic block partition; Make sure partition fix up only
10646         happens if architecture supports named sections and it's not
10647         already done.
10648         (rtl_verify_flow_info_1): Fix if-condition on test/error
10649         condition that fallthru edges are not allowed to cross section
10650         boundaries.
10651         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
10652         * final.c (final_scan_insn): Remove redundant test from if-statement;
10653         change calls to text_section into calls to function_section; add code
10654         to only to partitioning fix up if architecture supports named
10655         sections.
10656         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
10657         partition.
10658         (if_convert): Add targetm.have_named_sections to test.
10659         * output.h (unlikely_section_label): Extern declaration for new global
10660         variable.
10661         (unlikely_text_section_name): Likewise.
10662         * opts.c (decode_options): If both partitioning and DWARF debugging
10663         are turned on, issue a warning that this doesn't work, and change
10664         partitiong to basic block reordering (without hot/cold partitions).
10665         * passes.c (rest_of_handle_final): Re-set new global variable,
10666         user_defined_section_attribute, to false.
10667         (rest_of_compilation): Change options for calling partitioning
10668         function: Don't call if the user defined the section attribute, and
10669         don't call if DECL_ONE_ONLY is true for the current function.
10670         * predict.c (choose_function_section): Return immediately if we
10671         are doing hot/cold partitioning (i.e. let the basic block partitioning
10672         determine where the function belongs).
10673         * reg-stack.c (emit_swap_insn): Add condition to step over
10674         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
10675         * toplev.c (user_defined_section_attribute): New global variable.
10676         * toplev.h (user_defined_section_attribute): Extern declaration
10677         for new global variable.
10678         * varasm.c (unlikely_section_label): New global variable.
10679         (unlikely_text_section_name): New global variable.
10680         (unlikely_text_section): Add code to initialize
10681         unlikely_text_section_name if necessary; modify to use
10682         unlikely_text_section_name and unlikely_section_label; also to use
10683         named_section properly.
10684         (in_unlikely_text_section):  Modify to work correctly with
10685         named_section and to use unlikely_text_section_name.
10686         (named_section):  Add code to work properly with cold section.
10687         (function_section): Clean up if-statement.
10688         * config/darwin.c (darwin_asm_named_section): Return to original
10689         code, removing use of SECTION_FORMAT_STRING.
10690         * config/arm/pe.h (switch_to_section):  Add case for
10691         in_unlikely_executed_text to switch statement.
10692         * config/i386/cygming.h (switch_to_section): Likewise.
10693         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
10694         (SECTION_FORMAT_STRING): Likewise.
10695         * config/mcore/mcore.h (switch_to_section): Likewise.
10696         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
10697         (SECTION_FORMAT_STRING): Remove.
10698
10699 2004-08-18  Roger Sayle  <roger@eyesopen.com>
10700
10701         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
10702         -ffixed-reg safe, by preserving the meanings of zero and one.
10703         (CALL_USED_REGISTERS): Likewise.
10704         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
10705
10706 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
10707
10708         * config/sh/sh.c (split_branches): Check the result of
10709         next_active_insn.
10710         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
10711         Call rtl_register_cfg_hooks.
10712
10713 2004-08-18  Richard Henderson  <rth@redhat.com>
10714
10715         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
10716         * alias.c (true_dependence): Update to match new semantics.
10717         (canon_true_dependence, write_dependence_p): Likewise.
10718         (anti_dependence, output_dependence): Update write_dependence_p args.
10719         (unchanging_anti_dependence): Remove.
10720         * calls.c (purge_mem_unchanging_flag): Remove.
10721         (fixup_tail_calls): Don't call it.
10722         (expand_call): Don't add unchanging memory to function usage.
10723         * expr.c (emit_block_move_via_libcall): Likewise.
10724         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
10725         (get_subtarget): Don't use RTX_UNCHANGING_P.
10726         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
10727         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
10728         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
10729         * cse.c (insert): Don't use RTX_UNCHANGING_P.
10730         (cse_insn, canon_hash): Use MEM_READONLY_P.
10731         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
10732         instead of RTX_UNCHANGING_P.
10733         * explow.c (maybe_set_unchanging): Remove.
10734         * expr.h (maybe_set_unchanging): Remove.
10735         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
10736         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
10737         (assign_parm_setup_reg, expand_function_start): Likewise.
10738         * integrate.c (copy_rtx_and_substitute): Likewise.
10739         * ra-rewrite.c (emit_colors): Likewise.
10740         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
10741         (fixup_match_1): Likewise.
10742         * reload1.c (reload, alter_reg): Likewise.
10743         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
10744         not RTX_UNCHANGING_P.
10745         (equiv_init_varies_p): Likewise.
10746         * loop-invariant.c (check_maybe_invariant): Likewise.
10747         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
10748         * loop.c (note_addr_stored): Likewise.
10749         (prescan_loop): Likewise. Don't check function usage for clobbered
10750         unchanging memory.
10751         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
10752         not RTX_UNCHANGING_P.
10753         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
10754         * varasm.c (force_const_mem): Likewise.
10755         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
10756         * web.c (entry_register): Likewise.
10757         * tree-gimple.h (get_base_address): Move decl ...
10758         * tree.h: ... here.
10759         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
10760
10761         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
10762         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
10763         (alpha_set_memflags): Update to match.
10764
10765         * config/darwin.c (machopic_indirect_data_reference): Set
10766         MEM_READONLY_P instead of RTX_UNCHANGING_P.
10767         (machopic_indirect_call_target): Likewise.
10768         (machopic_legitimize_pic_address): Likewise.
10769         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
10770         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
10771         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
10772         * config/frv/frv.md (symGOT2reg): Likewise.
10773         * config/i386/i386.c (legitimize_pic_address,
10774         legitimize_tls_address, ix86_split_to_parts): Likewise.
10775         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
10776         * config/ia64/ia64.md (load_fptr): Likewise.
10777         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
10778         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
10779         * config/mcore/mcore.c (block_move_sequence): Likewise.
10780         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
10781         * config/pa/pa.c (legitimize_pic_address): Likewise.
10782         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
10783         (rs6000_emit_move): Likewise.
10784         * config/s390/s390.c (legitimize_pic_address): Likewise.
10785         (legitimize_tls_address): Likewise.
10786         * config/s390/s390.md (casesi): Likewise.
10787         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
10788         * config/sh/sh.md (symGOT2reg): Likewise.
10789         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
10790         * config/v850/v850.md (casesi): Likewise.
10791
10792         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
10793         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
10794         * config/mips/mips.c (mips_restore_gp): Likewise.
10795         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
10796         * config/sh/sh.c (sh_reorg): Likewise.
10797
10798 2004-08-18  Richard Henderson  <rth@redhat.com>
10799
10800         * tree.h (struct tree_decl): Add gimple_formal_temp.
10801         (DECL_GIMPLE_FORMAL_TEMP_P): New.
10802         * gimplify.c (pop_gimplify_context): Clear it.
10803         (lookup_tmp_var): Set it, if is_formal.
10804         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
10805         Use is_gimple_val for VECTOR.  Simplify return value.
10806         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
10807         (gimplify_expr): Likewise.
10808         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
10809         is_gimple_tmp_rhs for clarity.  Update all callers.
10810         (is_gimple_reg_rhs): Simplify logic.
10811         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
10812         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
10813         (is_gimple_formal_tmp_reg): Similarly.
10814         * tree-gimple.h: Update decls.
10815         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
10816         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
10817         * tree-ssa-live.c (var_union, type_var_init): Likewise.
10818
10819 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
10820
10821         * c4x.c (legitimize_operands): Remove calls to
10822         preserve_subexpressions_p.
10823
10824 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
10825
10826         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
10827         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
10828
10829 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
10830
10831         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
10832         Objective-C++ extensions.
10833         * gengtype.c (get_file_basename): Match entire subdirectory name
10834         ('cp', 'objc', 'objcp') rather than just its suffix.
10835         (get_base_file_bitmap): Allow for files to belong to more than one
10836         language.
10837         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
10838         used by more than one front-end.
10839
10840 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
10841
10842         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
10843         avoid use of preserve_subexpressions_p.
10844
10845 2004-08-17  Richard Henderson  <rth@redhat.com>
10846
10847         PR 17051
10848         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
10849
10850 2004-08-17  DJ Delorie  <dj@redhat.com>
10851
10852         * doc/extend.texi: Document new xstormy16 attribute.
10853
10854         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
10855         (xstormy16_splittable_below100_or_register): New.
10856         (combine_bnp): New.
10857         (xstormy16_reorg): New.
10858         (TARGET_MACHINE_DEPENDENT_REORG): Define.
10859
10860         * config/stormy16/stormy16.md (movqi_internal): Make name public.
10861         (movhi_internal): Likewise.
10862         (cbhranchhi): Likewise.
10863         (cbhranchhi_neg): Likewise.
10864         (andhi3): Only allow splittable below100 operands.
10865         (iorhi3): Likewise.
10866         (peephole2): New and/zero_extend->and peephole.
10867         (peephole2): New load/ior/save->set1 peephole.
10868         (peephole2): New load/and/save->clr1 peephole.
10869         (bclrx, bclrx2, bclr7, bclr15): New.
10870         (bsetx, bsetx2, bset7, bset15): New.
10871
10872         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
10873         liberal about acceptable 'B' masks.
10874
10875         * config/stormy16/stormy16-protos.h
10876         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
10877         xstormy16_below100_operand, xstormy16_below100_or_register,
10878         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
10879         (PREDICATE_CODES): Add new predicates.
10880
10881         * config/stormy16/stormy16.c
10882         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
10883         xstormy16_below100_operand, xstormy16_below100_or_register,
10884         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
10885         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
10886         (xstormy16_legitimate_address_p): Allow below100 symbols.
10887         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
10888         (xstormy16_expand_move): Leave below100 operands as-is.
10889         (xstormy16_encode_section_info): Encode below100 symbols.
10890         (xstormy16_strip_name_encoding): New.
10891         (xstormy16_print_operand): Print 'b' as shift mask.
10892         (xstormy16_attribute_table): Add below100 attributes.
10893         (xstormy16_handle_below100_attribute): New.
10894
10895         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
10896         (XSTORMY16_SECTION_FUNCTION): New.
10897         (EXTRA_SECTION_FUNCTIONS): Define using the above.
10898         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
10899         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
10900         (ASM_OUTPUT_LABELREF): Define.
10901
10902         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
10903         (movhi_internal): Add below100 support.
10904         (andhi3): Add below100 support.
10905         (iorhi3): Add below100 support.
10906         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
10907
10908 2004-08-17  James E Wilson  <wilson@specifixinc.com>
10909
10910         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
10911         of VOIDmode for comparison code mode.
10912         * config/mips/mips.md: For conditional move patterns, use mode of
10913         first compare operand for comparison mode, instead of VOIDmode.
10914
10915         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
10916         normal and -ffast-math code.
10917
10918 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
10919
10920         PR c++/15871
10921         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
10922
10923 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
10924
10925         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
10926
10927 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
10928
10929         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
10930         for non Darwin targets.
10931         (*call_value_nonlocal_darwin64): Likewise.
10932
10933 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
10934
10935         * config/rs6000/rs6000.c (rs6000_function_value): Check for
10936         altivec mode for altivec return register.
10937
10938 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
10939
10940         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
10941         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
10942         * config/rs6000/rs6000.md: Include darwin.md.
10943         (builtin_setjmp_receiver): Add DImode case.
10944         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
10945         Darwin bits.
10946
10947 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
10948
10949         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
10950         trees.
10951         * tree-vectorizer.h: New File: Same.
10952         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
10953         * common.opt (ftree-vectorize): New flag to enable vectorization.
10954         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
10955         vectorization pass.
10956         * tree-data-ref.h (init_data_ref): Additional argument.
10957         (array_base_name_differ_p): Moved to tree-data-ref.c.
10958         * tree-data-ref.c (array_base_name_differ_p): Revised.
10959         (initialize_data_dependence_relation): Call array_base_name_differ_p
10960         with an extra argument.
10961         (analyze_all_data_dependences): Same.
10962         (init_data_ref): Additional argument is_read to set DR_IS_READ.
10963         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
10964         file.
10965         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
10966         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
10967         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
10968         vectorization pass.
10969         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
10970         (tree_ssa_loop_done): Call scev_finalize.
10971         (tree_vectorize): Define the new vectorization pass.
10972         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
10973         size of the vector they support (until support for multiple vector
10974         sizes is added to the vectorizer).
10975         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
10976         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
10977         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
10978         documentation.
10979
10980 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
10981
10982         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
10983         usage.
10984         (generate_protocol_list, handle_impent): Likewise.
10985
10986 2004-08-17  Roger Sayle  <roger@eyesopen.com>
10987
10988         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
10989         ensure that call_used_regs is a superset of both fixed_regs and
10990         call_really_used_regs.
10991
10992 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
10993
10994         PR target/17019
10995         * arm.md (addsi3_cbranch_scratch): Correct case labels.
10996
10997 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
10998
10999         PR middle-end/17036
11000         * fold-const.c (fold): Check for integer operand when
11001         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
11002         Pinski  <pinskia@physics.uc.edu>.
11003
11004 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
11005
11006         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
11007         No need to check if in a cross configuration.
11008         * configure: Regenerate.
11009
11010         * calls.c (precompute_register_parameters):
11011         Inline preserve_subexpressions_p ().
11012         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
11013         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
11014         Likewise.
11015         * expr.c (get_subtarget): Likewise.
11016         * rtl.h (preserve_subexpressions_p): Remove.
11017         * stmt.c (preserve_subexpressions_p): Remove.
11018
11019         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
11020         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
11021         Abort on gimplified cases.
11022
11023 2004-08-16  James E Wilson  <wilson@specifixinc.com>
11024
11025         * tree.h (VECTOR_FLOAT_TYPE_P): New.
11026         (FLOAT_TYPE_P): Use it.
11027         * c-typeck.c (build_binary_op): After convert calls, check for
11028         check for ERROR_MARK operands.
11029
11030 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
11031
11032         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
11033         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
11034         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
11035         (genobjs static pattern rule): Remove %.c dependency.
11036         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
11037         Rename rules; delete commands; fix dependencies.
11038         (mostlyclean): Do not delete temporary source copies.
11039         * configure.ac: Delete all references to BUILD_PREFIX and
11040         BUILD_PREFIX_1.
11041         * configure: Regenerate.
11042
11043         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
11044         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
11045         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
11046         with #ifndef GENERATOR_FILE so that nothing from those headers
11047         is used.
11048
11049         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
11050
11051 2004-08-16  Adam Nemet  <anemet@lnxw.com>
11052
11053         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
11054
11055 2004-08-16  Andrew Pinski  <apinski@apple.com>
11056
11057         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
11058         extraneous semicolon.
11059
11060 2004-08-16  Devang Patel  <dpatel@apple.com>
11061
11062         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
11063         * print-tree.c (print_node): Print DECL_PRESERVE_P.
11064         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
11065         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
11066         * target.h (struct gcc_target): New member, mark_decl_preserved.
11067         * hooks.c (hook_void_charptr): Rename to ...
11068         (hook_void_constcharptr): ... new name.
11069         * hooks.h (hook_void_charptr): Rename to ..
11070         (hook_void_constcharptr): ... new name.
11071         * tree.h (DECL_PRESERVE_P): New #define.
11072         (struct tree_decl): New member, preserve_flag.
11073         * varasm.c (assemble_start_function): Mark decl preserved.
11074         (assemble_variable): Same.
11075         * darwin.c (darwin_mark_decl_preserved): New function.
11076         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
11077         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
11078         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
11079
11080 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11081
11082         * c-decl.c (grokdeclarator): Allow for function definition where
11083         innermost declarator has attributes.
11084
11085 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
11086
11087         * except.c (get_exception_filter, build_post_landing_pads,
11088         dw2_build_landing_pads): Use target-specific mode for 'filter'.
11089         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
11090         * target.h (eh_return_filter_mode): New field added.
11091         * targhooks.c (default_eh_return_filter_mode): Defined.
11092         * targhooks.h (default_eh_return_filter_mode): Declared.
11093         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
11094
11095 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11096
11097         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
11098         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
11099         * configure: Regenerate.
11100
11101 2004-08-16  Stan Shebs  <shebs@apple.com>
11102
11103         Basic support for 64-bit Darwin.
11104         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
11105         (machopic_legitimize_pic_address): Similarly, plus use Pmode
11106         instead of SImode.
11107         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
11108         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
11109         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
11110         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
11111         (PROCESSOR_DEFAULT64): Define.
11112         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
11113         Darwin.
11114         * config/rs6000/rs6000.md: Include darwin.md.
11115         (builtin_setjmp_receiver): Add DImode case.
11116         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
11117         Darwin.
11118         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
11119         (rs6000_emit_move): Add DImode case to Darwin bits.
11120         (machopic_output_stub): Use .quad if 64-bit.
11121         * invoke.texi: Document -m32 and -m64.
11122
11123 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
11124
11125         * doc/extend.texi (AltiVec builtins): Document additional differences
11126         from the Motorola AltiVec PIM.
11127
11128 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11129
11130         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
11131         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
11132         (struct tree_common): Update public_flag documentation.
11133
11134 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11135
11136         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
11137         Check for artificial variables, not is_gimple_tmp_var.
11138         * tree-ssa-live.c (var_union): Likewise.
11139
11140 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11141
11142         * calls.c (load_register_parameters): Remove spurious FIXME token.
11143
11144 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
11145
11146         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
11147         (c-lang.o): Depend on c-objc-common.h.
11148         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
11149         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
11150         * c-lang.c: Include c-objc-common.h.
11151         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
11152         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
11153         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
11154         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
11155         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
11156         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
11157         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
11158         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
11159         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
11160         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
11161         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
11162         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
11163         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
11164         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
11165         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
11166         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
11167         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
11168         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
11169         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
11170         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
11171         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
11172         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
11173         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
11174         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
11175         Move to c-objc-common.h.
11176         * c-objc-common.c: Include c-objc-common.h.
11177         * c-objc-common.h: New file.
11178
11179 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
11180             Andrew Pinski  <pinskia@physics.uc.edu>
11181
11182         PR target/14931
11183         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
11184         style.
11185
11186 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
11187
11188         * tree.h (build_int_cst): New.
11189         (build_int_2): Remove.
11190         * tree.c (build_int_2): Remove.
11191         (build_int_cst): New.
11192         (make_vector_type, build_common_tree_nodes,
11193         build_common_tree_nodes_2): Use build_int_cst.
11194         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
11195         expand_builtin_strpbrk, expand_builtin_fputs,
11196         build_string_literal, expand_builtin_printf,
11197         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
11198         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
11199         fold_builtin_isdigit, simplify_builtin_strstr,
11200         simplify_builtin_strpbrk, fold_builtin_fputs,
11201         simplify_builtin_sprintf): Use build_int_cst.
11202         * c-common.c (start_fname_decls, fix_string_type,
11203         c_common_nodes_and_builtins, c_init_attributes,
11204         shorten_compare): Likewise.
11205         * c-decl.c (complete_array_type,
11206         check_bitfield_type_and_width): Likewise.
11207         * c-lex.c (interpret_integer, lex_charconst): Likewise.
11208         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
11209         * c-pretty-print.c (pp_c_integer_constant): Likewise.
11210         * c-typeck.c (really_start_incremental_init, push_init_level,
11211         set_nonincremental_init_from_string): Likewise.
11212         * calls.c (load_register_parameters): Likewise.
11213         * convert.c (convert_to_pointer): Likewise.
11214         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
11215         build_fn_info_type, build_ctr_info_value, build_gcov_info):
11216         Likewise.
11217         * except.c (init_eh, assign_filter_values, assign_filter_values):
11218         Likewise.
11219         * expmed.c (store_fixed_bit_field, extract_bit_field,
11220         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
11221         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
11222         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
11223         * expr.c (convert_move, emit_group_load, emit_group_store,
11224         expand_assignment, store_constructor, store_field,
11225         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
11226         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
11227         invert_truthvalue, optimize_bit_field_compare,
11228         decode_field_reference, all_ones_mask_p, constant_boolean_node,
11229         fold_div_compare, fold, fold_read_from_constant_string,
11230         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
11231         * function.c (assign_parm_setup_block): Likewise.
11232         * stmt.c (shift_return_value, expand_end_case_type,
11233         estimate_case_costs): Likewise.
11234         * stor-layout.c (layout_type, initialize_sizetypes,
11235         set_min_and_max_values_for_integral_type): Likewise.
11236         * tree-chrec.c (chrec_fold_multiply_poly_poly,
11237         reset_evolution_in_loop): Likewise.
11238         * tree-chrec.h (build_polynomial_chrec): Likewise.
11239         * tree-complex.c (build_replicated_const): Likewise.
11240         * tree-eh.c (honor_protect_cleanup_actions,
11241         lower_try_finally_onedest, lower_try_finally_copy,
11242         lower_try_finally_switch): Likewise.
11243         * tree-mudflap.c (mf_build_string, mx_register_decls,
11244         mudflap_register_call, mudflap_enqueue_constant): Likewise.
11245         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
11246         * tree-pretty-print.c (dump_generic_node): Likewise.
11247         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
11248         Likewise.
11249         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
11250         * tree-ssa-loop-niter.c (number_of_iterations_cond,
11251         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
11252         Likewise.
11253
11254         * config/alpha/alpha.c (alpha_initialize_trampoline,
11255         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
11256         * config/arm/arm.c (arm_get_cookie_size): Likewise.
11257         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
11258         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
11259         * config/i860/i860.c (i860_va_start): Likewise.
11260         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
11261         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
11262         mips_gimplify_va_arg_expr): Likewise.
11263         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11264         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
11265         add_compiler_branch_island): Likewise.
11266         * config/s390/s390.c (s390_va_start): Likewise.
11267         * config/sh/sh.c (sh_va_start): Likewise.
11268         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
11269         Likewise.
11270         * config/xtensa/xtensa.c (xtensa_va_start,
11271         xtensa_gimplify_va_arg_expr): Likewise.
11272
11273         * objc/objc-act.c (build_objc_string_object,
11274         build_objc_symtab_template, init_def_list, init_objc_symtab,
11275         init_module_descriptor, generate_static_references,
11276         build_selector_translation_table, get_proto_encoding,
11277         build_typed_selector_reference, build_selector_reference,
11278         build_next_objc_exception_stuff,
11279         build_method_prototype_list_template, generate_descriptor_table,
11280         generate_protocols, build_protocol_initializer,
11281         build_ivar_list_template, build_method_list_template,
11282         build_ivar_list_initializer, generate_ivars_list,
11283         generate_dispatch_table, generate_protocol_list,
11284         build_category_initializer, build_shared_structure_initializer,
11285         generate_shared_structures, handle_impent,
11286         generate_objc_image_info): Use build_int_cst.
11287
11288 2004-08-15  Ben Elliston  <bje@au.ibm.com>
11289
11290         * vec.h: Comment improvements.
11291
11292 2004-08-14  Roger Sayle  <roger@eyesopen.com>
11293
11294         * c-common.c (shorten_compare, pointer_int_sum,
11295         c_common_truthvalue_conversion, boolean_increment): Replace calls
11296         to build with calls to buildN.
11297         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
11298         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
11299         gimplify_switch_stmt): Likewise.
11300         * c-typeck.c (default_function_array_conversion,
11301         build_component_ref, build_array_ref, build_function_call,
11302         pointer_diff, build_unary_op, build_conditional_expr,
11303         build_compound_expr, build_modify_expr, c_finish_goto_label,
11304         c_finish_goto_ptr, c_finish_return, c_finish_loop,
11305         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
11306         build_binary_op): Likewise.
11307
11308 2004-08-15  Steven Bosscher  <stevenb@suse.de>
11309
11310         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
11311
11312 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11313
11314         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
11315         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
11316         * fixinc/fixincl.x: Rebuilt.
11317
11318 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
11319
11320         * config/mips/mips-protos.h (mips_symbolic_constant_p)
11321         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
11322         (mips_small_data_pattern_p): Declare.
11323         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
11324         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
11325         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
11326         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
11327         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
11328         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
11329         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
11330         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
11331         (pc_or_label_operand, call_insn_operand, move_operand)
11332         (consttable_operand, symbolic_operand, general_symbolic_operand)
11333         (global_got_operand, local_got_operand, stack_operand)
11334         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
11335         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
11336         (mips_small_data_pattern_p): Replace previous small_data_pattern
11337         predicate.  Turn into a bool () (rtx) function.
11338         * config/mips/predicates.md: New file.
11339         * config/mips/mips.md: Include it.  Use the target-independent
11340         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
11341         trap_comparison_operator and equality_op to equality_operator.
11342         Replace uses of small_int with the equivalent const_arith_operand.
11343         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
11344         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
11345         to fcc_reload_operand.
11346         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
11347
11348 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11349
11350         PR libstdc++/17005 partial fix.
11351         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
11352         except when generating ANSI/C89 code.
11353
11354 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
11355
11356         * c-common.c (shorten_compare): Use force_fit_type directly.
11357
11358 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
11359             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
11360             Dave Korn  <dk@artimi.com>
11361
11362         * doc/install.texi (Building): Avoid duplicate reference to GNU
11363         make requirement.
11364         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
11365
11366 2004-08-14  Richard Henderson  <rth@redhat.com>
11367
11368         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
11369         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
11370
11371 2004-08-13  Richard Henderson  <rth@redhat.com>
11372
11373         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
11374         for constant_call_address_operand.
11375         (call_value_pop_1, call_value_1): Likewise.
11376         (sibcall_value_1, call_value_1_rex64): Likewise.
11377
11378 2004-08-13  James E Wilson  <wilson@specifixinc.com>
11379
11380         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
11381         Correct mode from SFmode to DFmode.
11382
11383 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
11384
11385         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
11386         __cstring_object and __image_info sections with the no_dead_strip
11387         attribute.
11388
11389 2004-08-13  Roger Sayle  <roger@eyesopen.com>
11390             David Billinghurst  <David.Billinghurst@riotinto.com>
11391
11392         PR libgfortran/15930
11393         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
11394         * fixinc/fixincl.x: Regenerate.
11395         * fixinc/tests/base/internal/math_core.h: New file.
11396
11397 2004-08-13  Richard Henderson  <rth@redhat.com>
11398
11399         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
11400         (dbxout_function_end): Remove ifdefs for it.
11401         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
11402
11403 2004-08-13  Richard Henderson  <rth@redhat.com>
11404
11405         * Makefile.in (insn-preds.o): Depend on TREE_H.
11406         * genpreds.c (write_insn_preds_c): Include tree.h.
11407         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
11408         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
11409         const48_operand, and_operand, or_operand, mode_width_operand,
11410         mode_mask_operand, mul8_operand, const0_operand,
11411         hard_fp_register_operand, hard_int_register_operand,
11412         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
11413         samegp_function_operand, direct_call_operand, small_symbolic_operand,
11414         global_symbolic_operand, call_operand, symbolic_operand,
11415         dtp16_symbolic_operand, dtp32_symbolic_operand,
11416         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
11417         gottp_symbolic_operand, alpha_comparison_operator,
11418         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
11419         signed_comparison_operator, alpha_fp_comparison_operator,
11420         divmod_operator, fix_operator, aligned_memory_operand,
11421         unaligned_memory_operand, reg_or_unaligned_mem_operand,
11422         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
11423         reg_no_subreg_operand, addition_operation): Move to predicates.md.
11424         (reg_or_const_int_operand): Remove.  Replace all users with
11425         reg_or_cint_operand.
11426         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
11427         (resolve_reload_operand): Split out of aligned_memory_operand.
11428         * config/alpha/alpha-protos.h: Update for exports.
11429         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
11430         * config/alpha/alpha.md: Include predicates.md.
11431         * config/alpha/predicates.md: New file.
11432
11433 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
11434
11435         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
11436         fields with a pointer to the instruction definition.
11437         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
11438         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
11439         (write_attr_case, write_const_num_delay_slots): Update accordingly.
11440         (write_attr_case, write_const_num_delay_slots): Write the name of
11441         an insn next to its case statement.
11442         * genoutput.c (data): Add a filename field.
11443         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
11444         (output_insn_data): Print the location of each insn definition.
11445         * genrecog.c (write_action): Print the name of an insn above
11446         the statement that returns its code.
11447
11448 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
11449
11450         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
11451         * config/libgloss.h: Likewise.
11452         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
11453         * c4x/c4x-modes.def: Likewise.
11454         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
11455         (c4x_rptb_nop_p): Likewise.
11456         (c4x_rptb_valid_p): Likewise.
11457         (c4x_rptb_insert): Likewise.
11458         (c4x_address_conflict): Likewise.
11459         * config/c4x/c4x.md: Likewise.
11460         * config/frv/frv.md: Likewise.
11461         * config/i386/athlon.md: Likewise.
11462         * config/i386/i386.md: Likewise.
11463         * config/i386/predicates.md: Likewise.
11464         * config/ia64/ia64.c: Likewise.
11465         * config/ia64/itanium1.md: Likewise.
11466         * config/ia64/itanium2.md: Likewise.
11467         * config/iq2000/iq2000.md: Likewise.
11468         * config/mcore/mcore.c: Likewise.
11469         * config/mips/mips.c: Likewise.
11470         * config/mips/r3900.h: Likewise.
11471         * config/mips/sb1.md: Likewise.
11472         * config/pa/milli64.S: Likewise.
11473         * config/pa/pa.c: Likewise.
11474         * config/pa/pa.h: Likewise.
11475         * config/rs6000/8540.md: Likewise.
11476
11477 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
11478
11479         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
11480
11481 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
11482
11483         * sh.md (cbranch define_delay) Use cond_delay_slot for
11484         non-anulled condition too.
11485
11486 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
11487
11488         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
11489         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
11490         any_parallel_operand, lmw_operation, stmw_operation,
11491         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
11492         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
11493         any_parallel_operand.
11494         (return_and_restore_fpregs_{si,di}): Same.
11495
11496 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
11497
11498         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
11499         if pred->singleton != PARALLEL, issue a warning and pretend it was.
11500         Also issue a warning for any predicate we don't know about.
11501
11502 2004-08-12  Richard Henderson  <rth@redhat.com>
11503
11504         * config/i386/i386.c (internal_label_prefix): Export.
11505         (internal_label_prefix_len, struct ix86_address,
11506         ix86_decompose_address, maybe_get_pool_constant,
11507         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
11508         memory_address_length): Export.
11509         (any_fp_register_operand, fp_register_operand,
11510         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
11511         x86_64_general_operand, x86_64_szext_general_operand,
11512         x86_64_nonmemory_operand, x86_64_movabs_operand,
11513         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
11514         x86_64_zext_immediate_operand, const_int_1_31_operand,
11515         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
11516         tls_symbolic_operand, global_dynamic_symbolic_operand,
11517         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
11518         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
11519         constant_call_address_operand, const0_operand, const1_operand,
11520         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
11521         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
11522         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
11523         general_no_elim_operand, nonmemory_no_elim_operand,
11524         index_register_operand, q_regs_operand, flags_reg_operand,
11525         non_q_regs_operand, zero_extended_scalar_load_operand,
11526         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
11527         ix86_comparison_operator, ix86_carry_flag_operator,
11528         fcmov_comparison_operator, promotable_binary_operator,
11529         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
11530         mult_operator, div_operator, arith_or_logical_operator,
11531         memory_displacement_operand, cmpsi_operand, long_memory_operand,
11532         aligned_operand): Move to predicates.md as define_predicates.
11533         (tls_symbolic_operand_1): Remove.
11534         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
11535         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
11536         (legitimize_address): Merge tls_symbolic_operand contents.
11537         (ix86_expand_move): Likewise.
11538         * config/i386/i386-protos.h: Update for exports.
11539         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
11540         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
11541         * config/i386/i386.md: Include predicates.md.
11542         * config/i386/predicates.md: New file.
11543
11544 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
11545
11546         PR c++/16924
11547         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
11548         SYMBOL_REF_DECL.
11549         (i386_pe_mark_dllimport): Likewise.
11550         (i386_pe_encode_section_info): Likewise, when overriding
11551         dllimport attribute.
11552
11553 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
11554
11555         * configure.ac: When testing for flex, nm, ar, and bison, check
11556         that they will actually be built.
11557         * configure: Regenerate.
11558
11559 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
11560
11561         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
11562         (MOVE_MAX_PIECES): Define.
11563
11564 2004-08-12  Devang patel  <dpatel@apple.com>
11565
11566         * dbxout.c (dbxout_begin_prologue): New function.
11567         (dbx_debug_hooks): Use new begin prologue hook.
11568         (dbxout_function_end): Emit N_ENSYM.
11569         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
11570
11571 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
11572
11573         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
11574         argument is float*.
11575
11576         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
11577         for vec_dss.
11578
11579         * doc/extend.texi (AltiVec builtins): Fix description for recent
11580         changes.  Update operation list to match current support.
11581
11582 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
11583
11584         * config/s390/s390.c (struct s390_frame_layout): New struct as element
11585         of struct machine_function.
11586         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
11587         changed all uses.
11588         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
11589         changed all uses.
11590         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
11591         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
11592         (s390_frame_area, s390_register_info): New functions.
11593         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
11594         for base register.
11595         (s390_return_addr_rtx, s390_return_address_offset)
11596         (s390_va_start, s390_gimplify_va_arg)
11597         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
11598         layouts.
11599         (s390_frame_info): Functionality partly moved to s390_register_info.
11600         Made adaptions for new stack layout.
11601         (save_gprs, restore_gprs): Changed meaning of second parameter and
11602         adapted all callers.
11603
11604         * config/s390/s390.h (s390_backchain_string): New global variable.
11605         (MASK_BACKCHAIN): Removed definition.
11606         (TARGET_BACKCHAIN): Changed check.
11607         (TARGET_KERNEL_BACKCHAIN): New macro.
11608         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
11609         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
11610         "kernel-backchain".
11611         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
11612
11613         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
11614         as condition.  Adjusted for new stack layout.
11615
11616         * doc/invoke.texi: Added documentation for new option
11617         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
11618         "-mno-backchain".
11619
11620 2004-08-12  Paul Brook  <paul@codesourcery.com>
11621
11622         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
11623         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
11624
11625 2004-08-12  David Daney  <ddaney@avtrex.com>
11626
11627         * java/gcj.texi:  Add subsection on signal usage.
11628
11629 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
11630
11631         * expr.c (move_by_pieces): Set alignment for move to minimum of
11632         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
11633         alignment, but not less than the original alignment.
11634         (move_by_pieces_ninsns): Same.
11635         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
11636         (store_by_pieces_1): Same.
11637
11638 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
11639
11640         PR tree-optimization/16867
11641         * tree.c (is_global_var): New function.
11642         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
11643         Call is_global_var.
11644         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
11645         Update all users.
11646         (is_global_var): Declare.
11647         * tree-dfa.c (dump_variable): Display global and addressable
11648         attributes.
11649         (add_referenced_var): Clarify documentation when marking
11650         variables call-clobbered.
11651         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
11652         instead of needs_to_live_in_memory.
11653         (mark_call_clobbered): If the variable is a tag, mark it
11654         DECL_EXTERNAL.
11655         * tree-gimple.c (is_gimple_reg): Don't check for
11656         TREE_ADDRESSABLE.
11657         (is_gimple_non_addressable): Likewise.
11658         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
11659         needs to be marked call-clobbered.
11660         (setup_pointers_and_addressables): Call is_global_var instead
11661         of needs_to_live_in_memory.
11662         * tree-ssa-dce.c (need_to_preserve_store): Remove.
11663         Update all users with is_global_var.
11664         (mark_stmt_if_obviously_necessary): Fix processing of aliased
11665         stores.  Don't check the virtual definitions.  Rather, check
11666         whether the store is going into global memory.
11667         (find_obviously_necessary_stmts): Get the symbol from the PHI
11668         result.
11669         * tree-ssa-operands.c (get_call_expr_operands): Do not add
11670         clobbering may-defs if the call does not have side effects.
11671
11672 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
11673
11674         PR c++/16276
11675         * output.h (default_function_rodata_section,
11676         default_no_function_rodata_section): New prototypes.
11677         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
11678         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
11679         (TARGET_ASM_OUT): Add it.
11680         * varasm.c (default_function_rodata_section,
11681         default_no_function_rodata_section): New functions.
11682         * final.c (final_scan_insn): Call
11683         targetm.asm_out.function_rodata_section instead of
11684         readonly_data_section.
11685         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
11686         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11687         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11688         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
11689         Likewise.
11690         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11691         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
11692         Likewise.
11693         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
11694         Likewise.
11695         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11696         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11697         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
11698
11699 2004-08-12  Paul Brook  <paul@codesourcery.com>
11700
11701         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
11702         frame info.
11703         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
11704         DWARF2_UNWIND_INFO.
11705
11706 2004-08-12  Ben Elliston  <bje@au.ibm.com>
11707
11708         PR target/16286
11709         * config/rs6000/altivec.h: Change vector to __vector throughout.
11710         (Except for the `vector' macro itself).
11711
11712 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
11713
11714         * genpreds.c: Add capability to generate predicate bodies as
11715         well as function prototypes.  Write function prototypes for
11716         the generic predicates too.
11717         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
11718         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
11719         (write_match_code, write_predicate_expr, write_one_predicate_function)
11720         (parse_option): New functions.
11721         (output_predicate_decls): Delete.
11722         (main): Read the machine description, process DEFINE_PREDICATE or
11723         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
11724         as appropriate.
11725
11726         * genrecog.c (struct decision_test): Replace index with
11727         struct pred_data pointer.
11728         (next_index): Remove, unused.
11729         (pred_table, preds, special_mode_pred_table): Delete.
11730         (compute_predicate_codes, process_define_predicate): New functions.
11731         (validate_pattern, add_to_sequence, write_switch): Update for
11732         new data structures.
11733         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
11734         Check both error_count and have_error.
11735
11736         * gensupport.c (in_fname, first_predicate): New globals.
11737         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
11738         (predicate_table, last_predicate, old_pred_table)
11739         (old_special_pred_table): New statics.
11740         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
11741         (add_predicate, init_predicate_table): New functions.
11742         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
11743         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
11744         it or max_include_len.  Call init_predicate_table.
11745         (read_rtx): Run the predicate queue after the attribute queue
11746         but before all the others.
11747         * gensupport.h (in_fname, struct pred_data, first_predicate)
11748         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
11749         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
11750         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
11751         * dummy-conditions.c: Don't include bconfig.h, system.h,
11752         coretypes.h, tm.h, or system.h.  Do include stddef.h.
11753         Duplicate declaration of struct c_test from gensupport.h.
11754
11755         * Makefile.in (OBJS-common): Add insn-preds.o.
11756         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
11757         (insn-preds.c, insn-preds.o): New rules.
11758         (s-preds): Also generate insn-preds.c.
11759         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
11760         Update dependencies.
11761         (print-rtl.o, print-rtl1.o): Correct dependencies.
11762
11763         * recog.h: Delete prototypes of predicate functions.
11764
11765         * doc/md.texi (Predicates): New section with complete
11766         documentation of operand/operator predicates.  Remove some
11767         incomplete documentation of predicates from other places.
11768         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
11769         PREDICATE_CODES; indicate that both are deprecated in favor
11770         of define_predicate/define_special_predicate.
11771
11772         * config/ia64/ia64.c: All predicate function definitions moved
11773         to ia64.md, except
11774         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
11775         (ia64_expand_load_address, ia64_expand_move):
11776         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
11777
11778         * config/ia64/ia64.md: All predicates now defined here.
11779         (symbolic_operand): Is now a special predicate.
11780
11781         * config/ia64/ia64.h: Declare ia64_section_threshold.
11782         (PREDICATE_CODES): Delete.
11783
11784 2004-08-12  Richard Henderson  <rth@redhat.com>
11785
11786         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
11787         * c-semantics.c (add_stmt): Set it.
11788         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
11789         before instantiating a variable sized type.
11790
11791 2004-08-12  Richard Henderson  <rth@redhat.com>
11792
11793         * stor-layout.c (round_up, round_down): Move ...
11794         * fold-const.c (round_up, round_down): ... here.  Use
11795         multiple_of_p to avoid any arithmetic at all.
11796
11797 2004-08-12  Richard Henderson  <rth@redhat.com>
11798
11799         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
11800         (gimplify_init_ctor_preeval_1): New.
11801         (gimplify_init_ctor_preeval): New.
11802         (gimplify_init_ctor_eval): New.
11803         (gimplify_init_constructor): Use them.  Always gimplify the LHS
11804         object first.
11805
11806 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
11807
11808         (This patch is part of merge of objc-improvements-branch
11809         into mainline.)
11810
11811         * doc/frontends.texi: Mention Objective-C++ in addition to
11812         Objective-C.
11813         * doc/install.texi: Add 'obj-c++' to list of configurable
11814         languages.
11815         * doc/invoke.texi: Rename Objective-C option headings to
11816         indicate they also apply to Objective-C++.  List file
11817         extensions for Objective-C++ sources.  Mention that
11818         ObjC and ObjC++ compilations may also use C and C++ options,
11819         respectively.  Point users to doc/standards.texi for
11820         further info on ObjC and ObjC++.
11821         * doc/sourcebuild.texi: Mention the objcp/ directory and
11822         the Objective-C++ sources it contains.
11823         * doc/standards.texi: Update link to Apple ObjC site;
11824         add link to gcc readings.html WWW doc.
11825
11826 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
11827
11828         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
11829         and 2004-07-14 changes.
11830
11831 2004-08-12  Paul Brook  <paul@codesourcery.com>
11832
11833         * doc/invoke.texi: Fix typo.
11834
11835 2004-08-11 Devang Patel  <dpatel@apple.com>
11836
11837         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
11838         and -no_dead_strip_inits_and_terms.
11839         (LINK_SPEC): Same.
11840         * doc/invoke.texi (Darwin Options): Document -dead_strip and
11841         -no_dead_strip_inits_and_terms.
11842
11843 2004-08-11  Paul Brook  <paul@codesourcery.com>
11844
11845         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
11846         (arm_load_pic_register): ... to this.
11847         * config/arm/arm.c (arm_finalize_pic): Rename ...
11848         (arm_load_pic_register): ... to this.  Always output insns at the
11849         current location.  Load via low reg in thumb mode.
11850         (arm_expand_prologue): Call arm_load_pic_register.
11851         (thumb_expand_prologue): Ditto.
11852         * config/arm/arm.h (FINALIZE_PIC): Remove.
11853         * config/arm/arm.md (builtin_setjmp_receiver): Call
11854         arm_load_pic_register.
11855
11856 2004-08-11  Paul Brook  <paul@codesourcery.com>
11857
11858         * arm.c (thumb_force_lr_save): Add prototype.
11859         (thumb_compute_save_reg_mask): New function.
11860         (thumb_find_work_register): New function.
11861         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
11862         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
11863         Don't clobber r3 when removing pretend args.
11864         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
11865         (thumb_output_function_prologue): Use new functions.
11866         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
11867         * arm.h (THUMB_REG_PUSHED_P): Remove.
11868
11869 2004-08-11  James E Wilson  <wilson@specifixinc.com>
11870
11871         PR rtl-optimization/16490
11872         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
11873         global_live_at_end for new basic block if already set for other blocks.
11874
11875 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
11876
11877         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
11878
11879         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
11880         (mfcr rlwinm rlwinm patterns): Set length to 12.
11881
11882 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
11883
11884         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
11885         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
11886         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
11887         (start_ssa_stmt_operands): Delete.
11888         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
11889         struct stmt_operands_d.
11890         (build_ssa_operands): New extern entry point.
11891         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
11892         building code, replace with create_ssa_artficial_load_stmt().
11893         * tree-ssa-operands.c (struct voperands_d): Delete.
11894         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
11895         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
11896         (free_uses, free_defs, free_vuses, free_v_may_defs,
11897         free_v_must_defs): Remove dealloc parameter.
11898         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
11899         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
11900         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
11901         vector comparisons, ssa_name reuse, and allocations here.
11902         (verify_start_operands): Delete.
11903         (finalize_ssa_stmt_operands): Set new operands by calling finalize
11904         routines.
11905         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
11906         (append_def, append_usei): Simplify to simple accumulation.
11907         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
11908         duplicates and simple accumulation.
11909         (free_ssa_operands): Free vectors in a stmt_operand structure.
11910         (build_ssa_operands): New. Create a new stmt_operand structure from
11911         a stmt and an old set of stmt_operands.
11912         (get_stmt_operands): Simplify and call build_ssa_operands.
11913         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
11914         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
11915         add_call_read_ops): Don't pass prev_vops around anymore.
11916         (note_addressable): Return if no stmt annotation.
11917         (copy_virtual_operands): Access v_may_def operands through a struct.
11918         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
11919         hash tables without treating the stmt as a real stmt.
11920         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
11921         v_may_def def and use through a struct instead of 2 array elements.
11922         (struct v_may_def_optype_d): Use v_may_def_operand_type.
11923         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
11924
11925 2004-08-11  Nick Clifton  <nickc@redhat.com>
11926
11927         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
11928         this funciton's behaviour.  Return true when the current function
11929         has a section attribute and -mlong-calls is in effect.
11930         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
11931         short-call marker when -mlong-calls is in effect and the function
11932         has a section attribute.
11933
11934 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
11935
11936         * stmt.c (expand_return): If asked to return the RESULT_DECL,
11937         just call expand_value_return on result_rtl.
11938
11939 2004-08-10  Richard Henderson  <rth@redhat.com>
11940
11941         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
11942         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
11943         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
11944         (add_location_or_const_value_attribute): ... not here.  Use
11945         loc_descriptor_from_tree if possible.
11946         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
11947         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
11948         values specially.
11949         (loc_descriptor_from_tree): New.  Update callers.
11950         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
11951         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
11952         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
11953         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
11954         and BUILT_IN_STACK_RESTORE.
11955         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
11956         * stmt.c (expand_stack_alloc): Remove.
11957         * tree-mudflap.c (mx_register_decls): Don't look for
11958         BUILT_IN_STACK_ALLOC.
11959         * tree-nested.c (convert_local_reference): Likewise.
11960         * tree.h (DECL_VALUE_EXPR): New.
11961
11962 2004-08-10  Richard Henderson  <rth@redhat.com>
11963
11964         * stor-layout.c (round_up): Check for 0/1 before dividing.
11965         (round_down): Likewise.
11966
11967         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
11968
11969 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
11970
11971         * config.gcc (arm*-*-eabi*): New target.
11972         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
11973         (TARGET_LIB_INT_CMP_BIASED): Likewise.
11974         * expmed.c (expand_divmod): Try a two-valued divmod function as a
11975         last resort.
11976         * gthr.h: Remove bogus tokens at end of #pragma.
11977         * optabs.c (expand_twoval_binop_libfunc): New function.
11978         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
11979         (prepare_float_lib_cmp): Try reversing the condition.
11980         (debug_optab_libfuncs): New function.
11981         * optabs.h (expand_twoval_binop_libfunc): Declare.
11982         * config/arm/arm.c (arm_init_libfuncs): New function.
11983         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
11984         (TARGET_INIT_LIBFUNCS): Define it.
11985         * config/arm/arm.h (TARGET_BPABI): New macro.
11986         * config/arm/arm-protos.h
11987         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
11988         * config/arm/bpabi.S: New file.
11989         * config/arm/bpabi.c: Likewise.
11990         * config/arm/bpabi.h: Likewise.
11991         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
11992         (__aeabi_drsub): Likewise.
11993         (__aeabi_dsub): Likewise.
11994         (__aeabi_dadd): Likewise.
11995         (__aeabi_ui2d): Likewise.
11996         (__aeabi_i2d): Likewise.
11997         (__aeabi_f2d): Likewise.
11998         (__aeabi_dmul): Likewise.
11999         (__aeabi_ddiv): Likewise.
12000         (__aeabi_cdrcmple): Likewise.
12001         (__aeabi_cdcmpeq): Likewise.
12002         (__aeabi_cdcmple): Likewise.
12003         (__aeabi_dcmpeq): Likewise.
12004         (__aeabi_dcmplt): Likewise.
12005         (__aeabi_dcmple): Likewise.
12006         (__aeabi_dcmpge): Likewise.
12007         (__aeabi_dcmpgt): Likewise.
12008         (__aeabi_dcmpun): Likewise.
12009         (__aeabi_d2iz): Likewise.
12010         (__aeabi_d2uiz): Likewise.
12011         (__aeabi_d2f): Likewise.
12012         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
12013         (__aeabi_frsub): Likewise.
12014         (__aeabi_fsub): Likewise.
12015         (__aeabi_fadd): Likewise.
12016         (__aeabi_ui2f): Likewise.
12017         (__aeabi_i2f): Likewise.
12018         (__aeabi_fmul): Likewise.
12019         (__aeabi_fdiv): Likewise.
12020         (__aeabi_cfrcmple): Likewise.
12021         (__aeabi_cfcmpeq): Likewise.
12022         (__aeabi_cfcmple): Likewise.
12023         (__aeabi_fcmpeq): Likewise.
12024         (__aeabi_fcmplt): Likewise.
12025         (__aeabi_fcmple): Likewise.
12026         (__aeabi_fcmpge): Likewise.
12027         (__aeabi_fcmpgt): Likewise.
12028         (__aeabi_fcmpun): Likewise.
12029         (__aeabi_f2iz): Likewise.
12030         (__aeabi_f2uiz): Likewise.
12031         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
12032         (__aeabi_uidivmod): New function or alias.
12033         (__aeabi_idivmod): Likewise.
12034         (__aeabi_idiv0): Likewise.
12035         (__aeabi_ldiv0): Likewise.
12036         (__aeabi_llsr): Likewise.
12037         (__aeabi_lasr): Likewise.
12038         (__aeabi_llsl): Likewise.
12039         (bpabi.S): Include it.
12040         * config/arm/libgcc-bpabi.ver: New file.
12041         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
12042         (LINK_SPEC): Remove.
12043         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
12044         __aeabi_ulcmp.
12045         * config/arm/t-bpabi: New file.
12046         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
12047         (TARGET_LIB_INT_CMP_BIASED): Likewise.
12048
12049 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
12050
12051         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
12052         * config/rs6000/rs6000.md (clrmemsi): New pattern.
12053         * config/rs6000/rs6000.c (expand_block_clear): New function.
12054         (expand_block_move): Convert alignment to bits.  Use SImode and
12055         HImode for unaligned addresses if not STRICT_ALIGNMENT.
12056
12057 2004-08-10  Caroline Tice  <ctice@apple.com>
12058
12059         * varasm.c (unlikely_section_label): New global variable.
12060         (unlikely_text_section_name): New global variable.
12061         (text_section):  Remove alignment statement.
12062         (unlikely_text_section): Remove alignment statement; use
12063         unlikely_section_label rather than hard-coded string.
12064         (assemble_start_function): Initialize unlikely_section_label and
12065         unlikely_text_section_name;  make sure cold section is properly
12066         aligned at start of function; output unlikely_section_label if
12067         appropriate.
12068
12069 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
12070
12071         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
12072         * config/s390/s390.c (s390_canonicalize_comparison): New function.
12073         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
12074         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
12075         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
12076         ("*tmqi_mem"): Remove SUBREG from pattern.
12077         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
12078         ("*andsi3_cconly"): Likewise.
12079
12080 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
12081
12082         PR target/16909
12083         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
12084
12085 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
12086
12087         * doc/sourcebuild.texi (compat testing): Document available test
12088         framework commands.  Use the preferred spelling of DejaGnu.
12089
12090 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
12091
12092         * lambda.h: Add matrix type, and prototypes for remainder of
12093         matrix and vector functions.
12094         (lambda_vector_mult_const): New function.
12095         (lambda_vector_negate): Ditto.
12096         (lambda_vector_add): Ditto.
12097         (lambda_vector_add_mc): Ditto.
12098         (lambda_vector_copy): Ditto.
12099         (lambda_vector_zerop): Ditto.
12100         (lambda_vector_equal): Ditto.
12101         (lambda_vector_min_nz): Ditto.
12102         (lambda_vector_first_nz): Ditto.
12103         (lambda_vector_matrix_mult): Ditto.
12104         * lambda-mat.c: New file.
12105         * Makefile.in (lambda-mat.o): New.
12106
12107 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
12108
12109         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
12110         after linking stmt into the program.
12111         (bsi_remove): Don't call modify_stmt.
12112         * tree-complex.c (update_complex_assignment,
12113         expand_complex_comparison): Call modify_stmt after changing the stmt.
12114         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
12115         removing the stmt.
12116         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
12117         the stmt, and only if needed.
12118         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
12119         expression.
12120         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
12121         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
12122         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
12123         (eliminate_redundant_computations): Don't pass an annotation. Call
12124         modify_stmt rather than setting the annotation directly.
12125         (record_equivalences_from_stmt): Remove unused local 'j'.
12126         (cprop_operand): Take a stmt rather than an annotation as a parameter.
12127         Call modify_stmt.
12128         (cprop_into_stmt): Pass stmt rather than annotation.
12129         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
12130         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
12131         modify_stmt.
12132         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
12133
12134 2004-08-10  Jason Merrill  <jason@redhat.com>
12135
12136         PR middle-end/16948
12137         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
12138         the RESULT_DECL.
12139
12140 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
12141
12142         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
12143         hash function.
12144
12145 2004-08-10  Roger Sayle  <roger@eyesopen.com>
12146
12147         * config/mips/mips.md: New reciprocal square root patterns that
12148         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
12149
12150 2004-08-10  Paul Brook  <paul@codesourcery.com>
12151
12152         * config/arm/arm-protos.h (arm_set_return_address,
12153         thumb_set_return_address): Add prototypes.
12154         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
12155         * config/arm/arm.c (arm_compute_func_type,
12156         use_return_insn, arm_compute_save_reg0_reg12_mask,
12157         arm_compute_save_reg_mask, arm_output_function_prologue,
12158         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
12159         current_function_calls_eh_return.
12160         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
12161         old eh code.
12162         (arm_set_return_address, thumb_set_return_address): New functions.
12163         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
12164         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
12165         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
12166         (epilogue): Use the stackadj register.
12167         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
12168
12169 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
12170
12171         PR target/3144
12172         * expr.c (move_by_pieces_ninsns): Add max_size argument.
12173         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
12174         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
12175         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
12176         but using MOVE_RATIO.
12177         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
12178         (can_store_by_pieces): Change max_size type to unsigned int.
12179         (store_by_pieces_1): Likewise.  Pass max_size to
12180         move_by_pieces_ninsns.
12181         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
12182         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
12183         to move_by_pieces_ninsns.
12184         (STORE_BY_PIECES_P): Define.
12185         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
12186         to move_by_pieces_ninsns.
12187         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
12188
12189         * config/i386/i386.h (CLEAR_RATIO): Define.
12190
12191 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12192
12193         * expr.c (expand_expr_real_1): Add back code that was not dead.
12194
12195 2004-08-09  Andrew Pinski  <apinski@apple.com>
12196
12197         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
12198         which is found to be compatible before returning the aliasing set.
12199
12200 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
12201
12202         * ggc-zone.c (struct alloc_zone): Add statistics counters.
12203         (always_collect): New flag.
12204         (ggc_alloc_zone_1): Update statistics support.  Don't include
12205         overhead in allocated counter.
12206         (sweep_pages): Update allocated counter for large pages.  Don'y
12207         include overhead.
12208         (ggc_collect_1): Always collect.
12209         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
12210         whether to collect.
12211         (SCALE, LABEL): New macros.
12212         (ggc_print_statistics): Add statistics support.
12213
12214 2004-08-09  Roger Sayle  <roger@eyesopen.com>
12215
12216         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
12217         (init_expmed): Fix potential overrun problem with "all.reg".
12218         (expand_sdiv2_pow2): Add an alternate implementation for signed
12219         division, if the target provides a suitable conditional move insn.
12220
12221 2004-08-09  Paul Brook  <paul@codesourcery.com>
12222         Richard Henderson  <rth@redhat.com>
12223
12224         * unwind-dw2.c (uw_install_context_1): Update target saved stack
12225         pointer.
12226
12227 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
12228
12229         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
12230         Check DATA limit only if there's no AS limit.  Ignore insanely
12231         low DATA limits.
12232         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
12233         but take care that the AS limit isn't overrun.
12234         * doc/invoke.texi: Update documentation of min-heapsize parameter.
12235
12236 2004-08-09  Jeff Law  <law@redhat.com>
12237
12238         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
12239         (tree-ssa-threadupdate.o): Add dependencies.
12240         * tree-ssa-threadupdate.c: New file.
12241         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
12242         (rewrite_vars_out_of_ssa): Remove prototype.
12243         (cleanup_tree_cfg): Returns a bool.
12244         * tree.h (thread_through_all_blocks): Prototype.
12245         * tree-outof-ssa.c  (SSANORM_*): Move into here.
12246         (remove_ssa_form): Now static.
12247         (rewrite_vars_out_of_ssa): Kill.
12248         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
12249         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
12250         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
12251         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
12252         anything was changed.
12253         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
12254         from the PHI's annotation rather than the edge associated with
12255         the new argument.
12256         * tree-ssa-dom.c (redirection_edges): Kill.
12257         (redirect_edges_and_update_ssa_graph): Kill.
12258         (tree_ssa_dominator_optimize): Do not reset forwardable flag
12259         for blocks anymore.  Do not initialize redirection_edges.
12260         Call thread_through_all_blocks.  Simplify code for cleanup
12261         of the CFG and iterating.  No longer call cleanup_tree_cfg
12262         outside the iteration loop.
12263         (thread_across_edge): No longer mess with forwardable blocks.
12264
12265 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
12266
12267         * explow.c (memory_address): Use memory_address_p.
12268         * recog.c (general_operand): Likewise.
12269         * regrename.c: No need to define REG_OK_STRICT.
12270
12271 2004-08-09  Steven Bosscher  <stevenb@suse.de>
12272
12273         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
12274         New timers.
12275         * gcse.c: Include timevar.h.
12276         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
12277         and global_copy_prop_count.
12278         (local_const_prop_count, local_copy_prop_count): New static globals.
12279         (gcse_main): Set the right timevar for each pass.
12280         (cprop_jump): Increment global_const_prop_count when a constant is
12281         propagated.  Add "GLOBAL" to dump output.
12282         (cprop_insn): Increment global_const_prop_count when a constant is
12283         propagated, or global_copy_prop_count when a copy is propagated.
12284         (do_local_cprop): Likewise for local_const_prop_count and
12285         local_copy_prop_count.
12286         (one_cprop_pass): Initialize const/cprop counters to zero.
12287         Print out results of local and global const/cprop separately.
12288         (bypass_block): Break over-length line.
12289         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
12290         for bb-reorder.o and tracer.o.
12291
12292 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12293
12294         * Makefile.in (GTFILES): Remove stmt.c
12295         (stmt.o): Do not depend on gt-stmt.h.
12296         * emit-rtl.c (emit_line_note): Do not call
12297         set_file_and_line_for_stmt.
12298         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
12299         do everything.
12300         * function.c (free_after_parsing): Do not free STMT field.
12301         (allocate_struct_function): Do not call init_stmt_for_function.
12302         (assign_stack_temp_for_type): Do not accept values of keep
12303         other than 0 or 1.
12304         (init_temp_slots): Do not initialize removed variables.
12305         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
12306         and X_VAR_TEMP_SLOT_LEVEL fields.
12307         * rtl.h (set_file_and_line_for_stmt): Remove.
12308         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
12309         struct stmt_status, cond_stack, case_stack, nesting_stack,
12310         nesting_depth, emit_locus, set_file_and_line_for_stmt,
12311         same_case_target_p, init_stmt_for_function, emit_nop,
12312         expand_start_cond, expand_start_elseif, expand_start_else,
12313         expand_elseif, expand_end_cond): Remove.
12314         (preserve_subexpressions_p): Remove references to CFUN->STMT.
12315         (expand_start_case, expand_end_case_type): Remove, merge into...
12316         (expand_case): ... this one, including other bits from
12317         expand_expr_real_1.  Inline same_case_target_p.  Turn members
12318         of CASE_STACK into local variables.
12319         (emit_case_bit_tests): Inline same_case_target_p.
12320         (add_case_node): Add HEAD argument, return new head of the list,
12321         do not handle default label here.
12322         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
12323         expand_start_elseif, current_nesting_level, expand_start_case,
12324         expand_end_case_type, expand_end_case, add_case_node,
12325         init_stmt_for_function, expand_elseif): Remove prototypes.
12326         (expand_case): Add prototype.
12327
12328 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12329
12330         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
12331
12332 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12333
12334         * expr.c (var_rtx): Remove.
12335         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
12336         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
12337         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
12338         Abort.
12339         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
12340         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
12341         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
12342
12343 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
12344         Ayal Zaks <zaks@il.ibm.com>
12345
12346         * common.opt (freschedule-modulo-scheduled-loops): New flag.
12347         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
12348         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
12349         when -freschedule-modulo-scheduled-loops flag is not specified.
12350         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
12351         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
12352         More accurate placing of insn in row of partial schedule.
12353         (ps_insn_find_column): New function.
12354         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
12355         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
12356         (schedule_region): Use sched_is_disabled_for_current_region_p.
12357         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
12358
12359 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
12360
12361         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
12362         change.
12363
12364 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
12365
12366         * config/i386/i386.c (ix86_expand_clrmem): Properly call
12367         gen_strset for 64bit target.
12368
12369 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
12370
12371         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
12372
12373 2004-08-07  Jason Merrill  <jason@redhat.com>
12374
12375         Make return in memory explicit.
12376         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
12377         (assign_parm_find_data_types): Remove code for old front end
12378         invisible reference handling.
12379         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
12380         (expand_function_end): Likewise.
12381         * gimplify.c (gimplify_return_expr): Handle a dereferenced
12382         RESULT_DECL.
12383         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
12384         (declare_return_variable): Handle DECL_BY_REFERENCE.
12385         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
12386         (cp_genericize_r): Use convert_from_reference.
12387         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
12388         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
12389
12390         * c-common.c (c_warn_unused_result): Check TREE_USED before
12391         warning about a CALL_EXPR with an unused value.
12392
12393 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
12394
12395         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
12396         to the compiler.  Use -fshort-wchar by default.
12397
12398 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
12399
12400         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
12401         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
12402         threshhold.
12403         * doc/invoke.texi (param): Document min-crossjump-insns.
12404
12405 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
12406
12407         PR c/13282
12408         * c.opt (Wmissing-field-initializers): New option.
12409         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
12410         * c-typeck.c (pop_init_level): Guard the missing field warning with
12411         warn_missing_field_initializers rather than extra_warnings.
12412         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
12413         some of the explanation from...
12414         (-Wextra): ...here.  Say that the missing field warning can be
12415         seperately controlled by -Wmissing-field-initializers.
12416
12417 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
12418
12419         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
12420         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
12421         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
12422         * tree.def (ENTRY_VALUE_EXPR): Remove.
12423
12424 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
12425
12426         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
12427         the places where it is actually needed.  Don't use repz; stosb
12428         for -Os with sufficiently small constant sizes.
12429         For sufficiently small repz; stos{l,q} repeat counts use a sequence
12430         of stos{l,q} instructions instead.
12431
12432 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12433
12434         PR tree-optimization/16807
12435         * loop-iv.c (dump_iv_info): Dump invariants correctly.
12436         (iv_subreg, iv_extend): Express value of invariant purely in
12437         base field.
12438
12439 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
12440
12441         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
12442         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
12443
12444 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
12445
12446         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
12447         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
12448         pre_dec_operand.
12449         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
12450         pattern until reload is finished to allow better code generation
12451         and split them completely into separate instrunctions.
12452         (*andsi3_split): New pattern.
12453
12454 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
12455
12456         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
12457         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
12458         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
12459         * tree.h (handle_dll_attribute): Declare.  Test
12460         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
12461         * c-common.h (c_determine_visibility): Declare.
12462         * c-common.c (c_determine_visibility): New function.
12463         * c-decl.c (finish_decl): Use it.
12464         (finish_function): Likewise.
12465         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
12466         zero, by default.  Use #if, not #ifdef, to test it.
12467         * config/arm/arm.c (arm_attribute_table): Use
12468         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
12469         #if.
12470         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
12471         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
12472         to 1.
12473         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
12474         * config/i386/i386.c (ix86_attribute_table): Use
12475         handle_dll_attribute for dllimport/dllexport.  Test
12476         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
12477         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
12478         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
12479         it to 1.
12480         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
12481         with #if.
12482         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
12483         it to 1.
12484         * doc/extend.texi (dllexport): Clarify and correct documentation.
12485         (dllimport): Likewise.
12486         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
12487         handle_dll_attribute.
12488
12489 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12490
12491         * tree-ssa-loop-manip.c: New file.
12492         * Makefile.in (tree-ssa-loop-manip.o): Add.
12493         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
12494         Declare.
12495         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
12496         form.
12497         (tree_ssa_loop_done): Verify loop closed ssa form.
12498         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
12499
12500 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12501
12502         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
12503         pa_asm_output_aligned_local): New functions.
12504         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
12505         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
12506         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
12507         pa_asm_output_aligned_common.
12508         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
12509         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
12510         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
12511         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
12512         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
12513         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
12514         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
12515         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
12516         common data.
12517
12518 2004-08-05  Andrew Pinski  <apinski@apple.com>
12519
12520         * objc/objc-act.c (build_objc_string_object): Mark the address
12521         expression as constant.
12522
12523 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
12524
12525         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
12526         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
12527         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
12528
12529 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12530
12531         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
12532         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
12533         out, and associated obsolete comments.
12534
12535 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
12536
12537         * tree.h (force_fit_type): Return a tree, take three flags.
12538         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
12539         TREE_CONSTANT_OVERFLOW here.
12540         (int_const_binop, const_binop): Adjust.
12541         (size_int_type): Do sign extension here.
12542         (fold_convert_const, optimize_bit_field_compare,
12543         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
12544         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
12545         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
12546
12547 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12548
12549         PR tree-optimization/16864
12550         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
12551         for ssa names without default_def.
12552
12553 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
12554
12555         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
12556         frame pointer, restore eax with an ebp-relative address.
12557
12558 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
12559
12560         PR 14516
12561         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
12562         * c-common.h (make_rtl_for_local_static): Delete.
12563         * c-decl.c (shadow_tag_warned): Clean up comment.
12564         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
12565         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
12566         * c-semantics.c (make_rtl_for_local_static): Delete.
12567         * expr.c (init_block_move_fn): Use set_user_assembler_name.
12568         (init_block_clear_fn): Likewise.
12569         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
12570         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
12571         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
12572         * tree.h (make_decl_rtl): Remove second parameter.
12573         (set_user_assembler_name): New.
12574         * varasm.c (set_user_assembler_name): New.
12575         (make_decl_rtl): Remove second parameter.  Update callers in many
12576         files.
12577
12578 2004-08-05  Adam Nemet  <anemet@lnxw.com>
12579
12580         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
12581         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
12582         to LynxOS 4.0.
12583         * gthr-lynx.h: New file.
12584         * config/lynx-ng.h: Remove file.
12585         * config/lynx.h: Update to LynxOS 4.0.
12586         * config/t-lynx: New file.
12587         * config/i386/lynx-ng.h: Remove file.
12588         * config/i386/lynx.h: Update to LynxOS 4.0.
12589         * config/rs6000/lynxbase.h: Remove file.
12590         * config/rs6000/lynx.h: Update to LynxOS 4.0.
12591         * config/rs6000/t-lynx: New file.
12592         * doc/install.texi (Options specification): Remove reference to
12593         LynxOS from systems where --with-gnu-as makes a difference.
12594
12595 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12596
12597         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
12598         __UINTMAX_TYPE__.
12599         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
12600         __INTMAX_MAX__.
12601         (c_cpp_builtins): Call it.
12602         * doc/cpp.texi: Update.
12603
12604 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
12605
12606         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
12607         cost.
12608
12609 2004-08-04  Jan Hubicka  <jh@suse.cz>
12610
12611         * basic-block.h (profile_staus): New global variable.
12612         * cfg.c (profile_status): Declare.
12613         (check_bb_profile): Break out from ....; use profile_status
12614         (dump_flow_info): ... here.
12615         * cfgbuild.c (find_basic_blocks): Set profile_status.
12616         * cfgexpand.c (tree_expand_cfg): Likewise.
12617         * predict.c (estimate_probability): Likewise.
12618         * profile.c (branch_prob): Likewise.
12619         * tree-cfg.c (build_tree_cfg): Likewise.
12620         (dump_function_to_file): Use check_bb_profile.
12621         * tree-pretty-print (dump_bb_header): Likewise.
12622         * tree-profile.c (do_tree_profiling): Cleanup.
12623
12624 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
12625
12626         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
12627         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
12628         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
12629         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
12630         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
12631         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
12632         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
12633         (ggc-none.o, errors.o): Move rule to generators section;
12634         correct dependencies.
12635         (min-insn-modes.o): Move rule to generators section; remove
12636         unnecessary explicit command; correct dependencies.
12637         (print-rtl.o, print-rtl1.o): Correct dependencies.
12638         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
12639         (mostlyclean): Update.
12640
12641         * errors.c: Include bconfig.h not config.h.  Correct comment.
12642         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
12643         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
12644         * print-rtl.c: Don't include tm_p.h.
12645
12646         * rtl.h: Move forward-decl of struct function down where it's
12647         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
12648         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
12649
12650 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12651             Jeff Law  <law@redhat.com>
12652
12653         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
12654         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
12655         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
12656         manipulate the duplicated ssa names.
12657         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
12658         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
12659         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
12660         New functions.
12661         (release_ssa_name): Do not release ssa names that may have multiple
12662         definitions.
12663         * tree.h (release_ssa_name_force, mark_for_rewrite,
12664         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
12665         marked_ssa_names): Declare.
12666         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
12667         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
12668         Update call to rewrite_ssa_into_ssa.
12669
12670 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
12671
12672         * defaults.h (TARGET_DECLSPEC): New macro.
12673         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
12674         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
12675         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
12676         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
12677         __declspec support.
12678         (TARGET_DECLSPEC): Define.
12679         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
12680         __declspec support.
12681         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
12682         __declspec support.
12683         (TARGET_DECLSPEC): Define.
12684         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
12685         __declspec support.
12686         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
12687         support.
12688         * doc/tm.texi (TARGET_DECLSPEC): Document.
12689
12690         * doc/extend.texi: Fix typo in comment.
12691
12692 2004-08-04  Paul Brook  <paul@codesourcery.com>
12693
12694         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
12695         (TARGET_CXX): Use it.
12696         * target.h (struct gcc_target): Add cdtor_returns_this.
12697         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
12698         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
12699         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
12700
12701 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
12702
12703         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
12704         low/high pair. Do range checking directly.
12705         (interpret_integer): Adjust.
12706
12707 2004-08-04  Nick Clifton  <nickc@redhat.com>
12708
12709         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
12710         GCC ABI.
12711         * doc/invoke.texi: Document this new switch and also the -mrenesas
12712         switch.
12713
12714 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
12715
12716         * cfglayout.c (insn_locators_initialize): Update the current
12717         location before initializing a location.
12718
12719 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
12720
12721         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
12722         (dbxout_function_end): Return after emitting the "Lscope" symbol
12723         under the same conditions that this function formerly wasn't called.
12724         Add explanatory comments.
12725
12726         PR 14860
12727         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
12728         on the new decl.
12729
12730         PR 13956
12731         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
12732         functions, broken out of dbxout_block.
12733         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
12734         stabs too, if it contains symbols.  Use the begin_label and
12735         the Lscope label (emitted by dbxout_function_end) for the
12736         range of this block.
12737
12738 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
12739
12740         * doc/install.texi: Update autoconf version requirements.
12741
12742 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
12743
12744         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
12745         * recog.c (general_operand, immediate_operand, nonmemory_operand)
12746         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
12747         * regclass.c (record_reg_classes): Likewise.
12748         * reload.c (find_reloads): Likewise.
12749         * reload1.c (reload): Likewise.
12750
12751 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
12752
12753         * gensupport.c (init_md_reader_args_cb): Renamed from
12754         init_md_reader_args.  Add third option, callback function for
12755         parsing program-specific options.  Add diagnosis of incorrect
12756         number of input files.
12757         (init_md_reader): Fold into init_md_reader_args_cb.
12758         (init_md_reader_args): Now a thin wrapper around
12759         init_md_reader_args_cb.
12760         * gensupport.h: Update prototypes.
12761
12762         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
12763         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
12764         * genrecog.c: No need to diagnose lack of an input file;
12765         init_md_reader_args will handle it.
12766         * genconditions.c: Likewise, and use init_md_reader_args.
12767         * genconstants.c: Likewise, and no need to call read_md_rtx.
12768
12769 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
12770
12771         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
12772         declarations.
12773
12774 2004-08-03  Mike Stump  <mrs@apple.com>
12775
12776         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
12777         for frameworks.
12778         * doc/invoke.texi (Darwin Options): Update to reflect above.
12779
12780 2004-08-03  Roger Sayle  <roger@eyesopen.com>
12781
12782         PR middle-end/16790
12783         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
12784         truncations, not just global truncations.
12785
12786 2004-08-03  Andrew Pinski  <apinski@apple.com>
12787
12788         PR bootstrap/16865
12789         * loop-iv.c (simplify_using_assignment): Initialize lhs.
12790
12791 2004-08-03  Paul Brook  <paul@codesourcery.com>
12792
12793         * gcc/doc/install.texi: Document MPFR requirement.
12794
12795 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
12796
12797         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
12798         and mmap() explicitly instead of relying on preset autoconf cache
12799         variables.
12800         * configure: Regenerate.
12801
12802 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
12803
12804         PR target/16570
12805         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
12806         to tmake_file.
12807         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
12808         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
12809         to tmake_file.
12810
12811         * config/i386/t-gmm_malloc: New file.
12812         * config/i386/t-pmm_malloc: Likewise.
12813
12814         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
12815
12816 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
12817             Tanguy Fautrà <tfautre@pandora.be>
12818
12819         * config/i386/pmm_malloc.h: New file.
12820
12821 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
12822
12823         * config/i386/gmm_malloc.h: New file.
12824
12825 2004-08-03  Dale Johannesen  <dalej@apple.com>
12826
12827         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
12828         * c-common.c: Include opts.h.
12829         (c_common_get_alias_set): Fix check for a single input file.
12830         * toplev.c: Remove current_file_decl.
12831         * tree.h: Ditto.
12832
12833 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
12834
12835         * config.gcc (arm*-*-symbianelf*): New target.
12836         * config/arm/symbian.h: New file.
12837
12838         * gthr-gnat.c: Add visibility #pragmas.
12839         * gthr-gnat.h : Likewise.
12840         * gthr.h: Likewise.
12841         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
12842         (__ffsDI2): Likewise.
12843         (__clzSI2): Likewise.
12844         (__ctzSI2): Likewise.
12845         (__ctzDI2): Likewise.
12846         (__popcountSI2): Likewise.
12847         (__popcountDI2): Likewise.
12848         (__paritySI2): Likewise.
12849         (__parityDI2): Likewise.
12850         * libgcc2.h: Add visibility #pragmas.
12851         (__clzDI2): Add prototype.
12852         (__clzSI2): Likewise.
12853         (__ctzSI2): Likewise.
12854         (__ffsDI2): Likewise.
12855         (__ffsSI2): Likewise.
12856         (__ctzDI2): Likewise.
12857         (__popcountSI2): Likewise.
12858         (__popcountDI2): Likewise.
12859         (__paritySI2): Likewise.
12860         (__parityDI2): Likewise.
12861         * unwind-dw2-fde.h: Add visibility #pragmas.
12862         * unwind.h: Likewise.
12863
12864 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
12865             Dale Johannesen  <dalej@apple.com>
12866             Roger Sayle  <roger@eyesopen.com>
12867
12868         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
12869         constants more accurately.  Adjust costs for FMA instructions.
12870         Add cases for most logical and float operations.  Recurse into
12871         most operands.
12872
12873 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
12874
12875         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
12876
12877 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
12878
12879         * ra-build.c (conflicts_between_webs): For webs that cross a call add
12880         conflicts to regs_invalidated_by_call.
12881
12882 2004-08-03  Paul Brook  <paul@codesourcery.com>
12883
12884         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
12885
12886 2004-08-03  Jan Hubicka  <jh@suse.cz>
12887
12888         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
12889         ARRAY_REF argument.
12890
12891 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
12892
12893         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
12894         arm968es, arm10e, arm1020e, arm1022e.
12895         * invoke.texi: Update list of ARM cores.
12896         * arm-tune.md: Regenerate.
12897
12898 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
12899
12900         * arm/gentune.sh: New file.
12901         * arm/t-arm: New file.
12902         * arm/arm-tune.md: New file (autogenerated).
12903         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
12904         * arm.md (attribute tune): Delete.  Include arm-tune.md.
12905
12906 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
12907
12908         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
12909         penultimate parameter.  All callers adjusted.
12910         (struct prefix_list): Remove used_flag_ptr.
12911         (find_a_file): Do not set *pl->used_flag_ptr.
12912         (warn_B, warn_std_ptr): Remove.
12913
12914 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
12915             Mostafa Hagog <mustafa@il.ibm.com>
12916
12917         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
12918
12919 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
12920
12921         * dwarf2out.c (output_call_frame_info): Don't change data format
12922         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
12923         label.  Use 'true' not '1'.
12924         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
12925         required.
12926
12927 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12928
12929         * gdbinit.in: Reflect previous changes to rtunion_def.
12930
12931 2004-08-02  Roger Sayle  <roger@eyesopen.com>
12932
12933         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
12934         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
12935
12936 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12937
12938         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
12939         vec_p_reserve.
12940         * langhooks.h (lang_hooks::builtin_function): Rename parameter
12941         from "class" to "bt_class".
12942
12943 2004-08-02  Paul Brook  <paul@codesourcery.com>
12944
12945         PR rtl-optimization/15068
12946         * flow.c (init_propagate_block_info): Check condition is reversible.
12947
12948 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12949
12950         * gengtype.h (options::info): Change type to const char *.
12951         (enum gc_used_enum): Move out of struct type scope.
12952         * gengtype.c (create_option): Convert initializer for option::info to
12953         appropiate type.
12954         (adjust_field_type, walk_type, write_func_for_structure,
12955         write_root, write_roots): Remove pointless cast.
12956
12957 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
12958
12959         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
12960
12961 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12962
12963         * rtl.h (union rtunion_def): Have all members  start with the
12964         prefix "rt_".
12965         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
12966         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
12967         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
12968         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
12969         access.
12970         * gengtype.c (adjust_field_rtx_def): Likewise.
12971         * rtlanal.c (loc_mentioned_in_p): Likewise.
12972
12973 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
12974
12975         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
12976         Replace uses of mips/elf64.h with mips/elf.h
12977         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
12978         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
12979         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
12980         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
12981         (HANDLE_SYSV_PRAGMA): Delete.
12982         (ASM_OUTPUT_DEF): Fix formatting.
12983         * config/mips/elf64.h: Delete.
12984
12985 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
12986
12987         * config/ia64/ia64.c (got_symbolic_operand): Do require a
12988         symbol+offset operand to have its offset be zero mod 0x3fff
12989         when GOT entries are in use.  Clarify logic in SYMBOL_REF
12990         case.  Clarify comments.
12991         (ia64_expand_load_address): Split a symbol+offset load when
12992         the offset is nonzero mod 0x3fff, not 0x1fff.
12993
12994 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
12995
12996         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
12997         if trying to *store* to a non-offsettable address.
12998         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
12999         a nonoffsettable address.
13000         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
13001         Clean up.
13002         (movti_string): Don't move GPRs to a nonoffsettable address.
13003         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
13004
13005 2004-08-02  Ben Elliston  <bje@au.ibm.com>
13006
13007         PR target/16155
13008         * config/rs6000/altivec.h: Replace typeof with __typeof__.
13009
13010 2004-08-01  Richard Henderson  <rth@redhat.com>
13011
13012         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
13013         variable sized types.
13014
13015 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13016
13017         * doc/invoke.texi: In the MIPS options section, remove the passage
13018         saying that -mexplicit-relocs is usually disabled for -mabicalls
13019         -fno-unit-at-a-time.
13020         * config/mips/mips.c (override_options): Remove the code that enforced
13021         this rule.
13022
13023 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13024
13025         * config/mips/mips.md (cprestore): Provide two alternatives, one for
13026         an in-range offset and one for an out-of-range offset.  Wrap the latter
13027         in .set macro/.set nomacro if it's inside a .set nomacro block.
13028
13029 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13030
13031         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
13032         (mips_restore_gp): Declare.
13033         * config/mips/mips.c (mips_add_offset): Add a scratch register
13034         argument.  Reimplement in rtl only, reusing MIPS16 logic from
13035         mips_output_mi_thunk.
13036         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
13037         to mips_add_offset.
13038         (mips_gp_save_slot): Delete.
13039         (mips_restore_gp): New function.
13040         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
13041         * config/mips/mips.md (exception_receiver): Turn into a
13042         define_insn_and_split.  Use mips_restore_gp to do the split.
13043         (call_internal, call_value_internal, call_value_multiple_internal): Use
13044         mips_restore_gp to restore $gp.
13045
13046 2004-07-31  Andrew Pinski  <apinski@apple.com>
13047
13048         PR other/16842
13049         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
13050
13051 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
13052
13053         * c-decl.c (diagnose_mismatched_decls): Give error for external
13054         redeclaration of identifier declared with no linkage, not just
13055         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
13056         error for redeclaration with no linkage.
13057
13058 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
13059             Fariborz Jahanian <fjahanian@apple.com>
13060
13061         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
13062         non-offsettable addresses even for DImode.
13063         (rs6000_split_multireg_move): Cope with non-offsettable addresses
13064         being moved into multiple GPRs.
13065
13066         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
13067         to 64.
13068         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
13069         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
13070         to 128.
13071         * config/rs6000/darwin-ldouble.c (isless): New macro.
13072         (inf): New macro.
13073         (nonfinite): New macro.
13074         (FPKINF): Delete.
13075         (_xlqadd): Completely rewrite.
13076         (_xlqmul): Correct overflow handling.
13077         (_xlqdiv): Correct overflow handling.
13078         * config/rs6000/darwin-ldouble-format: New file.
13079
13080 2004-07-30  Roger Sayle  <roger@eyesopen.com>
13081             Richard Henderson  <rth@redhat.com>
13082
13083         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
13084         9 into the equivalent lea instruction.
13085
13086 2004-07-30  Richard Henderson  <rth@redhat.com>
13087
13088         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
13089         with DECL_INITIAL if fb_lvalue.
13090         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
13091         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
13092         with <Cxxx>.
13093         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
13094
13095 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
13096
13097         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
13098         pointer escapes through a function call, assume that the
13099         callee will dereference it.
13100         (add_pointed_to_var): Assume that VALUE is always an
13101         ADDR_EXPR.
13102         (collect_points_to_info_r): Only call add_pointed_to_var if
13103         the value is an ADDR_EXPR.
13104
13105 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
13106
13107         * tree-ssa-alias.c (create_alias_map_for): Do not get the
13108         alias set of the inner type of ARRAY_TYPEs.
13109
13110 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13111
13112         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
13113         setting a non-register to UNDEFINED right before the call to
13114         set_lattice_value.
13115
13116 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13117
13118         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
13119
13120 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13121
13122         * tree-ssa.c (verify_flow_sensitive_alias_info): When
13123         comparing points-to sets of different pointers, make sure the
13124         second pointer is actually referenced in the code.
13125
13126 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
13127
13128         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
13129         (got_symbolic_operand): Remove unreachable code.
13130         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
13131         setjmp_operand; add entry for tls_symbolic_operand.
13132         * config/ia64/ia64-protos.h: Remove all prototypes of
13133         predicate functions.
13134
13135 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
13136
13137         * c-common.h (lang_post_pch_load): New variable.
13138         * c-pch.c (lang_post_pch_load): Define it.
13139         (c_common_read_pch): Use it.
13140         * cgraphunit.c (record_call_1): Give the front end a chance to
13141         record additional needed entities when a variable is marked as
13142         needed.
13143         * tlink.c (recompile_files): Robustify.
13144         (scan_linker_output): If a symbol is assigned to a file,
13145         but after recompilation is not present there, issue an error
13146         message.
13147
13148 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13149
13150         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
13151         Take orig_loop argument and pass it to set_level.
13152         (schedule_sm): Pass the correct orig_loop to force_move_till.
13153
13154 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13155
13156         * cfgloop.c (update_latch_info): Update dominator of the new block.
13157         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
13158         info.
13159         * dominance.c (verify_dominators): Check that the dominance tree is
13160         connected.
13161         (recount_dominator): Ignore unreachable blocks.
13162         (iterate_fix_dominators): Cleanup old dominance information before
13163         recomputing it.
13164
13165 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13166
13167         * tree-ssa-operands.c (get_expr_operands): Revert changes
13168         to ADDR_EXPR processing introduced by:
13169             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13170             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
13171
13172 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
13173
13174         * doc/implement-c.texi: Add C90 subclause references.  Point to
13175         preprocessor documentation instead of duplicating it.  Add points
13176         only present in C90.  Fill in documentation for all points.
13177
13178 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13179
13180         * pa.c (output_movb): Correct typo.
13181
13182 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
13183
13184         * ra.h (single_reg_in_regclass): Declare.
13185         * ra.c (single_reg_in_regclass): Define.
13186         (first_hard_reg): New.
13187         (init_ra): Initialize single_reg_in_regclass.
13188         * ra-colorize.c (ok_class): New.
13189         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
13190
13191 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
13192
13193         * gcov-io.h: Allow zero tag as EOF indicator.
13194         (gcov_is_eof): Remove.
13195         (gcov_truncate): Remove.
13196         * gcov-io.c (gcov_seek): Always SEEK_SET.
13197         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
13198         EOF tag.
13199         * coverage.c (read_counts_file): Don't use gcov_is_eof.
13200         * gcov-dump.c (dump_file): Likewise.
13201         * gcov.c (read_graph_file, read_count_file): Likewise.
13202
13203         * c-decl.c (complete_array_type): Don't gratuitously copy
13204         maxindex.  Check it always has a type.
13205
13206 2004-07-29  Steven Bosscher  <stevenb@suse.de>
13207
13208         * rtl.c (currently_expanding_to_rtl): New.
13209         * rtl.h (currently_expanding_to_rtl): Export it.
13210         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
13211
13212         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
13213         inliner hack.
13214         * config/sh/sh.c: Replace rtx_equal_function_value_matters
13215         with currently_expanding_to_rtl.
13216         * config/sh/sh.md: Likewise.
13217         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
13218
13219 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
13220
13221         Introduce sh2a support.
13222         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
13223         * config.gcc: Build multilibs for sh2a and sh2a-single by
13224         default.
13225         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
13226         default.  Split their tests out of the corresponding SH4
13227         multilibs.
13228         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
13229         multilibs for SH2a.
13230         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13231         * config.gcc: Handle sh2a multilibs and cpu selection.
13232         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
13233         * config/sh/t-mlib-sh2a: New.
13234         * config/sh/t-mlib-sh2a-nofpu: New.
13235         * config/sh/t-mlib-sh2a-single: New.
13236         * config/sh/t-mlib-sh2a-single-only: New.
13237         2004-07-09  Nick Clifton  <nickc@redhat.com>
13238         Issue 43400
13239         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
13240         -ml and -m2a are used together.
13241         2004-03-23  DJ Delorie  <dj@redhat.com>
13242         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
13243         when we have a double-sized FPU.
13244         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
13245         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
13246         is set.
13247         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
13248         -msh2a-single and -msh2a-single-only
13249         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
13250         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
13251         is set.
13252         2004-02-20  DJ Delorie  <dj@delorie.com>
13253         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
13254         2004-02-20  Fred Fish <fnf@redhat.com>,
13255         Corinna Vinschen <vinschen@redhat.com>
13256         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
13257         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
13258         2004-02-18  DJ Delorie  <dj@redhat.com>
13259         * config/sh/sh.c (broken_move): Add support for movi20.
13260         * config/sh/sh.h: Likewise.
13261         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
13262         * config/sh/sh.md (udivsi3_sh2a): New.
13263         (udivsi3): Call it.
13264         (divsi3_sh2a): New.
13265         (divsi3): Call it.
13266         (mul_r): New.
13267         (ashlsi3_sh2a): New.
13268         (ashrsi3_sh2a): New.
13269         (lshrsi3_sh2a): New.
13270         (movsi_i): Disable for sh2a.
13271         (movsi_ie): Add movi20.
13272         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
13273         sh2a, for -m2a-nofpu mode.
13274         2004-02-13  DJ Delorie  <dj@redhat.com>
13275         * config/sh/lib1funcs.asm: Handle double vs single better.
13276         * config/sh/sh.h: Likewise.
13277         2004-02-09  DJ Delorie  <dj@redhat.com>
13278         * config/sh/crt1.asm: Add support for sh2a.
13279         * config/sh/elf.h: Likewise.
13280         * config/sh/lib1funcs.asm: Likewise.
13281         * config/sh/sh.c: Likewise.
13282         * config/sh/sh.md: Likewise.
13283         * config/sh/sh.h: Likewise.
13284         * config/sh/t-sh: Likewise.
13285
13286 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13287
13288         * config/frv/frv.md (movqi_internal, movhi_internal,
13289         movsi_internal): Add backup alternatives for memory inputs.
13290
13291 2004-07-28  Matt Austern  <austern@apple.com>
13292
13293         * config/darwin.c (darwin_one_byte_bool): New global variable.
13294         * config/darwin.h (darwin_one_byte_bool): Declare.
13295         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
13296         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
13297         value of darwin_one_byte_bool.
13298         * doc/invoke.texi: Document -mone-byte-bool flag.
13299
13300 2004-07-28  Eric Christopher  <echristo@redhat.com>
13301
13302         * c-common.c (c_common_unsafe_for_reeval): Delete.
13303         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
13304         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
13305         * calls.c (fix_unsafe_tree): Delete.
13306         (expand_call): Delete code which used above.
13307         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
13308         * expr.c (expand_expr_real_1): Ditto.
13309         * fold-const.c (non_lvalue): Ditto.
13310         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
13311         (lhd_unsafe_for_reeval): Ditto.
13312         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
13313         * langhooks.h (unsafe_for_reeval): Ditto.
13314         (unsave_expr_now): Adjust comment.
13315         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
13316         (estimate_num_insns_1): Ditto.
13317         * tree-pretty-print.c (dump_generic_node): Ditto.
13318         * tree.c (expr_align): Ditto.
13319         (unsave_expr): Delete.
13320         (unsafe_for_reeval): Ditto.
13321         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
13322         * tree.def (UNSAVE_EXPR): Delete.
13323         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
13324
13325 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
13326
13327         * tree.h (enum tls_model): Move ...
13328         * coretypes.h: ... here.
13329
13330 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
13331
13332         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
13333
13334 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
13335
13336         * cse.c (validate_canon_reg): New function, split out from...
13337         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
13338
13339 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13340
13341         * tree-ssa-alias.c (maybe_create_global_var): Don't just
13342         return if .GLOBAL_VAR has been created.
13343
13344 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13345
13346         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
13347         every variable that may have aliases, not just tags.
13348
13349 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
13350
13351         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
13352         move_from_CR_eq_bit.
13353         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
13354
13355
13356         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
13357         e500_flip_eq_bit.
13358
13359         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
13360         output_e500_flip_eq_bit.
13361
13362         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
13363         output_e500_flip_eq_bit.
13364         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
13365         output_e500_flip_eq_bit.
13366         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
13367         (print_operand): case D.  Get to EQ bit.
13368
13369 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
13370
13371         * gcov.c (function_summary): Add missing \n.
13372
13373 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13374
13375         Introduce sh4a support.
13376         * config.gcc: Handle sh4a multilibs and cpu selection.
13377         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
13378         * config/sh/t-mlib-sh4a: New.
13379         * config/sh/t-mlib-sh4al: New.
13380         * config/sh/t-mlib-sh4a-nofpu: New.
13381         * config/sh/t-mlib-sh4a-single: New.
13382         * config/sh/t-mlib-sh4a-single-only: New.
13383         2004-02-20  DJ Delorie  <dj@redhat.com>
13384         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
13385         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
13386         2003-08-22  Eric Christopher  <echristo@redhat.com>
13387         * config/sh/sh4a.md: Update for chip errata.
13388         2003-08-07  Eric Christopher  <echristo@redhat.com>
13389         * config/sh/sh4a.md: New file. sh4a processor description.
13390         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
13391         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
13392         of -m4a-nofpu.
13393         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
13394         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
13395         * doc/invoke.texi (SH Options): Document -m4al.
13396         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
13397         * config/sh/sh.c (expand_block_move): Remove commented-out code
13398         checked in by mistake.
13399         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
13400         single elements from SFmode vectors.
13401         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
13402         register.
13403         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
13404         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
13405         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
13406         sh_fsca_int2sf): Remove variable declarations.
13407         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
13408         sh_fsca_int2sf): New functions.
13409         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
13410         sh_fsca_int2sf_rtx): New static variables.
13411         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
13412         sh_fsca_int2sf): Declare.
13413         * config/sh/sh.md: Adjust.
13414         * doc/invoke.texi (SH Options): Document new options.
13415         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
13416         compatibility from SH4 code.
13417         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
13418         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
13419         early.
13420         (memory_movsrc_operand): Renamed to...
13421         (unaligned_load_operand): ... this.  Simplified.
13422         * config/sh/sh.h (PREDICATE_CODES): Adjust.
13423         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
13424         input operand to SImode, and adjust the others.  Introduce
13425         post-increment by peephole.
13426         * config/sh/sh.c (expand_block_move): Give the target address the
13427         same mode as the temp reg.
13428         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
13429         copying.
13430         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
13431         Introduce support for SH4a.
13432         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
13433         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
13434         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
13435         sh_fsca_int2sf): New.
13436         (sh_init_builtins): Initialize them.
13437         (print_operand): Support `d'.
13438         (expand_block_move): Use movua if src is misaligned.
13439         (memory_movsrc_operand): New.
13440         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
13441         and one of the SH4 macros.
13442         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
13443         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
13444         SELECT_SH4A_SINGLE): New.
13445         (TARGET_NONE): Add SH4A_BIT.
13446         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
13447         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
13448         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
13449         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
13450         (enum processor_type): Added PROCESSOR_SH4A.
13451         (PREDICATE_CODES): Add memory_movsrc_operand.
13452         * config/sh/sh.md: Removed unused variables.
13453         (attr cpu): Add sh4a.
13454         (attr type): Add movua, fsrra and fsca.
13455         (prefetch): New, for SH4.
13456         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
13457         (toggle_sz): Set type to fp.
13458         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
13459         (movua, extv, extzv): New.
13460         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
13461         and 4a-single-only.
13462
13463 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13464
13465         * tree-optimize.c (init_tree_optimization_passes): Schedule
13466         pass_may_alias right after the program is renamed into SSA.
13467         * tree-pass.h (PROP_alias): Define.
13468         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
13469         * tree-sra.c (pass_sra): Likewise.
13470         * tree-ssa-ccp.c (pass_ccp): Likewise.
13471         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
13472         * tree-ssa-dce.c (pass_dce): Likewise.
13473         * tree-ssa-dom.c (pass_dominator): Likewise.
13474         * tree-ssa-dse.c (pass_dse): Likewise.
13475         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
13476         * tree-ssa-loop-ch.c (pass_ch): Likewise.
13477         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
13478         * tree-ssa-pre.c (pass_pre): Likewise.
13479         * tree-tailcall.c (pass_tail_recursion): Likewise.
13480         * tree-ssa.c (pass_redundant_phi): Likewise.
13481         * tree-ssa-alias.c (aliases_computed_p): Remove.
13482         Update all users.
13483         (init_alias_info): Do not mark all type tags for renaming
13484         unconditionally.
13485         Clear may_aliases from every symbol.
13486         (setup_pointers_and_addressables): If a pointer has not been
13487         dereferenced and it had a type tag, clear it and mark the old
13488         tag for renaming.
13489
13490 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13491
13492         PR tree-optimization/16705
13493         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
13494         .GLOBAL_VAR.
13495
13496 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13497
13498         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
13499         check.
13500
13501         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
13502         don't make another one.
13503
13504         PR optimization/15077
13505         * function.h (struct function): Add field saved_static_chain_decl.
13506         Fix comment for static_chain_decl.
13507         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
13508         * tree-inline.h (save_body): Add new arg.
13509         * tree-optimize.c (tree_rest_of_compilation): Handle saving
13510         static_chain_decl.
13511
13512 2004-07-27  Richard Henderson  <rth@redhat.com>
13513
13514         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
13515         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
13516         is_gimple_addressable.
13517         * tree-gimple.c (is_gimple_addressable): Rename from
13518         is_gimple_addr_expr_arg; accept INDIRECT_REF.
13519         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
13520         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
13521         rename to is_gimple_addressable.
13522
13523 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
13524
13525         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
13526
13527 2004-07-27  Richard Henderson  <rth@redhat.com>
13528
13529         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
13530         before rounding.
13531
13532 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
13533
13534         * libgcc2.c: Change all conditionals testing
13535         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
13536         * libgcc2.h: Likewise.
13537         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
13538         TYPE_PRECISION of float80_type to 80.
13539         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
13540         of fpreg_type and float80_type to 80.
13541         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
13542         * config/m68k/netbsd-elf.h:
13543         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
13544         to evaluate to 80 whenever they would formerly have evaluated to 96.
13545         * config/i386/sco5.h: Remove unnecessary redefinition of
13546         LONG_DOUBLE_TYPE_SIZE.
13547         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
13548         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
13549         XFmode, with a bitsize of 80.  Update commentary.
13550         * config/ia64/ia64-modes.def: Likewise.
13551         * config/m68k/m68k-modes.def: Likewise.
13552
13553 2004-07-27  Steven Bosscher  <stevenb@suse.de>
13554
13555         * cfgexpand.c (tree_expand_cfg): Fix comment.
13556
13557         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
13558         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
13559         Remove.
13560         (prepare_function_start): Don't set rtx_equal_function_value_matters.
13561         * integrate.c (copy_rtx_and_substitute): Don't test for it.
13562         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
13563         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
13564         here again.  Update leading comment.
13565         * rtl.c (rtx_equal_function_value_matters): Remove.
13566         (rtx_equal_p): Don't test for it.
13567         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
13568         Likewise.
13569
13570         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
13571         * rtl.c (note_insn_name): Likewise.
13572         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
13573         * final.c (final_scan_insn): Likewise.
13574
13575         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
13576         * passes.c (rest_of_handle_eh): Do it here.
13577
13578         * stmt.c (struct nesting): Remove struct nesting block member.
13579         (struct stmt_status): Remove x_block_start_count field.
13580         (current_block_start_count): Remove.
13581
13582 2004-07-27  Brian Booth  <bbooth@redhat.com>
13583
13584         * tree-optimize.c (register_one_dump_file): Update condition that uses
13585         static_pass_number.
13586         (dup_pass_1): Replace with...
13587         (next_pass_1): This.
13588         (NEXT_PASS): Call next_pass_1.
13589         (DUP_PASS): Remove.
13590         (init_tree_optimization_passes): Remove uses of DUP_PASS.
13591         (execute_one_pass): Update condition that uses
13592         static_pass_number.
13593         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
13594         integer.
13595
13596 2004-07-27  Nick Clifton  <nickc@redhat.com>
13597
13598         * config/m32r/m32r.c: Include integrate.h in order to get the
13599         prototype for get_hard_reg_initial_val().
13600
13601         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
13602         and tidy up indentation.
13603         (final_presence_set): Use absence_set instead, so that if there is
13604         nothing in the "o" pipe the "s" pipe can be scheduled.
13605
13606 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
13607
13608         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
13609         don't have PT_VARS nor PT_MALLOC set.
13610         Clear name tag from pointers that have not been dereferenced.
13611         (set_pt_anything, set_pt_malloc): Forward declare.
13612         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
13613         not type compatibility when determining if a pointer can be
13614         copy propagated.
13615
13616 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
13617
13618         * expr.h (canonicalize_condition, get_condition): Add an int argument.
13619         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
13620         it to check whether the condition is still valid at the jump insn.
13621         * ifcvt.c (noce_get_condition): Likewise.
13622         (noce_get_alt_condition): Update call to canonicalize_condition.
13623         * loop-iv.c (simplify_using_initial_values): Update call to
13624         get_condition.  Remove FIXME.
13625         (check_simple_exit): Update call to get_condition.
13626         * loop-unswitch.c (may_unswitch_on): Likewise.
13627         * loop.c (check_dbra_loop): Likewise.
13628         (canonicalize_condition, get_condition): Add an argument to say whether
13629         the condition must still be valid at INSN.
13630         (get_condition_for_loop): Update call to get_condition.  Require that
13631         the condition be valid at INSN.
13632         * predict.c (estimate_probability): Update call to get_condition.
13633         Remove unused earliest parameter.
13634         (expected_value_to_br_prob): Update call to canonicalize_condition.
13635
13636 2004-07-26  Eric Christopher  <echristo@redhat.com>
13637
13638         * tree-dfa.c (add_referenced_var): Register initializers of global
13639         variables.
13640
13641 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
13642
13643         * config/i386/i386.c (function_arg): Always treat 8-
13644         and 16-byte wide vectors the same, even if MMX/SSE
13645         are disabled.
13646         (contains_128bit_aligned_vector_p): Add comment.
13647
13648 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
13649
13650         * ra.h (enum node_type): Rename to:
13651         (enum ra_node_type).
13652         * ra-colorize.c: Likewise.
13653
13654 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
13655
13656         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
13657         after simplifying the jump.
13658
13659 2004-06-26  Richard Henderson  <rth@redhat.com>
13660
13661         * calls.c (combine_pending_stack_adjustment_and_call): Make
13662         preferred_unit_stack_boundary argument unsigned.  Make
13663         unadjusted_alignment unsigned.
13664         (expand_call): Make preferred_stack_boundary and
13665         preferred_unit_stack_boundary variables unsigned.
13666         * function.c (assign_stack_local_1): Make alignment unsigned.
13667         * function.h (struct function): Make stack_alignment_needed,
13668         preferred_stack_boundary unsigned.
13669         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
13670         (ix86_compute_frame_layout): Make stack_alignment_needed,
13671         preferred_alignment variables unsigned.
13672         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
13673
13674 2004-07-26  Tom Tromey  <tromey@redhat.com>
13675
13676         * tree.h: Fix typo in comment.
13677
13678 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
13679
13680         PR bootstrap/12804
13681         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
13682         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
13683         (ggc_free): Remove incorrect freeing.
13684         (sweep_pages): Advance PP for large pages.  Fix indentation.
13685
13686 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
13687
13688         PR rtl-optimization/16643
13689         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
13690         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
13691         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
13692         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
13693         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
13694         * function.c (thread_prologue_and_epilogue_insns): Likewise.
13695         * rtl.h (tracer): Add a flags parameter.
13696         * tracer.c (tracer): Pass it to cfg_layout_initialise.
13697         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
13698         (rest_of_handle_reorder_blocks): Update calls to tracer and
13699         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
13700         (rest_of_handle_tracer): Pass 0 to tracer.
13701         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
13702
13703 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
13704
13705         PR target/16239
13706         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
13707         f->f.
13708
13709 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
13710
13711         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
13712         (BINFO_BASE_ACCESS): Adjust.
13713         (BINFO_BASE_ACCESS_APPEND): New.
13714         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
13715         * dbxout.c (dbxout_type): Adjust binfo access accessing.
13716         * dwarf2out.c (gen_member_die): Likewise.
13717         * tree-dump.c (deque_and_dump): Likewise.
13718
13719 2004-07-26  Falk Hueffner  <falk@debian.org>
13720
13721         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
13722         costs.
13723
13724 2004-07-25  Roger Sayle  <roger@eyesopen.com>
13725
13726         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
13727         value off of the stack if TARGET_USE_FFREEP.
13728
13729 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
13730
13731         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
13732         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
13733         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
13734         check on invocation of XRESIZEVEC ().
13735
13736 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
13737
13738         * c-common.c (disable_builtin_function): Rename variable n to
13739         new_disabled_builtin.
13740         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
13741         Rename local variable old to old_decl.
13742         * gensupport.c (shift_output_template): Rename parameter old to src.
13743         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
13744         old_rtx and newx to new_rtx.
13745
13746 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
13747
13748         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
13749         of c-pragma.h.
13750         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
13751         enum cpp_ttype.
13752         * c-lex.c: Likewise.
13753
13754 2004-07-25  Roger Sayle  <roger@eyesopen.com>
13755
13756         * fold-const.c (constant_boolean_node): Make extern.
13757         (make_range): Wrap long lines.
13758         (fold_cond_expr_with_comparison): Remove unnecessary call to
13759         pedantic_non_lvalue.  Add missing calls to fold_convert.
13760         (fold_truthop): Add missing calls to fold_convert.
13761         (fold): Likewise.
13762         * tree.h (constant_boolean_node): Add prototype here.
13763         * builtins.c (expand_builtin_strncmp): Add missing calls to
13764         fold_convert.
13765         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
13766         Call fold_convert and constant_boolean_node to correct types.
13767         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
13768         missing call to fold_convert to correct types.
13769
13770 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
13771             Brian Ryner  <bryner@brianryner.com>
13772
13773         PR c++/9283
13774         PR c++/15000
13775         * c-common.c (c_common_attribute_table): Allow
13776         handle_visibility_attribute to be called for types.
13777         (handle_visibility_attribute) When given a type, set the visibility
13778         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
13779         so that we can check later whether the attribute was present. Added
13780         warning if attribute applied to non class type.
13781         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
13782         decls and checking that they are consistent.
13783         * common.opt: Added -fvisibility.
13784         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
13785         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
13786         * flags.h, tree.h: Added assorted support defines for overall patch
13787         * opts.c: Added parsing support for -fvisibility.
13788         * tree.c (build_decl): Set visibility for all decls to be whatever
13789         is in force at that time.
13790         * varasm.c (default_binds_local_p_1): Reworked logic determining
13791         when to make a symbol locally bound.
13792         * doc/invoke.texi: Added documentation for -fvisibility and
13793         -fvisibility-inlines-hidden.
13794
13795 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13796
13797         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
13798         * c-common.c: Add missing casts from void * to other types.
13799         * c-decl.c: Likewise.
13800         * c-format.c: Likewise.
13801         * c-lex.c: Likewise.
13802         * c-pragma.c: Likewise.
13803         * c-typeck.c: Likewise.
13804         * defaults.h: Likewise.
13805         * genconstants.c: Likewise.
13806         * gengtype-lex.l: Likewise.
13807         * genmodes.c: Likewise.
13808         * read-rtl.c: Likewise.
13809         * rtl.c: Likewise.
13810
13811 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13812
13813         * bitmap.c: Use type-safe memory allocation macros from libiberty.
13814         * c-common.c: Likewise.
13815         * c-decl.c: Likewise.
13816         * c-lang.c: Likewise.
13817         * c-lex.c: Likewise.
13818         * c-opts.c: Likewise.
13819         * c-parse.in: Likewise.
13820         * c-typeck.c: Likewise.
13821         * genconditions.c: Likewise.
13822         * gengtype-lex.l: Likewise.
13823         * gengtype-yacc.y: Likewise.
13824         * gengtype.c: Likewise.
13825         * genmodes.c: Likewise.
13826         * gensupport.c: Likewise.
13827         * read-rtl.c: Likewise.
13828         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
13829         htab_find_slot().
13830
13831 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13832
13833         * c-decl.c (groktypename, groktypename_in_param_context): Rename
13834         variable typename to type_name.
13835         * c-lex.c (interpret_float): Likewise.
13836
13837 2004-07-25  Roger Sayle  <roger@eyesopen.com>
13838
13839         * convert.c (convert_to_real, convert_to_integer,
13840         convert_to_complex): Replace calls to build with calls to buildN.
13841         * coverage.c (tree_coverage_counter_ref): Likewise.
13842         * dojump.c (do_jump): Likewise.
13843         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
13844         * emit-rtl.c (component_ref_for_mem_expr,
13845         set_mem_attributes_minus_bitpos): Likewise.
13846         * explow.c (update_nonlocal_goto_save_area): Likewise.
13847         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
13848         expand_mult_add): Likewise.
13849         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
13850         store_constructor, get_inner_reference, expand_expr_real_1,
13851         try_casesi, try_tablejump): Likewise.
13852         * function.c (expand_function_start): Likewise.
13853         * stmt.c (emit_case_bit_tests, expand_end_case_type,
13854         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
13855         * stor-layout.c (place_union_field, layout_type): Likewise.
13856         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
13857         * varasm.c (copy_constant): Likewise.
13858
13859 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13860
13861         * c-common.c: Rename all identifiers named `new'.
13862         * c-decl.c: Likewise.
13863         * gensupport.c: Likewise.
13864         * simplify-rtx.c: Likewise.
13865         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
13866         with XNEW().
13867         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
13868         with XNEWVEC().
13869
13870 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
13871
13872         PR c/15360
13873         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
13874         declarations until after calling pushdecl.
13875         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
13876         "extern" and not on whether the declaration is initialized.
13877
13878 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
13879
13880         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
13881         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
13882         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
13883         "cpplib.h", "c-pragma.h", "c-common.h".
13884         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
13885         (solaris_register_pragmas): New functions.
13886         * config/sol2-protos.h: New file.
13887         * config/sol2.c: New file.
13888         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
13889         (REGISTER_TARGET_PRAGMAS): New macros.
13890         (solaris_pending_aligns, solaris_pending_inits)
13891         (solaris_pending_finis): New variables.
13892         * config/t-sol2 (sol2-c.o): Update dependencies.
13893         (sol2.o): New rule.
13894         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
13895         SUBTARGET_INSERT_ATTRIBUTES.
13896         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
13897         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
13898         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
13899         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
13900         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
13901         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
13902         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
13903         * config/sparc/sparc.c (sparc_attribute_table): New.
13904         (TARGET_INSERT_ATTRIBUTES): Define in terms of
13905         SUBTARGET_INSERT_ATTRIBUTES.
13906         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
13907         is defined.
13908         * doc/extend.texi (Solaris Pragmas): New section.
13909
13910 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13911
13912         * c-common.c: Rename all identifiers named `class' to `cl'.
13913         * c-common.h: Likewise.
13914         * c-parse.in: Likewise.
13915         * c-typeck.c: Likewise.
13916         * genmodes.c: Likewise.
13917         * real.c: Likewise.
13918         * real.h: Likewise.
13919         * recog.c: Likewise.
13920         * recog.h: Likewise.
13921         * regrename.c: Likewise.
13922         * tree.h: Likewise.
13923         * c-common.c (builtin_function_2): Change type of 5th parameter from
13924         int to enum built_in_function. Change type of 8th parameter from int
13925         to bool.
13926         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
13927         with GGC_CNEW().
13928         * c-typeck.c (convert_arguments): Change type of formal_prec from
13929         int to unsigned int.
13930         * genmodes.c (blank_mode): Make a few negative constants unsigned.
13931         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
13932         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
13933         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
13934         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
13935         iterator to for_all_modes () instead of an enum because enums can't
13936         be incremented in C++.
13937
13938
13939 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
13940
13941         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
13942         hard registers.
13943
13944 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13945
13946         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
13947         Handle ARRAY_RANGE_REF like ARRAY_REF.
13948
13949 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
13950
13951         * c-typeck.c (digest_init): Don't allow arrays of signed or
13952         unsigned variants of wchar_t to be initialized by wide string
13953         constants.  Do allow arrays of enumerated types compatible with
13954         wchar_t to be initialized by wide string constants.  Refine tests
13955         distinguishing wide and narrow strings and arrays.  Give specific
13956         error for arrays of other integer types initialized by string
13957         constants.
13958         (output_init_element, process_init_element): Check for
13959         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
13960         initializing with string constants.
13961
13962 2004-07-25  Richard Henderson  <rth@redhat.com>
13963
13964         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
13965         on the RESULT_DECL.
13966         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
13967         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
13968         DECL_IGNORED_P to new decl.
13969
13970 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
13971
13972         * config/ia64/ia64.c (general_xfmode_operand)
13973         (destination_xfmode_operand): Delete.
13974         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
13975         * config/ia64/ia64.md (*movxf_internal): Use general_operand
13976         and destination_operand.
13977
13978 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
13979
13980         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
13981         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
13982
13983 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
13984             Zack Weinberg  <zack@codesourcery.com
13985
13986         PR 16684
13987         * c-decl.c (diagnose_mismatched_decls): Don't issue a
13988         redundant-declaration warning the first time a builtin is
13989         declared explicitly.
13990
13991 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13992
13993         * tree.h (staticp): Change return type to bool.
13994
13995 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13996
13997         * c-common.c (c_staticp): Last episode of the staticp saga.
13998
13999 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14000
14001         * c-common.h (c_staticp): Change return type from int to bool.
14002         * tree.c (staticp): Likewise.
14003         * langhooks.h (staticp): Likewise.
14004
14005 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14006
14007         * langhooks-def.h (lhd_staticp): Change return type from int to
14008         bool in prototype to match definition.
14009
14010 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14011
14012         * system.h (bool, true, false): Don't redefine as preprocessor macros
14013         in C++.
14014
14015 2004-07-24  Roger Sayle  <roger@eyesopen.com>
14016
14017         * expmed.c (init_expmed): A signed modulus by a power of two is
14018         considered cheap if its less than or equal to four instructions.
14019
14020 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14021
14022         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
14023         GGC_CNEWVAR): New macros.
14024
14025 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14026
14027         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
14028         lists.
14029         * c-decl.c: Likewise.
14030         * c-format.c: Likewise.
14031         * c-lex.c: Likewise.
14032         * c-opts.c: Likewise.
14033         * c-pragma.c: Likewise.
14034         * c-typeck.c: Likewise.
14035         * gencheck.c: Likewise.
14036         * genconditions.c: Likewise.
14037         * genconfig.c: Likewise.
14038         * genflags.c: Likewise.
14039         * gengtype.c: Likewise.
14040         * gensupport.c: Likewise.
14041         * ggc-none.c: Likewise.
14042         * langhooks.c: Likewise.
14043         * statistics.h: Likewise.
14044         * stub-objc.c: Likewise.
14045         * java/decl.c: Likewise.
14046
14047 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
14048
14049         * config/m68k/m68k.c (output_scc_di): Fix coding style.
14050         (symbolic_operand): Fix prototype.
14051         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
14052         * config/m68k/m68k.md: Add constants for registers a0 and sp and
14053         use them, change from the "{...}" syntax to the simpler {...}
14054         syntax.
14055         (*cfv4_extendqisi2): Fix destination predicate.
14056         * config/m68k/m68k-protos.h: Remove various declarations also
14057         generated via PREDICATE_CODES.
14058
14059 2004-07-23  Mike Stump  <mrs@apple.com>
14060
14061         * c-typeck.c (convert_for_assignment): Tightened up pointer
14062         converstions that differ in signedness.
14063
14064 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
14065
14066         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
14067
14068 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14069
14070         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
14071         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
14072
14073         * gimplify.c (gimplify_compound_lval): Check for no handled
14074         operations, rather than checking for explicit list of nodes.
14075         (is_gimple_addr_expr_arg_or_indirect): New function.
14076         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
14077         redundant setting of TREE_INVARIANT.
14078         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
14079         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
14080
14081 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
14082
14083         PR tree-optimization/16688
14084         PR tree-optimization/16689
14085         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
14086         unnecessary initialization of 'tag'.
14087         (get_tmt_for): Check that the new type tag has the same alias
14088         set as the pointed-to type.
14089         (group_aliases): Only regular variables need to be removed
14090         from the alias set of a name tag.
14091         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
14092         propagation if the two types are not compatible.
14093         (merge_alias_info): Rename from replace_ssa_names_ann.
14094         Add more checking.
14095         (replace_exp_1): If both arguments are SSA_NAMEs, check that
14096         the propagation can be done.
14097         Only call merge_alias_info on pointers.
14098         (propagate_value): Likewise.
14099         * tree-ssa-copyrename.c: Include langhooks.h.
14100         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
14101         to do the merging.
14102         Do not coalesce variables with incompatible types.
14103         (rename_ssa_copies): Call replace_ssa_name_symbol.
14104         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
14105         the same type as the underlying _DECL.
14106         * tree-ssanames.c (replace_ssa_name_symbol): New function.
14107         * tree.h (replace_ssa_name_symbol): Declare.
14108
14109 2004-07-23  Richard Henderson  <rth@redhat.com>
14110
14111         PR c++/16277
14112         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
14113         unshare it properly.
14114         (gimplify_modify_expr_rhs): Push assignment from a conditional into
14115         the conditional for all non-register types.
14116
14117 2004-07-23  Richard Henderson  <rth@redhat.com>
14118
14119         * expr.c (expand_expr_real_1): Don't handle non-local variables.
14120         * expr.h (fix_lexical_addr): Remove.
14121         * function.c (NEED_SEPARATE_AP): Remove.
14122         (fix_lexical_addr): Remove.
14123         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
14124         not null decl_function_context.
14125         (create_alias_vars): Likewise.
14126         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
14127         (simple_goto_p): Likewise.
14128         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
14129         * tree-ssa-ccp.c (get_default_value): Likewise.
14130         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
14131         * tree.c (needs_to_live_in_memory): Likewise.
14132         * tree-flow-inline.h (may_be_aliased): Move...
14133         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
14134         when TREE_STATIC variables may be addressable.
14135
14136 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
14137
14138         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
14139
14140 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
14141
14142         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
14143         bitmap contents if GENERATOR_FILE is defined.
14144         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
14145         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
14146
14147 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
14148
14149         * c-decl.c (start_function): Form composite type of function types
14150         rather than copying type from previous prototype declaration.
14151
14152 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
14153
14154         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
14155         the const qualifier for the second argument in the C++ functions.
14156
14157         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
14158         specific pointer types.
14159
14160         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
14161         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
14162         for vector bool and/or vector pixel, add C++ and C missing support.
14163         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
14164         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
14165         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
14166         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
14167         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
14168         missing C++ and C support for vector bool and/or vector pixel.
14169         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
14170         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
14171         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
14172         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
14173         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
14174         C++ and C types used for vector bool and/or vector pixel.
14175         (vec_st, vec_stl): Add C++ support for vector pixel.
14176         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
14177         (vec_all_ne): Add C++ support for vector pixel.
14178
14179         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
14180         (vec_vmulesb): Add missing C++ function.
14181         (vec_perm): Fix type of third argument in C++ function.
14182         (vec_vsum4shs): Fix C++ function name.
14183         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
14184         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
14185         argument passed to the error handler in C macro.
14186         (vec_nmsub): Remove extra parens around argument names in C macro.
14187         (vec_packpx): Add missing parens in C macro.
14188
14189 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
14190
14191         * machmode.def: Remove vector modes.
14192         * config/alpha/alpha-modes.def: Add supported vector modes.
14193         * config/arm/arm-modes.def: Likewise.
14194         * config/frv/frv-modes.def: Likewise.
14195         * config/i386/i386-modes.def: Likewise.
14196         * config/rs6000/rs6000-modes.def: Likewise.
14197         * config/sh/sh-modes.def: Likewise.
14198
14199 2004-07-23  Matthias Klose  <doko@debian.org>
14200
14201         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
14202         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
14203         * config.h: Regenerate.
14204         * configure: Likewise.
14205
14206 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
14207
14208         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
14209         generated SYMBOL_REFs for labels.
14210         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
14211         Change prototype.
14212         (machopic_stub_name): Remove.
14213         (machopic_indirection_name): New function.
14214         (machopic_mcount_stub_name): Likewise.
14215         (machopic_classify_name): Remove.
14216         (machopic_function_base_sym): New function.
14217         (machpoic_classify_symbol): Likewise.
14218         (machopic_classify_ident): Remove.
14219         (machopic_define_ident): Likewise.
14220         (machopic_define_name): Likewise.
14221         (machopic_name_defined_p): Likewise.
14222         (machopic_ident_defined_p): Likewise.
14223         (darwin_strip_name_encoding): Likewise.
14224         (machopic_define_symbol): New function.
14225         * config/darwin.c (hashtab.h): Include.
14226         (machopic_defined_list): Remove.
14227         (machopic_classify_ident): Likewise.
14228         (machopic_classify_name): Likewise.
14229         (machopic_ident_defined_p): Likewise.
14230         (machopic_define_ident): Likewise.
14231         (machopic_define_name): Likewise.
14232         (machopic_symbol_defined_p): New function.
14233         (machopic_classify_symbol): Likewise.
14234         (machopic_data_defined_p): Use machopic_classify_symbol.
14235         (machopic_define_symbol): New function.
14236         (machopic_function_base_sym): New function.
14237         (machopic_non_lazy_pointers): Remove.
14238         (machopic_non_lazy_ptr_name): Likewise.
14239         (machopic_stubs): Likewise.
14240         (machopic_stub_name): Likewise.
14241         (NON_LAZY_POINTER_SUFFIX): New macro.
14242         (STUB_SUFFIX): Likewise.
14243         (machopic_indirection): New structure.
14244         (machopic_indirections): New variable.
14245         (machopic_indirection_hash): New function.
14246         (machopic_indirection_eq): Likewise.
14247         (machopic_indirection_name): Likewise.
14248         (machopic_mcount_stub_name): New function.
14249         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
14250         hash table.
14251         (machopic_indirect_data_reference): Rework to use new functions.
14252         (machopic_indirect_call_target): Likewise.
14253         (machopic_legitimize_pic_address): Likewise.
14254         (machopic_output_indirection): New function.
14255         (machopic_finish): Use it.
14256         (machopic_operand_p): Rework to use new functions.
14257         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
14258         (darwin_strip_name_encoding): Remove.
14259         (update_non_lazy_ptrs): Remove.
14260         (update_stubs): Likewise.
14261         (darwin_non_lazy_pcrel): Use new functions.
14262         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14263         (ASM_OUTPUT_LABELREF): Likewise.
14264         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
14265         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
14266         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
14267         (TARGET_STRIP_NAME_ENCODING): Do not use
14268         darwin_strip_name_encoding.
14269         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
14270         darwin_strip_name_encoding.
14271         * config/i386/darwin.h (FUNCTION_PROFILER): Use
14272         machopic_mcount_stub_name.
14273         * config/i386/i386.c (x86_output_mi_thunk): Use
14274         machopic_indirection_name, not machopic_stub_name.
14275         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
14276         machopic_function_base_sym.
14277         (print_operand): Use machopic_classify_symbol.
14278         (rs6000_emit_prologue): Use machopic_function_base_sym.
14279         (output_profile_hook): Do not use machopic_stub_name.
14280         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
14281
14282 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14283
14284         PR c/7284
14285         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
14286         as multiplication.
14287
14288 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14289
14290         * doc/implement-c.texi: New file.
14291         * doc/extend.texi (C Implementation): Move to there.
14292         * doc/gcc.texi: Include implement-c.texi.
14293         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
14294
14295 2004-07-22  Jason Merrill  <jason@redhat.com>
14296
14297         * integrate.c (copy_decl_for_inlining): Remove invisible reference
14298         handling.
14299         * tree-inline.c (setup_one_parameter): Likewise.
14300
14301 2004-07-22  Brian Booth  <bbooth@redhat.com>
14302
14303         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
14304         (substitute_and_fold): Propigate into VUSE operands when possible.
14305         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
14306         (cp_lattice_meet): Handle merging of latticevalues when
14307         UNKNOWN_VAL is present.
14308         (visit_stmt): Visit assignments with V_MUST_DEFs.
14309         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
14310         (ccp_fold): Deal with RHS' that are constant and virtual.
14311         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
14312         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
14313         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
14314         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
14315         computing immediate uses.
14316         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
14317         transition.
14318         (replace_vuse_in): New function.
14319         (likely_value): Add check of vuse operands.
14320         (get_default_value): Set the default value of virtually defined
14321         variables to UKNOWN_VAL instead of VARYING.
14322
14323 2004-07-22  Richard Henderson  <rth@redhat.com>
14324
14325         * expr.c (emit_push_insn): Don't use set_mem_attributes.
14326
14327 2004-07-22  Richard Henderson  <rth@redhat.com>
14328
14329         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
14330         variables due to conditional compilation.
14331
14332 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
14333
14334         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
14335         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
14336         Release SSA names that have been re-renamed.
14337         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
14338         variable.
14339         * tree-ssa-alias.c (init_alias_info): If aliases have been
14340         computed before, clear existing alias information.
14341         (create_name_tags): Do no fixup PT_ANYTHING pointers.
14342         If the new name tag for a pointer is different than the one it
14343         had before, mark the old tag for renaming.
14344         (replace_may_alias): New function.
14345         (group_aliases): Call it.
14346         (setup_pointers_and_addressables): Always call get_tmt_for.
14347         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
14348         once.
14349         (set_pt_anything): New local function.
14350         (set_pt_malloc): New local function.
14351         (merge_pointed_to_info): Don't merge pointed-to variables from
14352         the original pointer if the destination is pointing to an
14353         unknown location.
14354         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
14355         (add_pointed_to_var): Do not add a variable to the points-to
14356         set if the pointer is already pointing to anywhere.
14357         (collect_points_to_info_r): If the defining statement is a PHI
14358         node, only merge pointed-to information if the argument has
14359         already been visited.
14360         (get_tmt_for): Only create a new tag if the pointer didn't
14361         have one already.
14362         (dump_alias_info): Emit more information.
14363         (dump_points_to_info_for): Likewise.
14364         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
14365         try to get the annotation of an SSA_NAME.
14366         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
14367         alias sets when checking is enabled.
14368         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
14369         (eliminate): Mark basic blocks that will need
14370         EH information cleaned up.
14371         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
14372         predecessor.
14373         Initialize need_eh_cleanup.
14374         (fini_pre): Call tree_purge_all_dead_eh_edges and
14375         cleanup_tree_cfg if needed.
14376         Free need_eh_cleanup.
14377         * tree-ssa.c (verify_ssa_name): New function.
14378         (verify_def): Call it.
14379         Re-arrange to avoid printing too many error messages.
14380         (verify_use): Likewise.
14381         (verify_phi_args): Likewise.
14382         (verify_flow_insensitive_alias_info): New function.
14383         (verify_flow_sensitive_alias_info): New function.
14384         (verify_alias_info): New function.
14385         (verify_ssa): Call verify_alias_info.
14386         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
14387         program.
14388         Re-arrange to avoid printing too many error messages.
14389         * tree-ssanames.c (make_ssa_name): Clear
14390         SSA_NAME_IN_FREE_LIST.
14391         (release_ssa_name): Never release a default definition.
14392         (release_defs): New function.
14393         * tree.h: Declare it.
14394         * tree-ssa-dce.c (remove_dead_stmt): Call it.
14395
14396 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
14397
14398         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
14399         If true, do a depth-first search.  Do a breadht-first search,
14400         otherwise.
14401         (walk_use_def_chains): Add new argument IS_DFS.
14402         Update all users.
14403         * tree-flow.h (walk_use_def_chains): Update prototype.
14404
14405 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
14406
14407         * config/cris/cris.md: Tweak formatting.
14408         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
14409         (mover2side, moverside, movemside, movei, op3, andu): Replace
14410         live define_peephole:s with define_peephole2 near-equivalents.
14411         Delete the rest.
14412         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
14413         word-size modes.
14414         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
14415         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
14416         "*mov_sidesi_mem" respectively.
14417
14418 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
14419
14420         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
14421         (gimplify_build1): Move from tree-complex.c do_unop.
14422         (gimplify_build2): Move from tree-complex.c do_binop.
14423         (gimplify_build3): New.
14424         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
14425         Adjust throughout to call the functions above.
14426         * tree-flow.h: Declare the functions above.
14427         * tree-nested.c (gimplify_val): Rename to...
14428         (tsi_gimplify_val): ... this.
14429
14430         * Makefile.in (tree_complex.o): Update dependencies.
14431         (stor-layout.o): Depend on regs.h.
14432         * c-common.c (handle_vector_size_attribute): Update for
14433         vector types without corresponding vector modes.
14434         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
14435         a corresponding vector mode is not available.
14436         * print-tree.c (print_node): Print nunits for vector types
14437         * regclass.c (have_regs_of_mode): New.
14438         (init_reg_sets_1): Initialize it and use it instead
14439         of allocatable_regs_of_mode.
14440         * regs.h (have_regs_of_mode): Declare it.
14441         * stor-layout.c (layout_type): Pick a mode for vector types.
14442         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
14443         build_replicated_const, do_unop, do_binop, do_plus_minus,
14444         do_negate, expand_vector_piecewise, expand_vector_parallel,
14445         expand_vector_addition, expand_vector_operations_1,
14446         expand_vector_operations, tree_lower_operations,
14447         pass_lower_vector_ssa, pass_pre_expand): New.
14448         (expand_complex_operations, pass_lower_complex): Remove.
14449         * tree-optimize.c (init_tree_optimization_passes): Adjust
14450         pass ordering for changes in tree-complex.c.
14451         * tree-pass.h: Declare new passes.
14452         * tree.c (finish_vector_type): Remove.
14453         (make_vector_type): New.
14454         (build_vector_type_for_mode, build_vector_type): Rewritten.
14455         * tree.def (VECTOR_TYPE): Document where the number of
14456         subparts is stored.
14457         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
14458         (make_vector): Remove declaration.
14459
14460 2004-07-21  Richard Henderson  <rth@redhat.com>
14461
14462         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
14463         TREE_THIS_VOLATILE, may_aliases, or optimization level.
14464         (remove_useless_vars): Dump debugging info.
14465         (expand_used_vars): Move ...
14466         * cfgexpand.c (expand_used_vars): ... here.  Make static.
14467         * tree-flow-inline.h (set_is_used): New.
14468         (set_default_def): Use get_var_ann.
14469         * tree-flow.h: Update decls.
14470         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
14471         (create_ssa_var_map): Use it.
14472         * tree-ssa.c (set_is_used): Remove.
14473
14474 2004-07-22  Ben Elliston  <bje@au.ibm.com>
14475
14476         * gdbinit.in: Set a breakpoint on internal_error.
14477
14478 2004-07-21  Richard Henderson  <rth@redhat.com>
14479
14480         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
14481         to create a new basic block.
14482
14483 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14484
14485         PR c/15052
14486         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
14487         return type on function definitions.  Move other warnings for
14488         qualified return type to -Wreturn-type.  Do not condition any such
14489         warnings on -pedantic.  Update comments.
14490         (start_function): Only copy function type from previous prototype
14491         declaration if return types are compatible.
14492         * c-typeck.c (function_types_compatible_p): Don't condition
14493         warning for incompatibility of volatile qualifiers on the return
14494         type on -pedantic.  Update comment.
14495         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
14496
14497 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14498
14499         * c-typeck.c (set_init_index): Require designator to be of integer
14500         type.
14501
14502 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14503
14504         PR c/11250
14505         * c-parse.in (init): Change to exprtype.
14506         (primary): Set original_code for STRING to STRING_CST.
14507         Call maybe_warn_string_init for compound literals.
14508         (initdcl, notype_initdcl): Call maybe_warn_string_init.
14509         (initval): Update.
14510         * c-tree.h (maybe_warn_string_init): New.
14511         (pop_init_level, process_init_element): Use struct c_expr.
14512         (struct c_expr): Update comment.
14513         * c-typeck.c (maybe_warn_string_init): New function.
14514         (digest_init): Call it.  Additional parameter strict_string.  All
14515         callers changed.
14516         (output_init_element): Likewise.
14517         (struct constructor_stack): Use struct c_expr for
14518         replacement_value.
14519         (really_start_incremental_init, push_init_level): Update.
14520         (pop_init_level): Update.  Return struct c_expr.
14521         (process_init_level): Update.  Take struct c_expr argument.
14522
14523 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
14524
14525         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
14526         commit.
14527
14528 2004-07-21  Eric Christopher  <echristo@redhat.com>
14529
14530         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
14531         removal.
14532         * c-decl.c (pop_scope): Ditto.
14533         * calls.c (expand_call): Remove call to current_nesting_level,
14534         update comment accordingly. Remove calls to expand_start_target_temps
14535         and expand_end_target_temps.
14536         * cfgexpand.c (construct_init_block): Remove call to
14537         expand_start_bindings_and_block.
14538         (construct_exit_block): Remove call to expand_end_bindings.
14539         * expr.c (safe_from_p): Remove BIND_EXPR handling.
14540         (expand_expr_real_1): Ditto. Fix formatting.
14541         (expand_vars): Delete.
14542         * stmt.c (POPSTACK): Remove block_stack.
14543         (stmt_status): Remove x_block_stack.
14544         (block_stack): Delete.
14545         (expand_start_bindings_and_block): Ditto.
14546         (expand_start_target_temps): Ditto.
14547         (expand_end_target_temps): Ditto.
14548         (current_nesting_level): Ditto.
14549         (warn_about_unused_variables): Ditto.
14550         (expand_end_bindings): Ditto.
14551         * tree.h: Remove declarations for above.
14552
14553 2004-07-21  Steven Bosscher  <stevenb@suse.de>
14554
14555         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
14556         * rtl.c (note_insn_name): Likewise.
14557         * print-rtl.c (print_rtx): Don't print it.
14558         * cfgrtl.h (can_delete_note_p): Don't handle it.
14559         (rtl_delete_block): Likewise.
14560         * passes.c (rest_of_handle_guess_branch_prob): Remove.
14561         (rest_of_compilation): Don't call it.
14562         * predict.c (process_note_predictions, process_note_prediction,
14563         note_prediction_to_br_prob): Remove.
14564         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
14565         * stmt.c (return_prediction): Remove.
14566         (expand_value_return): Don't call it.  Don't add prediction
14567         notes for return statements.
14568
14569 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
14570
14571         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
14572         once.
14573
14574 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
14575
14576         * c-common.c (vector_types_convertible_p): Use vector types'
14577         TYPE_SIZE and TREE_TYPE instead of their mode.
14578         * convert.c (convert_to_integer): Likewise.
14579         (convert_to_vector): Likewise.
14580         * fold-const.c (fold_convert): Likewise.
14581         * varasm.c (output_constant): Likewise.
14582         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
14583         Allow a VECTOR_TYPE initializer to be made of several vectors.
14584         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
14585         of cleared and need_to_clear, and use fold_convert.
14586         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
14587         integer vectors.
14588
14589 2004-07-20  Richard Henderson  <rth@redhat.com>
14590
14591         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
14592         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
14593
14594 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
14595
14596         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
14597         enormous cost if not TARGET_HARD_MUL.
14598
14599 2004-07-20  Andrew Pinski  <apinski@apple.com>
14600
14601         PR target/16557
14602         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
14603         (ASM_SPEC): here.
14604
14605 2004-07-21  Paul brook  <paul@codesourcery.com>
14606
14607         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
14608
14609 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14610
14611         * fold-const.c (operand_equal_p): Temporarily support NULL args.
14612         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
14613         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
14614
14615 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
14616
14617         * rtl.h (plus_constant): Delete.
14618         (plus_constant_wide): Rename to plus_constant.
14619         (plus_constant_for_output_wide): Delete vestigial prototype.
14620         (GEN_INT): Remove unnecessary cast.
14621         * tree.h (build_int_2, size_int_type): Delete.
14622         (build_int_2_wide): Rename to build_int_2.
14623         (size_int_wide): Rename to size_int_kind.
14624         (size_int_type_wide): Rename to size_int_type.
14625         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
14626         Remove unnecessary cast.
14627         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
14628         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
14629         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
14630         (size_int_type_wide): Rename size_int_type.
14631         (int_const_binop): Use size_int_type.
14632         * c-lex.c (interpret_integer): Use build_int_2.
14633         * final.c (split_double): Remove unnecessary casts.
14634         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
14635
14636 2004-07-20  Richard Henderson  <rth@redhat.com>
14637
14638         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
14639         (gimplify_compound_lval): Use is_gimple_tmp_reg.
14640         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
14641         (is_gimple_tmp_reg): New.
14642         * tree-gimple.h (is_gimple_tmp_reg): Declare.
14643
14644 2004-07-20  Richard Henderson  <rth@redhat.com>
14645
14646         * tree-pretty-print.c (dump_generic_node): Dump
14647         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
14648
14649 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
14650
14651         * tree-mudflap.c (mf_set_options_fndecl): New tree.
14652         (mudflap_init): Set it.
14653         (mudflap_register_call): Remove __mf_init call.
14654         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
14655         to pass "-ignore-reads" option to libmudflap if needed.
14656
14657 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
14658
14659         PR c++/14607
14660         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
14661         (MAKE_DECL_ONE_ONLY): Undefine.
14662         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
14663         readonly_data, one_only_data_section, forget_section): New prototypes.
14664         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
14665         functions.
14666         (pa_select_section): Add one-only (COMDAT) support.
14667         * pa.h (struct machine_function): Define.
14668         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
14669         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
14670         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
14671         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
14672         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
14673         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
14674         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
14675         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
14676         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
14677         for EXTRA_SECTION_FUNCTIONS.
14678         * doc/install.texi: Update binutils requirements.
14679
14680 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
14681
14682         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
14683         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
14684         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
14685         size_t.
14686         (struct VEC): Use unsigned for num and alloc.
14687         * vec.c (struct vec_prefix): Likewise.
14688         (vec_o_reserve): Adjust.
14689
14690         * dbxout.c (dbxout_type): Fix printf format.
14691
14692         * tree.h (binfo_member): Remove.
14693         * tree.c (binfo_member): Remove.
14694
14695 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
14696
14697         * tree.h: Include vec.h
14698         (DEF_VEC_P(tree)): New type.
14699         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
14700         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
14701         (BINFO_LANG_SLOT): Remove.
14702         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
14703         (struct tree_binfo): Turn base_binfos into a trailing
14704         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
14705         (binfo_lang_slots): Remove.
14706         * tree.c (binfo_lang_slots): Remove.
14707         (make_tree_binfo_stat): Take a base binfo count, not a
14708         lang slot count.  Adjust.
14709         * Makefile.in (TREE_H): Add vec.h
14710         * alias.c (record_component_aliases): Adjust BINFO access.
14711         * dbxout.c (dbxout_type): Likewise.
14712         * dwarf2out.c (gen_member_die): Likewise.
14713         * sdbout.c (sdbout_one_type): Likewise.
14714         * tree-dump.c (deque_and_dump): Likewise.
14715         * config/i386/i386.c (classify_argument,
14716         contains_128bit_aligned_vector_p): Likewise.
14717         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
14718         * doc/c-tree.texi (Classes): Update BINFO documentation.
14719
14720 2004-07-20  Steven Bosscher  <stevenb@suse.de>
14721
14722         * c-common.h (check_case_value): Remove prototype.
14723         (c_add_case_label): Adjust prototype.
14724         * c-common.c (check_case_value): Make static.
14725         (check_case_bounds): New function.
14726         (c_add_case_label): Use it.  Take new argument orig_type.
14727         * c-typeck.c (struct c_switch): New orig_type field.
14728         (c_start_case): Set it.
14729         (do_case): Pass it to c_add_case_label.
14730         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
14731         cases from here.  Add the labels in reverse order.
14732         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
14733         (add_case_node): Return nothing, don't check for duplicate cases.
14734         Insert new case nodes in a list, not in an AVL tree.
14735         (expand_end_case_type): Don't turn a case tree into a case list.
14736         (case_tree2list): Remove.
14737         * tree.h (add_case_node): Adjust prototype.
14738
14739 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
14740
14741         * genattr.c (struct range, struct function_unit,
14742         write_units, extend_range, init_range): Remove them.
14743         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
14744         Output "#define INSN_SCHEDULING" here.
14745         * genattrtab.c (struct range, struct function_unit_op,
14746         struct function_unit, struct dimension, enum operator,
14747         operate_exp, expand_units, simplify_knowing,
14748         encode_units_mask, simplify_by_exploding,
14749         find_and_mark_used_attributes, unmark_used_attributes,
14750         add_values_to_cover, increment_current_value,
14751         test_for_current_value, simplify_with_current_value,
14752         simplify_with_current_value_aux, gen_unit,
14753         write_unit_name, write_function_unit_info,
14754         write_complex_function, write_toplevel_expr,
14755         find_single_value, extend_range): Remove.
14756         (write_attr_get): Do not handle common_av->value
14757         being an FFS.
14758         (struct attr_desc): Remove func_units_p and blockage_p.
14759         (write_attr_valueq): Do not handle them.
14760         (find_attr): Do not clear them.
14761         (make_internal_attr): Do not initialize them.
14762         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
14763         * sched-vis.c (init_target_units, insn_print_units,
14764         init_block_visualization, print_block_visualization,
14765         visualize_scheduled_insns, visualize_no_unit,
14766         visualize_stall_cycles, visualize_alloc,
14767         visualize_free, target_units, get_visual_tbl_length,
14768         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
14769         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
14770         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
14771         * haifa-sched.c (blockage_range, clear_units,
14772         schedule_unit, actual_hazard, potential_hazard,
14773         insn_unit, unit_last_insn, unit_tick,
14774         actual_hazard_this_instance, potential_hazard,
14775         schedule_unit, max_insn_queue_index_value): Remove.
14776         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
14777         max_insn_queue_index.
14778         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
14779         * doc/md.texi (Processor pipeline description): Remove
14780         references to old pipeline descriptions.
14781         (Automaton pipeline description): Merge with the above.
14782         (Old pipeline description, Comparison of the two descriptions):
14783         Remove.
14784
14785         * bt-load.c (migrate_btr_def): Remove references to
14786         use_pipeline_interface.
14787         * haifa-sched.c (insn_cost, schedule_insn,
14788         schedule_block, advance_one_cycle, sched_init,
14789         queue_to_ready, sched_finish): Likewise.
14790         * modulo-sched.c (sms_schedule, advance_one_cycle,
14791         ps_has_conflicts): Likewise.
14792         * sched-rgn.c (init_ready): Likewise.
14793         (debug_dependencies): Likewise, and remove an "if (1)".
14794         * target.h (use_dfa_pipeline_interface): Remove.
14795         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14796         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14797         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14798         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14799         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14800         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14801         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14802         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14803         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14804         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14805         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14806         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14807         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14808         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14809         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14810         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14811         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14812         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14813         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14814
14815 2004-07-19  Roger Sayle  <roger@eyesopen.com>
14816
14817         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
14818
14819 2004-07-19  Jeff Law  <law@redhat.com>
14820
14821         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
14822         (get_eq_expr_value): Use it.  Simplify slightly.
14823
14824 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
14825
14826         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
14827         (umulsidi3_32bit_r4000): Likewise.
14828
14829 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
14830
14831         * vec.h: Propagate location information properly.
14832         (VEC_T_iterate): Add result pointer parameter.
14833         (VEC_T_space): New.
14834         (VEC_T_reserve): Use it.
14835
14836 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
14837
14838         * Makefile.in (c-format.o): Depend on c-format.h.
14839         * c-format.h: New file.
14840         (struct format_char_info): Add CHAIN member.
14841         * c-format.c: Move some types and constants to c-format.h.
14842         (format_type_error): Set to -1.
14843         (struct function_format_info): Use an int for format_type.
14844         (decode_format_type): Return an int.  Return format_type_error
14845         on error.
14846         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
14847         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
14848         (scan_char_table, time_char_table, monetary_char_table): Initialize
14849         CHAIN to NULL.
14850         (n_format_types): New variable.
14851         (check_format_info_main): Handle CHAIN in format_char_info.
14852         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
14853         TARGET_N_FORMAT_TYPES.
14854         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
14855         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
14856         * config/sol2-c.c: New file.
14857         * config/t-sol2: New file.
14858         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
14859         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
14860         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
14861
14862         * doc/extend.texi (Target Format Checks): New section.
14863         (Function Attributes): Mention it.
14864         * doc/invoke.texi: Mention target format checks.
14865         * doc/sourcebuild.texi: Mention target format checks.
14866         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
14867         TARGET_FORMAT_TYPES.
14868
14869 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
14870
14871         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
14872         added.
14873         * config/s390/s390.c (regclass_map initializer): Register 35 added to
14874         ADDR_REGS.
14875         (load_multiple_operation, store_multiple_operation): Removed
14876         pointless sanity check.
14877         (s390_decompose_address): Added check for return_address_pointer_rtx.
14878         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
14879         (s390_return_address_offset): New function.
14880         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
14881         (FRAME_REGNO_P): Added check for register 35.
14882         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
14883         REG_ALLOC_ORDER): Appended entry for register 35.
14884         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
14885         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
14886         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
14887         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
14888         is eliminable using stack pointer or hard frame pointer.
14889         (REGISTER_NAMES): Added name for register 35.
14890         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
14891         pointless sanity check.
14892
14893 2004-07-19  Roger Sayle  <roger@eyesopen.com>
14894
14895         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
14896         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
14897         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
14898         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
14899         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
14900         (fold_relational_const): Tidy up handling of floating point
14901         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
14902         transformation; fold_relational_const assumes constant operands.
14903
14904 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
14905
14906         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
14907         directory.
14908
14909 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
14910
14911         * c-tree.h (struct c_expr): Define.
14912         (C_SET_EXP_ORIGINAL_CODE): Remove.
14913         (parser_build_binary_op, build_compound_expr): Update prototypes.
14914         * c-parse.in (%union): Add exprtype.
14915         (FUNC_NAME): Mark as ttype.
14916         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
14917         exprtype.
14918         (expr): Update.  Define directly in terms of expr_no_commas
14919         instead of using nonnull_exprlist.
14920         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
14921         offsetof_member_designator, typespec_nonreserved_nonattr, init,
14922         initval, designator, component_declarator,
14923         component_notype_declarator, enumerator, array_declarator,
14924         condition, exexpr, switch_statement, stmt_nocomp, stmt,
14925         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
14926         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
14927         where appropriate.
14928         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
14929         * c-common.c (c_common_truthvalue_conversion): Don't check
14930         C_EXP_ORIGINAL_CODE.
14931         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
14932         Don't use C_EXP_ORIGINAL_CODE.
14933         (default_conversion, default_function_array_conversion): Don't use
14934         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
14935         (internal_build_compound_expr): Merge into build_compound_expr.
14936         (build_compound_expr): Take two operands instead of a TREE_LIST.
14937         * objc/objc-act.c (get_super_receiver): Update calls to
14938         build_compound_expr.
14939
14940 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
14941
14942         * config/sh/sh.c (sh_use_dfa_interface): Remove.
14943         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
14944         hook_int_void_1.
14945         * config/sh/sh.md: Extract pipeline descriptions
14946         into separate files.
14947         * config/sh/sh1.md: New file, extracted from sh.md.
14948         * config/sh/sh4.md: New file, extracted from sh.md.
14949         * config/sh/shmedia.md: New file, extracted from sh.md
14950         and rewritten using new-style pipeline description.
14951
14952 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
14953
14954         * config/pa/pa.md: Delete the two remaining define_peephole
14955         patterns.
14956
14957 2004-07-18  Steven Bosscher  <stevenb@suse.de>
14958             Joseph S. Myers  <jsm@polyomino.org.uk>
14959
14960         * c-common.c (c_common_truthvalue_conversion): Don't warn if
14961         TREE_NO_WARNING is set.
14962
14963 2004-07-18  Roger Sayle  <roger@eyesopen.com>
14964
14965         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
14966         simplify_builtin_strncmp): Delete.
14967         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
14968         Change argument to accept an arglist instead of an "exp".  Assume
14969         that the return type is always integer_type_node.  Copy missing
14970         transformations from their now obsolete simplify_builtin_*
14971         equivalents.
14972         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
14973         fold_builtin_strcmp and fold_builtin_strncmp.
14974         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
14975         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
14976         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
14977
14978 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
14979
14980         * Makefile.in (tree-alias-common.o): Update dependencies.
14981
14982 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
14983
14984         * cfgloop.c (flow_loop_nested_p): Fix comment.
14985
14986 2004-07-17  Jason Merrill  <jason@redhat.com>
14987
14988         PR c++/16115
14989         * stor-layout.c (relayout_decl): New fn.
14990         * tree.h: Declare it.
14991         (DECL_BY_REFERENCE): New macro.
14992
14993 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
14994
14995         * libgcc2.c (__enable_execute_stack): New symbol.
14996         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
14997         and declare __enable_execute_stack.
14998         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
14999         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
15000         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15001         ENABLE_EXECUTE_STACK.
15002         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
15003         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15004         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15005         ENABLE_EXECUTE_STACK.
15006         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15007         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
15008         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15009         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15010         ENABLE_EXECUTE_STACK.
15011         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15012         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15013         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15014         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15015         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
15016         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15017         (sparc64_initialize_trampoline): Likewise.
15018         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
15019
15020 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15021
15022         * langhooks.h (builtin_function): New langhook.
15023         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
15024         (LANG_HOOKS_INITIALIZER): Update.
15025         * tree.h (builtin_function): Remove.
15026         * doc/tm.texi: Update.
15027         * c-tree.h (builtin_function): Declare.
15028         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
15029         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
15030         config/ia64/ia64.c, config/iq2000/iq2000.c,
15031         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
15032         config/stormy16/stormy16.c: All callers of builtin_function
15033         changed.
15034
15035 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
15036
15037         PR target/16556
15038         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
15039         Remove white space after the backslash.
15040
15041 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
15042
15043         PR rtl-optimization/16294
15044         * resource.c (return_insn_p): New predicate.
15045         (mark_target_live_regs): Use it.  Special-case return insns.
15046         (init_resource_info): Use it.  Don't scan the epilogue past
15047         a return.
15048
15049 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15050
15051         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
15052         destroy dominance information.
15053         * passes.c (rest_of_handle_loop2):  Free dominance information.
15054         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
15055         jump threading.
15056         (thread_jumps): Update dominance information and remove unreachable
15057         blocks.
15058         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
15059         information and remove the unreachable block.
15060
15061 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
15062
15063         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
15064
15065 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
15066
15067         * doc/sourcebuild.texi: Remove libf2c entry.
15068
15069 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
15070
15071         * config/i386/i386.md (movv16qi_internal): Fix typo.
15072
15073 2004-07-17  Steven Bosscher  <stevenb@suse.de>
15074
15075         * final.c (final_scan_insn): Fix broken commit from previous
15076         patch.
15077
15078 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15079
15080         * c-typeck.c (parser_build_binary_op): Condition warnings for
15081         X<=Y<=Z on -Wparentheses instead of -Wextra.
15082         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
15083         supported for C only.
15084
15085 2004-07-17  Steven Bosscher  <stevenb@suse.de>
15086
15087         * cfgcleanup.c (try_simplify_condjump): Don't remove line
15088         notes to avoid unreachable code warnings.
15089         * toplev.c (backend_init): Don't emit line notes for
15090         unreachable code warnings.
15091
15092         * combine.c (distribute_notes): Don't distribute a
15093         REG_VTABLE_REF note.
15094         * final.c (final_scan_insn): Don't handle it.
15095         * rtl.c (reg_note_name): Remove it.
15096         * rtl.h (enum reg_node): Dito.
15097
15098         * emit-rtl.c (force_line_numbers, restore_line_number_status):
15099         Remove.
15100         * rtl.h (force_line_numbers, restore_line_number_status):
15101         Remove prototypes.
15102
15103         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
15104         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
15105         (using_eh_for_cleanups): Also moved here.
15106
15107         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
15108         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
15109         to expand_start_case and add_case_node.
15110         * stmt.c (struct nesting): Cleanup unused fields condition_code,
15111         last_unconditional_cleanup, nominal_type, printname, and
15112         line_number_status.
15113         (struct fixup_goto): Remove.
15114         (struct stmt_status): Remove x_goto_fixup_chain field.
15115         (goto_fixup_chain): Remove.
15116         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
15117         pushcase, pushcase_range): Remove.
15118         (expand_start_bindings_and_block): Don't set unused fields in
15119         the nesting stack.
15120         (expand_start_case, add_case_node): Cleanup unused formal arguments.
15121         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
15122         instead of emit_jump_if_reachable.
15123         (emit_case_nodes): Likewise.
15124         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
15125         static.
15126         (update_eh_label): Work around left-over exception handing regions.
15127         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
15128         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
15129         (pass_cleanup_cfg_post_optimizing): New pass.
15130         (init_tree_optimization_passes): Run the new pass after all
15131         optimizations.
15132         * tree.h (pushcase, pushcase_range): Remove prototypes.
15133         (expand_start_case, add_case_node): Update prototypes.
15134
15135 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
15136
15137         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
15138
15139 2004-07-16  Richard Henderson  <rth@redhat.com>
15140
15141         * builtins.c (std_expand_builtin_va_arg): Remove.
15142         (expand_builtin_va_arg): Remove.
15143         * expr.h: Don't declare them.
15144         * gimplify.c (mark_decls_volatile_r): Remove.
15145         (copy_if_shared_r): Don't call it.
15146         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
15147         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
15148         * gimple-low.c (lower_stmt): Likewise.
15149         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
15150         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
15151         * tree-ssa-operands.c (get_expr_operands): Likewise.
15152         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
15153         EXPAND_BUILTIN_VA_ARG.
15154         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
15155         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
15156         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
15157         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
15158
15159 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
15160
15161         * tree-ssa-pre.c (insert_aux): Break out if we hit
15162         a critical edge.
15163
15164 2004-07-16  Richard Henderson  <rth@redhat.com>
15165
15166         * basic-block.h (remove_fake_exit_edges): Declare.
15167         * cfganal.c (remove_fake_predecessors): Rename from
15168         remove_fake_successors; iterate over predecessors.
15169         (remove_fake_exit_edges): New.
15170         * cfgcleanup.c (try_optimize_cfg): Use it.
15171         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
15172         * predict.c (estimate_probability): Likewise.
15173         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
15174         * tree-cfg.c (make_edges): Likewise.
15175         * tree-ssa-pre.c (fini_pre): Likewise.
15176         * profile.c (instrument_edges): Don't remove_fake_edges.
15177         (branch_prob): Do it earlier here.
15178
15179 2004-07-16  Richard Henderson  <rth@redhat.com>
15180
15181         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
15182         switchification wrt CONSTRUCTOR.  Document the reason.
15183
15184 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
15185
15186         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
15187         that prevented descriptive __mf_check source location strings.
15188
15189 2004-07-16  Richard Henderson  <rth@redhat.com>
15190
15191         * tree-def (WITH_SIZE_EXPR): New.
15192         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
15193         * expr.c (expand_expr_real_1): Likewise.
15194         * gimplify.c (maybe_with_size_expr): New.
15195         (gimplify_arg, gimplify_modify_expr): Use it.
15196         (gimplify_modify_expr_to_memcpy): Take size parameter.
15197         (gimplify_modify_expr_to_memset): Likewise.
15198         (gimplify_expr): Handle WITH_SIZE_EXPR.
15199         * tree-alias-common.c (find_func_aliases): Likewise.
15200         * tree-eh.c (tree_could_trap_p): Likewise.
15201         (tree_could_throw_p): Likewise.
15202         * tree-gimple.c (is_gimple_lvalue): Likewise.
15203         (get_call_expr_in): Likewise.
15204         * tree-inline.c (estimate_num_insns_1): Likewise.
15205         (expand_calls_inline): Likewise.
15206         * tree-nested.c (convert_call_expr): Likewise.
15207         * tree-pretty-print.c (dump_generic_node): Likewise.
15208         * tree-sra.c (sra_walk_expr): Likewise.
15209         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
15210         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
15211         * tree-ssa-operands.c (get_expr_operands): Likewise.
15212         * tree-tailcall.c (find_tail_calls): Likewise.
15213
15214         * calls.c (expand_call): Reset old_stack_allocated after
15215         calling emit_stack_restore.
15216
15217 2004-07-16  Richard Henderson  <rth@redhat.com>
15218
15219         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
15220         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
15221         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
15222         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
15223         copy_res_decl_for_inlining.
15224
15225         * tree-inline.c (declare_return_variable): New modify_dest argument.
15226         Use it as the return value, when possible or manditory.  Handle
15227         TREE_ADDRESSABLE types.
15228         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
15229         replacement of CALL_EXPR.
15230
15231 2004-07-16  Richard Henderson  <rth@redhat.com>
15232
15233         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
15234         * gimple-low.c (expand_var_p): Don't check it.
15235         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
15236         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
15237         * tree-ssa-operands.c (add_stmt_operand): Likewise.
15238         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
15239         (find_referenced_vars): Don't call them.
15240         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
15241
15242 2004-07-16  Richard Henderson  <rth@redhat.com>
15243
15244         * function.c (pass_by_reference): True for all variable sized types.
15245
15246 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
15247
15248         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
15249         * tree-pretty-print.c: Include tree-chrec.h.
15250         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
15251         and POLYNOMIAL_CHREC nodes.
15252
15253 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
15254
15255         * builtins.c (expand_builtin_stpcpy): Do not create temporary
15256         reg with VOIDmode.
15257
15258 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
15259
15260         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
15261
15262 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
15263
15264         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
15265         to BASE_REGNUM.
15266         * config/s390/s390.c: Likewise.
15267         * config/s390/s390.h: Likewise.
15268
15269 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15270
15271         * config/mips/mips.md (addsi3, adddi3): Remove special handling
15272         of $sp adds.  Remove REGNO checks from mips16 patterns.
15273
15274 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15275
15276         * config/mips/mips.md: Delete outdated comment.
15277
15278 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15279
15280         * config/mips/mips.c (get_float_compare_codes): Delete.
15281         (mips_emit_compare): New function, mostly extracted from
15282         get_float_compare_codes and gen_conditional_branch.
15283         (gen_conditional_branch, gen_conditional_move): Use it.
15284
15285 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
15286
15287         * genautomata.c (add_vect): Speedup by using integers as
15288         bit-vectors for walking through the comb_vect and finding
15289         a match.
15290
15291 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15292
15293         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
15294         operand is an uns_arith_operand; use subtraction otherwise.
15295         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
15296         not just arith_operands.
15297
15298 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15299
15300         * config/mips/mips-protos.h (gen_int_relational): Delete.
15301         (mips_emit_scc): Declare.
15302         * config/mips/mips.c (internal_test): Delete.
15303         (sle_operand, sleu_operand): New functions.
15304         (map_test_to_internal_test, gen_int_relational): Delete.
15305         (mips_emit_binary, mips_relational_operand_ok_p)
15306         (mips_emit_int_relational, mips_zero_if_equal)
15307         (mips_emit_scc): New functions.
15308         (gen_conditional_branch): Rework to use mips_emit_int_relational.
15309         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
15310         sleu_operand.
15311         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
15312         (sltu, sleu): Use mips_emit_scc.
15313         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
15314         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
15315         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
15316
15317 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15318
15319         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
15320
15321 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15322
15323         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
15324         (*sne_[sd]i): Likewise sne_[sd]i_zero.
15325         (*sgt_[sd]i): ...and sgt_[sd]i.
15326         (*slt_[sd]i): ...and slt_[sd]i.
15327         (*sgtu_[sd]i): ...and sgtu_[sd]i.
15328         (*sltu_[sd]i): ...and sltu_[sd]i.
15329         (*sleu_[sd]i): ...and sleu_[sd]i_const.
15330         Name previously unnamed mips16 patterns.  Formatting fixes.
15331
15332 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15333
15334         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
15335         (branch_type): Delete.
15336         (gen_conditional_branch, gen_conditional_move)
15337         (mips_gen_conditional_trap): Update after name change.  Get the
15338         comparison mode from cmp_operands[0].
15339         * config/mips/mips.h (cmp_type, branch_type): Delete.
15340         (cmp_operands): Renamed from branch_cmp.
15341         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
15342         name change.  Don't set branch_type.
15343         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
15344         mode class of cmp_operands[0] rather than branch_type.  Update after
15345         name change.
15346
15347 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15348
15349         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
15350         of 0...255 to 0 when inside a SET.
15351
15352 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15353
15354         * config/mips/mips.md: Remove mips16 define_peepholes.
15355
15356 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
15357
15358         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
15359         (fini_pre): Remove fake edges.
15360
15361 2004-07-15  Richard Henderson  <rth@redhat.com>
15362
15363         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
15364         (get_indirect_ref_operands, get_call_expr_operands): ... these.
15365
15366 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
15367
15368         * vec.h (VEC_address): New function.
15369
15370 2004-07-14  Jason Merrill  <jason@redhat.com>
15371
15372         PR middle-end/15885
15373         * gimplify.c (gimplify_arg): New fn, split out from...
15374         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
15375
15376 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
15377
15378         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
15379         generate code which is generated by pushqi1 now
15380         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
15381
15382 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
15383
15384         * combine.c (simplify_set): match the mode of the constant 0 with
15385         the tested operand to match the compare behaviour and the
15386         simplify_relational_operation() expectation.
15387
15388 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
15389
15390         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
15391         ("bordered"): Same.
15392
15393 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
15394
15395         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
15396         unconditionally.
15397         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
15398
15399 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
15400
15401         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
15402         calls in mips16 code.
15403
15404 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
15405
15406         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
15407         the destination of the li as well as for the neg.
15408
15409 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
15410
15411         g++/15861
15412         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
15413         * cgraph.h: Update declaration.
15414         * c-decl.c (build_cdtor): Update call with default priority.
15415         * coverage.c (create_coverage): Ditto.
15416         * tree-mudflap.c (mf_init_fndecl): New tree.
15417         (mudflap_init): Set it.
15418         (mudflap_register_call): Arrange to call __mf_init before the first
15419         __mf_register call.
15420         (mudflap_finish_file): Mark the mudflap static initializer as extra
15421         high priority, to beat all C++ static constructors.
15422
15423 2004-07-15  Jeff Law  <law@redhat.com>
15424
15425         * loop.c (check_insn_for_givs): Restore check for code labels that was
15426         accidentally deleted by a recent checkin.
15427
15428 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
15429
15430         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
15431         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
15432
15433 2004-07-14  Richard Henderson  <rth@redhat.com>
15434
15435         * print-tree.c (print_node): Fix casts last change.
15436
15437 2004-07-15  Paul Brook  <paul@codesourcery.com>
15438
15439         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
15440         to TARGET_UNWIND_INFO.
15441         * except.c (output_function_exception_table): Ditto.
15442         * except.h: Ditto.
15443         * opts.c (decode_options): Ditto.
15444         * passes.c (rest_of_handle_final): Ditto.
15445         * final.c (final_start_function): Ditto.
15446         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
15447         target hook.
15448         * targhooks.h (default_unwind_emit): Declare.
15449         * targhooks.c (default_unwind_emit): New function.
15450         * target-def.h: Define and use TARGET_UNWIND_EMIT.
15451         * target.h (struct gcc_target): Add unwind_emit.
15452         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
15453         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
15454         Remove IA64_UNWIND_EMIT.
15455         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
15456
15457 2004-07-14  Richard Henderson  <rth@redhat.com>
15458
15459         * print-tree.c (print_node): Handle SSA_NAME.
15460
15461 2004-07-14  James E Wilson  <wilson@specifixinc.com>
15462
15463         PR target/16325
15464         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
15465         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
15466
15467 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
15468
15469         * expr.c (expand_assignment): Reenable bitfield += optimizations.
15470         Use alias set 0 for memory, do proper mode calculations and adjust
15471         address for memories.
15472
15473 2004-07-14  Per Bothner  <per@bothner.com>
15474
15475         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
15476         structure with extra column field.
15477         * tree.c (expand_location):  Also fill in column field.
15478         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
15479         gets confused by the two conditionally-compiled definitions.
15480
15481 2004-07-14  Eric Christopher  <echristo@redhat.com>
15482
15483         * calls.c (expand_call): Fix typo in comment.
15484
15485 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
15486
15487         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
15488         comparision of TFmode.
15489
15490 2004-07-14  Richard Henderson  <rth@redhat.com>
15491
15492         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
15493         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
15494         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
15495         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
15496         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
15497         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
15498         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
15499         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
15500         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
15501
15502 2004-07-14  Mike Stump  <mrs@apple.com>
15503
15504         * config/darwin.h (WINT_TYPE): Define to be int to match
15505         system header files.
15506
15507 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
15508
15509         * config/xtensa/xtensa.c (function_arg_advance): Check for args
15510         that must be passed in the stack.
15511         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
15512         arguments if the size is not a constant.
15513
15514 2004-07-14  Per Bothner  <per@bothner.com>
15515
15516         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
15517         instead of EXPR_LOCUS in a boolean context, which is always true
15518         if --enable-mapped-location.
15519         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
15520
15521 2004-07-14  Richard Henderson  <rth@redhat.com>
15522
15523         * dominance.c (struct dom_info): Add fake_exit_edge.
15524         (init_dom_info): Allocate it.
15525         (free_dom_info): Free it.
15526         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
15527         in two passes.
15528         (calc_idoms): Honor fake_exit_edge.
15529
15530 2004-07-13  Jason Merrill  <jason@redhat.com>
15531
15532         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
15533         (rhs_test_for): New fn.
15534         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
15535         * tree-gimple.h: Declare them.
15536         * gimplify.c (gimplify_modify_expr): Use the new fns.
15537
15538 2004-07-14  Richard Henderson  <rth@redhat.com>
15539
15540         * config/arm/arm-protos.h (arm_va_arg): Remove.
15541         * config/arm/arm.c (arm_va_arg): Remove.
15542         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
15543         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
15544
15545 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15546
15547         * pa.c (fix_range): New function to mark a range(s) of registers as
15548         fixed registers.
15549         (override_options): Call fix_range if the -mfixed-range option string
15550         is not empty.
15551         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
15552         * doc/invoke.texi (-mfixed-range): Document new option.
15553
15554 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
15555
15556         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
15557         for TARGET_64BIT.
15558         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
15559
15560 2004-07-14  Roger Sayle  <roger@eyesopen.com>
15561
15562         * expmed.c (expand_sdiv_pow2): New function to expand signed division
15563         by a positive power of two, split out from expand_divmod.  Provide
15564         an alternate implementation when shifts are expensive.  Lower the
15565         threshold for using a branchless implementation to BRANCH_COST >= 2.
15566         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
15567
15568 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15569
15570         * tree-dfa.c (make_rename_temp): *Really* work just
15571         like create_tmp_var if called while outside SSA form.
15572
15573 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
15574
15575         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
15576         for division by zero.
15577         ("umodsi3"): Likewise.
15578
15579 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
15580
15581         * config/mips/mips.c (mips_output_move): When generating mips16 code,
15582         force loads of negative constants to be split.
15583         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
15584         Generalize SImode li/neg splitter to cope with other modes.
15585
15586 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15587
15588         * expmed.c: Remove more references to QUEUED in the comments.
15589         * expr.c: Likewise.
15590
15591 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
15592
15593         Revert:
15594         2004-07-13  Richard Henderson  <rth@redhat.com>
15595         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
15596         correctly.
15597
15598 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15599
15600         * tree-dfa.c (make_rename_temp): Work just like
15601         create_tmp_var if called while outside SSA form.
15602
15603 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15604
15605         * expr.c (enqueue_insn, finish_expr_for_function,
15606         protect_from_queue, queued_subexp_p, mark_queue,
15607         emit_insns_enqueued_after_mark, emit_queue,
15608         expand_increment): Remove.
15609         (store_constructor): Expand increment as an assignment.
15610         (expand_expr_real_1 <case PREINCREMENT_EXPR,
15611         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
15612         case POSTDECREMENT_EXPR>): Abort.
15613         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
15614         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
15615         protect_from_queue, emit_queue, queued_subexp_p): Remove.
15616         * function.h (pending_chain, x_pending_chain): Remove.
15617         * rtl.def (QUEUED): Remove.
15618
15619         * emit-rtl.c (copy_insn_1, copy_most_rtx,
15620         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
15621         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
15622         encode_units_mask): Likewise.
15623         * local-alloc.c (equiv_init_varies_p): Likewise.
15624         * rtl.c (copy_rtx): Likewise.
15625         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
15626         * simplify-rtx.c (simplify_gen_subreg): Likewise.
15627         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
15628
15629         * builtins.c (expand_builtin, expand_builtin_apply,
15630         expand_builtin_mathfn, expand_builtin_mathfn_2,
15631         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
15632         Remove calls to emit_queue and protect_from_queue.
15633         * calls.c (expand_call, precompute_arguments,
15634         precompute_register_parameters, rtx_for_function_call,
15635         store_one_arg): Likewise.
15636         * dojump.c (do_compare_and_jump, do_jump): Likewise.
15637         * explow.c (memory_address): Likewise.
15638         * expmed.c (clear_by_pieces_1, clear_storage,
15639         clear_storage_via_libcall, emit_group_load,
15640         emit_group_store, emit_store_flag,
15641         expand_expr_real_1, store_by_pieces,
15642         store_constructor, store_expr, try_casesi,
15643         try_tablejump): Likewise.
15644         * function.c (expand_pending_sizes): Likewise.
15645         * optabs.c (emit_cmp_and_jump_insns,
15646         emit_conditional_add, emit_conditional_move,
15647         expand_fix, expand_float, prepare_cmp_insn): Likewise.
15648         * stmt.c (emit_case_bit_tests,
15649         expand_asm_expr, expand_computed_goto,
15650         expand_decl_init, expand_end_case_type,
15651         expand_end_stmt_expr, expand_expr_stmt_value,
15652         expand_return, expand_start_case,
15653         optimize_tail_recursion): Likewise.
15654         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
15655         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
15656
15657 2004-07-14  Ben Elliston  <bje@au.ibm.com>
15658
15659         * vec.h: Comment fix.
15660
15661 2004-07-13  Richard Henderson  <rth@redhat.com>
15662
15663         * target.h (struct gcc_target): Add calls.pass_by_reference.
15664         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
15665         * function.c (pass_by_reference): Use the hook.
15666         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
15667         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
15668         (hook_pass_by_reference_must_pass_in_stack): New.
15669         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
15670         (alpha_pass_by_reference): New.
15671         (TARGET_PASS_BY_REFERENCE): New.
15672         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15673         * config/arc/arc.c (arc_pass_by_reference): New.
15674         (TARGET_PASS_BY_REFERENCE): New.
15675         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15676         (FUNCTION_ARG_CALLEE_COPIES): True.
15677         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
15678         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
15679         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
15680         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15681         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15682         * config/cris/cris.c (cris_pass_by_reference): New.
15683         (TARGET_PASS_BY_REFERENCE): New.
15684         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
15685         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
15686         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15687         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
15688         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15689         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
15690         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
15691         (frv_function_arg_pass_by_reference): Remove.
15692         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15693         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
15694         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
15695         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
15696         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15697         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
15698         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
15699         (ia64_pass_by_reference): Rename from
15700         ia64_function_arg_pass_by_reference.
15701         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15702         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15703         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
15704         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
15705         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
15706         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15707         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
15708         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
15709         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
15710         (m32r_pass_by_reference): Adjust prototype.  Make static.
15711         Handle mode sizes correctly.
15712         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15713         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
15714         (m68hc11_function_arg_pass_by_reference): Remove.
15715         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15716         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
15717         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
15718         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15719         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
15720         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
15721         (mips_va_arg): Use pass_by_reference.
15722         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
15723         Handle mode sizes correctly.
15724         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15725         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
15726         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
15727         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
15728         (mmix_pass_by_reference): Rename from
15729         mmix_function_arg_pass_by_reference.
15730         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15731         (FUNCTION_ARG_CALLEE_COPIES): True.
15732         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
15733         (mn10300_pass_by_reference): New.
15734         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15735         (FUNCTION_ARG_CALLEE_COPIES): True.
15736         * config/pa/pa.c (pa_pass_by_reference): New.
15737         (TARGET_PASS_BY_REFERENCE): New.
15738         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15739         (FUNCTION_ARG_CALLEE_COPIES): True.
15740         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
15741         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
15742         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
15743         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15744         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
15745         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
15746         (s390_pass_by_reference): Rename from
15747         s390_function_arg_pass_by_reference.
15748         (s390_function_arg_advance): Don't query pass-by-ref.
15749         (s390_function_arg): Likewise.
15750         (s390_gimplify_va_arg): Use pass_by_reference.
15751         (s390_call_saved_register_used): Likewise.
15752         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15753         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
15754         (shcompact_byref, sh_pass_by_reference): New.
15755         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15756         (SHCOMPACT_BYREF): Remove.
15757         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
15758         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
15759         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
15760         (sparc_gimplify_va_arg): Use pass_by_reference.
15761         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15762         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15763         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
15764         (v850_pass_by_reference): New.
15765         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15766         (FUNCTION_ARG_CALLEE_COPIES): True.
15767         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
15768         FUNCTION_ARG_PASS_BY_REFERENCE docs.
15769
15770 2004-07-14  Richard Henderson  <rth@redhat.com>
15771             Richard Sandiford  <rsandifo@redhat.com>
15772
15773         * config/mips/mips-protos.h (mips_va_arg): Delete.
15774         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
15775         * config/mips/mips.c: Include tree-gimple.h.
15776         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
15777         (mips_arg_info): Remove special handling of must_pass_in_stck args.
15778         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
15779         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
15780
15781 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
15782
15783         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
15784         arguments for COND_EXPR in big-endian adjustment code.
15785
15786 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15787
15788         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
15789         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
15790         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
15791         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
15792
15793 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
15794
15795         PR tree-optimization/16443
15796         * tree-ssa-alias.c: Add more description for
15797         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
15798         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
15799         clobbering of call-clobbered and addressable variables.  If
15800         there are any before aliases have been computed, add them.
15801
15802 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
15803
15804         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
15805         verification.
15806
15807 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
15808
15809         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
15810         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
15811         to the same type.
15812
15813 2004-07-13  Per Bothner  <per@bothner.com>
15814
15815         * collect2.c (main):  Handle --no-demangle and --demangle flags.
15816
15817 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
15818
15819         * Makefile.in (OBJS-common): Add tree-data-ref.o.
15820         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
15821         (tree-data-ref.o): New rule.
15822         * lambda.h: New file.
15823         * tree-data-ref.c: New file.
15824         * tree-data-ref.h: New file.
15825         * tree.c (int_cst_value, tree_fold_gcd): New functions.
15826         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
15827
15828 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15829
15830         PR target/13926
15831         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
15832         * config/sparc/sparc.c (output_ubranch): New function.
15833         * config/sparc/sparc.md (jump pattern): Use it.
15834
15835 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15836
15837         PR target/16494
15838         * config/sparc/sparc.c (output_cbranch): Properly guard
15839         the code handling far branches with TARGET_V9.
15840         * config/sparc/sparc.md (length attribute): Document the
15841         side-effect of having a length greater or equal to 3.
15842
15843 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15844             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
15845
15846         PR target/15186
15847         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
15848         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
15849
15850 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15851             Martin Sebor  <sebor@roguewave.com>
15852
15853         PR target/12602
15854         * doc/invoke.texi (SPARC options): Document -threads
15855         and -pthreads on Solaris.
15856
15857 2004-07-13  Richard Henderson  <rth@redhat.com>
15858
15859         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
15860         by reference.
15861         (ind_gimplify_va_arg_expr): Remove.
15862         * tree.h (ind_gimplify_va_arg_expr): Remove.
15863         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
15864         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
15865         argsp to be null.
15866
15867         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
15868         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
15869         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
15870         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
15871         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
15872
15873 2004-07-13  Richard Henderson  <rth@redhat.com>
15874
15875         * function.c (pass_by_reference): New.
15876         (assign_parm_find_data_types): Use it.
15877         * calls.c (initialize_argument_information): Likewise.
15878         (emit_library_call_value_1): Likewise.
15879         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15880         * function.h (pass_by_reference): Declare.
15881
15882 2004-07-13  Richard Henderson  <rth@redhat.com>
15883
15884         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
15885         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
15886         * expr.h (MUST_PASS_IN_STACK): Remove.
15887         * system.h (MUST_PASS_IN_STACK): Poison.
15888         * tree.h (must_pass_in_stack_var_size): Declare.
15889         (must_pass_in_stack_var_size_or_pad): Declare.
15890         * calls.c (must_pass_in_stack_var_size): New.
15891         (must_pass_in_stack_var_size_or_pad): Rename from
15892         default_must_pass_in_stack.
15893         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
15894         (TARGET_MUST_PASS_IN_STACK): New.
15895         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
15896         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
15897         (TARGET_MUST_PASS_IN_STACK): New.
15898         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
15899         * config/frv/frv.c (frv_must_pass_in_stack): New.
15900         (TARGET_MUST_PASS_IN_STACK): New.
15901         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
15902         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
15903         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
15904         (ix86_must_pass_in_stack): Make static.
15905         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
15906         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
15907         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
15908         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
15909         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
15910         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
15911         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
15912         (mcore_must_pass_on_stack): Remove.
15913         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
15914         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
15915         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
15916         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
15917         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
15918         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
15919         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
15920         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
15921         (TARGET_MUST_PASS_IN_STACK): New.
15922         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
15923         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
15924         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
15925         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
15926         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
15927         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
15928         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
15929         MUST_PASS_IN_STACK.
15930
15931         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
15932         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
15933         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
15934         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
15935         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
15936         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
15937         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
15938         config/xtensa/xtensa.c: Use target hook.
15939
15940 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
15941
15942         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
15943         * configure: Rebuilt.
15944
15945 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
15946
15947         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
15948         * config/mips/mips.h (mips_reg_names): Don't declare.
15949         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
15950         (TARGET_NAME_REGS): Delete.
15951         (TARGET_SWITCHES): Remove -mrnames.
15952         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
15953         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
15954         in REGISTER_NAMES.
15955         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
15956         (override_options): Remove handling of TARGET_NAME_REGS.
15957
15958 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
15959
15960         * config/mips/mips.h (TARGET_*): Boolify.
15961
15962 2004-07-12  Nick Clifton  <nickc@redhat.com>
15963
15964         * config.gcc: Add sh-*-symbianelf target.
15965         * config/sh/sh.c: Add new target macros:
15966         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
15967         TARGET_CXX_IMPORT_EXPORT_CLASS.
15968         (sh_file_start): Create a definition of the .directive section.
15969         (sh_attribute): Add dllimport and dllexport attributes.
15970         * config/sh/symbian-pre.h: New file.
15971         * config/sh/symbian-post.h: New file.
15972         * config/sh/symbian.c: New file. Contains Symbian specific
15973         functions.
15974         * config/sh/sh-protos.h: Add prototypes for new functions
15975         provided by symbian.c.
15976         * config/sh/t-symbian: New file.
15977         * doc/extend.texi: Document support for dllimport and dllexport
15978         attributes by the sh-symbianelf target.
15979
15980 2004-07-12  James E Wilson  <wilson@specifixinc.com>
15981
15982         * Makefile.in (AR): Use @AR@ not ar.
15983         (NM): New.
15984         (AR_FOR_TARGET): Use $(AR) not ar for native.
15985         (NM_FOR_TARGET): Use $(NM) not nm for native.
15986         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
15987         * configure: Regenerate.
15988
15989 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
15990
15991         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
15992         special case.
15993         (ashldi3_sp64): Likewise.
15994
15995 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15996
15997         PR target/16477
15998         * pa.c (function_arg): Update comment.
15999         * pa.h (BLOCK_REG_PADDING): Define.
16000
16001 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16002
16003         PR tree-optimization/16461
16004         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
16005         arguments of phi nodes.
16006
16007 2004-07-12  Devang Patel  <dpatel@apple.com>
16008
16009         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
16010
16011 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
16012
16013         * function.c (expand_function_start): Ensure r_save is in Pmode.
16014         * calls.c (prepare_call_address): Ensure static_chain_value is
16015         in Pmode.
16016         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
16017         r_save_area are in Pmode.
16018         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
16019         fnaddr, and static_chain are in Pmode.
16020
16021 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
16022
16023         PR target/16445
16024         * config/ia64/ia64.c (bundling): Don't count ignored insns.
16025
16026 2004-07-12  Richard Henderson  <rth@redhat.com>
16027
16028         * target.h (struct gcc_target): Move gimplify_va_arg_expr
16029         next to build_builtin_va_list.
16030         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
16031         * builtins.c (gimplify_va_arg_expr): Likewise.
16032         * gimplify.c (copy_if_shared_r): Likewise.
16033
16034 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
16035
16036         * passes.c (rest_of_decl_compilation): Don't defer call of
16037         assemble_variable if its DECL_RTL is already set.
16038
16039 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
16040
16041         * cfgloop.h (struct loop): Add nb_iterations field.
16042         (current_loops): Declare.
16043         * tree-chrec.c (chrec_not_analyzed_yet,
16044         chrec_dont_know, chrec_known, count_ev_in_wider_type,
16045         chrec_contains_symbols_defined_in_loop): Remove the temporary
16046         hooks.
16047         * tree-flow-inline.h (loop_containing_stmt): New function.
16048         * tree-scalar-evolution.c: Add implementation.
16049         * tree-scalar-evolution.h: Add declarations.
16050
16051 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
16052
16053         PR rtl-optimization/15921
16054         * Makefile.in (global.o): Add recog.h.
16055
16056         * global.c (recog.h): Add the include-clause.
16057         (bb_info): New member earlyclobber.
16058         (allocate_bb_info, free_bb_info): Initialize/finish the new
16059         member.
16060         (earlyclobber_regclass, earlyclobber_regclass_length): The new
16061         global variables.
16062         (check_earlyclobber, regclass_intersect,
16063         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
16064         New functions.
16065         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
16066         (make_accurate_live_analysis): Modify pavin.
16067
16068 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
16069
16070         * tree-cfg.c (find_taken_edge): Statically compute the truth
16071         value of a predicate comparing an SSA_NAME to itself.
16072
16073 2004-07-12  Roger Sayle  <roger@eyesopen.com>
16074
16075         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
16076         rs6000 doesn't have shift-and-add or shift-and-sub instructions
16077         by returning the cost of a multiplication plus an addition.
16078
16079 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
16080
16081         PR tree-optimization/14107
16082         * gimplify.c (gimplify_return_expr): Accept a
16083         RETURN_EXPR with an error argument.
16084         * tree-optimize.c (init_tree_optimization_passes):
16085         Run pass_warn_function_return at -O0.
16086
16087 2004-07-12  Roger Sayle  <roger@eyesopen.com>
16088
16089         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
16090         index entry.
16091
16092 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
16093
16094         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
16095         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16096         * config/mips/3000.md: Add copyright notice.  Remove automota and
16097         function units; use generic ones instead.  Only define reservations
16098         for things that are different from generic.md.  Extend each clause
16099         to include r3900.
16100         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
16101         * config/mips/mips.md: Include them. Remove define_function_units.
16102         (alu, imuldiv): New automata and units.
16103
16104 2004-07-12  Ben Elliston  <bje@au.ibm.com>
16105
16106         * doc/invoke.texi (Optimize Options): Document -frename-registers
16107         not being enabled by default at -O3.
16108
16109 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16110
16111         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
16112         floating point additions, to keep real immediate constant positive.
16113         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
16114         into X + C, and leave positive real constants as X - C.
16115
16116 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16117
16118         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
16119
16120 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16121
16122         PR tree-optimization/15654
16123         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
16124
16125 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16126
16127         * builtins.c (fold_builtin_fputs): Don't bother converting the
16128         return type to integer_type_node, as we've already checked that
16129         the result will be ignored.
16130
16131         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
16132         that signed addition, subtraction, multiplication, division,
16133         remainder, negation and absolute value may potentially trap.
16134
16135         * fold-const.c (fold_ignored_result): New function to strip
16136         non-side-effecting tree nodes from an expression whose result
16137         is ignored.
16138         (fold_convert): Call fold_ignored_result when casting a value
16139         to VOID_TYPE.
16140         (omit_one_operand):  Call fold_ignored_result on the "omitted"
16141         operand when building a COMPOUND_EXPR.
16142         (pedantic_omit_one_operand): Likewise.
16143         * tree.h (fold_ignored_result): Prototype here.
16144         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
16145         when we're going to ignore the result.
16146
16147 2004-07-11  Richard Henderson  <rth@redhat.com>
16148
16149         PR tree-opt/16383
16150         * tree-ssa-ccp.c (fold_stmt_r): Split out...
16151         * tree.c (fields_compatible_p, find_compatible_field): ... new.
16152         * tree.h (fields_compatible_p, find_compatible_field): Declare.
16153         * tree-sra.c (sra_hash_tree): Hash fields by offset.
16154         (sra_elt_eq): Use fields_compatible_p.
16155         (generate_one_element_ref): Use find_compatible_field.
16156
16157 2004-07-11  Richard Henderson  <rth@redhat.com>
16158
16159         PR tree-opt/16422
16160         * tree-sra.c (generate_one_element_init): New.
16161         (generate_element_init): Use it.
16162         (scalarize_init): Push/pop gimplify context around it.
16163         (find_new_referenced_vars_1, find_new_referenced_vars): New.
16164         * gimplify.c (gimplify_expr): Allow SSA_NAME.
16165
16166 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16167
16168         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
16169         combine.c's combine_insn_cost.
16170         * rtl.h (insn_rtx_cost): Prototype here.
16171         * combine.c (combine_insn_cost): Delete function.
16172         (combine_validate_cost): Update callers of combine_insn_cost to
16173         call insn_rtx_cost instead.
16174         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
16175         requesting the rtx_cost of call and/or jump instructions.
16176
16177         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
16178         rtx_cost directly.  Don't request/use the cost of call or jump
16179         instructions.  Return -1 if the cost of any instruction can't be
16180         determined (or the BB contains a function call).
16181         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
16182         -1 (i.e. can't determine the cost of any instruction or the basic
16183         block contains a subroutine call).
16184         (find_if_case_2): Likewise.
16185
16186 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16187
16188         * rs6000.c (struct processor_costs): Change semantics of fields to
16189         include the COST_N_INSNS scaling, and update all initializers.
16190         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
16191         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
16192         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
16193         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
16194
16195 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16196
16197         * LANGUAGES: Remove obsolete information.
16198
16199 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
16200
16201         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
16202         SIGBUS signal frames, the PSW address points *to* the faulting
16203         instruction, not after it.
16204
16205 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
16206
16207         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
16208         added to TLS symbol addresses.
16209
16210 2004-07-11  Richard Henderson  <rth@redhat.com>
16211
16212         * expmed.c (init_expmed): Use stack-local structures for
16213         temporary rtl.  Don't recognize shifts.
16214
16215 2004-07-11  Richard Henderson  <rth@redhat.com>
16216
16217         * expr.c (store_expr): Don't fiddle subreg promotion for types
16218         with precision smaller than the mode.
16219
16220 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16221
16222         * tree.h (all_types_permanent): Remove.
16223
16224 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16225
16226         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
16227         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
16228         * langhooks.c (lhd_clear_binding_stack): Remove.
16229         * langhooks-def.h (lhd_clear_binding_stack,
16230         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
16231         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
16232         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
16233         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
16234         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
16235         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
16236         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
16237         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
16238         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
16239         * tree.h (poplevel): Don't declare.
16240         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
16241         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
16242         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
16243         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
16244         Remove.
16245
16246 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16247
16248         PR tree-optimization/16437
16249         * c-common.c (shorten_compare): Don't mark result of conversion to
16250         narrower signed type as overflowing.
16251         * fold-const.c (decode_field_reference): Determine whether
16252         signedness comes from outer type using precision rather than size.
16253
16254 2004-07-11  Phil Edwards  <phil@codesourcery.com>
16255
16256         * configure.ac:  Alphabetize --enable-checking list, add
16257         missing valgrind entry.
16258         * configure:  Regenerate.
16259
16260 2004-07-11  Phil Edwards  <phil@codesourcery.com>
16261
16262         * doc/install.texi (Testing):  Fix syntax in "make check" example.
16263
16264 2004-07-10  James E Wilson  <wilson@specifixinc.com>
16265
16266         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
16267
16268 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16269
16270         PR rtl-optimization/16001
16271         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
16272         niter_expr.
16273
16274 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
16275
16276         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
16277
16278 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
16279             James Morrison  <phython@gcc.gnu.org>
16280
16281         * doc/contrib.texi (Contributors): Add gfortran contributors and
16282         fix a couple of typos.
16283
16284 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16285
16286         PR rtl-optimization/15387
16287         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
16288         to incoming args space correctly.
16289
16290 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16291
16292         * pa.c (output_indirect_call): Only use %r2 as the link register in
16293         indirect calls with the long PA 2.0 pc-relative branch.
16294
16295 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
16296
16297         * config/i386/i386.c (override_options): Pick a 64-bit CPU
16298         for the default tuning if TARGET_64BIT.
16299
16300 2004-07-10  Richard Henderson  <rth@redhat.com>
16301
16302         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
16303         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
16304
16305 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
16306
16307         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
16308         * expmed.c (store_bit_field, extract_bit_field): Remove last
16309         argument.
16310         * builtins.c (expand_builtin_signbit): Adjust callers.
16311         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
16312         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
16313         * ifcvt.c (noce_emit_move_insn): Likewise.
16314         * stmt.c (expand_return): Likewise.
16315         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
16316         store_field, expand_expr_real_1): Likewise.
16317
16318 2004-07-10  Richard Henderson  <rth@redhat.com>
16319
16320         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
16321
16322 2004-07-09  Mike Stump  <mrs@apple.com>
16323
16324         * config/darwin.c (no_dead_strip): Add.
16325         (HAVE_DEAD_STRIP): Add.
16326         (darwin_emit_unwind_label): Ensure that we don't dead code strip
16327         the .eh label.
16328
16329 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16330
16331         * tree-ssa-loop-im.c: New file.
16332         * Makefile.in (tree-ssa-loop-im.o): Add.
16333         * cfgloop.c (superloop_at_depth): New function.
16334         * cfgloop.h (superloop_at_depth): Declare.
16335         * common.opt (ftree-lim): New flag.
16336         * expr.c (array_ref_up_bound): New function.
16337         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
16338         * timevar.def (TV_LIM): New timevar.
16339         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
16340         computing immediate uses of a phi node.
16341         * tree-flow.h (struct tree_ann_common_d): Add aux field.
16342         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
16343         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
16344         * tree-pass.h (pass_lim): Declare.
16345         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
16346         functions.
16347         (pass_lim): New pass structure.
16348         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
16349         * tree.c (in_array_bounds_p): New function.
16350         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
16351         (in_array_bounds_p, array_ref_up_bound): Declare.
16352         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
16353         * doc/passes.texi (tree-ssa-loop-im.c): Document.
16354
16355 2004-07-09  Richard Henderson  <rth@redhat.com>
16356
16357         * builtins.c (expand_builtin_stpcpy): Don't modify len.
16358
16359         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
16360         with prejudice.
16361
16362 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
16363
16364         * flags.h: Delete redundant prototypes that are being generated
16365         in options.h from common.opt.
16366         * common.opt: Add in the expository comments formerly in flags.h.
16367
16368 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16369
16370         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
16371         available for use only when TARGET_MMX/_SSE is set, and check for
16372         variable argument function if any register count is non-zero.
16373         (function_arg): Correctly suppress repeated warnings for passing SSE
16374         vectors are arguments without SSE enabled.
16375         (ix86_function_arg_boundary): Without SSE enabled, the use of what
16376         would be SSE register modes does no longer influence the alignment.
16377
16378 2004-07-09  Richard Henderson  <rth@redhat.com>
16379
16380         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
16381         Always align upward to arg boundary.  Use size_in_bytes/round_up.
16382         Maintain type-correctness of constants.
16383         * stor-layout.c (round_up, round_down): Special-case powers of 2.
16384
16385 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
16386
16387         * config/sparc/sparc.c (*_costs): Scale instruction costs
16388         by COSTS_N_INSNS.
16389         (sparc_rtx_costs): Adjust as appropriate.
16390
16391 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16392
16393         * config/i386/mm3dnow.h: New.
16394         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
16395
16396 2004-07-09  Richard Henderson  <rth@redhat.com>
16397
16398         * simplify-rtx.c (simplify_const_relational_operation): Only
16399         look at bounds of scalar integers.
16400
16401 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16402
16403         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
16404
16405 2004-07-09  Andrew Pinski  <apinski@apple.com>
16406
16407         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
16408         always referenced.
16409         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
16410         UOBJC_METACLASS_decl.
16411
16412 2004-07-09  James E Wilson  <wilson@specifixinc.com>
16413
16414         PR target/16364
16415         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
16416         do return a parallel if hfa_mode == XFmode and mode == TImode.
16417
16418 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16419
16420         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
16421         permissible for unary plus.
16422
16423 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16424
16425         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
16426         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
16427         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
16428         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
16429         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
16430         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
16431         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
16432         (BUILTIN_xxxIMAX): New.
16433         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
16434         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
16435         BUILT_IN_PARITYIMAX.
16436
16437 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
16438
16439         * config/sparc/sparc.h (processor_costs): Define.
16440         (sparc_costs): Declare.
16441         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
16442         hypersparc_costs, sparclet_costs, ultrasparc_costs,
16443         ultrasparc3_costs): New.
16444         (sparc_override_options): Set sparc_costs as appropriate.
16445         (sparc_rtx_costs): Use sparc_costs instead of messy
16446         conditionals.
16447
16448 2004-07-09  Steven Bosscher  <stevenb@suse.de>
16449
16450         * doc/md.texi (Processor pipeline description): Mention that
16451         the old pipeline description is deprecated.
16452
16453         * config/rs6000/7450.md (automaton ppc7450): Split up, move
16454         mciu_7450 function unit to...
16455         (automaton ppc7450mciu): ...new automaton.
16456
16457         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
16458         (schedule_block): Don't consider inserting bubbles.
16459         (sched_init): Don't initialize DFA bubbles.
16460         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
16461         TARGET_SCHED_DFA_BUBBLE): Remove.
16462         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
16463         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
16464         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
16465
16466         * stmt.c (conditional_context): Remove prototype.
16467         * tree.h (conditional_context): Remove.
16468         * tree-cfg.c (pre_insert_on_edge): Remove.
16469
16470         * c-common.h (c_expand_asm_operands): Remove prototype.
16471         * c-typeck.c (c_expand_asm_operands): Remove.
16472
16473 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16474
16475         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
16476         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
16477         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
16478         and V8QI are class SSE. All sufficiently small remaining vector modes
16479         must be passed in one or two integer registers.
16480         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
16481         returned in memory.
16482         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
16483         __builtin_ia32_pmuludq128 have non-uniform argument and return types
16484         and must thus be handled explicitly.
16485         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
16486         MMX and XMM regs.
16487         (movv8qi_internal, movv4hi_internal, movv2si_internal,
16488         movv2sf_internal): Permit moving between MMX and XMM registers (since
16489         MMX areguments and return values are passed in XMM registers).
16490         (sse2_umulsidi3): Correct type and mode.
16491
16492 2004-07-09  Richard Henderson  <rth@redhat.com>
16493
16494         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
16495
16496 2004-07-09  Eric Christopher  <echristo@redhat.com>
16497
16498         * config/rs6000/40x.md: Split into two automatons.
16499
16500 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
16501             Andrew Pinski  <apinski@apple.com>
16502
16503         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
16504         on when we have more than one input file.
16505         (c_common_parse_file): Restore loop over all input files.
16506         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
16507
16508         * c-decl.c (set_type_context): New function.
16509         (pop_scope): Use it to set context of types.  When we
16510         encounter a TYPE_DECL, set the context of the attached type too.
16511         (pop_file_scope): Don't call cpp_undef_all here.
16512         (diagnose_mismatched_decls): Do not complain about a second
16513         definition of an 'extern inline' function if it's not in the
16514         same translation unit.  Do not complain about inline
16515         declaration after use if the use was in a different
16516         translation unit.
16517         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
16518         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
16519         the external scope.
16520         (pushdecl_top_level): Likewise.
16521         (grokdeclarator): Clarify what is going on with setting
16522         DECL_EXTERNAL on function types, a little.
16523         (c_write_global_declarations): Don't do anything if
16524         -fsyntax-only or errors have been encountered.
16525
16526 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
16527
16528         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
16529
16530 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16531
16532         PR target/16459
16533         * pa.c (output_indirect_call): Use %r2 as the link register when
16534         calling $$dyncall with a pc-relative branch.
16535
16536 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
16537
16538         * doc/install.texi (Binaries): Mention OpenPKG.
16539
16540 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
16541
16542         Fix PR tree-optimization/15555
16543         * tree-dfa.c (dump_variable): If the variable is a pointer
16544         SSA_NAME, also dump its points-to information.
16545         * tree-flow.h (struct ptr_info_def): Add field
16546         is_dereferenced.
16547         (dump_points_to_info_for): Declare.
16548         (debug_points_to_info_for): Declare.
16549         * tree-optimize.c (init_tree_optimization_passes): Add a
16550         second alias analysis pass after DOM2.
16551         Move pass_del_pta to a later spot.
16552         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
16553         create a name tags when we find a dereferenced pointer.  Just
16554         mark the pointer dereferenced.
16555         (collect_points_to_info_for): Move code to clear points-to
16556         information to create_name_tags.
16557         (create_name_tags): New function.
16558         (compute_flow_sensitive_aliasing): Call it.
16559         (setup_pointers_and_addressables): Mark type tags for renaming
16560         here instead of ...
16561         (create_memory_tag): ... here.
16562         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
16563         (dump_points_to_info_for): Declare extern.
16564         (debug_points_to_info_for): New function.
16565
16566 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
16567
16568         * config/arc/arc.md: Switch to DFA-based scheduler description.
16569         * config/arc/arc.c: Switch to DFA-based scheduler description.
16570
16571 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
16572
16573         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
16574         pointer.
16575
16576 2004-07-09  Richard Henderson  <rth@redhat.com>
16577
16578         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
16579         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16580         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
16581         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
16582
16583         * config/v850/v850-protos.h (v850_va_arg): Remove.
16584         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16585         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
16586         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
16587         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
16588         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
16589
16590 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
16591
16592         PR target/12133
16593         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
16594         and DImode to use +/-4k offset.
16595
16596 2004-07-09  Richard Henderson  <rth@redhat.com>
16597
16598         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
16599         Remove.
16600         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16601         (xstormy16_gimplify_va_arg_expr): Rewrite from
16602         xstormy16_expand_builtin_va_arg.
16603         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
16604
16605         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
16606         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
16607
16608         * config/sh/sh-protos.h (sh_va_arg): Remove.
16609         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16610         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
16611         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
16612
16613         * config/pa/pa-protos.h (hppa_va_arg): Remove.
16614         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16615         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
16616         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
16617
16618         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
16619         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16620         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
16621         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
16622
16623 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16624
16625         * config/sparc/sparc.md (return): Rewrite length formula.
16626         * config/sparc/sparc.c (output_return): Pass 1 as 5th
16627         argument to final_scan_insn when in a delay slot.
16628         (output_sibcall): Likewise.
16629
16630 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
16631
16632         * arm.c (arm_cpp_interwork): New variable.
16633         (arm_override_options): Set it if TARGET_INTERWORK was on the command
16634         line.
16635         * arm.h (arm_cpp_interwork): Declare it.
16636         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
16637         __THUMB_INTERWORK__ in the preprocessor.
16638
16639 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
16640
16641         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
16642
16643 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16644
16645         PR target/16416
16646         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
16647         Override default settings to account for -m32 and -m64.
16648
16649 2004-07-08  Randolph Chung  <tausq@debian.org>
16650
16651         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
16652
16653 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
16654
16655         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
16656         before comparing it as such.
16657
16658 2004-07-08  Richard Henderson  <rth@redhat.com>
16659
16660         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
16661         temporary.  Use bit arithmetic to align.
16662
16663 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
16664
16665         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
16666         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
16667         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
16668         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
16669         add_labels_and_missing_jumps, find_jump_block,
16670         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
16671         Likewise.
16672         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
16673         link_btr_uses, move_btr_def): Likewise.
16674         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
16675         expand_builtin_expect_jump): Likewise.
16676         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
16677         * calls.c (expand_call, emit_library_call_value_1): Likewise.
16678         * cfganal.c (forwarder_block_p): Likewise.
16679         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
16680         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
16681         find_bb_boundaries): Likewise.
16682         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
16683         merge_blocks_move_predecessor_nojumps,
16684         merge_blocks_move_successor_nojumps, insns_match_p,
16685         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
16686         try_optimize_cfg): Likewise.
16687         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
16688         * cfglayout.c (skip_insns_after_block, label_for_bb,
16689         record_effective_endpoints, insn_locators_initialize,
16690         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
16691         * cfgmainloop.c (create_loop_notes): Likewise.
16692         * cfgrtl.c (delete_insn, delete_insn_chain,
16693         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
16694         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
16695         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
16696         redirect_branch_edge, force_nonfallthru_and_redirect,
16697         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
16698         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
16699         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
16700         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
16701         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
16702         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
16703         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
16704         * combine.c (combine_instructions, can_combine_p, try_combine,
16705         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
16706         distribute_notes, distribute_links, insn_cuid): Likewise.
16707         * cse.c (fold_rtx, cse_insn, cse_around_loop,
16708         invalidate_skipped_block, cse_set_around_loop,
16709         cse_end_of_basic_block, cse_main, cse_basic_block,
16710         cse_condition_code_reg): Likewise.
16711         * cselib.c (cselib_process_insn): Likewise.
16712         * ddg.c (create_ddg): Likewise.
16713         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
16714         Likewise.
16715         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
16716         gen_label_die, dwarf2out_var_location): Likewise.
16717         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
16718         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
16719         last_call_insn, active_insn_p, next_label, prev_label,
16720         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
16721         add_insn_before, remove_insn, add_function_usage_to,
16722         reorder_insns, find_line_note, remove_unnecessary_notes,
16723         emit_insn_after_1, classify_insn): Likewise.
16724         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
16725         connect_post_landing_pads, sjlj_mark_call_sites,
16726         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
16727         can_throw_internal, can_throw_external, set_nothrow_function_flags,
16728         convert_to_eh_region_ranges): Likewise.
16729         * explow.c (optimize_save_area_alloca): Likewise.
16730         * expr.c (expand_expr_real): Likewise.
16731         * final.c (insn_current_reference_address, compute_alignments,
16732         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
16733         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
16734         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
16735         propagate_block_delete_insn, propagate_one_insn,
16736         init_propagate_block_info, propagate_block, libcall_dead_p,
16737         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
16738         Likewise.
16739         * function.c (instantiate_virtual_regs, reorder_blocks_1,
16740         expand_function_start, expand_function_end, contains,
16741         thread_prologue_and_epilogue_insns,
16742         reposition_prologue_and_epilogue_notes): Likewise.
16743         * gcse.c (constprop_register, bypass_conditional_jumps,
16744         insert_insn_end_bb, gcse_after_reload): Likewise.
16745         * genemit.c (gen_expand, gen_split): Likewise.
16746         * genpeep.c (gen_peephole, main): Likewise.
16747         * global.c (build_insn_chain): Likewise.
16748         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
16749         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
16750         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
16751         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
16752         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
16753         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
16754         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
16755         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
16756         dead_or_predicable): Likewise.
16757         * integrate.c (try_constants): Likewise.
16758         * jump.c (rebuild_jump_labels, cleanup_barriers,
16759         purge_line_number_notes, init_label_info, mark_all_labels,
16760         squeeze_notes, get_label_before, get_label_after,
16761         reversed_comparison_code_parts, simplejump_p, pc_set,
16762         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
16763         delete_barrier, delete_prior_computation, delete_computation,
16764         delete_related_insns, delete_for_peephole, redirect_jump):
16765         Likewise.
16766         * lcm.c (optimize_mode_switching): Likewise.
16767         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
16768         Likewise.
16769         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
16770         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
16771         * loop-iv.c (simplify_using_assignment): Likewise.
16772         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
16773         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
16774         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
16775         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
16776         check_insn_for_givs, check_final_value, update_giv_derive,
16777         basic_induction_var, product_cheap_p, check_dbra_loop,
16778         loop_insn_first_p, last_use_this_basic_block,
16779         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
16780         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
16781         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
16782         sms_schedule_by_order): Likewise.
16783         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
16784         * postreload.c (reload_cse_simplify_operands, reload_combine,
16785         reload_cse_move2add): Likewise.
16786         * predict.c (can_predict_insn_p, estimate_probability,
16787         expected_value_to_br_prob, process_note_predictions): Likewise.
16788         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
16789         * profile.c (branch_prob): Likewise.
16790         * ra-build.c (live_out_1, livethrough_conflicts_bb,
16791         detect_webs_set_in_cond_jump): Likewise.
16792         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
16793         ra_print_rtl_with_bb): Likewise.
16794         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
16795         * recog.c (next_insn_tests_no_inequality, find_single_use,
16796         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
16797         * reg-stack.c (next_flags_user, record_label_references,
16798         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
16799         compensate_edge, convert_regs_1): Likewise.
16800         * regclass.c (scan_one_insn): Likewise.
16801         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
16802         regmove_optimize, fixup_match_1, single_set_for_csa,
16803         combine_stack_adjustments_for_block): Likewise.
16804         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
16805         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
16806         find_equiv_reg): Likewise.
16807         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
16808         reload_as_needed, emit_input_reload_insns, do_output_reload,
16809         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
16810         Likewise.
16811         * reorg.c (find_end_label, emit_delay_sequence,
16812         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
16813         get_jump_flags, rare_destination, mostly_true_jump,
16814         try_merge_delay_insns, redundant_insn, own_thread_p,
16815         fill_simple_delay_slots, fill_slots_from_thread,
16816         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
16817         dbr_schedule): Likewise.
16818         * resource.c (find_basic_block, next_insn_no_annul,
16819         find_dead_or_set_registers, mark_target_live_regs): Likewise.
16820         * rtl.h (RTX_PREV): Likewise.
16821         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
16822         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
16823         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
16824         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
16825         tablejump_p, computed_jump_p, insns_safe_to_move_p,
16826         find_first_parameter_load, can_hoist_insn_p): Likewise.
16827         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
16828         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
16829         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
16830         schedule_ebbs): Likewise.
16831         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
16832         is_conditionally_protected, can_schedule_ready_p,
16833         add_branch_dependences, debug_dependencies): Likewise.
16834         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
16835         Likewise.
16836         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
16837         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
16838         set_dominates_use, ujump_to_loop_cont): Likewise.
16839         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
16840         * varasm.c (output_constant_pool_1): Likewise.
16841
16842 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16843
16844         * tree-scalar-evolution.c: New file.
16845         * tree-scalar-evolution.h: New file.
16846         * tree-ssa-loop-niter.c: New file.
16847         * Makefile.in (SCEV_H): New.
16848         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
16849         * cfgloop.h (struct loop): Add bounds field.
16850         * tree-flow.h (struct tree_niter_desc): New type.
16851         (number_of_iterations_cond, number_of_iterations_exit,
16852         loop_niter_by_eval, find_loop_niter_by_eval,
16853         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
16854         free_numbers_of_iterations_estimates): Declare.
16855         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
16856         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
16857         * doc/invoke.texi (max-iterations-to-track): Document.
16858
16859 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
16860
16861         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
16862         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
16863         (MODE_AFTER): Add cast appropriately.
16864         * config/sh/sh.md (movdi splitter): Likewise.
16865         (casesi_worker_2): Add const qualifier appropriately.
16866         (eh_return): Remove unused variable.
16867         (insv): Initialize v;
16868
16869 2004-07-08  Richard Henderson  <rth@redhat.com>
16870
16871         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
16872         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16873         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
16874         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
16875         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
16876
16877         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
16878         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16879         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
16880         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
16881
16882         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
16883         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16884         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
16885         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
16886
16887         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
16888         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16889         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
16890         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
16891
16892         * config/i860/i860-protos.h (i860_va_arg): Remove.
16893         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16894         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
16895         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
16896
16897 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
16898
16899         * system.h: Prototype getpagesize if missing.
16900         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
16901         * configure: Regenerate.
16902         * config.in: Regenerate.
16903
16904 2004-07-08  Richard Henderson  <rth@redhat.com>
16905
16906         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
16907         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16908         (fr30_gimplify_va_arg_expr): New.
16909         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
16910         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
16911
16912 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
16913
16914         PR target/16414
16915         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
16916         of asm_noperands result.
16917
16918 2004-07-08  Richard Henderson  <rth@redhat.com>
16919
16920         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
16921         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16922         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
16923         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
16924
16925 2004-07-08  Richard Henderson  <rth@redhat.com>
16926
16927         * builtins.c (ind_gimplify_va_arg_expr): New.
16928         * tree.h (ind_gimplify_va_arg_expr): Declare.
16929         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
16930
16931 2004-07-08  Jan Beulich  <jbeulich@novell.com>
16932
16933         * expmed.c (extract_bit_field): Correct condition to use vec_extract
16934         patterns also on vector elements other than the first one.
16935         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
16936         break statements.
16937
16938 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
16939
16940         * config/rs6000/darwin-ldouble.c: Correct reference
16941         to the Linnainmaa paper.
16942
16943 2004-07-08  Richard Henderson  <rth@redhat.com>
16944
16945         * config/arc/arc-protos.h (arc_va_arg): Remove.
16946         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16947         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
16948         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
16949
16950         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
16951         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16952         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
16953         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
16954
16955 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16956
16957         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
16958
16959 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
16960
16961         * c-decl.c (static_ctors, static_dtors): Make static.
16962         (pop_file_scope): Call c_common_write_pch and
16963         cgraph_finalize_compilation_unit here.
16964         (build_cdtor): Moved here from c-objc-common.c; simplify.
16965         (c_write_global_declarations_1): Clarify comment.
16966         (c_write_global_declarations): Close the external scope before
16967         doing anything else.  Call build_cdtor, cgraph_optimize, and
16968         mudflap_finish_file here.
16969         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
16970         Clarify comment.
16971         * c-objc-common.c: No need to include cgraph.h.
16972         (build_cdtor): Moved to c-decl.c.
16973         (c_objc_common_finish_file): Delete.
16974         * c-tree.h: Update to match.
16975         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
16976         (generate_static_references): Set TREE_USED before calling finish_decl.
16977         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
16978         on the static_instances_decl.
16979
16980 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
16981
16982         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
16983         decls when there is only one input translation unit.
16984         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
16985         change of 2004-07-05; do not treat declarations with
16986         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
16987         * opts.c (cur_in_fname): Delete.
16988         * opts.h: Likewise.
16989         * tree.c: Revert changes of 2004-07-05; no special treatment
16990         for TRANSLATION_UNIT_DECLs.
16991         * Makefile.in (tree.o): Update dependencies.
16992
16993 2004-07-08  Roger Sayle  <roger@eyesopen.com>
16994
16995         * builtins.c (fold_builtin_strcpy): Merge functionality from
16996         simplify_builtin_strcpy.  Add additional len argument.  No longer
16997         static.  Remove function prototype.
16998         (fold_builtin_strncpy): Likewise integrate functionality from
16999         simplify_builtin_strncpy.  Add additional slen argument.  No
17000         longer static.  Remove function prototype.
17001         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
17002         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
17003         types of "ignore" and "unlocked" parameters to bool.
17004         (fold_builtin_1):  Add additional ignore argument.  Call renamed
17005         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
17006         builtins.  Update arguments to fold_builtin_strncpy and
17007         fold_builtin_strcpy.  Add function prototype.
17008         (fold_builtin): Add additional Boolean ignore argument to pass
17009         to fold_builtin_1.
17010         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
17011         and fold_builtin_strncpy instead of simplify_builtin_fputs,
17012         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
17013
17014         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
17015         simplify_builtin_strncpy): Delete function prototypes.
17016         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
17017         fold_builtin_strncpy): Add function prototypes here.
17018         (fold_builtin): Update function prototype with new "bool ignore".
17019
17020         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
17021         (ccp_fold_builtin):  Update call to fold_builtin.  Call
17022         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
17023         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
17024         simplify_builtin_strncpy respectively.
17025         * fold-const.c (fold): Update call to fold_builtin.
17026
17027 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
17028
17029         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
17030         to strcpy.
17031
17032         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
17033         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
17034         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
17035         * calls.c: Remove ifdefs of macros above.
17036         * functions.c: Likewise.
17037         * expr.c: Likewise.
17038
17039 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17040
17041         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
17042         (arch attribute): Delete.
17043         (current_function_calls_alloca attribute): Rename into calls_alloca.
17044         (calls_eh_return): New attribute.
17045         (leaf_function): Likewise.
17046         (length attribute): Fix formula for sibcalls.
17047         (return insn): Correctly compute the 'length' attribute.
17048         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
17049
17050 2004-07-08  Richard Henderson  <rth@redhat.com>
17051
17052         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
17053         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
17054         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
17055         * tree-eh.c (lower_eh_constructs_1): Likewise.
17056         * tree-sra.c (sra_walk_modify_expr): Likewise.
17057         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
17058         (eliminate_unnecessary_stmts): Likewise.
17059         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
17060         * tree-tailcall.c (optimize_tail_call): Likewise.
17061         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
17062
17063 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17064             Jakub Jelinek  <jakub@redhat.com>
17065
17066         * config/i386/i386.c (override_options): Enable
17067         SSE prefetches with -mtune, as long as we are
17068         compiling for i686 or higher.  All i686 processors
17069         accept SSE prefetches as NOPS, some i586's don't.
17070
17071 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17072
17073         PR target/10567
17074         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
17075
17076 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
17077
17078         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
17079         the handling of clobbering ASM_EXPRs.
17080
17081 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17082
17083         PR target/16430
17084         * config/sparc/sparc.c (function_value): In 64-bit mode,
17085         return the aggregates larger than 16 bytes like unions.
17086
17087 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17088
17089         PR target/16199
17090         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
17091         'temp' is zero, generate new pseudos as needed and emit the
17092         sequence of insns in single-assignment form.  Resync comments
17093         with code.
17094         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
17095         function before reload.
17096
17097 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
17098
17099         * vec.c (vec_assert_fail): Remove duplicate 'function'.
17100
17101         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
17102
17103         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
17104         Allocation is signed.
17105         (VEC_reserve): Return flag, allocation is signed.
17106
17107 2004-07-08  Richard Henderson  <rth@redhat.com>
17108
17109         * tree-ssa-ccp.c (fold_stmt): Get type directly from
17110         OBJ_TYPE_REF_OBJECT.
17111
17112 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
17113             Neil Booth  <neil@daikokuya.co.uk>
17114
17115         PR c/2511
17116         PR c/3325
17117         * c-decl.c (finish_struct): Ensure bit-fields are given the
17118         correct type.
17119         * c-common.c (c_common_signed_or_unsigned_type): For C, require
17120         the precision to match as well as the mode.
17121         * expr.c (reduce_to_bit_field_precision): New function.
17122         (expand_expr_real_1): Reduce expressions of bit-field type to
17123         proper precision.
17124         * langhooks.h (reduce_bit_field_operations): New hook.
17125         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
17126         Define.
17127         * c-lang.c, objc/objc-lang.c
17128         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
17129         * objc/objc-act.c (check_ivars): Convert types to bit-field types
17130         before checking.
17131         * tree.c (build_nonstandard_integer_type): New function.
17132         * tree.h (build_nonstandard_integer_type): New prototype.
17133         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
17134         conversions between integer and boolean types as useless.
17135
17136 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17137
17138         * c-common.c (c_common_nodes_and_builtins): Do not
17139         create __builtin_ptrdiff_t and __builtin_size_t.
17140
17141 2004-07-08  Andrew Pinski  <apinski@apple.com>
17142
17143         * Makefile.in (libbackend.o): Add -combine to the gcc
17144         command line.
17145
17146 2004-07-08  Nick Clifton  <nickc@redhat.com>
17147
17148         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
17149         Set to -Os.
17150
17151 2004-07-08  Richard Henderson  <rth@redhat.com>
17152
17153         * except.c (expand_eh_region_start, expand_eh_region_end,
17154         expand_eh_handler, expand_eh_region_end_cleanup,
17155         expand_start_all_catch, expand_start_catch, expand_end_catch,
17156         expand_end_all_catch, expand_eh_region_end_allowed,
17157         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
17158         expand_eh_region_end_fixup): Remove.
17159         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
17160         cleanups, outer_cleanups, label_chain, exception_region.
17161         (struct goto_fixup): Remove stack_level, cleanup_list_list.
17162         (struct label_chain): Remove.
17163         (struct stmt_status): Remove x_stack_block_stack.
17164         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
17165         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
17166         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
17167         end_cleanup_deferral, last_cleanup_this_contour,
17168         containing_blocks_have_cleanups_or_stack_level,
17169         any_pending_cleanups): Remove.
17170         (expand_null_return_1): Take no arguments.
17171         (expand_label, expand_naked_return, expand_return,
17172         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
17173         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
17174         expand_end_case_type): Don't use any of them.
17175         * calls.c (expand_call): Likewise.
17176         * dojump.c (do_jump): Likewise.
17177         * function.c (expand_function_end): Likewise.
17178         * expr.c (store_expr, expand_expr_real_1): Likewise.
17179         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
17180         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
17181         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
17182         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
17183         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
17184         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
17185         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
17186         for WITH_CLEANUP_EXPR.
17187         (gimple_push_cleanup): Likewise.
17188         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
17189         * print-tree.c (print_node): Likewise.
17190         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
17191         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
17192         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
17193         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
17194         (GOTO_SUBROUTINE_EXPR): Remove.
17195         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
17196         (DECL_TOO_LATE): Remove.
17197         * except.h, tree.h: Update decls.
17198
17199 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17200
17201         * explow.c (optimize_save_area_alloca): Do not accept parameters.
17202         * passes.c (rest_of_handle_final): Handle symout.
17203         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
17204         Push timevar here.
17205         (rest_of_handle_sched): Break out SMS.  Remove ifs for
17206         flag_schedule_insns and flag_modulo_sched.
17207         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
17208         collect at the end.
17209         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
17210         (rest_of_handle_partition_blocks, rest_of_handle_sms,
17211         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
17212         rest_of_handle_mode_switching, rest_of_handle_jump,
17213         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
17214         rest_of_handle_jump2, rest_of_handle_postreload,
17215         rest_of_handle_flow2, rest_of_clean_state,
17216         rest_of_handle_shorten_branches,
17217         rest_of_handle_prologue_epilogue,
17218         rest_of_handle_branch_target_load_optimize): New.
17219         (rest_of_compilation): Call the above.  Remove ggc_collect
17220         calls moved to rest_of_handle_*.
17221         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
17222
17223         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
17224         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
17225         * except.h (set_nothrow_function_flags): Update comment.
17226         * function.c (current_function_nothrow): Remove.
17227         * output.h (current_function_nothrow): Remove.
17228         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
17229         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
17230
17231 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17232
17233         PR bootstrap/16326
17234         * reorg.c: Revert 2004-06-30 change.
17235         (find_end_label): If HAVE_epilogue and !HAVE_return,
17236         return 0 instead of creating a label at the end of the insn chain.
17237         (optimize_skip): Account for the failure mode of find_end_label.
17238         (fill_simple_delay_slots): Likewise.
17239         (fill_slots_from_thread): Likewise.
17240         (relax_delay_slots): Likewise.
17241
17242 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
17243
17244         * tree-flow.h (addressable_vars): Declare.
17245         * tree-ssa-alias.c (addressable_vars): Define.
17246         (setup_pointers_and_addressables): Add addressable variables
17247         to addressable_vars.
17248         * tree-ssa-operands.c (get_stmt_operands): Move
17249         handling of ASM_EXPRs ...
17250         (get_asm_expr_operands): ... here.
17251         When the ASM_EXPR clobbers memory, also clobber addressable
17252         variables.
17253         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
17254         (delete_tree_ssa): Reset addressable_vars.
17255
17256 2004-07-07  Jan Beulich  <jbeulich@novell.com>
17257             Richard Henderson  <rth@redhat.com>
17258
17259         * varasm.c (assemble_variable): Use assemble_zeros for
17260         zero-initialized variables.
17261         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
17262         for SECCAT_BSS and SECCAT_TBSS.
17263
17264 2004-07-07  Jan Beulich  <jbeulich@novell.com>
17265
17266         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
17267
17268         * expmed.c (emit_store_flag): Also special-case double-word
17269         (in-)equality comparison against -1.
17270
17271         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
17272         passing arguments the containers for which are registers.
17273
17274         * calls.c (emit_library_call_value_1): Use mode of function parameter
17275         rather than that of argument since constants have none.
17276
17277 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
17278
17279         Introduce H8SX support.
17280         * expr.c (expand_strcpy): Renamed and moved to...
17281         * builtins.c (expand_movstr): ... here.  Tweak.
17282         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
17283         computed or has side effects.
17284         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
17285         unused, or if mempcpy fails.  Adjust the return value in the
17286         latter case.  Use movstr if everything else fails.
17287         * doc/md.texi (movstr): Document.
17288         (movmemM, clrmemM): Fix explanation of memory block operands.
17289         * config/h8300/h8300.md (stpcpy): Renamed to...
17290         (movstr): ... this.  Adjust.
17291         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
17292         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
17293         movmem* and clrstr* to clrmem*.
17294         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
17295         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
17296         GENERAL_REGS, always.
17297         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
17298         getting the stack pointer as addr.
17299         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
17300         from general_operand_dst.
17301         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
17302         variant of...
17303         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
17304         instead of requiring it to match only before reload.
17305         (stpcpy_internal_normal): New, normal-mode variant of...
17306         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
17307         `D' instead of requiring it to match only before reload.
17308         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
17309         mode argument.
17310         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
17311         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
17312         h8300_get_index.
17313         * config/h8300/h8300.md (attr type): Add call.
17314         (attr can_delay): If type is call, set it no.
17315         (call, call_value): Set type to call.
17316         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
17317         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
17318         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
17319         * tree.c (get_narrower): Don't narrow integral types into
17320         non-integral types.
17321         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
17322         frame_size *before* the first use.
17323         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
17324         on input.
17325         (peephole2): Don't widen instructions that push SP.  Move
17326         decrement of SP to the end of all stm-generating peepholes.
17327         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
17328         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
17329         and OR to set it to all ones.
17330         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
17331         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
17332         (call, call_value): Set can_delay to "no".
17333         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
17334         * config/h8300/h8300.md (extzv): Make subreg check more robust.
17335         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17336         * config/h8300/h8300.md (*brabit): Remove.
17337         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
17338         zero_extract.  Use bit_memory_operand as the predicate for
17339         operand 1 and 'WU' as the constraint.  Check the difference
17340         between the base length and the final one when deciding which
17341         type of branch to use.
17342         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17343         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
17344         Use convert_move to extend the result for TARGET_H8300SX.  Check
17345         for QImode memory references.  Optimize the case where the
17346         destination is a paradoxical subreg.
17347         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17348         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
17349         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
17350         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17351         * config/h8300/h8300.md: Include mova.md
17352         (length_table): Add mova and mova_zero.
17353         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
17354         after all constant addresses for '%R', '%X', '%T' and '%S'.
17355         (h8300_mova_length): New function.
17356         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
17357         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
17358         dependencies for s-config, etc.
17359         * config/h8300/gemova.sh: New file.
17360         * config/h8300/mova.md: Generated.
17361         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
17362         * config/h8300/h8300.c (h8300_bitfield_length): New.
17363         (nibble_operand): Adjust.
17364         (h8300_binary_length): Handle conditional binary op.
17365         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
17366         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
17367         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
17368         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
17369         constraints.  WU is introduced as a variant of U that requires a
17370         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
17371         * config/h8300/h8300.md (attr type): Added bitbranch.
17372         (attr length_table): Added bitfield and bitbranch.
17373         (attr length): Compute bitbranch length.
17374         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
17375         least-significant bit of a byte.
17376         (brabit, brabc, brabs): New.
17377         (insv, extzv): Emit bfst and bfld on H8300SX.
17378         (bfld, bfst, seq, sne): New.
17379         (bstzhireg, cmpstz, bstz, bistz): New.
17380         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
17381         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
17382         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
17383         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
17384         (h8sx_unary_memory_operator): New function.
17385         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
17386         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
17387         * config/h8300/h8300.md: Add peepholes to combine reloads and
17388         arithmetic insns.
17389         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
17390         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
17391         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
17392         (and?i, ior?i, xor?i): Likewise.
17393         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
17394         * config/h8300/h8300.c: Move enums and prototypes to head of file.
17395         Various whitespace fixes.
17396         (h8300_constant_length): New function, split out from...
17397         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
17398         (h8300_classify_operand): Use IN_RANGE.
17399         (h8300_classify_operand): Use h8300_constant_length.
17400         (h8300_short_move_mem_p): Tighten size check.
17401         (h8sx_mergeable_memrefs_p): Tighten equality check.
17402         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
17403         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
17404         for -msx.
17405         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
17406         * config/h8300/crtn.asm: Likewise.
17407         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
17408         if __H8300SX__ is defined.
17409         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
17410         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
17411         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
17412         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
17413         addresses as mode-dependent.
17414         * config/h8300/h8300.c (print_operand_address): Update call to
17415         h8300_get_index.
17416         (h8300_get_index): Take a mode argument.  Rework to fix an
17417         earlier misunderstanding.
17418         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
17419         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
17420         into a register if TARGET_H8300SX.
17421         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
17422         TARGET_H8300SX.  Also disable related define_splits.
17423         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
17424         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
17425         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
17426         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
17427         * config/h8300/h8300.h (OK_FOR_Z): New macro.
17428         (EXTRA_CONSTRAINT_STR): Check it.
17429         * config/h8300/h8300.c (h8300_classify_operand): Accept null
17430         class arguments.
17431         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
17432         * config/h8300/h8300.md (length_table): Add mov_imm4.
17433         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
17434         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
17435         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
17436         be a label.
17437         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
17438         * config/h8300/h8300.c (h8300_reorg): New function.
17439         (TARGET_MACHINE_DEPENDENT_REORG): Define.
17440         * config/h8300/h8300.md (length): Subtract the length of the
17441         delay slot from (pc) when checking the range of forward branches.
17442         (delay_slot, can_delay): New attributes.
17443         (define_delay): Add bra/s handling.
17444         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
17445         (jump): Add delayed-branch handling.
17446         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
17447         * expr.c (expand_strcpy): New function.
17448         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
17449         (expand_builtin_stpcpy): Likewise.
17450         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
17451         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
17452         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
17453         handling to improve register allocation for -fno-omit-frame-pointer.
17454         (h8sx_split_movmd): Delete, moving er6 handling into...
17455         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
17456         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
17457         (movmd): Add calls to copy_rtx.
17458         (movmd_internal): In the second alternative, allow the initial and
17459         final destination registers to be different .  Update the splitter
17460         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
17461         instead of h8sx_split_movmd.
17462         (stpcpy, movsd): New expanders.
17463         (movsd_internal): New define_insn.
17464         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
17465         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
17466         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
17467         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
17468         and DESTINATION_REGS.
17469         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
17470         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
17471         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
17472         (h8300_move_ratio): Declare.
17473         (MOVE_RATIO): Use it.
17474         * config/h8300/h8300.c (h8300_move_ratio): New variable.
17475         (h8300_init_once): Initialize it.
17476         (h8300_reg_class_from_letter): New function.
17477         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
17478         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
17479         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
17480         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
17481         (movstrsi, movmd): New expanders.
17482         (movmd_internal): New insn.
17483         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
17484         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
17485         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
17486         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
17487         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
17488         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
17489         * config/h8300/h8300.c (nibble_operand): Fix warning.
17490         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
17491         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
17492         (movsf_h8300h): Disable for TARGET_H8300SX.
17493         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
17494         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
17495         h8300_stm_parallel and h8300_return_parallel.
17496         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
17497         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
17498         h8300_stm_parallel, h8300_return_parallel): New functions.
17499         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
17500         if TARGET_H8300SX.  Use h8300_push_pop.
17501         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
17502         and final pop when generating h8sx code.  Always emit some form
17503         of return insn.
17504         * config/h8300/h8300.md: Don't enforce register alignment in
17505         stm peepholes if TARGET_H8300SX.
17506         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
17507         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
17508         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
17509         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
17510         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
17511         (MULTILIB_DIRNAMES): Add a directory for it.
17512         (MULTILIB_MATCHES): Delete.
17513         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
17514         * final.c (walk_alter_subreg): Handle addresses with subregs
17515         inside a ZERO_EXTEND or AND.
17516         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
17517         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
17518         if TARGET_H8300SX.
17519         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
17520         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
17521         @(dd,Rn.w) and @(dd,ERn.L).
17522         (h8300_displacement_size): Take the whole address as argument.
17523         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
17524         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
17525         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
17526         (h8sx_mergeable_memrefs_p): Declare.
17527         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
17528         (HAVE_PRE_INCREMENT): Likewise.
17529         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
17530         addresses for TARGET_H8300SX,
17531         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
17532         and POST_DEC.
17533         (movb_length_table, movl_length_table): New tables.
17534         (movw_length_table): Define to movb_length_table.
17535         (h8300_displacement_size): New, split out from...
17536         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
17537         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
17538         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
17539         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
17540         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
17541         (compute_plussi_length, compute_plussi_cc): Update accordingly.
17542         (h8sx_unary_shift_operator): Get the mode from the operator.
17543         (binary_shift_operator): Likewise.
17544         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
17545         a memory reference, check whether the reference is offsettable.
17546         (length_table): Add movb, movw and movl.
17547         (movqi): Add new h8sx pattern.  Don't force one operand to be a
17548         register when generating h8sx code.
17549         (movhi, movsi, movsf): Likewise.
17550         (movstrictqi): Use the length_table attribute.
17551         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
17552         (addqi3): Split into a define_expand and define_insn.  Don't accept
17553         memory operands in the expander.  Use h8300_operands_match_p to
17554         check for matching operands in the define_insn.
17555         (subqi3, negqi2, one_cmplqi2): Likewise.
17556         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
17557         in any patterns that are unused in h8sx code.  In the h8sx patterns,
17558         use h8300_operands_match_p to check whether operands match.
17559         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
17560         one_cmpl[hs]i3): Likewise.
17561         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
17562         in the expander.
17563         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
17564         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
17565         (h8300_insn_length_from_table): Add a second parameter.
17566         (output_h8sx_shift): Declare.
17567         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
17568         (EXTRA_CONSTRAINT): Replace with...
17569         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
17570         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
17571         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
17572         and h8sx_binary_shift_operator.
17573         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
17574         for TARGET_H8300SX.
17575         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
17576         (bit_memory_operand, fix_bit_operand): Likewise.
17577         (h8300_length_table_for_insn): Remove.
17578         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
17579         instructions.
17580         (h8300_short_immediate_length, h8300_binary_length): New functions.
17581         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
17582         (output_plussi): Use sub to add negative constants.
17583         (compute_plussi_length): Adjust accordingly.
17584         (h8sx_single_shift_type): New enum.
17585         (h8sx_single_shift, h8sx_unary_shift_operator,
17586         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
17587         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
17588         single h8sx instruction.  Return false in this case.
17589         * config/h8300/h8300.md (length_table): Add short_immediate.
17590         (length): Pass the operand array to h8300_insn_length_from_table.
17591         (adjust_length): Assume "no" for insns with a length_table attribute.
17592         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
17593         (*addhi3_h8300hs): Don't use for h8sx.
17594         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
17595         and sub.w #xx:3.
17596         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
17597         1's predicate to nonimmediate_operand.  Only skip default expansion
17598         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
17599         for single h8sx shift instructions.
17600         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
17601         * config/h8300/h8300.c (nibble_operand): Split out of...
17602         (reg_or_nibble_operand): ... this.
17603         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
17604         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
17605         umulhisi3): Introduce expand, and introduce separate insns for
17606         sign- or zero-extended REG and already-extended CONST_INT.
17607         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
17608         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
17609         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
17610         (subhi3): Likewise.  Don't accept immediates for operand 1.
17611         Remove the early clobber from second alternative of the h8300s pattern.
17612         (subsi3): Generalize for h8sx.  Force operand 2 into a register
17613         on plain h8300 targets.
17614         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
17615         (subsi3_h8300h): Generalize for h8sx.
17616         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
17617         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
17618         * config/h8300/h8300.c (reg_or_nibble_operand): New.
17619         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
17620         (TARGET_H8300SXMUL): New.
17621         (CONST_OK_FOR_P): New.
17622         (CONST_OK_FOR_LETTER_P): Adjust.
17623         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
17624         umulhisi3): Accept 4-bit immediate on H8SX.
17625         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
17626         (udivsi3, divhi3, udivsi3, divsi3): New.
17627         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
17628         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
17629         * config/h8300/h8300.h (OK_FOR_Q): New macro.
17630         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
17631         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
17632         Add ADDRESSOF to the bit_operand entry.
17633         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
17634         (h8300_src_operand): Likewise.
17635         (bit_operand): Check nonimmediate_operand rather than general_operand.
17636         Accept any nonimmediate_operand in h8sx code.
17637         (h8300_and_costs): Initialize operands[1].
17638         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
17639         (h8300_operand_class): New enum.
17640         (h8300_length_table): New typedef.
17641         (addb_length_table, addw_length_table, addl_length_table,
17642         logicl_length_table): New tables.
17643         (logicb_length_table, logicw_length_table): New macros.
17644         (h8300_classify_operand, h8300_length_from_table,
17645         h8300_length_table_for_insn, h8300_unary_length,
17646         h8300_insn_length_from_table): New functions.
17647         (output_plussi): Only use adds and subs for register destinations.
17648         Disable redundant clause.
17649         (compute_plussi_cc): Likewise.
17650         (compute_plussi_length): Likewise.  Use h8300_length_from_table
17651         to work out the length of an insn.
17652         (output_logical_op): Only use narrower immediate instructions
17653         if the destination is a register.
17654         (compute_logical_op_cc): Likewise.
17655         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
17656         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
17657         * config/h8300/h8300.md (length_table): New attribute.
17658         (length): When an instruction has a length_table attribute, use
17659         h8300_insn_length_from_table to calculate its default length.
17660         (cmpqi): Use h8300_dst_operand for the first operand and
17661         h8300_src_operand for the second.
17662         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
17663         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
17664         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
17665         iorsi3, xorhi3, xorsi3): Likewise.
17666         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
17667         so that it allows any combination of operands for TARGET_H8300SX.
17668         (iorqi3, xorqi3): Likewise.
17669         (cmpqi): Use the length_table attribute.
17670         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
17671         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
17672         (cmpqi): Add 'Q' constraint.
17673         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
17674         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
17675         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
17676         * config/h8300/h8300.h (MASK_H8300SX): New macro.
17677         (TARGET_H8300S): True for both -ms and -msx.
17678         (TARGET_H8300SX): New macro.
17679         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
17680         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
17681         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
17682         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
17683         [Temporary change.]
17684         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
17685         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
17686         16-bit pointers and 32-bit ints.
17687         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
17688         CONST_DOUBLE with mode no wider than SImode.
17689         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
17690         output operand.
17691         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
17692         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
17693         or SUBREG thereof.
17694         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
17695         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
17696         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
17697
17698 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
17699
17700         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
17701
17702 2004-07-07  Per Bothner  <per@bothner.com>
17703
17704         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
17705
17706 2004-07-07  Mike Stump  <mrs@apple.com>
17707
17708         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
17709         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
17710         (machopic_finish): Likewise.
17711
17712 2004-07-07  Richard Henderson  <rth@redhat.com>
17713
17714         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
17715         through any value-preserving cast.
17716
17717 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
17718
17719         * function.c (assign_parm_find_data_types): Call
17720         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
17721
17722 2004-07-07  Steven Bosscher  <stevenb@suse.de>
17723
17724         * tree-cfg.c (group_case_labels): Remove case labels that have
17725         the same target as the default case.
17726
17727 2004-07-07  Steven Bosscher  <stevenb@suse.de>
17728
17729         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
17730         regardless of DECL_LANG_SPECIFIC being present or not.
17731         * tree.h (DECL_NUM_STMTS): Purge.
17732
17733 2004-07-07  Andrew Pinski  <apinski@apple.com>
17734
17735         * configure: Regenerate with the right autoconf.
17736
17737 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
17738
17739         * ifcvt.c (total_bb_rtx_cost): New function.
17740         (find_if_case_1): Compare rtx_cost of basic block to cost of
17741         BRANCH_COST insns.
17742         (find_if_case_2): Same.
17743
17744 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
17745
17746         PR target/10567
17747         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
17748         (output_return): Likewise.
17749         (output_sibcall): Abort if !flag_delayed_branch.
17750         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
17751         (emit_and_preserve): New function.
17752         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
17753         indirect jump to the thunked-to function if !flag_delayed_branch.
17754         * config/sparc/sparc.md (delayed_branch): New attribute.
17755         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
17756         attribute to compute the length of the insn.
17757         (goto_handler_and_restore): Likewise.
17758
17759 2004-07-07  Andrew Pinski  <apinski@apple.com>
17760
17761         PR tree-optimization/15777
17762         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
17763
17764         * expr.c (expand_expr_real_1): Fix formating.
17765         BUFFER_REF and IN_EXPR are dead.
17766         * fold-const.c (non_lvalue): BUFFER_REF is dead.
17767         * tree-inline.c (estimate_num_insns_1): Likewise.
17768         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
17769         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
17770         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
17771
17772 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
17773
17774         * collect2.c (dump_file): Don't call cplus_demangle if
17775         HAVE_LD_DEMANGLE is defined.
17776         (main): Pass "--demangle" to ld if no_demangle is not 0 and
17777         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
17778         if HAVE_LD_DEMANGLE is defined.
17779
17780         * configure.ac (--with-demangler-in-ld): Added
17781         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
17782         --with-demangler-in-ld is used.
17783         * config.in: Regenerated.
17784         * configure: Likewise.
17785
17786 2004-07-07  Roger Sayle  <roger@eyesopen.com>
17787
17788         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
17789         for simple floating point operations "fp", double precision
17790         multiplication "dmul", and single and double precision division
17791         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
17792         (ppc630_cost): New table split from ppc620_cost, to distinguish
17793         differences in floating point latencies.
17794         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
17795         (rs6000_rtx_costs): Add support for single and double precision
17796         floating point addition, subtraction, multiplication, division,
17797         fused-multiply-add, fused-multiply-sub, negation, absolute value
17798         and negative absolute value.  Tweak MEM case to use prefered idiom.
17799
17800 2004-07-07  Richard Henderson  <rth@redhat.com>
17801
17802         * tree-flow-inline.h (may_propagate_copy): Move...
17803         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
17804         attempt to copy between types requiring conversion.
17805         * tree-flow.h (may_propagate_copy): Update decl.
17806         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
17807
17808 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
17809
17810         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
17811         from -mtune= option.
17812
17813 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
17814
17815         * builtins.c: Rename movstr*, except for movstrict*, to
17816         movmem* and clrstr* to clrmem*.
17817         * expr.c: Likewise.
17818         * expr.h: Likewise.
17819         * genopinit.c: Likewise.
17820         * integrate.c: Likewise.
17821         * local-alloc.c: Likewise.
17822         * optabs.c: Likewise.
17823         * optabs.h: Likewise.
17824         * config/alpha/alpha.h: Likewise.
17825         * config/alpha/alpha.md: Likewise.
17826         * config/arm/arm-protos.h: Likewise.
17827         * config/arm/arm.c: Likewise.
17828         * config/arm/arm.md: Likewise.
17829         * config/avr/avr.md: Likewise.
17830         * config/c4x/c4x.c: Likewise.
17831         * config/c4x/c4x.md: Likewise.
17832         * config/frv/frv.md: Likewise.
17833         * config/i386/i386-protos.h: Likewise.
17834         * config/i386/i386.c: Likewise.
17835         * config/i386/i386.h: Likewise.
17836         * config/i386/i386.md: Likewise.
17837         * config/i860/i860.c: Likewise.
17838         * config/i860/i860.md: Likewise.
17839         * config/ip2k/ip2k.md: Likewise.
17840         * config/ip2k/libgcc.S: Likewise.
17841         * config/ip2k/t-ip2k: Likewise.
17842         * config/m32r/m32r.c: Likewise.
17843         * config/m32r/m32r.md: Likewise.
17844         * config/mcore/mcore.md: Likewise.
17845         * config/mips/mips.c: Likewise.
17846         * config/mips/mips.md: Likewise.
17847         * config/ns32k/ns32k.c: Likewise.
17848         * config/ns32k/ns32k.h: Likewise.
17849         * config/ns32k/ns32k.md: Likewise.
17850         * config/pa/pa.c: Likewise.
17851         * config/pa/pa.md: Likewise.
17852         * config/pdp11/pdp11.h: Likewise.
17853         * config/pdp11/pdp11.md: Likewise.
17854         * config/rs6000/rs6000.c: Likewise.
17855         * config/rs6000/rs6000.md: Likewise.
17856         * config/s390/s390-protos.h: Likewise.
17857         * config/s390/s390.c: Likewise.
17858         * config/s390/s390.md: Likewise.
17859         * config/sh/lib1funcs.asm: Likewise.
17860         * config/sh/sh.c: Likewise.
17861         * config/sh/sh.md: Likewise.
17862         * config/sh/t-sh: Likewise.
17863         * config/sparc/sparc.h: Likewise.
17864         * config/vax/vax.md: Likewise.
17865         * config/xtensa/xtensa.c: Likewise.
17866         * config/xtensa/xtensa.md: Likewise.
17867         * doc/invoke.texi: Likewise.
17868         * doc/md.texi: Likewise.
17869         * doc/rtl.texi: Likewise.
17870
17871 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
17872
17873         PR target/16407
17874         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
17875         * config/mips/mips.c (mips_declare_common_object): New function,
17876         mostly split out from...
17877         (mips_output_aligned_decl_common): ...here.
17878         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
17879         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
17880         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
17881         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
17882
17883 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17884
17885         PR c/16392
17886         * function.c (assign_parms): Fix typo from previous change.
17887
17888 2004-07-07  Jason Merrill  <jason@redhat.com>
17889
17890         PR c++/15815
17891         * doc/extend.texi (C++ Interface): Correct information and
17892         discourage use.
17893
17894 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
17895
17896         PR target/16130
17897         PR target/16142
17898         PR target/16143
17899         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
17900         insn.
17901
17902 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17903
17904         PR target/1679.
17905         * config/m32r/m32r.c (m32r_function_symbol): New function:
17906         Generate a symbol name RTX with the correct m32r specific flags
17907         set.
17908         (block_move_call): Use new function to generate correct symbol.
17909         * config/m32r/m32r-protos.h: Add prototype for new funcion.
17910         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
17911         function.
17912
17913 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
17914
17915         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
17916         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
17917         TYPE_BINFO_BASETYPE): Remove.
17918         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
17919         to ...
17920         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
17921         here.
17922         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
17923         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
17924         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
17925         (struct tree_binfo): Rename base_types to base_binfos.
17926         * alias.c (record_component_aliases): Adjust BINFO macros.
17927         * dbxout.c (dbxout_type): Likewise.
17928         * dwarf2out.c (gen_member_die): Likewise.
17929         * sdbout.c (sdbout_one_type): Likewise.
17930         * tree-dump.c (deque_and_dump): Likewise.
17931         * config/i386/i386.c (classify_argument,
17932         contains_128bit_aligned_vector_p): Likewise.
17933
17934 2004-07-07  Nick Clifton  <nickc@redhat.com>
17935
17936         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
17937         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
17938
17939 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
17940
17941         * vec.h: Fix the example use.
17942
17943 2004-07-06  Richard Henderson  <rth@redhat.com>
17944
17945         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
17946         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
17947         * tree-inline.c (copy_body_r, setup_one_parameter,
17948         initialize_inlined_parameters, expand_call_inline,
17949         declare_inline_vars): Don't check it.
17950         (expand_calls_inline): Remove old version, rename new version
17951         from gimple_expand_calls_inline.
17952         * tree-optimize.c (execute_gimple): Remove.
17953         (pass_gimple): Don't run anything.
17954
17955 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
17956
17957         * doc/sourcebuild.texi: Use semicolons instead of commas in
17958         section title.
17959
17960 2004-07-06  Richard Henderson  <rth@redhat.com>
17961
17962         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
17963         (sra_walk_modify_expr, scan_init): Likewise.
17964         (generate_element_zero): Check visited before scanning children.
17965         (generate_element_init): Set visited on error.
17966         (scalarize_init): Handle generate_element_init failure similar
17967         to use_block_copy.
17968
17969 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
17970
17971         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
17972         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
17973
17974 2004-07-06  Richard Henderson  <rth@redhat.com>
17975
17976         * config/i386/i386.c (legitimize_pic_address): Make static.
17977         (legitimize_address): Handle CONST with TLS operand.
17978         (ix86_expand_move): Don't call legitimize_pic_address directly.
17979         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
17980
17981 2004-07-06  Roger Sayle  <roger@eyesopen.com>
17982
17983         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
17984         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
17985         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
17986         is currently executed unconditionally, i.e. not in "else_bb".
17987
17988 2004-07-06  Steven Bosscher  <stevenb@suse.de>
17989
17990         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
17991         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17992         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
17993         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17994         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
17995         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17996         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
17997         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17998         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
17999         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18000         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
18001         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18002         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
18003         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18004         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
18005         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18006
18007 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
18008
18009         * dojump.c (do_jump): REFERENCE_EXPR is dead.
18010         * expr.c (expand_expr_real_1): Ditto.
18011         * tree-inline.c (estimate_num_insns_1): Ditto.
18012         * tree-pretty-print.c (dump_generic_node): Ditto.
18013         (op_symbol): Ditto.
18014         * tree.def: Ditto.
18015
18016 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
18017
18018         * tree-ssa-pre.c (reference_node_pool): New pool.
18019         (find_or_generate_expression): Class 'r' is okay too.
18020         (create_value_expr_from): Ditto.
18021         (add_to_sets): LHS should not include vuses.
18022         (eliminate): Ditto.
18023         (compute_avail): Reverse ordering of tests.
18024         Valuize INDIRECT_REF as well.
18025
18026 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
18027
18028         PR rtl-optimization/16380
18029         * loop.c (check_dbra_loop): Sink comparison instructions if they
18030         do something other than set cc0.
18031
18032 2004-07-06  James E Wilson  <wilson@specifixinc.com>
18033
18034         * doc/interface.texi (longjmp and automatic variables): Delete
18035         paragraph recommending taking the address of a variable.
18036
18037 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
18038
18039         * vec.h (VEC_embedded_alloc): Remove.
18040         (VEC_embedded_size, VEC_embedded_init): New.
18041         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
18042         MEM_STAT_INFO.
18043         (VEC_truncate): New.
18044         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
18045         (vec_embedded_alloc): Remove.
18046         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
18047         (vec_embedded_alloc): Remove.
18048
18049 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
18050
18051         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
18052         (gt-langhooks.h): Remove.
18053
18054 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
18055
18056         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
18057
18058 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
18059
18060         * config/sparc/sparc.c (get_pc_symbol): Rename into
18061         add_pc_to_pic_symbol.
18062         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
18063         (load_pic_register): Account for previous changes.
18064         Use reg_names.  Don't create the label twice.
18065         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
18066         UNSPEC_LOAD_PCREL_SYM.
18067         (get_pc): Rename into load_pcrel_sym.  Add predicate to
18068         operands.  Remove condition.
18069
18070 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
18071
18072         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
18073         RECORD, UNION & QUAL_UNION is actually a binfo.
18074
18075         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
18076         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
18077         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
18078         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
18079         * dwarf2out.c (add_data_member_location_attribute): Likewise.
18080         (gen_inheritance_die): Likewise.
18081         * tree-dump.c (deque_and_dump): Likewise.
18082         * doc/c-tree.texi (Binfos): Add under reconstruction note.
18083
18084 2004-07-06  Steven Bosscher  <stevenb@suse.de>
18085
18086         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
18087         Define.
18088         * config/mcore/mcore.md: Model memory latency with a simple DFA
18089         pipeline description instead of a define_function_unit.
18090
18091 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18092
18093         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
18094         * langhooks.h (var_mod_type_p): Likewise.
18095         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
18096         * expr.c (count_type_elements): Properly handle return from
18097         array_type_nelts and properly test for overflow.
18098         * gimplify.c (gimplify_init_constructor): Properly handle return
18099         from array_type_nelts.
18100         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
18101         * integrate.c (copy_decl_for_inlining): Correct comments.
18102         * tree-inline.c (remap_decl): Update comments, remove dead code,
18103         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
18104         (remap_type): Only remap if variably modified by vars in function
18105         being inlined.
18106         (copy_body_r): Use compatible_type langhooks to see when can fold.
18107         (setup_one_parameter): Don't remap type.
18108         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
18109         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
18110         compute TREE_INVARIANT for decl case.
18111         (find_var_from_fn): New function.
18112         (variably_modified_type_p): Add arg and call new function.
18113         * tree.h (variably_modified_type_p): Add extra arg.
18114
18115 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
18116
18117         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
18118         (goto_handler_and_restore_v9): Delete disabled insn.
18119         (goto_handler_and_restore_v9_sp64): Likewise.
18120
18121 2004-07-05  Roger Sayle  <roger@eyesopen.com>
18122
18123         * calls.c (load_register_parameters): Call expand_shift instead
18124         of expand_binop with ashl_optab (or other shift optab) directly.
18125         * expr.c (emit_group_load, emit_group_store): Likewise.
18126         * function.c (assign_parm_setup_block): Likewise.
18127         * stmt.c (shift_return_value): Likewise.
18128
18129 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
18130
18131         * expr.c (expand_assignment): Disable the bitfield += optimizations.
18132
18133 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18134
18135         * doc/sourcebuild.texi: Revert previous patch.
18136
18137 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18138
18139         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
18140         TARGET_MEM_FUNCTIONS.
18141         * system.h: Poison TARGET_MEM_FUNCTIONS.
18142         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
18143         bcmp_libfunc, bzero_libfunc): Remove.
18144         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
18145         bzero_libfunc.
18146         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
18147         * doc/standards.texi: Don't mention calling BSD string functions.
18148         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
18149         * config/vax/t-memfuncs: New.
18150         * config/memcmp.c, config/memcpy.c, config/memmove.c,
18151         config/memset.c: New.
18152         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
18153         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
18154         vax/t-memfuncs.
18155         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
18156         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
18157         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
18158         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
18159         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
18160         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
18161         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
18162         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
18163         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
18164         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
18165
18166 2004-07-05  Richard Henderson  <rth@redhat.com>
18167
18168         * function.c (assign_parm_setup_reg): Properly rename variables in
18169         FUNCTION_ARG_CALLEE_COPIES section.
18170
18171 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
18172
18173         * tree-mudflap.c: Include cgraph.h.
18174         (mf_init_extern_trees): Rename to mudflap_init.  Export.
18175         Rewrite to create synthetic declarations instead of looking
18176         up declarations from mf-runtime.h.
18177         (mf_make_builtin, mf_make_cache_struct_type): New functions.
18178         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
18179         Correct commentary.
18180         (execute_mudflap_function_decls, mudflap_register_call):
18181         Don't call mf_init_extern_trees.
18182         (mudflap_finish_file): Use cgraph_build_static_cdtor.
18183
18184         * tree-mudflap.h: Update prototypes.
18185         * c-mudflap.c: Delete file.
18186         * c-common.c: Include tree-mudflap.h.
18187         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
18188         * Makefile.in: Remove all references to c-mudflap.o.
18189         Update dependencies.
18190
18191 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18192
18193         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
18194         displacements with the spatial-locality cache-control completer.
18195
18196 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
18197
18198         * langhooks.c: Don't include gt-langhooks.h.
18199         (var_labelno): Delete.
18200         (lhd_set_decl_assembler_name): Do not append a distinguishing
18201         number to file-scope internal-linkage declarations for the first
18202         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
18203         the declaration itself (if at block scope), or its containing
18204         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
18205         number.
18206
18207         * opts.c (cur_in_fname): New global.
18208         * opts.h: Declare it.
18209         * tree.c: Include opts.h.
18210         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
18211         DECL_UID equal to cur_in_fname.
18212         (copy_node_stat): Do not change DECL_UID when copying a
18213         TRANSLATION_UNIT_DECL.
18214         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
18215         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
18216
18217         * c-decl.c (c_static_assembler_name): Delete.
18218         * c-tree.h (c_static_assembler_name): Delete prototype.
18219         * c-lang.c, objc/objc-lang.c: Don't override
18220         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
18221
18222         * Makefile.in (tree.o): Update dependencies.
18223         (GTFILES): Remove langhooks.c.
18224
18225 2004-07-05  Roger Sayle  <roger@eyesopen.com>
18226
18227         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
18228         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
18229         Normalize "X % C" as "X % -C" for signed modulus and negative C.
18230         Optimize "X % -Y" as "X % Y" for signed modulus.
18231         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
18232         into "((unsigned) X % Y) == 0".
18233
18234 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18235
18236         * sourcebuild.texi (Config Fragments): Use @comma{} in
18237         cross-reference to section title.
18238
18239 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18240
18241         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
18242         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
18243         (gimplify_target_expr, gimplify_expr): Likewise.
18244         (copy_if_shared_r): No longer need special case for BIND_EXPR.
18245         (unshare_body, unvisit_body): Only look at nested if BODY_P is
18246         whole function.
18247         (gimplify_compound_lval): See if we can strip any useless conversion.
18248         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
18249         from RHS, not LHS.
18250         (gimplify_modify_expr_to_memset): Likewise.
18251         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
18252         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
18253         (declare_inline_vars): Likewise.
18254         (walk_type_fields): New function.
18255         (walk_tree): Use it.
18256         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
18257
18258         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
18259         (sra_walk_modify_expr): Allow init function to fail.
18260         (scan_init): Now returns bool.
18261         (generate_element_init): If can't understand INIT, return false.
18262         (scalarize_init): Return false if generate_element_init does.
18263
18264         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
18265         print bounds.
18266
18267         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
18268         bounds if bounds aren't constant.
18269
18270         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
18271
18272         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
18273         to type hooks; remove bogus PARAMS.
18274
18275 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
18276
18277         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
18278         * dwarf2out.c (add_data_member_location_attribute): Check for
18279         TREE_BINFO.
18280         * tree.c (tree_node_kinds): Add "binfos".
18281         (binfo_lang_slots): New.
18282         (make_node_stat): Add TREE_BINFO.
18283         (make_tree_binfo_stat): New.
18284         (tree_node_structure): Add TREE_BINFO.
18285         * tree.def (TREE_BINFO): New.
18286         * tree.h (REC_OR_UNION_CHECK): Rename to ...
18287         (RECORD_OR_UNION_CHECK): ... here.
18288         (NOT_RECORD_OR_UNION_CHECK): New.
18289         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
18290         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
18291         RECORD_OR_UNION_CHECK.
18292         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
18293         (TYPE_LANG_SLOT_1): New.
18294         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
18295         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
18296         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
18297         (BINFO_ELTS): Remove.
18298         (BINFO_LANG_SLOT): New.
18299         (struct tree_binfo): New.
18300         (binfo_lang_slots): Declare.
18301         (enum tree_node_structure_enum): Add TS_BINFO.
18302         (union tree_node): Add binfo.
18303         (make_tree_binfo_stat): Declare.
18304         (make_tree_binfo): New.
18305         (enum tree_node_kind): Add binfo_kind.
18306
18307         * objc/objc-act.c (start_class, objc_declare_protocols,
18308         start_protocols): Use TYPE_LANG_SLOT_1.
18309         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
18310         to ...
18311         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
18312         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
18313         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
18314         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
18315
18316 2004-07-05  Steven Bosscher  <stevenb@suse.de>
18317
18318         * rtl.h (struct rtx_def): Remove the integrated flag.
18319         Use the return_val flag for MEM_SCALAR_P.
18320         Reshuffle and update flags in CLEAR_RTX_FLAGS.
18321
18322 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
18323
18324         PR target/16357
18325         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
18326         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
18327         move_by_pieces.
18328
18329 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
18330
18331         * var-tracking.c: Fix some comments.
18332         (frame_stack_adjust): New.
18333         (vt_stack_adjustments): Init stack_adjust of entry block to
18334         minus stack adjustment of function prologue.
18335         (adjust_stack_reference): Do not adjust if adjustment == 0.
18336         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
18337         (emit_notes_in_bb): Likewise.
18338         (vt_add_function_parameters): Do not adjust locations of
18339         function arguments.
18340         (vt_initialize): Compute the stack adjustment of function
18341         prologue and offset the initial "location" of frame_base_decl
18342         from the stack pointer after prologue.
18343
18344 2004-07-04  Richard Henderson  <rth@redhat.com>
18345
18346         * function.c (struct assign_parm_data_all): New.
18347         (struct assign_parm_data_one): New.
18348         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
18349         assign_parm_find_data_types, assign_parms_setup_varargs,
18350         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
18351         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
18352         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
18353         assign_parm_setup_block, assign_parm_setup_reg,
18354         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
18355         (assign_parms): ... here.
18356
18357 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
18358
18359         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
18360         now are bitmap_set_t's.
18361         (bitmap_insert_into_set): No point in inserting the value if
18362         it's invariant.
18363         (bitmap_set_contains): New function.
18364         (bitmap_set_replace_value): Add comment on why we do it
18365         this way.
18366         (set_contains): Removed.
18367         (bitmap_set_subtract_from_value_set): New name of
18368         set_subtract now that it's arguments are two different
18369         types of sets.
18370         Update callers.
18371         (bitmap_find_leader): Change algorithm used.
18372         (find_or_generate_expression): Update use of functions for new
18373         bitmap sets.
18374         (create_expression_by_pieces): Ditto.
18375         (insert_aux): Ditto.
18376         (insert): Ditto.
18377         (add_to_sets): Ditto.
18378         (init_pre): Ditto.
18379         (execute_pre): Ditto.
18380         (compute_avail): Ditto.
18381         Also ignore virtual phis.
18382
18383 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
18384
18385         * combine.c (simplify_comparison): Fix comment typo.
18386
18387 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
18388
18389         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
18390         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
18391         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
18392         (output_restore): Change parameter from 'insn' to 'pat'.
18393         (output_return): Adjust call to output_restore.
18394         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
18395         Adjust call to output_restore.
18396
18397 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
18398
18399         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
18400         and assert system is bsd.
18401
18402 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
18403
18404         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
18405         (TARGET_SWITCHES): Remove -mdebugc.
18406         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
18407         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
18408         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
18409         (sle_[sd]i_reg): Delete.
18410
18411 2004-07-04  Steven Bosscher  <stevenb@suse.de>
18412
18413         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
18414         Define.
18415         * config/iq2000/iq2000.md: Translate old pipeline description to an
18416         equivalent new one.
18417
18418 2004-07-04  Roger Sayle  <roger@eyesopen.com>
18419
18420         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
18421         Ensure the replacement rhs is valid gimple before performing
18422         the substitution.  Return false if these sanity checks fail.
18423         (fold_stmt): Only set changed to true, if set_rhs returns true.
18424         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
18425         succeeds.
18426
18427 2004-07-04  Richard Henderson  <rth@redhat.com>
18428
18429         PR c/16348
18430         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
18431
18432 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
18433
18434         * configure.ac (ranlib_flags): New variable.
18435         * Makefile.in (RANLIB_FLAGS): New variable.
18436         (libbackend.a): Use it.
18437         * configure: Regenerated.
18438
18439 2004-07-04  Roger Sayle  <roger@eyesopen.com>
18440
18441         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
18442         a "sign mask" instead of using ashr_optab directly.
18443
18444 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
18445
18446         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
18447         * doc/cppopts.texi: Clarify processing of command-line defines.
18448
18449 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
18450
18451         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
18452
18453 2004-07-04  Richard Henderson  <rth@redhat.com>
18454
18455         * rtl.def (ADDRESSOF): Remove.
18456         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
18457         (find_base_term, memrefs_conflict_p): Likewise.
18458         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
18459         (fold_rtx, cse_insn, set_live_p): Likewise.
18460         * dwarf2out.c (mem_loc_descriptor): Likewise.
18461         (add_location_or_const_value_attribute): Likewise.
18462         * emit-rtl.c (copy_insn_1): Likewise.
18463         * explow.c (memory_address): Likewise.
18464         * expmed.c (store_split_bit_field): Likewise.
18465         * expr.c (expand_expr_real_1): Likewise.
18466         * function.c (instantiate_decl
18467         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
18468         * genrecog.c (preds, validate_pattern): Likewise.
18469         * integrate.c (copy_rtx_and_substitute): Likewise.
18470         * recog.c (general_operand, register_operand): Likewise.
18471         (memory_address_p): Likwise.
18472         * reload1.c (eliminate_regs, elimination_effects): Likewise.
18473         * rtl.c (copy_rtx): Likewise.
18474         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
18475         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
18476         * rtlhooks.c (gen_lowpart_general): Likewise.
18477         * stmt.c (expand_asm_operands): Likewise.
18478         * web.c (entry_register, replace_ref, web_main): Likewise.
18479         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
18480         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
18481         * config/arm/arm.c (thumb_rtx_costs): Likewise.
18482         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
18483         * config/frv/frv.c (move_destination_operand, move_source_operand,
18484         condexec_dest_operand, condexec_source_operand,
18485         condexec_memory_operand): Likewise.
18486         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
18487         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
18488         (destination_xfmode_operand): Likewise.
18489         * config/mips/mips.h (PREDICATE_CODES): Likewise.
18490         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
18491         * config/s390/s390.c (general_s_operand): Likewise.
18492         * config/s390/s390.md (mov*): Likewise.
18493         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
18494
18495         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
18496         * expr.c (expand_expr_real_1): Likewise.
18497         * stmt.c (expand_decl): Likewise.
18498         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
18499
18500         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
18501         postponed_insns, put_var_into_stack, put_reg_into_stack,
18502         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
18503         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
18504         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
18505         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
18506         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
18507         purge_bitfield_addressof_replacements, purge_addressof_replacements,
18508         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
18509         struct insns_for_mem_walk_info, insns_for_mem_walk,
18510         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
18511         setjmp_protect_args): Remove.
18512         (push_function_context_to): Don't handle var_refs_queue.
18513         (pop_function_context_from, free_after_compilation): Likewise.
18514         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
18515         (assign_parms, allocate_struct_function): Likewise.
18516         (use_register_for_decl): New.
18517         (expand_function_end): Don't setjmp_protect.
18518         * function.h (struct emit_status): Update commentary.
18519         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
18520         (max_parm_reg, parm_reg_stack_loc): Remove.
18521         * passes.c (DFI_addressof): Remove.
18522         (dump_file_info): Remove addressof.
18523         (rest_of_handle_addressof): Remove.
18524         (rest_of_compilation): Don't call it.
18525         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
18526         * stmt.c (expand_decl): Use use_register_for_decl.
18527         * tree.h: Update decls.
18528         * web.c (mark_addressof): Remove.
18529         * doc/invoke.texi (-dF): Remove.
18530
18531 2004-07-03  Richard Henderson  <rth@redhat.com>
18532
18533         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
18534         instead of gen_mem_addressof.
18535         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
18536         TImode output register.
18537
18538 2004-07-03  Richard Henderson  <rth@redhat.com>
18539
18540         PR tree-optimization/16341
18541         * tree-sra.c (sra_walk_function): Increment to next stmt before
18542         processing the current stmt.
18543         (sra_insert_after): Always use BSI_SAME_STMT.
18544
18545 2004-07-03  Richard Henderson  <rth@redhat.com>
18546
18547         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
18548         fp plus with minus.
18549
18550 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
18551
18552         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
18553         with tree_int_cst_equal.
18554
18555 2004-07-03  Andreas Schwab  <schwab@suse.de>
18556
18557         * config/ia64/ia64.md: Define new attribute "empty".
18558         (prologue_use, nop_x, insn_group_barrier): Set it.
18559
18560         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
18561         skip over "empty" insns.
18562
18563 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18564
18565         * tree-inline.c (initialize_inlined_parameters): Pass proper function
18566         context to gimplify_body.
18567         (walk_tree): Don't walk into types twice.
18568         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
18569
18570         * tree-sra.c (generate_element_init): Remove any useless conversions.
18571
18572         * gimplify.c (gimplify_conversion): Remove stripping useless
18573         conversions from here.
18574         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
18575         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
18576         Unshare before substituting PLACEHOLDER_EXPR.
18577         (gimplify_modify_expr_to_memset): Likewise.
18578         Pass address of TO to memset, not TO itself.
18579         (gimplify_init_constructor): Make copy of OBJECT so we have it each
18580         time we make an expression (to match a PLACEHOLDER_EXPR).
18581
18582         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
18583         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
18584         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
18585         * tree-ssa-dom.c (local_fold): Likewise.
18586
18587         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
18588         * langhooks.h (strct lang_hooks): New field type_max_size.
18589         * function.c (assign_temp): Call it.
18590
18591 2004-07-03  Steven Bosscher  <stevenb@suse.de>
18592
18593         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
18594         * config/sh/sh.md: Convert the SH1 pipeline description to
18595         a DFA model.
18596
18597 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
18598
18599         * c-decl.c (struct c_binding): Remove contour field; add
18600         depth, invisible, nested fields.
18601         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
18602         (B_IN_EXTERNAL_SCOPE): New convenience macros.
18603         (bind): Add invisible and nested arguments. Initialize
18604         new fields of struct c_binding; adjust loop scanning for
18605         insertion point.
18606         (free_binding_and_advance): Clear structure with memset.
18607         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
18608         in file scope, even if it's in external scope too.
18609         (pushdecl): Adjust to match.  Create invisible file-scope
18610         declarations for block-scope forward declarations of static functions.
18611         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
18612         (undeclared_variable, lookup_label, declare_label, define_label)
18613         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
18614         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
18615         (store_parm_decls_oldstyle): Adjust to match.
18616         (diagnose_mismatched_decls): Correct handling of linkage clashes.
18617         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
18618
18619         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
18620         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
18621
18622 2004-07-02  Richard Henderson  <rth@redhat.com>
18623
18624         * c-decl.c (grokdeclarator): Don't frob current_function_decl
18625         around variable_size.
18626         (set_decl_nonlocal): Remove.
18627         (store_parm_decls): Add stmts for pending sizes.
18628         * calls.c (calls_function, calls_function_1): Remove.
18629         (precompute_arguments): Don't call it.
18630         * cfgexpand.c (set_save_expr_context): Remove.
18631         (tree_expand_cfg): Don't call it.
18632         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
18633         (dwarf2out_finish): Likewise.
18634         * expr.c (emit_block_move): Adjust addresses to BLKmode.
18635         (store_constructor): Don't pre-evaluate SAVE_EXPR.
18636         (safe_from_p): Don't queue SAVE_EXPRs.
18637         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
18638         or build plain VAR_DECLs.
18639         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
18640         (fold): Likewise.
18641         (fold_checksum_tree): Don't special-case SAVE_EXPR.
18642         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
18643         (put_var_into_stack): Don't handle SAVE_EXPR.
18644         (gen_mem_addressof): Likewise.
18645         * function.h (struct function): Remove x_save_expr_regs.
18646         (save_expr_regs): Remove.
18647         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
18648         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
18649         * stor-layout.c (variable_size): Don't set it.
18650         (force_type_save_exprs, force_type_save_exprs_1): Remove.
18651         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
18652         all callers.  Don't set SAVE_EXPR_CONTEXT.
18653         * tree-inline.h (remap_save_expr): Update decl.
18654         * tree.c (save_expr): Update build size.
18655         (first_rtl_op): Don't handle SAVE_EXPR.
18656         (unsave_expr_1, contains_placeholder_p): Likewise.
18657         (decl_function_context): Likewise.
18658         * tree.def (SAVE_EXPR): Remove args 1 and 2.
18659         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
18660         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
18661
18662 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
18663
18664         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
18665         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
18666         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
18667         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
18668         some first-person references and patronizing comments.  Based on
18669         printed manual.
18670         * doc/invoke.texi: Don't reference fortran@gnu.org.
18671         * doc/trouble.texi (Warning when a non-void function value is
18672         ignored): Rewrite.  From Russ Allbery and Chris Devers.
18673
18674 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
18675
18676         * tree-ssa-pre.c (bitmap_set_t): New.
18677         (bb_value_sets): avail_out is now a bitmap_set_t.
18678         (bitmap_find_leader): New function.
18679         (bitmap_value_insert_into_set): Ditto.
18680         (bitmap_set_copy): Ditto.
18681         (bitmap_value_replace_in_set): Ditto.
18682         (bitmap_set_contains_value): Ditto.
18683         (bitmap_set_new): Ditto.
18684         (bitmap_set_pool): New pool.
18685         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
18686         (insert_aux): Ditto.
18687         (add_to_sets): Ditto.
18688         (compute_avail): Ditto
18689         (eliminate): Ditto.
18690         (init_pre): Ditto.
18691         (fini_pre): Ditto.
18692         (execute_pre): Ditto.
18693
18694 2004-07-02  Roger Sayle  <roger@eyesopen.com>
18695
18696         * config/rs6000/rs6000.c (struct processor_costs): New structure
18697         used to hold instruction latencies/sizes for processor types.
18698         (rs6000_cost): New global variable pointing to current CPU's costs.
18699         (rs6000_override_options): Initialize rs6000_cost to point to the
18700         appropriate cost table based upon rs6000_cpu and optimize_size.
18701         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
18702         timings inline.
18703
18704 2004-07-02  Richard Henderson  <rth@redhat.com>
18705
18706         * expmed.c (make_tree): Don't use SET_DECL_RTL.
18707
18708 2004-07-02  Steven Bosscher  <stevenb@suse.de>
18709
18710         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
18711
18712 2004-07-01  Richard Henderson  <rth@redhat.com>
18713
18714         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
18715         (alpha_gp_save_rtx): Use assign_stack_local instead of
18716         gen_mem_addressof.
18717
18718 2004-07-01  Richard Henderson  <rth@redhat.com>
18719
18720         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
18721         (alpha_rtx_cost_data): Update to match.
18722         (alpha_rtx_cost_size): New.
18723         (alpha_rtx_costs): Honor optimize_size.
18724
18725 2004-07-01  Richard Henderson  <rth@redhat.com>
18726
18727         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
18728         * cfgexpand.c (tree_expand_cfg): Do it here.
18729         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
18730         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
18731         * config/mips/mips.c (mips_output_mi_thunk): And here.
18732         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
18733         * config/sh/sh.c (sh_output_mi_thunk): And here.
18734         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
18735
18736 2004-07-01  Richard Henderson  <rth@redhat.com>
18737
18738         * tree.def (RTL_EXPR): Remove.
18739         * c-typeck.c (lvalue_p): Don't handle it.
18740         * expr.c (safe_from_p): Likewise.
18741         (expand_expr_real_1): Likewise.
18742         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
18743         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
18744         * gengtype.c (adjust_field_tree_exp): Likewise.
18745         * stmt.c (warn_if_unused_value): Likewise.
18746         * tree-gimple.c (recalculate_side_effects): Likewise.
18747         * tree-pretty-print.c (dump_generic_node): Likewise.
18748         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
18749         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
18750         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
18751
18752         * stmt.c (struct stmt_status): Remove x_last_expr_type,
18753         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
18754         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
18755         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
18756         all the bits that tracked last_expr.
18757         (expand_end_bindings): Don't track last_expr.
18758         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
18759         (clear_last_expr): Remove.
18760         (expand_asm): Don't call it.
18761         (expand_asm_operands, expand_end_cond): Likewise.
18762         (expand_naked_return, expand_null_return_1): Likewise.
18763         * c-typeck.c (c_begin_compound_stmt): Likewise.
18764         * cfgexpand.c (expand_block): Use expand_expr_stmt.
18765         * expr.c (expand_expr_real_1): Likewise.
18766         * tree.h: Update prototypes.
18767
18768         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
18769         (struct emit_status): Remove sequence_rtl_expr.
18770         (struct function): Remove x_rtl_expr_chain.
18771         (seq_rtl_expr, rtl_expr_chain): Remove.
18772         * function.c (struct temp_slot): Remove rtl_expr.
18773         (assign_stack_temp_for_type): Don't set it.
18774         (free_temp_slots, pop_temp_slots): Don't check it.
18775         (free_after_compilation): Don't clear x_rtl_expr_chain.
18776         (fixup_var_refs): Don't search it.
18777         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
18778         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
18779         or seq_rtl_expr.
18780         (push_topmost_sequence): Likewise.
18781         (end_sequence, init_emit): Likewise.
18782         (start_sequence_for_rtl_expr): Remove.
18783         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
18784         * rtl.h (preserve_rtl_expr_result): Remove.
18785
18786 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
18787
18788         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
18789         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
18790         typos.
18791
18792 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
18793
18794         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
18795         (STANDARD_STARTFILE_PREFIX_2): Define.
18796         (standard_startfile_prefix_1): Initialize to
18797         STANDARD_STARTFILE_PREFIX_1.
18798         (standard_startfile_prefix_2): Initialize to
18799         STANDARD_STARTFILE_PREFIX_2.
18800         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
18801         (STANDARD_STARTFILE_PREFIX_1): Define.
18802         (STANDARD_STARTFILE_PREFIX_2): Define.
18803         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
18804         (STANDARD_STARTFILE_PREFIX_2): Document.
18805
18806 2004-07-01  Richard Henderson  <rth@redhat.com>
18807
18808         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
18809         in order to disable scalarization.  Instead set a flag and wait
18810         for a candidate decl.
18811
18812 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
18813
18814         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
18815         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
18816         Use terminology "testsuite" and "enumerated".
18817
18818 2004-07-01  Richard Henderson  <rth@redhat.com>
18819
18820         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
18821         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
18822         (initial_return_save): Likewise.
18823         (flush_queued_reg_saves): Remap register numbers.
18824         (dwarf2out_return_reg): Likewise.
18825
18826 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18827
18828         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
18829
18830         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
18831         access functions for lower bound and element size and only output
18832         if lower bound nonzero or element size not same as that of type.
18833         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
18834
18835 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
18836
18837         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
18838
18839 2004-07-01  Per Bothner  <per@bothner.com>
18840
18841         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
18842
18843 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
18844
18845         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
18846         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
18847         first operand.  Don't optimize if the bitfield is volatile.
18848
18849 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
18850
18851         * c-pretty-print.c (pp_c_postfix_expression): Handle
18852         floating-point comparison operators.
18853         (pp_c_expression): Pass floating-point comparison
18854         operators to pp_c_postfix_expression.
18855
18856 2004-07-01  Roger Sayle  <roger@eyesopen.com>
18857
18858         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
18859         rtx_cost instead of "had_mult" to determine whether the transformed
18860         expression is cheaper than the original.
18861
18862 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
18863
18864         * alias.c (get_alias_set, canon_rtx, get_addr,
18865         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
18866         Use MEM_P.
18867         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
18868         expand_builtin): Likewise.
18869         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
18870         Likewise.
18871         * combine.c (can_combine_p, combinable_i3pat, try_combine,
18872         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
18873         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
18874         record_dead_and_set_regs_1, get_last_value_validate,
18875         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
18876         * cse.c (check_dependence, canon_hash, equiv_constant,
18877         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
18878         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
18879         count_reg_usage): Likewise.
18880         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
18881         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
18882         cselib_record_sets): Likewise.
18883         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
18884         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
18885         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
18886         * df.c (df_uses_record): Likewise.
18887         * dojump (do_jump): Likewise.
18888         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
18889         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
18890         decl_start_label): Likewise.
18891         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
18892         operand_subword, change_address_1, make_safe_from): Likewise.
18893         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
18894         stabilize, force_not_mem): Likewise.
18895         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
18896         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
18897         * expr.c (convert_move, convert_modes, emit_block_move,
18898         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
18899         emit_move_insn_1, expand_assignment, store_expr,
18900         store_constructor_field, store_constructor, store_field,
18901         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
18902         Likewise.
18903         * final.c (cleanup_subreg_operands, alter_subreg,
18904         get_mem_expr_from_op): Likewise.
18905         * flow.c (notice_stack_pointer_modification_1,
18906         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
18907         Likewise.
18908         * function.c (mark_temp_addr_taken, preserve_temp_slots,
18909         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
18910         optimize_bit_field, flush_addressof, purge_addressof_1,
18911         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
18912         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
18913         keep_stack_depressed): Likewise.
18914         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
18915         noce_process_if_block, find_memory): Likewise.
18916         * integrate.c (subst_constants, allocate_initial_values): Likewise.
18917         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
18918         update_equiv_regs): Likewise.
18919         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
18920         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
18921         * optabs.c (expand_abs, emit_unop_insn): Likewise.
18922         * passes.c (rest_of_handle_final): Likewise.
18923         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
18924         move2add_note_store): Likewise.
18925         * ra-build.c (detect_remat_webs): Likewise.
18926         * ra-debug.c (dump_static_insn_cost): Likewise.
18927         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
18928         * recog.c (validate_change, apply_change_group, cancel_changes,
18929         validate_replace_rtx_1, general_operand, register_operand,
18930         nonmemory_operand, push_operand, pop_operand, memory_operand,
18931         indirect_operand, asm_operand_ok, offsettable_memref_p,
18932         offsettable_nonstrict_memref_p, constrain_operands,
18933         store_data_bypass_p): Likewise.
18934         * reg-stack.c (subst_stack_regs_pat): Likewise.
18935         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
18936         copy_cost, reg_scan_mark_refs): Likewise.
18937         * regmove.c (optimize_reg_copy_3, stack_memref_p,
18938         combine_stack_adjustments_for_block): Likewise.
18939         * regrename.c (copyprop_hardreg_forward_1): Likewise.
18940         * reload.c (can_reload_into, push_reload, decompose, immune_p,
18941         find_reloads, find_reloads_address, find_reloads_address_1,
18942         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
18943         find_equiv_reg): Likewise.
18944         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
18945         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
18946         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
18947         delete_address_reloads): Likewise.
18948         * resource.c (mark_referenced_resources): Likewise.
18949         * rtlanal.c (get_jump_table_offset, count_occurrences,
18950         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
18951         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
18952         num_sign_bit_copies1): Likewise.
18953         * rtlhooks.c (gen_lowpart_general): Likewise.
18954         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
18955         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
18956         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
18957         sdbout_global_decl): Likewise.
18958         * simplify-rtx.c (simplify_subreg): Likewise.
18959         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
18960         expand_anon_union_decl, expand_end_case_type): Likewise.
18961         * unroll.c (calculate_giv_inc): Likewise.
18962         * var-tracking.c (stack_adjust_offset_pre_post,
18963         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
18964         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
18965         vt_add_function_parameters): Likewise.
18966         * varasm.c (make_var_volatile, notice_global_symbol,
18967         assemble_external, decode_addr_const, mark_weak,
18968         default_encode_section_info): Likewise.
18969
18970 2004-07-01  Steven Bosscher  <stevenb@suse.de>
18971
18972         * stmt.c (check_seenlabel): Remove.
18973         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
18974
18975 2004-07-01  Richard Henderson  <rth@redhat.com>
18976
18977         * function.h (struct function): Remove x_function_call_count.
18978         (function_call_count): Remove.
18979         * calls.c (expand_call): Don't set it.
18980         * integrate.c (copy_rtx_and_substitute): Likewise.
18981
18982         * function.h (struct function): Remove x_cleanup_label.
18983         (cleanup_label): Remove.
18984         * stmt.c (expand_value_return): Don't use it.
18985         * function.c (free_after_compilation): Don't set it.
18986         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
18987         * cfgexpand.c (tree_expand_cfg): Update call.
18988         * tree.h (expand_function_start): Update decl.
18989
18990 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
18991
18992         PR c/1027
18993         * c-lang.c (c_initialize_diagnostics): Move from here ...
18994         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
18995         (c_tree_printer): Use pretty-printer to format %T.
18996         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
18997         before '*' if not C++.
18998         (pp_c_direct_abstract_declarator): Don't try to print array upper
18999         bound for flexible array members.
19000         * c-tree.h: Include "diagnostic.h".
19001         (c_initialize_diagnostics): Declare.
19002         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
19003         * c-format.c (format_type_warning): New function.  Improve
19004         diagnostics for incorrect format argument types.
19005         (check_format_types): Use it.  Add two parameters.  Use the
19006         TYPE_MAIN_VARIANT of wanted_type.
19007         (check_format_info_main): Pass new parameters to
19008         check_format_types.
19009         (struct format_wanted_type): Update comment.
19010
19011 2004-07-01  Nick Clifton  <nickc@redhat.com>
19012
19013         * target.h (struct gcc_target): Add new field to struct cxx:
19014         import_export_class.
19015         * target-def.h (TARGET_CXX): Initialise the new field.
19016         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
19017         the new field.
19018         * doc/tm.texi: Document the new target hook.
19019
19020 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19021
19022         * builtins.c (fold_builtin_classify): Fix typo.
19023
19024 2004-07-01  Richard Henderson  <rth@redhat.com>
19025
19026         * function.c (identify_blocks, identify_blocks_1): Remove.
19027         * function.h (identify_blocks): Remove.
19028         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
19029
19030 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19031
19032         * builtins.c (fold_builtin_classify): New.
19033         (fold_builtin_unordered_cmp): Fix commentary.
19034         (fold_builtin): Use it.
19035         * builtins.def: Define builtins for isnan,
19036         isnanf, isnanl, finite, finitef, finitel,
19037         isinf, isinff, isinfl.
19038
19039 2004-07-01  Richard Henderson  <rth@redhat.com>
19040
19041         * function.h (struct function): Remove dont_emit_block_notes.
19042         * gimple-low.c (lower_function_body): Don't set it.
19043         * cfgexpand.c (expand_block): Don't check it.
19044         * cfglayout.c (insn_locators_initialize): Likewise.
19045         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
19046         * passes.c (rest_of_compilation): Likewise.
19047         * stmt.c (expand_start_bindings_and_block): Likewise.
19048         (expand_end_bindings): Likewise.
19049
19050 2004-07-01  Richard Henderson  <rth@redhat.com>
19051
19052         * cgraph.h (cgraph_build_static_cdtor): Declare.
19053         * cgraphunit.c (cgraph_build_static_cdtor): New.
19054         * c-objc-common.c (build_cdtor): Use it.
19055         * coverage.c (create_coverage): Likewise.
19056         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
19057         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
19058
19059 See ChangeLog.11 for earlier changes.