OSDN Git Service

Fix ppc-darwin bootstrap failure.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-09-06  James E Wilson  <wilson@specifixinc.com>
2
3         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
4
5 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
6
7         * final.c (output_in_slot): Delete.
8         (final_scan_insn): Revert 2004-09-03 change.
9         (output_asm_insn): Likewise.
10         * config/sparc/sparc.c (output_return): Likewise.
11         (output_sibcall): Likewise.
12
13 2004-09-06  Jan Hubicka  <jh@suse.cz>
14
15         * loop.c (loop_dump_aux): Do not print RTL when not available.
16         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
17         frontend specific type nodes.
18         (produce_memory_decl_rtl): Break out from ...
19         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
20         (get_computation_at): Avoid random tree sharing.
21         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
22
23 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
24
25         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
26         unnecessary commands.
27
28 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
29
30         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
31         (bitmap.o): Likewise.
32
33 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
34
35         Unify the management of RTL and tree-level dump files.
36
37         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
38         Don't print function name to the dump file, the pass manager
39         would do this for us. Add code from the top of
40         rest_of_compilation, up to the initial RTL dump.
41         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
42         close the DFI_sibling dump file.
43         (rest_of_compilation): Don't do that here.  Remove code up to the
44         initial RTL dump.
45         (init_optimization_passes): Remove.
46         (pass_rest_of_compilation): Change pass name to NULL.
47         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
48         Do not call init_optimization_passes.
49         * toplev.h (init_optimization_passes): Remove.
50
51         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
52         finish_graph_dump_file): Remove SUFFIX parameter.
53         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
54         finish_graph_dump_file): Likewise.
55
56         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
57         * cfgexpand.c (pass_expand): Adjust.
58         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
59         * passes.c (pass_rest_of_compilation): Adjust.
60         * predict.c (pass_profile): Adjust.
61         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
62         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
63         pass_split_crit_edges, pass_warn_function_return): Adjust.
64         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
65         * tree-dfa.c (pass_referenced_vars): Adjust.
66         * tree-eh.c (pass_lower_eh): Adjust.
67         * tree-if-conv.c (pass_build_ssa): Adjust.
68         * tree-into-ssa.c (pass_build_ssa): Adjust.
69         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
70         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
71         * tree-nrv.c (pass_nrv): Adjust.
72         * tree-optimize.c (pass_gimple, pass_all_optimizations,
73         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
74         pass_init_datastructures): Adjust.
75         * tree-outof-ssa.c (pass_del_ssa): Adjust.
76         * tree-profile.c (pass_tree_profile): Adjust.
77         * tree-sra.c (pass_sra): Adjust.
78         * tree-ssa-alias.c (pass_may_alias): Adjust.
79         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
80         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
81         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
82         * tree-ssa-dom.c (pass_dominator): Adjust.
83         * tree-ssa-dse.c (pass_dse): Adjust.
84         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
85         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
86         * tree-ssa-loop-ch.c (pass_ch): Adjust.
87         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
88         pass_loop_done, pass_complete_unroll, pass_iv_canon,
89         pass_iv_optimize, pass_vectorize): Adjust.
90         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
91         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
92         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
93         pass_late_warn_uninnitialized): Adjust.
94         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
95
96         * Makefile.in (tree-dump.o): Add new dependencies.
97         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
98         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
99         Likewise.
100         * toplev.c (dump_file_name): New.
101         * tree-dump.c (dump_enable_all): Add LETTER parameter.
102         (struct dump_file_info): Add NUM and LETTER fields.
103         (dump_files): Adjust and add RTL dump files.
104         (dump_register): Add NUM and LETTER fields.
105         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
106         (dump_begin): Use get_dump_file_name.
107         (dump_switch_p_1): Adjust call to dump_enable_all.
108         * tree-dump.h (dump_register): Adjust prototype.
109         * tree-optimize.c (register_one_dump_file): Take dump file index.
110         Support flags for RTL dumps.
111         (register_dump_files): Fill in NUM field of struct dump_file_info.
112         Track properties both when the gate is executed and when it is not.
113         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
114         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
115         dumps of RTL.
116         * tree-pass.h (dump_file_name): New.
117         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
118         New.
119
120         * Makefile.in (passes.o): Add new dependencies.
121         * passes.c (struct dump_file_info, enum dump_file_index,
122         dump_file_tbl, init_optimization_passes): Remove.
123         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
124         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
125         dump_enabled_p.
126         (finish_optimization_passes): Update finish_graph_dump_file loop.
127         (enable_rtl_dump_file): Remove.
128         * tree-dump.c (dump_files): Adjust and add RTL dump files.
129         (enable_rtl_dump_file): Add here.
130         * tree.h (enum tree_dump_index): Add RTL dump file indices.
131         * doc/invoke.texi (Debugging options): Document new RTL debugging
132         options.  Update.
133
134 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
135
136         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
137         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
138         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
139         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
140         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
141         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
142         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
143         vec.h: Fix comment formatting.
144
145 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
146
147         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
148         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
149         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
150         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
151         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
152         tree-ssa-loop-niter.c, tree-ssa-operands.c,
153         tree-ssa-operands.h, tree-ssa-propagate.c,
154         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
155         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
156
157 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
158
159         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
160         vectorizer is enabled.
161
162 2004-09-05  Andreas Jaeger  <aj@suse.de>
163
164         * tree-if-conv.c: Spell check comments and clean up whitespace.
165
166 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
167
168         * tree-ssa-loop-ivopts.c: New file.
169         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
170         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
171         target_pres_cost, target_spill_cost): Declare.
172         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
173         spill_cost): Renamed to ...
174         (target_avail_regs, target_res_regs, target_small_cost,
175         target_pres_cost, target_spill_cost): ... and exported.
176         (init_set_costs, global_cost_for_size): Work with renamed variables.
177         * common.opt (flag_ivopts): New flag.
178         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
179         REF_ORIGINAL.
180         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
181         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
182         generating SSA form.
183         (force_gimple_operand): New function.
184         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
185         * tree-cfg.c (stmt_bsi): New function.
186         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
187         PARAM_IV_MAX_CONSIDERED_USES): New.
188         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
189         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
190         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
191         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
192         * tree-nested.c (build_addr): Export.
193         * tree-optimize.c (init_tree_optimization_passes): Add
194         pass_iv_optimize.
195         * tree-pass.h (pass_iv_optimize): Declare.
196         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
197         IMAGPART_EXPR.
198         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
199         as a phi node argument.
200         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
201         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
202         functions.
203         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
204         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
205         pass_iv_optimize): New pass.
206         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
207         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
208         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
209         * tree.h (REF_ORIGINAL): New macro.
210         (build_int_cst_type, unsigned_type_for, zero_p,
211         cst_and_fits_in_hwi, build_addr): Declare.
212         * doc/invoke.texi (-fivopts): Document.
213         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
214         PARAM_IV_MAX_CONSIDERED_USES): Document.
215         * doc/passes.texi: Document induction variable optimizations pass.
216
217 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
218
219         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
220         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
221         * c-common.c (c_common_attribute_table): Accept parameters to
222         sentinel attribute.
223         (check_function_sentinel, handle_sentinel_attribute): Likewise.
224         * doc/extend.texi: Update accordingly.
225
226 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
227
228         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
229         New.
230         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
231         attribute.
232         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
233         New functions.
234         (c_common_attribute_table): Add `sentinel' attribute.
235         (check_function_arguments): Handle `sentinel' attribute.
236         * doc/extend.texi: Document `sentinel' attribute.
237
238 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
239
240         * configure: Regenerated.
241
242 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
243
244         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
245
246         * tree.c (save_expr): No longer TREE_READONLY.
247
248 2004-09-04  Jan Hubicka  <jh@suse.cz>
249
250         * passes.c (rest_of_clean_state):  Fix merge conflict made during
251         commiting the patch.
252
253 2004-09-04  Jan Hubicka  <jh@suse.cz>
254
255         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
256
257 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
258
259         * doc/md.texi (shift patterns): New anchor.  Add reference to
260         TARGET_SHIFT_TRUNCATION_MASK.
261         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
262         * target.h (shift_truncation_mask): New target hook.
263         * targhook.h (default_shift_truncation_mask): Declare.
264         * targhook.c (default_shift_truncation_mask): Define.
265         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
266         (TARGET_INITIALIZER): Include it.
267         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
268         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
269         reject all out-of-range values.  Fix sign-extension code for modes
270         whose width is smaller than HOST_BITS_PER_WIDE_INT.
271         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
272         (expand_superword_shift, expand_subword_shift): Likewise.
273         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
274         (expand_binop): Use them to implement double-word shifts.
275         * config/arm/arm.c (arm_shift_truncation_mask): New function.
276         (TARGET_SHIFT_TRUNCATION_MASK): Define.
277
278 2004-09-04  Jan Hubicka  <jh@suse.cz>
279
280         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
281         (mix): New macro copied from hashtab.c
282         (iterative_hash_hashval_t, iterative_hash_pointer,
283         iterative_hash_host_wide_int): New functions based on hashtab.c
284         implementation.
285
286 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
287
288         * config/mips/mips.md (mask): New mode attribute.
289         (zero_extendsidi2): Add memory alternative.
290         (*zero_extendsidi2_mem): Delete.
291         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
292         memory_operand in the TARGET_MIPS16 check.
293         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
294         Redefine using :GPR and :SHORT.
295         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
296
297 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
298
299         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
300         using rint_optab.
301         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
302         expand_builtin_mathfn.
303         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
304         btrunc?f patterns for btrunc_optab. Implement rint_optab using
305         rint?f patterns.
306         * optabs.c (init_optabs): Initialize rint_optab.
307         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
308         Add new OTI_rint.
309         (btrunc_optab): Rename macro from trunc_optab.
310         (rint_optab): Define corresponding macro.
311
312         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
313         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
314
315         * config/i386/i386-protos.h (emit_i387_cw_initialization):
316         Change prototype. Add new int parameter.
317         * config/i386/i386.c (emit_i387_cw_initialization):
318         Handle new rounding modes.
319
320         * config/i386/i386.h (enum fp_cw_mode): Delete.
321         (MODE_NEEDED): Handle new rounding modes.
322         (EMIT_MODE_SET): Change condition to handle new rounding modes.
323
324         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
325         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
326         represent different rounding modes of frndint insn.
327         (type): Add frndint type.
328         (i387, length, memory): Handle this type.
329         (i387_cw): New attribute definition.
330         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
331         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
332         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
333         Add "i387_cw" attribute defined to "trunc".
334         (x86_fnstcw_1): Remove comment.
335         (*frndintxf2): Rename insn definition to frndintxf2. Move
336         insn definition near rint?f2 expanders.
337         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
338         rintf and rintl built-ins as inline x87 intrinsics.
339         (frndintxf2_floor): New pattern to implement floor rounding
340         mode with frndint x87 instruction.
341         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
342         floorf and floorl built-ins as inline x87 intrinsics.
343         (frndintxf2_ceil): New pattern to implement ceil rounding
344         mode with frndint x87 instruction.
345         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
346         ceilf and ceill built-ins as inline x87 intrinsics.
347         (frndintxf2_trunc): New pattern to implement trunc rounding
348         mode with frndint x87 instruction.
349         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
350         truncf and truncl built-ins as inline x87 intrinsics.
351         (frndintxf2_mask_pm): New pattern to implement rounding
352         mode with exceptions with frndint x87 instruction.
353         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
354         implement nearbyint, nearbyintf and nearbyintl built-ins as
355         inline x87 intrinsics.
356
357 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
358
359         * config/mips/mips.md (SHORT): New mode macro.
360         (size): New mode attribute.
361         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
362         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
363         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
364         !ISA_HAS_SEB_SEH.
365         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
366         *extend[qh]isi2_hw patterns and extending them to di.
367         (extendqihi2): Implement as define_insn_and_split that produces
368         extendqisi2 after reload.
369
370 2004-09-03  Devang Patel  <dpatel@apple.com>
371
372         * Makefile.in (OBJS-common): Add tree-if-conv.o
373         (tree-if-conv.o): New rule.
374         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
375         (get_loop_body_in_bfs_order): New.
376         * cfgloop.h (get_loop_body_in_bfs_order): New.
377         * tree-flow.h (enum move_pos): Move here from ..
378         * tree-ssa-loop-im.c (enum move_pos): here.
379         (movement_possibility): Make externally visible.
380         * tree-optimize.c (init_tree_optimization_passes): New entry for
381         if conversion pass.
382         * tree-pass.h (pass_if_conversion): New.
383         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
384         * tree-if-conv.c: New file.
385         * doc/passes.texi: Document tree if-conversion pass.
386         * doc/tree-ssa.texi: Same.
387
388 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
389
390         PR target/14925:
391         Makefile.in (LIB2ADDEHSTATIC): New.
392         (LIB2ADDEHSHARED): New.
393         (LIBUNWIND): New.
394         (LIBUNWINDDEP): New.
395         (SHLIBUNWIND_LINK): New.
396         (SHLIBUNWIND_INSTALL): New.
397         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
398         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
399         (clean): Remove libunwind*
400         (stage1-start): Remove and copy stage1/libunwind*.
401         (stage2-start): Remove and copy stage2/libunwind*.
402         (stage3-start): Remove and copy stage3/libunwind*.
403         (stage4-start): Remove and copy stage4/libunwind*.
404         (stageprofile-start): Remove and copy stageprofile/libunwind*.
405         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
406
407         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
408         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
409         tmake_file if --with-system-libunwind isn't used.
410
411         * config/ia64/t-glibc-libunwind: New file.
412         * config/t-libunwind-elf: Likewise.
413         * unwind-compat.c: Likewise.
414         * unwind-compat.h: Likewise.
415         * unwind-dw2-fde-compat.c: Likewise.
416
417         * config/ia64/t-glibc (LIB2ADDEH): Updated.
418         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
419
420         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
421         aliases if needed.
422         * unwind-dw2-fde-glibc.c: Likewise.
423         * unwind-dw2.c: Likewise.
424
425         * config/t-libunwind (LIB2ADDEH): Updated.
426         (LIB2ADDEHSTATIC): New.
427         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
428         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
429
430         * configure.ac: Change --enable-libunwind-exceptions to
431         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
432         * configure: Regenerated.
433         * config.in: Updated.
434
435         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
436         above and mention --with-system-libunwind.
437         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
438         removed in gcc 3.4.3 and later.
439
440         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
441         USE_LIBUNWIND_EXCEPTIONS is defined.
442
443         * mklibgcc.in: Support libunwind.
444
445 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
446
447         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
448         m_NOCONA.
449
450 2004-09-03  Richard Henderson  <rth@redhat.com>
451
452         PR middle-end/9997
453         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
454         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
455         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
456         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
457         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
458         resize_stack_vars_conflict, add_stack_var_conflict,
459         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
460         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
461         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
462         expand_one_static_var, expand_one_hard_reg_var,
463         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
464         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
465         (expand_used_vars): Rewrite.
466         * Makefile.in (cfgexpand.o): Update dependencies.
467
468 2004-09-04  Jan Hubicka  <jh@suse.cz>
469
470         * cfg.c (free_edge): Use ggc_free.
471         (expunge_block): Use ggc_free.
472         * passes.c (rest_of_clean_state): Free after compilation.
473         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
474         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
475
476 2004-09-03  James E Wilson  <wilson@specifixinc.com>
477
478         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
479         DECL_EXTERNAL check.
480
481 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
482
483         * final.c (output_in_slot): New global variable.
484         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
485         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
486         'output_in_slot' before invoking output_asm_insn.
487         (output_asm_insn): Add a space after the tab if 'output_in_slot'
488         is set.
489         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
490         final_scan_insn.
491         (output_sibcall): Likewise.
492
493 2004-09-03  Jan Hubicka  <jh@suse.cz>
494
495         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
496         * tree-ssanames (init_ssanames): Likewise.
497
498 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
499
500         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
501         objc_declare_protocols, objc_start_protocol,
502         objc_start_class_interface, objc_start_category_interface,
503         objc_continue_interface, objc_finish_interface,
504         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
505         objc_start_class_implementation, objc_start_category_implementation,
506         objc_continue_implementation, objc_finish_implementation,
507         objc_add_method_declaration, objc_start_method_definition,
508         objc_finish_method_definition, objc_build_keyword_decl,
509         objc_build_method_signature, objc_build_encode_expr,
510         objc_build_protocol_expr, objc_build_selector_expr,
511         objc_build_message_expr, objc_build_string_object,
512         objc_get_class_reference, objc_get_protocol_qualified_type,
513         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
514
515 2004-09-03  James E Wilson  <wilson@specifixinc.com>
516
517         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
518
519         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
520         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
521         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
522         (mips_recip1_<fmt>): Use frdiv1 type.
523         (mips_recip2_<fmt>): Use frdiv2 type.
524         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
525         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
526         and frsqrt1.
527         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
528
529 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
530
531         * reload.c (find_reloads): Swap operand_loc pointers for
532         find_dummy_reload if we have swapped two operands.
533
534 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
535
536         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
537         to get the tablejump-insn before the jump-table label.
538
539 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
540
541         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
542         objc_declare_protocols, objc_build_message_expr,
543         objc_finish_message_expr, objc_build_selector_expr,
544         objc_build_protocol_expr, objc_build_encode_expr,
545         objc_build_string_object, objc_get_protocol_qualified_type,
546         objc_get_class_reference, objc_get_class_ivars,
547         objc_start_class_interface, objc_start_category_interface,
548         objc_start_protocol, objc_continue_interface, objc_finish_interface,
549         objc_start_class_implementation, objc_start_category_implementation,
550         objc_continue_implementation, objc_finish_implementation,
551         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
552         objc_add_method_declaration, objc_start_method_definition,
553         objc_finish_method_definition, objc_add_instance_variable,
554         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
555         objc_finish_try_stmt, objc_begin_catch_clause,
556         objc_finish_catch_clause, objc_build_finally_clause,
557         objc_build_synchronized, objc_static_init_needed_p,
558         objc_generate_static_init_call): New prototypes.
559
560 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
561
562         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
563         is only one reg.
564         (ia64_function_value): Ditto.
565
566 2004-09-03  Jan Beulich  <jbeulich@novell.com>
567
568         * config.gcc: Resurrect NetWare as a target. Handle special case of
569         Novell linker to be used (specified through --with-ld=) and threading
570         model of either Posix (default) or NKS.
571         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
572         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
573         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
574         * config/i386/netware.c, config/i386/netware.h: New.
575         * config/i386/nwld.c, config/i386/nwld.h: New.
576         * config/i386/netware-crt0.c: New.
577         * config/i386/netware-libgcc.c: New.
578         * config/i386/netware-libgcc.def: New.
579         * config/i386/netware-libgcc.exp: New.
580         * config/i386/t-netware, config/i386/t-nwld: New.
581         * gthr-nks.h: New.
582         * doc/install.texi: Document NKS threading model.
583
584 2004-09-03  Jan Beulich  <jbeulich@novell.com>
585
586         PR c/7054
587         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
588         * tree.h (initial_max_fld_align): Declare
589         * stor-layout.c (initial_max_fld_align): Define and initialize.
590         (maximum_field_alignment): Initialize to the same value.
591         * common.opt: Add -fpack-struct= variant of switch.
592         * opts.c: Handle -fpack-struct= variant of switch.
593         * c-pragma.c: Change #pragma pack() handling so that it becomes
594         compatible to other compilers: accept individual 'push' argument,
595         make final pop restore (command line) default, correct interaction
596         of push/pop and sole specification of a new alignment (so that the
597         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
598         to #pragma pack(push, <n>).
599         * doc/extend.texi: New node "Structure-Packing Pragmas" under
600         "Pragmas", describing #pragma pack.
601         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
602         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
603         Document new TARGET_DEFAULT_PACK_STRUCT.
604
605 2004-09-03  Devang Patel  <dpatel@apple.com>
606
607         * dwarf2out.c (gen_field_die). Equate decl number to die.
608
609 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
610
611         PR target/15832
612         * global.c (modify_reg_pav): New function.
613         (make_accurate_live_analysis): Call the new function.  Move pavin
614         modification by earlyclobber set into the new function.
615
616 2004-09-03  Andreas Schwab  <schwab@suse.de>
617
618         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
619         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
620         extended.
621
622 2004-09-02  Jan Beulich  <jbeulich@novell.com>
623
624         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
625         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
626         not unwind code specific ones.
627         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
628         Remove unwind code specific dependencies.
629         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
630         Remove gbl-ctors.h.
631         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
632         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
633         * tsystem.h: Declare memcpy and memset when inhibit_libc.
634
635 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
636
637         * combine.c (try_combine): Delay modifying of insns which cannot
638         be easily undone.
639
640 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
641
642         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
643         tree-loop-im.
644         * gcc/tree-ssa-loop.c: Ditto
645         * gcc/tree-ssa-loop-ivcanon.c: Ditto
646         * gcc/doc/invoke.texi: Ditto.
647
648 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
649
650         * c-decl.c (store_parm_decls_newstyle): Make static.
651         (store_parm_decls_from): New function.
652         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
653         (store_parm_decls_from): New prototype.
654
655 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
656
657         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
658         HImode with STRICT_ALIGNMENT.
659
660 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
661
662         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
663         (TARGET_OS_CPP_BUILTINS): Likewise.
664         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
665         TARGET_BPABI_CPP_BUILTINS.
666
667 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
668
669         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
670
671 2004-09-02  Eric Christopher  <echristo@redhat.com>
672
673         * builtins.c (expand_builtin_cabs): Delete.
674         (expand_builtin): If unable to fold the values do a normal
675         library call for builtin_cab*.
676         (fold_builtin_cabs): Depend on optimize and optimize_size.
677         * optabs.c (expand_cmplxdiv_straight): Delete.
678         (expand_cmplxdiv_wide): Ditto.
679         (expand_vector_binop): Ditto.
680         (expand_vector_unop): Ditto.
681         (expand_complex_abs): Delete.
682         (expand_binop): Remove calls to above functions.
683         Remove open coding of complex arithmetic.
684         (expand_unop): Ditto.
685         * optabs.h: Remove prototypes.
686
687 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
688
689         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
690         * c-tree.h (store_parm_decls_newstyle): New prototype.
691
692 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
693
694         * config/rs6000/rs6000.c (expand_block_clear): Use vector
695         instructions if available.
696         (expand_block_move): Likewise.
697
698 2004-09-03  Jan Hubicka  <jh@suse.cz>
699
700         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
701
702 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
703
704         * config/arm/symbian.h (LIB_SPEC): Define to empty.
705         * config/arm/t-symbian (SHLIB_LC): Likewise.
706
707 2004-09-02  Paul Brook  <paul@codesourcery.com>
708
709         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
710
711 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
712
713         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
714         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
715         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
716         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
717         (mips_issue_rate): Remove unreachable abort.
718         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
719         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
720         (mips_block_move_straight, print_operand_address, mips_file_start)
721         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
722         (mips_output_conditional_branch, mips_expand_builtin_direct)
723         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
724         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
725         with gcc_assert.
726
727 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
728
729         * config/mips/mips.md (*lea_high64): Change split condition to
730         flow2_completed.  Add a peephole2 to generate a more parallel version.
731
732 2004-09-02  Jan Hubicka  <jh@suse.cz>
733
734         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
735         GGC.
736
737         * ggc-page.c: include tree-flow.h.
738         (extra_order_size_table): Add stmt_ann_d.
739         (STAT_LABEL): Rename from ....
740         (LABEL): ... this one.
741         * Makefile.in (ggc-page.o): Add dependency.
742
743         * ggc-common.c (ggc_force_collect): New global variable.
744         (loc_description): Add fields "freed", "collected"
745         (ptr_hash): New static hash
746         (ptr_hash_entry): New structure.
747         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
748         (ggc_record_overhead): Take ptr argument, record it
749         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
750         (cmp_statistics): Imrove sorting.
751         (dump_ggc_loc_statistics): Output newly collected statistics
752         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
753         (ggc_free): Call ggc_free_overhead.
754         (ggc_collect): Force collection when asked to be forced.
755         (ggc_collect): Call ggc_prune_overhead_list.
756         * ggc.h (ggc_force_collect): Declare
757         (ggc_record_overhead): Update prototype.
758         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
759
760 2004-09-02  James E Wilson  <wilson@specifixinc.com>
761
762         * common.opt (ftrapping-math): Default to on.
763
764 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
765
766         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
767
768 2004-09-02  Denis Chertykov  <denisc@overta.ru>
769
770         PR target/16884
771         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
772         match_scratch.
773         (*movmemqi_insn): Likewise.
774         (*movmemhi): Likewise.
775         (clrmemhi): Likewise.
776         (*clrmemqi): Likewise.
777         (*clrmemhi): Likewise.
778
779 2004-09-02  Paul Brook  <paul@codesourcery.com>
780
781         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
782         default_use_cxa_atexit=yes.
783
784 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
785
786         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
787         (struct kernel_old_ucontext): Delete.
788         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
789         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
790         when IN_LIGGCC2.
791
792 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
793
794         * toplev.c (process_options): Fix typo.
795
796 2004-09-01  Richard Henderson  <rth@redhat.com>
797
798         PR middle-end/17258
799         * calls.c (initialize_argument_information): Tighten pass-through
800         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
801         Use build_fold_addr_expr.
802         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
803         that assumes ADDR_EXPR allocates stack space.
804         * fold-const.c (build_fold_addr_expr_with_type): Look through
805         WITH_SIZE_EXPR.
806
807 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
808
809         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
810         * ggc.h (ggc_alloc_rtx): Delete.
811
812 2004-09-01  Roger Sayle  <roger@eyesopen.com>
813
814         * expmed.c (enum alg_code): Remove long unused enumeration values.
815         (struct mult_cost): New structure to hold the "score" of a synthetic
816         multiply sequence, including both a rtx_cost and a latency field.
817         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
818         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
819         (struct algorithm): Change type of cost field to be mult_cost.
820         (synth_mult): Change type of cost_limit argument to be a
821         pointer to a mult_cost.  Update all cost comparisons to use the
822         new mult_cost infrastructure.  For alg_add_factor and
823         alg_sub_factor operations, latency is lower than the rtx_cost.
824         (choose_mult_variant):  Update calls to synth_mult.  Perform
825         cost comparisons using the new mult_cost infrastructure.
826         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
827         to optain the total rtx_cost of a synth_mult "algorithm".
828
829 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
830
831         * config/rs6000/power4.md: Increase store latency to 12.
832         * config/rs6000/power5.md: Same.
833
834 2004-09-01  James E Wilson  <wilson@specifixinc.com>
835
836         PR target/14064
837         * config/avr/avr.c (avr_unique_section): Delete prototype and
838         definition.
839         (TARGET_ASM_UNIQUE_SECTION): Delete.
840
841 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
842
843         * c-parse.in (primary): Call objc_build_message_expr(),
844         objc_build_selector_expr(), objc_build_protocol_expr(),
845         objc_build_encode_expr() and objc_build_string_object() instead of
846         build_message_expr(), build_selector_expr(), build_protocol_expr(),
847         build_encode_expr() and build_objc_string_object(), respectively.
848         (component_decl_list2): Call objc_get_class_ivars() instead of
849         get_class_ivars_from_name().
850         (keyworddecl): Call objc_build_keyword_decl() instead of
851         build_keyword_decl().
852         (receiver): Call objc_get_class_reference() instead of
853         get_class_reference().
854         (reswords): Add blank line before @@ifobjc section, for clarity.
855
856 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
857
858         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
859         to Altivec vetors.
860
861 2004-09-01  Wu Yongwei  <adah@sh163.net>
862             Danny Smith  <dannysmith@users.sourceforge.net>
863
864         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
865         not Windows 'DWORD'.
866         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
867         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
868         (__gthr_win32_recursive_mutex_init_function): Add prototype for
869         __GTHREAD_HIDE_WIN32API case..
870         (__gthr_win32_recursive_mutex_lock): Likewise.
871         (__gthr_win32_recursive_mutex_trylock): Likewise.
872         (__gthr_win32_recursive_mutex_unlock): Likewise.
873         (__gthread_recursive_mutex_init_function); Add definition for
874         __GTHREAD_HIDE_WIN32API case.
875         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
876         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
877         call to InterlockedDecrement.
878
879 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
880
881         * tree-tailcall.c (find_tail_calls): Also fail is statement has
882         volatile operands.
883
884         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
885
886         * doc/c-tree.texi: Document new operands for ARRAY_REF and
887         COMPONENT_REF.
888
889 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
890
891         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
892         * common.opt (fspeculative-prefetching): New.
893         * flags.h (flag_speculative_prefetching_set): Declare.
894         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
895         values.
896         * opts.c (flag_sepculative_prefetching_set): New variable.
897         (common_handle_option): Handle -fspeculative-prefetching.
898         * passes.c (rest_of_compilation): Ditto.
899         * profile.c (instrument_values, compute_value_histograms, branch_prob):
900         Use vectors instead of arrays.
901         * toplev.c (process_options): Handle -fspeculative-prefetching.
902         * rtl-profile.c: Include ggc.h.
903         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
904         rtl_gen_one_value_profiler_no_edge_manipulation,
905         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
906         argument changed.
907         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
908         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
909         argument changed.
910         * value-prof.c: Include ggc.h.
911         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
912         macros.
913         (insn_prefetch_values_to_profile, find_mem_reference_1,
914         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
915         speculative_prefetching_transform): New.
916         (value_profile_transformations): Call speculative_prefetching_transform.
917         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
918         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
919         tree_find_values_to_profile, find_values to profile): Use vectors
920         instead of arrays.
921         (free_profiled_values): Removed.
922         * value-prof.h (struct histogram_value): Renamed to
923         struct histogram_value_t.
924         (histogram_value, histogram_values): New types.
925         (find_values_to_profile): Declaration changed.
926         (free_profiled_values): Removed.
927         (struct profile_hooks): Type of argument of the hooks changed to
928         histogram_value.
929         * doc/invoke.texi (-fspeculative-prefetching): Document.
930
931 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
932
933         PR rtl-optimization/16408
934         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
935
936 2004-09-01  Richard Henderson  <rth@redhat.com>
937
938         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
939         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
940
941 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
942
943         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
944
945 2004-09-01  Mike Stump  <mrs@apple.com>
946
947         * config/darwin.c (machopic_symbol_defined_p): In addition to
948         being SYMBOL_REF_LOCAL_P, a symbol must also be
949         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
950         defined in this output file, or translation unit in the case
951         of IMA not being used.
952         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
953         never need .indirect_symbol when indirecting.
954
955 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
956
957         * Makefile.in (bb-reorder.o): Add several dependencies.
958
959 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
960
961         * fold-const.c (operand_equal_p): Require equal sign also for
962         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
963
964 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
965
966         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
967         for use in configargs.h.  Put the cname in a separate variable.  Use
968         that to set target_cpu_default2.
969
970 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
971             Nick Clifton  <nickc@redhat.com>
972
973         * config/sh/sh.md ("length"): Increase branch length when
974         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
975         constant, 2 byte for aligning the constant.
976
977 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
978
979         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
980         CPU.
981         (arm7tdmi-s): New CPU name.
982         * arm/arm.c (ARM_CORE): Update for new format.
983         * arm/arm.h (ARM_CORE): Likewise.
984         * arm/gentune.sh: Update for extra field.
985         * config.gcc: Likewise.
986         * arm/arm-tune.md: Regenerate.
987         * doc/invoke.texi: Document the real processor names for ARM cpus.
988
989 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
990
991         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
992         (floatdidf): New functions.
993         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
994         (floatdisf): New functions.
995         * t-arm-elf: Use them.
996
997 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
998
999         * c-common.h (lookup_interface): Remove prototype.
1000         (is_class_name): Rename to objc_is_class_name.
1001         (lookup_objc_ivar): Rename to objc_lookup_ivar.
1002         (get_current_scope): Rename to objc_get_current_scope.
1003         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
1004         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
1005         (yylexname): Call objc_is_class_name() instead of is_class_name().
1006         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
1007         instead of lookup_objc_ivar().
1008         * stub-objc.c (lookup_interface): Remove stub.
1009         (is_class_name): Rename to objc_is_class_name.
1010         (lookup_objc_ivar): Rename to objc_lookup_ivar.
1011
1012 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
1013
1014         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
1015         * config/arm/lib1funcs.asm: Do not include supplemental .S files
1016         when compiling for Symbian.
1017         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
1018         (TARGET_OS_CPP_BUILTINS): Likewise.
1019         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
1020
1021 2004-08-31  Stan Shebs  <shebs@apple.com>
1022
1023         * toplev.c (process_options): Ensure debug_hooks is initialized.
1024
1025 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
1026
1027         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
1028         * target.h (cxx): Add export_class_data.
1029         * config/arm/arm.c (arm_cxx_export_class_data): New function.
1030         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
1031         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
1032
1033 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1034
1035         * config/sh/sh.c (output_branch): Check the insn length possibly
1036         in the delayed slot.
1037
1038 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1039
1040         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
1041         blank after ')'.
1042         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
1043
1044         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
1045         (c_sizeof_of_alignof_type): Likewise.
1046         * expr.c (array_ref_element_size): Likewise.
1047         (highest_pow2_factor_for_target): Likewise.
1048         * gimplify.c (canonicalize_addr_expr): Likewise.
1049         (gimplify_compound_lval): Likewise.
1050         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
1051         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
1052         * varasm.c (assemble_variable): Likewise.
1053         (output_constant_def_contents): Alignments are unsigned.
1054
1055 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1056             Jeff Law  <law@redhat.com>
1057
1058         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
1059         gets modified.
1060
1061 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
1062
1063         * hooks.c (hook_bool_void_true): New function.
1064         * hooks.h (hook_bool_void_true): Declare.
1065         * target-def.h (TARGET_CXX): Add
1066         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
1067         * target.h (struct cxx): Add key_method_may_be_inline.
1068         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
1069         function.
1070         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
1071         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
1072         __THUMB_INTERWORK.
1073
1074 2004-08-31  Denis Chertykov  <denisc@overta.ru>
1075
1076         PR target/15417
1077         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
1078         frame pointer register only in Pmode while reload in progress.
1079
1080 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
1081
1082         PR target/15334
1083         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
1084         because it breaks the 32-bit shift patterns that rely on a match_dup.
1085
1086 2004-08-31  Matt Austern  <austern@apple.com>
1087
1088         * config/darwin.c (darwin_make_decl_one_only): Allocate section
1089         names once per compilation, instead of once per symbol.
1090
1091 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
1092
1093         * Makefile.in (build_subdir): New substitution.
1094         (fixinc.sh): Simplify heavily since fixincludes is already built.
1095         (stmp-fixinc): Depend on specs.ready.
1096         (install-mkheaders): Use new location of fixincludes.
1097         (clean): Do not descend into fixinc.
1098         (FORBUILD): Replace with ../$(build_subdir).
1099         * configure.ac (build_subdir): Substitute.
1100         (FORBUILD): Do not set.
1101         (all_outputs): Remove fixinc/Makefile.
1102         (default commands): Do not create links in fixinc.
1103         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
1104         the fixincludes configuration steps and substituting
1105         @FIXINCL@ in fixinc.in.
1106         * fixinc.in: New, from fixinc/fixincl.sh.
1107
1108         * fixinc/*: Removed.
1109
1110 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1111
1112         * attribs.c (strip_attrs): Remove.
1113         (split_specs_attrs): Move ...
1114         * c-decl.c: ... to here.
1115         * tree.h (split_specs_attrs, strip_attrs): Remove.
1116         * c-tree.h (split_specs_attrs): Declare.
1117
1118 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
1119
1120         * read-rtl.c: Disable RTL checking.
1121         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
1122
1123 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
1124
1125         * config/mips/mips.md (fcond): New code macro and attribute.
1126         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
1127         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
1128         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
1129
1130 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
1131
1132         Revert:
1133         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
1134         PR rtl-optimization/16590
1135         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
1136
1137 2004-08-30  Andrew Pinski  <apinski@apple.com>
1138
1139         * hard-reg-set.h:
1140         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
1141         * ChangeLog: Fix previous ChangeLog entry.
1142
1143         PR rtl-opt/13987
1144         * config.host (use_long_long_for_widest_fast_int): New, default is
1145         off.
1146         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
1147         * configure.ac: If use_long_long_for_widest_fast_int, then
1148         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
1149         * configure: Regenerate.
1150         * config.in: Regenerate.
1151         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
1152         New: widest integer type supported efficiently in hardware for the
1153         host.
1154         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
1155         HOST_BITS_PER_WIDEST_FAST_INT.
1156         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
1157         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
1158         HOST_WIDEST_FAST_INT
1159         instead of HOST_WIDE_INT.
1160         (HARD_REG_SET_LONGS): Likewise.
1161         (UHOST_BITS_PER_WIDE_INT): Likewise.
1162         Change the checks for the fast cases to be based on
1163         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
1164
1165 2004-08-30  Steven Bosscher  <stevenb@suse.de>
1166
1167         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
1168         not the pointers.
1169
1170 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
1171
1172         PR 12738
1173         PR 17205
1174         Radar 3460526
1175         Radar 3775729
1176         * c-decl.c (grokdeclarator): Produce error for 'static' on local
1177         function declaration.
1178
1179 2004-08-30  Richard Henderson  <rth@redhat.com>
1180
1181         * expr.c (array_ref_element_size): Force aligned_size back to
1182         sizetype.
1183         (component_ref_field_offset): Similarly for aligned_offset.
1184         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
1185         low-bound, element-size, field-offset fields rather than
1186         computed values.
1187
1188 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
1189
1190         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
1191         redundant code.
1192
1193 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
1194
1195         * c-tree.h (struct language_function): Add arg_info element.
1196         * c-decl.c (current_function_arg_info): New.
1197         (grokdeclarator, store_parm_decls): Use it instead of
1198         DECL_ARGUMENTS.
1199         (c_push_function_context, c_pop_function_context): Save and
1200         restore it.
1201
1202 2004-08-30  Richard Henderson  <rth@redhat.com>
1203
1204         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
1205         COMPONENT_REF to pointer arithmetic.
1206         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
1207         constant "c" as a valid constant initializer.  Allow narrowing of
1208         differences against the same base object, for any base object.
1209
1210 2004-08-30  Richard Henderson  <rth@redhat.com>
1211
1212         * expr.c (expand_expr_addr_expr): New.
1213         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
1214
1215 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
1216
1217         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
1218         (mips_fp_condition): New enum.
1219         (mips_fp_conditions): New array.
1220         (print_fcc_operand): Delete.
1221         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
1222         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
1223         (builtin_description): Add "cond" field.
1224         (DIRECT_BUILTIN): Initialize it.
1225         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
1226         into INSN and CODE.  Initialize the "cond" field.
1227         (CMP_BUILTINS): Update accordingly.
1228         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
1229         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
1230         mips_fp_condition as argument.  Make it the final operand of the
1231         comparison instruction.
1232         (mips_expand_builtin): Update accordingly.
1233         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
1234         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
1235         the gaps.
1236         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
1237         Don't use the 'Q' operand prefix; just print the operand normally.
1238         (mips_cabs_*, mips_c_*): Delete, replacing with...
1239         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
1240         patterns.  Split the 4s versions into 2 ps patterns after reload.
1241
1242 2004-08-30  Richard Henderson  <rth@redhat.com>
1243
1244         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
1245         assuming an ADDR_EXPR is non-null.
1246
1247 2004-08-30  Jason Merrill  <jason@redhat.com>
1248
1249         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
1250
1251 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
1252
1253         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
1254         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
1255         gcc_assert and gcc_unreachable instead of abort.
1256         * alloc-pool.c (abort, fancy_abort): Remove.
1257         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
1258         gcc_assert or gcc_unreachable.
1259         * attribs.c (init_attributes, decl_attributes): Likewise.
1260         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
1261         mark_bb_for_unlikely_executed_section,
1262         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
1263         fix_crossing_unconditional_branches):  Likewise.
1264         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
1265         bitmap_operation):  Likewise.
1266         * bt-load.c (insn_sets_btr_p, augment_live_range,
1267         move_btr_def):  Likewise.
1268         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
1269         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
1270         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
1271         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
1272         expand_builtin_memcmp, expand_builtin_args_info,
1273         std_gimplify_va_arg_expr, expand_builtin_unop,
1274         expand_builtin_fputs, expand_builtin_profile_func,
1275         expand_builtin_fork_or_exec, fold_builtin_bitop,
1276         fold_builtin_classify, fold_builtin_fputs): Likewise.
1277
1278 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
1279
1280         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
1281         * gcov.c (abort): Remove undef.
1282
1283         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
1284         (struct tree_binfo): Remove primary field.
1285
1286 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
1287
1288         * fixinc/Makefile.in (machname.h): Remove.
1289         (fixincl.x): Do not pass $@ to genfixes.
1290         * fixinc/genfixes: Remove code to produce machname.h.
1291         * fixinc/fixincl.sh: Move it here instead.
1292         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
1293         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
1294         return a bool indicating whether pz_mn_name_pat is NULL.
1295         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
1296         Declare extern C variables for the ENV_TABLE.
1297         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
1298         instead use the result of mn_get_regexps.
1299         * fixinc/fixtests.c: Likewise.
1300
1301 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
1302
1303         * configure.ac: Do not run fixincludes after stage1 during
1304         toplevel bootstrap.
1305         * configure: Regenerate.
1306
1307 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
1308
1309         * sched-deps.c (get_condition): Partially revert previous, by never
1310         trying to extract the condition from a condjump.
1311
1312 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
1313
1314         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
1315         (handle_visibility_attribute, c_determine_visibility): Likewise.
1316         * c-common.h (my_friendly_assert): Remove.
1317
1318 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
1319
1320         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
1321         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
1322         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
1323         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
1324         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
1325
1326 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
1327
1328         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
1329         in COMPONENT_REF nodes.
1330
1331 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1332
1333         PR c++/15378
1334         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
1335         global_dc->warning_as_error_requested.
1336         * diagnostic.c (diagnostic_initialize): Tidy.
1337         * diagnostic.h (diagnostic_context::x_data): Remove
1338         (diagnostic_context::issue_warnings_are_errors_message): Rename
1339         from warnings_are_errors_message.
1340         (diagnostic_context::warning_as_error_requested): New.
1341
1342 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
1343
1344         * sched-deps.c (get_condition): Fix breakage in previous patch.
1345
1346 2004-08-30  Paul Brook  <paul@codesourcery.com>
1347
1348         * doc/install.texi: Fix broken mpfr link.
1349
1350 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
1351
1352         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
1353         other FreeBSD platforms.
1354
1355 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
1356
1357         * arm.h (REVERSE_CONDITION): Define.
1358         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
1359
1360 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
1361
1362         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
1363         just the codes, call reversed_comparison_code ().
1364         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
1365         (not_reg_cond): Use reversed_comparison_code.
1366         (and_reg_cond): Likewise.
1367         * ifcvt.c (cond_exec_process_if_block): Likewise.
1368         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
1369
1370 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
1371
1372         * sched-deps.c (get_condition): Rewrite using jump support functions.
1373         Use reversed_comparison_code.
1374         (conditions_mutex_p): Use reversed_comparison_code.
1375
1376 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1377
1378         * config/mips/mips.c (override_options): Disable hot/cold partitioning
1379         for MIPS16.
1380
1381 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1382
1383         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
1384         (mips_function_type): Move to mips.c.
1385         * config/mips/mips.c (mips_builtin_type): New enum.
1386         (builtin_description): Replace code and ftype with builtin_type
1387         and function_type.
1388         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
1389         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
1390         (CODE_FOR_mips_abs_ps): Define.
1391         (mips_bdesc): Use new macros.
1392         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
1393         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
1394         (mips_expand_builtin_direct): New function.
1395         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
1396         builtin.  Replace boolean parameter with builtin_type.
1397         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
1398         (mips_expand_4s_compare_builtin): Delete, replacing with...
1399         (mips_expand_builtin_compare): ...this new function.
1400
1401 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
1402
1403         PR rtl-optimization/16590
1404         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
1405
1406 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
1407
1408         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
1409         * tree-ssa-propagate.c: Fix documentation.
1410
1411 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1412
1413         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
1414         (mov[sd]fcc): Likewise.
1415
1416 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1417
1418         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
1419
1420 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1421
1422         * config/mips/mips.md (divide_condition): New mode attribute.
1423         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
1424         (sqrt[sd]f3): Redefine using SCALARF.
1425         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
1426         patterns.
1427
1428 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1429
1430         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
1431         (loadx, storex, fmt, UNITMODE): New mode attributes.
1432         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
1433         (mul[sd]f3): Redefine using :SCALARF.
1434         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
1435         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
1436         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
1437         Check TARGET_FUSED_MADD for V2SF too.
1438         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
1439         were already named.
1440         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
1441         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
1442
1443 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1444
1445         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
1446         V2SF_type_node if it will be needed.
1447
1448 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1449
1450         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
1451         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
1452         (mips_prepare_builtin_target): New function.
1453         (mips_expand_builtin): Use them.  Update calls to subroutines.
1454         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
1455         cmp_choice with a boolean argument to select between movt and movf.
1456         Take the comparison's icode as an argument, not the function's fcode.
1457         (mips_expand_compare_builtin): New function.  Rename existing function
1458         to mips_expand_scalar_compare_builtin.
1459         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
1460         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
1461         comparison's icode as an argument, not the builtin's fcode.
1462
1463 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1464
1465         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
1466         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
1467         registers are false and -1 if all registers are true.
1468         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
1469         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
1470         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
1471         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
1472         (bc1any2t, bc1any2f): Likewise CCV2.
1473         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
1474
1475 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
1476
1477         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
1478         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
1479         UNSPEC rather than an IF_THEN_ELSE.
1480         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
1481         mips_cond_move_tf_ps by name.
1482
1483 2004-08-29  Chao-ying Fu  <fu@mips.com>
1484             James E Wilson  <wilson@specifixinc.com>
1485
1486         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
1487         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
1488         * config/mips/mips-ps-3d.md: New file.
1489         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
1490         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
1491         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
1492         (mips_output_move): Emit "mov.ps" for V2SFmode.
1493         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
1494         MODE_VECTOR_FLOAT.
1495         (override_options): Check if TARGET_MIPS3D and there was an explicit
1496         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
1497         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
1498         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
1499         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
1500         and allow CCV2 and CCV4 to occupy two and four CC registers.
1501         (print_fcc_operand): New function.
1502         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
1503         %Z to call print_fcc_operand.
1504         (mips_function_value): Handle MODE_VECTOR_FLOAT.
1505         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
1506         (mips_vector_mode_supported_p): New function.
1507         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
1508         (builtin_description): New struct.
1509         (mips_bdesc): New array of struct builtin_description.
1510         (mips_expand_builtin, mips_init_builtins,
1511         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
1512         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
1513         functions.
1514         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
1515         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
1516         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
1517         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
1518         "-mips3d", and "-mno-mips3d".
1519         (ASM_SPEC): Map -mips3d to -mips3d in gas.
1520         (EXTRA_CONSTRAINT_Y): New macro.
1521         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
1522         multi-letter constraint 'Y'.
1523         (CONSTRAINT_LEN): New macro.
1524         (enum mips_builtins): New for MIPS builtin functions.
1525         (enum mips_function_type): New for the types of MIPS builtin functions.
1526         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
1527         * config/mips/mips.md: New constants for paired single and MIPS-3D
1528         instructions.  Include the new mips-ps-3d.md file.
1529         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
1530         movv2sf_hardfloat_64bit): New named patterns.
1531         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
1532         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
1533         sdxc1_v2sf_di): New unnamed patterns.
1534         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
1535         const_vector support.
1536         (const_0_or_1_operand): New predicate.
1537         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
1538
1539 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
1540
1541         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
1542         (tree-ssa-propagate.o): New rule.
1543         (GTFILES): Add tree-ssa-propagate.c.
1544         * tree-flow.h (struct stmt_ann_d): Remove field
1545         in_ccp_worklist.
1546         * tree-ssa-propagate.c: New file.
1547         * tree-ssa-propagate.h: New file.
1548         * tree-ssa-ccp.c: Re-write to use the routines from
1549         tree-ssa-propagate.c.
1550
1551 2004-08-28  Andrew Pinski  <apinski@apple.com>
1552
1553         * tree-ssa-loop.c: Remove extra include of basic-block.h.
1554
1555 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
1556
1557         * c-common.h: Update comments about ObjC/ObjC++ entry points.
1558         (objc_is_reserved_word): New prototype.
1559         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
1560         separate section; these are call-backs.
1561         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
1562         ObjC/ObjC++ "@" keywords.
1563         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
1564         prototypes; they already live in c-common.h.
1565         * stub-objc.c: Update copyright notice.
1566         (objc_is_reserved_word): New stub.
1567
1568 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
1569
1570         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
1571         even when not checking.
1572
1573 2004-08-27  Jason Merrill  <jason@redhat.com>
1574
1575         PR c++/13684
1576         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
1577         (gimple_push_cleanup): Add eh_only parm.
1578         (gimplify_target_expr): Pass it.
1579         * c.opt (-fno-threadsafe-statics): New option.
1580         * c-opts.c (c_common_handle_option): Handle it.
1581         * c-common.h (flag_threadsafe_statics): Declare it.
1582         * c-common.c (flag_threadsafe_statics): Record it.
1583         * doc/invoke.texi: Document it.
1584         * tsystem.h (_GNU_SOURCE): Define.
1585         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
1586         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
1587         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
1588         (__gthread_recursive_mutex_init_function): New fn.
1589         (__gthread_recursive_mutex_lock): New fn.
1590         (__gthread_recursive_mutex_trylock): New fn.
1591         (__gthread_recursive_mutex_unlock): New fn.
1592         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
1593         * gthr-win32.h, gthr-vxworks.h: Likewise.
1594         * gthr.h: Document.
1595
1596 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
1597
1598         * config/rs6000/rs6000.c (rs6000_override_options): Increase
1599         maximum skip to 15.  Set function alignment, jump alignment, and
1600         loop alignment to 16 for processors that form dispatch groups.
1601         (rs6000_rtx_costs): outer_code is used.
1602
1603 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
1604
1605         * stor-layout.c (sizetype_set): Remove.
1606         (set_sizetype): Don't test or set it.
1607
1608         * tree.h (size_int_type): Remove.
1609         * fold-const.c: Do not #include gt-fold-const.h.
1610         (size_htab_hash, size_htab_eq): Remove.
1611         (size_int_kind): Use build_int_cst.
1612         (new_const, size_htab): Remove.
1613         (size_int_type): Remove.
1614         (round_up): Use build_int_cst.
1615         (round_down): Likewise. Remove spurious constant build.
1616
1617 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
1618
1619         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
1620         Add is_release variable, use it for --enable-werror and
1621         --enable-checking defaults.
1622         * system.h (gcc_assert, gcc_unreachable): New.
1623         * doc/install.texi (--enable-checking): Update.
1624         * configure, config.in: Rebuilt.
1625
1626 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
1627
1628         * rtl.h (read_rtx): Change prototype.
1629         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
1630         line number.  Return true on success.
1631         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
1632         callers accordingly.
1633
1634 2004-08-26  Richard Henderson  <rth@redhat.com>
1635
1636         * c-typeck.c (build_offsetof): Remove.
1637         * c-tree.h (build_offsetof): Remove.
1638         * c-common.c (fold_offsetof_1, fold_offsetof): New.
1639         * c-common.h (fold_offsetof): Declare.
1640         * c-parse.in (offsetof_base): New.
1641         (offsetof_member_designator): Use it.  Build references, not just
1642         a tree list.
1643         (primary): Use fold_offsetof, not build_offsetof.
1644
1645 2004-08-26  Richard Henderson  <rth@redhat.com>
1646
1647         * tree.c (staticp): Return the static object.
1648         * tree.h (staticp): Update decl.
1649         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
1650         * langhooks.c (lhd_staticp): Return NULL_TREE.
1651         * langhooks-def.h (lhd_staticp): Update decl.
1652         * c-common.c (c_staticp): Return the static object.
1653         * c-common.h (c_staticp): Update decl.
1654
1655 2004-08-26  Richard Henderson  <rth@redhat.com>
1656
1657         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
1658         modes.
1659
1660 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
1661
1662         PR c/13801
1663         * c-decl.c (struct c_binding): Add type and inner_comp fields.
1664         (bind): Set type and inner_comp fields.
1665         (pop_scope): Restore type of decl to the correct type from an
1666         outer scope.  Give error when popping file scope for incomplete
1667         arrays completed incompatibly with default initialization in an
1668         inner scope.
1669         (diagnose_mismatched_decls): Handle externs with initializers at
1670         block scope.
1671         (pushdecl): Set type of external declaration at block scope based
1672         only on the visible declarations.  Save type when changing the
1673         type of a declaration.  Merge an external declaration at block
1674         scope with a visible static declaration at file scope.
1675         (implicitly_declare): Give recycled old declaration the new type
1676         except for incompatible declarations of built-in functions, saving
1677         the old type.
1678
1679 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
1680
1681         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
1682
1683 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
1684
1685         * tree-alias-common.c (gate_pta): New function.
1686         (pass_build_pta): Use it.
1687         (pass_del_pta): Use it.
1688         (delete_alias_vars): Don't check flag_tree_points_to.
1689
1690 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1691
1692         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
1693         TFmode as additional register mode cloberred by call.
1694
1695 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1696
1697         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
1698         parallel pattern for library call returning DImode in
1699         mixed mode.
1700
1701 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1702
1703         * config/rs6000/rs6000.c (function_arg): Generate parallel
1704         pattern for more split args.
1705
1706 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1707
1708         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
1709         either gen_movdi_di_update or gen_movdi_si_update depending on
1710         target mode.
1711         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
1712         to generate two versions.
1713
1714 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
1715
1716         * Makefile.in (lambda-code.o): New.
1717         (lambda-trans.o): Ditto.
1718         (TREE_DATA_REF_H): Ditto.
1719         (LAMBDA_H): Ditto.
1720         (lambda-mat.o): Use LAMBDA_H.
1721         (tree-data-ref.o): Ditto.
1722         * lambda-code.c: New file.  Lambda code generation algorithm.
1723         * lambda-trans.c: Ditto. Lambda transformation matrix support.
1724         * lambda.h: Add lambda loop structures.
1725         Add lambda loopnest structures.
1726         Add lambda body vector structure.
1727         Add lambda linear expression structures.
1728         Add prototypes for functions in new files.
1729         * lambda-mat.c: Include tree.h
1730
1731 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
1732             Sebastian Pop  <pop@cri.ensmp.fr>
1733
1734         * tree-data-ref.h: Include lambda.h
1735         (free_dependence_relation): Declared here.
1736         (free_dependence_relations): Ditto.
1737         (free_data_refs): Ditto.
1738         * tree-data-ref.c (free_dependence_relation): New function.
1739         (free_dependence_relations): Ditto.
1740         (free_data_refs): Ditot.
1741         (analyze_all_data_dependences): Free datarefs and dependence_relations.
1742         (build_classic_dist_vector): Store in the dependence_relations the
1743         information. Each arc in the dependence_relations graph is labelled
1744         with the distance and direction vectors.
1745         (build_classic_dir_vector): Ditto.
1746         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
1747         Now computes again the whole dependence graph including read-read
1748         relations.
1749         (compute_data_dependences_for_loop): Now dependence_relations contains
1750         all the data, and thus it doesn't need to initialize the classic_dir
1751         and classic_dist vectors.
1752         (analyze_all_data_dependences): Adjusted for using the new interface of
1753         compute_data_dependences_for_loop.  Remove the statistics dump.
1754
1755 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
1756
1757         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
1758         (xtensa_expand_block_move): Update comment.
1759         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
1760
1761 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
1762
1763         PR target/13506
1764         * toplev.c (crash_signal): If we crashed while emitting
1765         a user asm, then die more gracefully.
1766
1767 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1768
1769         PR target/17119.
1770         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
1771         checking for a valid constant, regardless of sign.
1772
1773 2004-08-25  Richard Henderson  <rth@redhat.com>
1774
1775         PR target/16974
1776         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
1777         if the constant satisfies add_operand.
1778
1779 2004-08-25  Richard Henderson  <rth@redhat.com>
1780
1781         PR debug/10695
1782         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
1783         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
1784         unwind info for >16-bit frames.
1785
1786 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
1787
1788         PR target/17171
1789         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
1790
1791 2004-08-25  Richard Henderson  <rth@redhat.com>
1792
1793         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
1794         (TARGET_CANNOT_FORCE_CONST_MEM): New.
1795
1796 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
1797
1798         * doc/tree-ssa.texi: Document new operand iterator.
1799
1800 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
1801
1802         PR target/16480
1803         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
1804         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
1805         as PLUS base regs.
1806
1807 2005-08-28  Paul Brook  <paul@codesourcery.com>
1808
1809         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
1810         -mfpu=vfp -march=armv5t
1811         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
1812
1813 2004-08-25  Richard Henderson  <rth@redhat.com>
1814
1815         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1816         * target.h (struct gcc_target): Add scalar_mode_supported_p.
1817         * targhooks.c (default_scalar_mode_supported_p): New.
1818         * targhooks.h (default_scalar_mode_supported_p): Declare.
1819         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
1820
1821         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
1822         before attempting to create types.  Tidy.
1823         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
1824
1825         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
1826         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1827
1828 2004-08-25  Richard Henderson  <rth@redhat.com>
1829
1830         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1831         set REAL_MODE_FORMAT for TFmode.
1832
1833 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
1834
1835         * c-decl.c (grokparm): New function.
1836         * c-tree.h (grokparm): New prototype.
1837
1838 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
1839
1840         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
1841         iterator controlling structure.
1842         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
1843         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
1844         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
1845         iterator flags.
1846         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
1847         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
1848         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
1849         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
1850         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
1851         Empty operand pointers.
1852         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
1853         (op_iter_next_use): New.  Return next use_operand_p.
1854         (op_iter_next_def): New.  Return next def_operand_p.
1855         (op_iter_next_tree): New.  Return next operands as a tree.
1856         (op_iter_init): New.  Initialize an iterator structure.
1857         (op_iter_init_use): New.  Initialize structure and get the first use.
1858         (op_iter_init_def): New.  Initialize structure and get the first def.
1859         (op_iter_init_tree): New.  Initialize structure and get the first tree.
1860         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
1861         (op_iter_init_maydef): New.  Initialize structure and get the first
1862         V_MAY_DEF operands.
1863         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
1864         * tree-dfa.c (compute_immediate_uses_for_stmt,
1865         redirect_immediate_uses): Use new operand iterator.
1866         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
1867         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
1868         operands instead of using *_disappeared_p routines.
1869         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
1870         ssa_rewrite_stmt): Use new operand iterator.
1871         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
1872         rewrite_trees): Use new operand iterator.
1873         * tree-pretty-print.c (dump_vops): Use new operand iterator.
1874         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
1875         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
1876         dump_points_to_info): Use new operand iterator.
1877         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
1878         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
1879         operand iterator.
1880         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
1881         propagate_necessity): Use new operand iterator.
1882         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
1883         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
1884         a parameter instead of a stmt_ann_t.
1885         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
1886         build_tree_conflict_graph): Use new operand iterator.
1887         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
1888         rewrite_mem_refs): Use new operand iterator.
1889         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
1890         check_loop_closed_ssa_use): Use new operand iterator.
1891         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
1892         * tree-ssanames.c (release_defs): Use new operand iterator.
1893         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
1894
1895 2004-08-25  Adam Nemet  <anemet@lnxw.com>
1896
1897         * tlink.c (initial_cwd): New variable.
1898         (tlink_init): Initialize it.
1899         (recompile_files): Use tlink_execute() instead of system().  Don't
1900         duplicate verbose output of collect_execute.  Restore initial_cwd.
1901         Update comment before the function.
1902
1903 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
1904
1905         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
1906         accept) a cast from one Objective-C pointer type to another.
1907
1908 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
1909
1910         * doc/install.texi: Document that libstdc++-v3 requires
1911         now automake 1.9.1.
1912
1913 2004-08-25  Caroline Tice  <ctice@apple.com>
1914
1915         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
1916         to comments at start of function.
1917         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
1918         comment.
1919         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1920         merge_blocks_move_predecessor_nojumps,
1921         merge_blocks_move_successor_nojumps, merge_blocks_move,
1922         try_crossjump_to_edge, try_crossjump_bb): Likewise.
1923         * cfglayout.c (fixup_reorder_chain): Likewise.
1924         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
1925         cfg_layout_can_merge_blocks_p):  Likewise.
1926         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
1927         * passes.c (rest_of_compilation): Update comments for calling
1928         optimization that partitions hot/cold basic blocks.
1929         * doc/invoke.texi:  Update documentation of
1930         freorder-blocks-and-partition flag.
1931
1932 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
1933
1934         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
1935         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
1936
1937 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
1938
1939         * config/mips/mips.md (any_shift): New code macro.
1940         (optab, insn): New code attributes.
1941         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
1942         Use the standard rather than internal patterns for the MIPS16
1943         double-shift optimization.
1944         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
1945         Redefine using :GPR and any_shift.
1946         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
1947         to cover all three shifts.
1948         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
1949         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
1950         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
1951
1952 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
1953
1954         * gimplify.c (lookup_tmp_var): Separate temporaries when not
1955         optimizing.
1956
1957 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1958
1959         PR libstdc++/17005 (fix for HP-UX 11.11)
1960         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
1961         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
1962         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
1963         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
1964         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
1965         (LINK_SPEC): Handle march=1.0 option.
1966         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
1967         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
1968         (SUBTARGET_OPTIONS): New define.
1969         (LINK_SPEC): Handle march=1.0 option.
1970         (STARTFILE_SPEC): New define.
1971         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
1972         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
1973         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
1974         (SUBTARGET_OPTIONS): New define.
1975         (LINK_SPEC): Handle march=1.0 option.
1976         (STARTFILE_SPEC): New define.
1977         * config/pa/pa.c (override_options): Add code to process -munix= option.
1978         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
1979         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
1980         defines.
1981         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
1982         (SUBTARGET_OPTIONS): Provide default define.
1983         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
1984         STANDARD_STARTFILE_PREFIX_2): New defines.
1985         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
1986         (ENDFILE_SPEC): Use %O.
1987         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
1988         Mention issue caused by changing namespace and runtime to UNIX 95/98.
1989         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
1990         Document -munix=std option.
1991
1992 2004-08-25  Steven Bosscher  <stevenb@suse.de>
1993
1994         * cse.c (cse_around_loop, cse_check_loop_start,
1995         cse_set_around_loop): Remove.
1996         (cse_basic_block): Remove the around_loop argument.
1997         (cse_end_of_basic_block): Remove the after_loop argument.
1998         (cse_main): Likewise.
1999         * rtl.h (cse_main): Update prototype.
2000         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
2001         rest_of_handle_gcse): Update cse_main calls.
2002
2003 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
2004
2005         * tree.h  (build_int_cst): New, sign extended constant.
2006         (build_int_cstu): New, zero extended constant.
2007         (build_int_cst_wide): Renamed from build_int_cst.
2008         * tree.c (build_int_cst, build_int_cstu): New.
2009         (build_int_cst_wide): Renamed from build_int_cst.
2010         (make_vector_type, build_common_tree_nodes,
2011         build_common_tree_nodes_2): Adjust build_int_cst calls.
2012         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
2013         expand_builtin_strpbrk, expand_builtin_fputs,
2014         build_string_literal, expand_builtin_printf,
2015         expand_builtin_sprintf, fold_builtin_classify_type,
2016         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
2017         fold_builtin_toascii, fold_builtin_isdigit,
2018         simplify_builtin_strstr, simplify_builtin_strpbrk,
2019         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
2020         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
2021         DEF_ATTR_INT): Likewise.
2022         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
2023         Likewise.
2024         * c-lex.c (interpret_integer, lex_charconst): Likewise.
2025         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
2026         * c-pretty-print.c (pp_c_integer_constant): Likewise.
2027         * c-typeck.c (really_start_incremental_init, push_init_level,
2028         set_nonincremental_init_from_string): Likewise.
2029         * calls.c (load_register_parameters): Likewise.
2030         convert.c (convert_to_pointer): Likewise.
2031         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
2032         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
2033         build_gcov_info): Likewise.
2034         * except.c (init_eh, assign_filter_values): Likewise.
2035         * expmed.c (store_fixed_bit_field, extract_bit_field,
2036         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
2037         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
2038         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
2039         * expr.c (convert_move, emit_group_load, emit_group_store,
2040         expand_assignment, store_constructor, store_field,
2041         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2042         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
2043         invert_truthvalue, optimize_bit_field_compare,
2044         decode_field_reference, all_ones_mask_p, constant_boolean_node,
2045         fold_div_compare, fold, fold_read_from_constant_string,
2046         fold_negate_const, fold_abs_const, fold_not_const, round_up,
2047         round_down): Likewise.
2048         * function.c (assign_parm_setup_block): Likewise.
2049         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
2050         Likewise.
2051         * stor-layout.c (layout_type, initialize_sizetypes,
2052         set_min_and_max_values_for_integral_type): Likewise.
2053         * tree-chrec.c (chrec_fold_multiply_poly_poly,
2054         reset_evolution_in_loop): Likewise.
2055         * tree-chrec.h (build_polynomial_chrec): Likewise.
2056         * tree-complex.c (build_replicated_const): Likewise.
2057         * tree-eh.c (honor_protect_cleanup_actions,
2058         lower_try_finally_onedest, lower_try_finally_copy,
2059         lower_try_finally_switch): Likewise.
2060         * tree-mudflap.c (mf_build_string, mx_register_decls,
2061         mudflap_register_call, mudflap_enqueue_constant): Likewise.
2062         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
2063         * tree-pretty-print.c (dump_generic_node): Likewise.
2064         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
2065         Likewise.
2066         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2067         * tree-ssa-loop-niter.c (number_of_iterations_cond,
2068         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
2069         Likewise.
2070         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
2071         canonicalize_loop_induction_variables): Likewise.
2072         * tree-vectorizer.c (vect_create_index_for_array_ref,
2073         vect_transform_loop_bound, vect_compute_data_ref_alignment):
2074         Likewise.
2075
2076         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
2077         alpha_gimplify_va_arg_1): Likewise.
2078         * config/arm/arm.c (arm_get_cookie_size): Likewise.
2079         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2080         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2081         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2082         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
2083         mips_gimplify_va_arg_expr): Likewise.
2084         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2085         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
2086         add_compiler_branch_island): Likewise.
2087         * config/s390/s390.c (s390_va_start): Likewise.
2088         * config/sh/sh.c (sh_va_start): Likewise.
2089         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2090         Likewise.
2091         * config/xtensa/xtensa.c (xtensa_va_start,
2092         xtensa_gimplify_va_arg_expr): Likewise.
2093
2094         * objc/objc-act.c (build_objc_string_object,
2095         build_objc_symtab_template, init_def_list, init_objc_symtab,
2096         init_module_descriptor, generate_static_references,
2097         build_selector_translation_table, get_proto_encoding,
2098         build_typed_selector_reference, build_selector_reference,
2099         build_next_objc_exception_stuff,
2100         build_method_prototype_list_template, generate_descriptor_table,
2101         generate_protocols, build_protocol_initializer,
2102         build_ivar_list_template, build_method_list_template,
2103         build_ivar_list_initializer, generate_ivars_list,
2104         generate_dispatch_table, generate_protocol_list,
2105         build_category_initializer, build_shared_structure_initializer,
2106         generate_shared_structures, handle_impent,
2107         generate_objc_image_info): Likewise.
2108
2109 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2110
2111         * cfglayout.c (duplicate_insn_chain): Remove references to
2112         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
2113         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
2114         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
2115         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
2116         and NOTE_INSN_LOOP_CONT.
2117         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
2118         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
2119         and NOTE_INSN_LOOP_CONT.
2120         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
2121         check_dbra_loop, loop_dump_aux): Remove references to removed notes
2122         and fields.
2123         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
2124         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
2125         references to removed notes and fields.
2126         (subtract_reg_term, ujump_to_loop_cont): Remove.
2127
2128 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
2129
2130         * doc/install.texi: Document that libcpp does not require
2131         Automake any longer.  Document that Automake 1.9.1 should
2132         work everywhere.
2133
2134 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
2135
2136         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
2137         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
2138         DWARF_DEBUGGING_INFO from choice-of-definition chain;
2139         restructure using C89 features (#elif, #error).
2140         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
2141         * config/sh/sh.h: Remove references to DWARF_DEBUG.
2142         * doc/invoke.texi: Remove references to DWARF version 1;
2143         clarify why -gdwarf-2<n> doesn't work.
2144
2145 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
2146
2147         * basic-block.h (BB_SET_PARTITION): Clear old value first.
2148         * cfg.c (clear_bb_flags): Don't clear partition setting.
2149         * ifcvt.c (find_if_case_1): Remove ??? comment.
2150
2151 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
2152
2153         PR target/17052
2154         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
2155         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
2156         current_function_stdarg in place of sysv_varargs_p.
2157         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
2158         sysv_varargs_p.
2159
2160 2004-08-24  Richard Henderson  <rth@redhat.com>
2161
2162         PR target/16298
2163         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
2164         random codes within CONST.
2165
2166 2004-08-24  James E Wilson  <wilson@specifixinc.com>
2167
2168         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
2169         -freorder-blocks-and-partition.
2170
2171 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2172
2173         PR middle-end/17044
2174         * tree-ssa-threadupdate.c (redirection_data): Make static.
2175         (thread_block): Use ggc_alloc_cleared to allocate struct
2176         redirection_data.  Don't free elements in redirection_data.
2177
2178 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2179
2180         * config/mips/predicates.md (small_data_pattern): Match prefetches.
2181
2182 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2183
2184         PR tree-optimization/17016
2185         * tree-ssa-loop-niter.c (number_of_iterations_cond,
2186         number_of_iterations_exit): Use POINTER_TYPE_P instead
2187         of testing for POINTER_TYPE.
2188
2189 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2190
2191         * tree-ssa-loop-ivcanon.c: New file.
2192         * tree-ssa-loop-manip.c (create_iv): New function.
2193         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
2194         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
2195         * cfgloop.c (mark_single_exit_loops): New function.
2196         (verify_loop_structure): Verify single-exit loops.
2197         * cfgloop.h (struct loop): Add single_exit field.
2198         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
2199         (mark_single_exit_loops): Declare.
2200         (tree_num_loop_insns): Declare.
2201         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
2202         (duplicate_loop_to_header_edge): Use it.
2203         * common.opt (fivcanon): New flag.
2204         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
2205         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
2206         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
2207         (bsi_insert_on_edge_immediate): New function.
2208         * tree-flow.h (bsi_insert_on_edge_immediate,
2209         canonicalize_induction_variables, tree_unroll_loops_completely,
2210         create_iv): Declare.
2211         * tree-optimize.c (init_tree_optimization_passes): Add
2212         pass_iv_canon and pass_complete_unroll.
2213         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
2214         * tree-scalar-evolution.c (get_loop_exit_condition,
2215         get_exit_conditions_rec, number_of_iterations_in_loop,
2216         scev_initialize): Use single_exit information.
2217         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
2218         missing assumptions.
2219         (loop_niter_by_eval):  Return number of iterations as unsigned
2220         int.
2221         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
2222         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
2223         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
2224         New passes.
2225         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
2226         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
2227         the defining statement is ready.
2228         * tree-vectorizer.c (vect_create_iv_simple): Removed.
2229         (vect_create_index_for_array_ref, vect_transform_loop_bound):
2230         Use create_iv.
2231         (vect_transform_loop_bound): Use single_exit information.
2232         (vect_analyze_loop_form): Cleanup bogus tests.
2233         (vectorize_loops): Do not call flow_loop_scan.
2234         * tree.h (may_negate_without_overflow_p): Declare.
2235         * fold-const.c (may_negate_without_overflow_p): Split out from ...
2236         (negate_expr_p): ... this function.
2237         (tree_expr_nonzero_p): Handle overflowed constants correctly.
2238         * doc/invoke.texi (-fivcanon): Document.
2239         * doc/passes.texi: Document canonical induction variable creation.
2240
2241 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2242
2243         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
2244         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
2245         using the mode of the operand to decide between them.
2246         * config/mips/mips.md (MOVECC): New mode macro.
2247         (ccreg): New mode attribute.
2248         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
2249         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
2250         (mov[sd]icc): Redefine using :GPR.
2251
2252 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2253
2254         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
2255         (mips_prefetch_cookie): New function.
2256         * config/mips/mips.c (print_operand_address): Fix handling of
2257         ADDRESS_CONST_INT.
2258         (mips_emit_prefetch): Delete.
2259         (mips_prefetch_cookie): New function.
2260         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
2261         mode of QImode for the address_operand.  Use mips_prefetch_cookie
2262         to calculate the first "pref" operand.
2263         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
2264         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
2265
2266 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
2267
2268         * arm.md: Include predicates.md.
2269         * predicates.md: New file.
2270         * arm.c (s_register_operand, arm_hard_register_operand)
2271         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
2272         (arm_immediate_operand, arm_neg_immediate_operand)
2273         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
2274         (arm_add_operand, arm_addimm_operand, arm_not_operand)
2275         (offsettable_memory_operand, alignable_memory_operand)
2276         (arm_reload_memory_operand, arm_float_rhs_operand)
2277         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
2278         (index_operand, shiftable_operator, logical_binary_operator)
2279         (shift_operator, equality_operator, arm_comparison_operator)
2280         (minmax_operator, cc_register, dominant_cc_register)
2281         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
2282         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
2283         (const_shift_operand, load_multiple_operation)
2284         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
2285         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
2286         (cirrus_register_operand, cirrus_fp_register)
2287         (cirrus_shift_const): Delete, replaced with equivalents in
2288         predicates.md.
2289         (shift_op): Handle ROTATE.
2290         * arm-protos.h: Delete declarations for above.
2291         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
2292         * t-arm (MD_INCLUDES): Add predicates.md.
2293         (s-preds): Depends on MD_INCLUDES.
2294
2295 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2296
2297         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
2298         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
2299         patterns.  Redefine using :GPR.  Give the match_operator a mode.
2300         Use '%2' rather than '%z2' for operand 2.
2301
2302 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2303
2304         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
2305         attribute.
2306
2307 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2308
2309         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
2310         of internal patterns.
2311         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
2312         Redefine using :P.
2313         (tablejump): Use expand_binop to calculate address.  Adjust names
2314         of internal patterns.
2315         (tablejump[sd]i): Renamed from tablejump_internal[12].
2316         Redefine using :P.
2317         (tablejump_mips16[12]): Delete.
2318
2319 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2320
2321         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
2322         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
2323         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
2324         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
2325         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
2326
2327 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
2328
2329         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
2330         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
2331         using :GPR.
2332         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
2333         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
2334         (*branch_equality[sd]i_inverted): Likewise
2335         branch_equality{,_di}_inverted.
2336         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
2337         Redefine using :GPR.
2338
2339 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
2340
2341         * rtl.def: Reorganize, placing all codes used only in machine
2342         descriptions at the end.
2343
2344         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
2345         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
2346         rtx_name, rtx_format arrays by direct reference to rtl.def,
2347         first undefining GENERATOR_FILE.  Define enum insn_note and
2348         note_insn_name array by direct reference to insn-notes.def.
2349         (adjust_field_rtx_def): Remove local definition of rtx_name.
2350         Use symbolic names for insn notes.
2351         * Makefile.in (gengtype.o): Update dependencies.
2352
2353 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
2354
2355         * basic-block.h (struct basic_block_def): Reorder fields to
2356         eliminate interior padding.  Remove 'partition' field.
2357         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
2358         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
2359         (BB_COPY_PARTITION): New macros.
2360         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
2361         Replace all references to the 'partition' field of a basic
2362         block with new macros.
2363
2364         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
2365         * final.c (final_scan_insn): Don't handle it.
2366         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
2367         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
2368         * sched-rgn.c (sched_is_disabled_for_current_region_p):
2369         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
2370
2371 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
2372
2373         * c-decl.c (c_init_decl_processing): Adjust
2374         build_common_tree_nodes call.
2375         * expmed.c (const_mult_add_overflow_p): Use
2376         build_distinct_type_copy.
2377         * stor-layout.c (early_type_list): Remove.
2378         (layout_type): Don't append to early_type_list.
2379         (initialize_sizetypes): Add signed_p argument.
2380         (set_sizetype): Overwrite the stub type nodes directly.
2381         * tree.c (copy_node_stat): Clear a type's value cache here ...
2382         (build_distinct_type): ... not here.
2383         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
2384         * tree.h (initialize_sizetypes): Add signed_p argument.
2385         (build_common_tree_nodes): Likewise.
2386
2387         * objc/objc-act.c (get_static_reference): Use
2388         build_variant_type_copy.
2389         (get_protocol_reference): Likewise.
2390         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
2391
2392 2004-08-24  Richard Henderson  <rth@redhat.com>
2393             Andrew Pinski  <apinski@apple.com>
2394
2395         * gimplify.c (gimplify_array_ref_to_plus): Delete.
2396         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
2397         for ARRAY_REF.
2398
2399         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
2400         ARRAY_REF also to get to the STRING_CST.
2401
2402 2004-08-24  Paul Brook  <paul@codesourcery.com>
2403
2404         * config/arm/arm.c (arm_override_options): Update error message.
2405         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
2406         TARGET_HARD_FLOAT_ABI.
2407         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
2408         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
2409
2410 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2411
2412         PR target/17093
2413         * config/m32r.md (movsi_sda): Add SI mode specification to
2414         UNSPEC.
2415
2416 2004-08-24  Nick Clifton  <nickc@redhat.com>
2417
2418         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
2419         of seth_add3_operand.
2420
2421 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
2422
2423         * Makefile.in (PROTO_OBJS): Add errors.o.
2424         * protoize.c (fancy_abort): Remove.
2425         * mips-tfile.c (fancy_abort): Add parameters.
2426
2427 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
2428
2429         * doc/trouble.texi (C++ misunderstandings): Fix example code.
2430
2431 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
2432
2433         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
2434         (host-default.o): Add dependency on HOOKS_H.
2435         * config/x-linux: Likewise.
2436         * config/x-solaris: Likewise.
2437         * config/i386/x-mingw32: Likewise.
2438         * config/rs6000/x-darwin: Likewise.
2439
2440 2004-08-23  James E Wilson  <wilson@specifixinc.com>
2441
2442         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
2443         DEF_REG_NOTE.
2444
2445 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
2446
2447         PR c/14492
2448         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
2449
2450 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
2451
2452         * cfg.c (check_bb_profile): Fix typos.
2453         * function.c (assign_parm_is_stack_parm): Likewise.
2454         * tree-nested.c: Likewise.
2455
2456 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
2457
2458         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
2459         Remove TYPECODE.
2460         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
2461
2462 2004-08-23  Eric Christopher  <echristo@redhat.com>
2463
2464         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
2465         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
2466         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
2467         * target.h: Ditto.
2468         * hooks.h: Include machmode.h.
2469         (hook_bool_mode_false): Declare.
2470         * hooks.c (hook_bool_mode_false): Define.
2471         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
2472         * stor-layout.c (layout_type): Ditto.
2473         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
2474         Define to target macro.
2475         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
2476         * config/arm/arm.c: Ditto. Use.
2477         * config/arm/arm.h: Ditto.
2478         * config/arm/arm-protos.h: Ditto.
2479         * config/i386/i386.c: Ditto.
2480         * config/i386/i386.h: Ditto.
2481         * config/rs6000/rs6000.c: Ditto.
2482         * config/rs6000/rs6000.h: Ditto.
2483         * config/sh/sh.c: Ditto.
2484         * config/sh/sh.h: Ditto.
2485         * config/sh/sh-protos.h: Ditto.
2486         * config/sh/sh.md: Use.
2487         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
2488         to TARGET_VECTOR_MODE_SUPPORTED_P.
2489
2490 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
2491
2492         * Makefile.in (BUILD_ERRORS): Set to build-errors.
2493         (errors.o): New target for host.
2494         (build-errors.o): New target for build.
2495         (genobjs): Replace errors.o with build-errors.
2496         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
2497         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
2498         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
2499         (fix-header.o): Add errors.h
2500         * collect2.c (fancy_abort): Add parameters.
2501         * collect2.h (fancy_abort): Don't declare.
2502         * errors.h (fancy_abort): Don't declare.
2503         * errors.c: Include either bconfig.h or config.h.
2504         (fancy_abort): Trim filename.
2505         * fix-header.c (v_fatal, fatal): Remove.
2506         (progname): Remove definition.
2507         (main): Set progname here.
2508         * gcc.c (fancy_abort): Add parameters.
2509         * gcc.h (fancy_abort): Remove declaration.
2510         * gcov.c (fancy_abort): Remove.
2511         * rtl.h (fancy_abort): Don't declare.
2512         (abort): Don't define.
2513         * tree.h (fancy_abort): Don't declare.
2514         (abort): Don't define.
2515         * system.h (fancy_abort): Declare.
2516         (abort): Define to fancy_abort.
2517         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
2518
2519         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
2520         (usize_type, ubitsizetype): Remove.
2521         * stor-layout.c (set_sizetype): Don't initialize usizetype,
2522         ubitsizetype.
2523         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
2524
2525         * tree.h (build_distinct_type_copy): New.
2526         (build_type_copy): ... here.  Rename to ...
2527         (build_variant_type_copy): ... here.
2528         * tree.c (build_qualified_type): Rename build_type_copy call.
2529         (build_distinct_type_copy): New, broken out of ...
2530         (build_type_copy): ... here.  Rename to ...
2531         (build_variant_type_copy): ... here.  Use
2532         build_distinct_type_copy.
2533         (build_common_tree_nodes_2): Rename build_type_copy call.
2534         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
2535         call.
2536         (handle_packed_attribute, handle_unused_attribute,
2537         handle_transparanet_union_attribute, handle_aligned_attribute,
2538         handle_deprecated_attribute): Likewise.
2539         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
2540         Likewise.
2541         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
2542         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
2543         build_distinct_type_copy.
2544
2545 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2546
2547         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
2548         attribute.
2549
2550 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2551
2552         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
2553         loads and stores.
2554         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
2555         formerly unnamed patterns.  Redefine using :P for the address.  Remove
2556         explicit length attributes.
2557
2558 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2559
2560         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
2561         New functions.
2562         (single_reachable_address): Use them.
2563         (schedule_sm): Add dump.
2564         (is_call_clobbered_ref): New function.
2565         (determine_lsm_reg): Check whether the reference is call clobbered.
2566         Only work for gimple_reg_type values.
2567
2568 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2569
2570         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
2571         $31 store insns.  Redefine using :GPR.
2572
2573 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2574
2575         * config/mips/mips.md (P): New mode macro.
2576         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
2577         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
2578         Add mode attributes.
2579
2580 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2581
2582         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
2583         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
2584         later constants to cover the gap.
2585         (load, store): New mode attributes.
2586         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
2587         Use new unspec constants.
2588
2589 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2590
2591         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
2592         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
2593         to use register_operand rather than uns_arith_operand as the predicate
2594         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
2595         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
2596         Redefine using :GPR.  Make same predicate change here.  Extend the
2597         commutativity of operands 1 and 2 from the SImode version to the
2598         DImode one.
2599         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
2600         but with no predicate changes.
2601         (*nor[sd]i3): Redefine using :GPR.
2602
2603 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2604
2605         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
2606         noreturn functions.
2607
2608 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2609
2610         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
2611         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
2612         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
2613         rather than "%z2" (with a fake const0_rtx for operand 2).
2614         (ffs[sd]i2): Redefine using :GPR.
2615         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
2616
2617 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2618
2619         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
2620
2621 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2622
2623         * config/mips/mips.md (any_extend): New code macro.
2624         (u, su): New code attributes.
2625         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
2626         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
2627         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
2628         (*{s,u}mul_acc_di): Redefine using any_extend.
2629         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
2630         to reflect real insn names.
2631         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
2632         with an any_extend template.
2633         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
2634         Add '*' to name.
2635
2636 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2637
2638         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
2639         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
2640         (mul[sd]i3_r4000): Redefine using :GPR.
2641         (mulsi3_mult3): Don't check TARGET_MAD separately.
2642         (muldi3_mult3): Moved after mulsi_mult3.
2643
2644 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2645
2646         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
2647         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
2648         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
2649         (TARGET_GAS, TARGET_MIPS_AS): Delete.
2650         (TARGET_GPWORD): Define to true for n32 on IRIX.
2651         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
2652         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
2653         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
2654         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
2655         (MDEBUG_ASM_SPEC): Delete, folding into...
2656         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
2657         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
2658         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
2659         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
2660         to define asm_abi_default_spec.
2661         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
2662         (TARGET_ASM_SELECT_SECTION): Delete.
2663         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
2664         for non-mips16 code, removing previous workaround for SGI assemblers.
2665         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
2666         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
2667         (override_options): Remove !TARGET_GAS and !have_named_sections code.
2668         (print_operand): Fold TARGET_GAS conditionals into asm strings.
2669         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
2670         ASM_STABS_OP and ASM_STABN_OP.
2671         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
2672         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
2673         (mips_output_function_prologue): Remove !TARGET_GAS code.
2674         (mips_select_rtx_section): Remove !have_named_sections code.
2675         (mips_select_section): Delete.
2676         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
2677         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
2678         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
2679         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
2680         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
2681         * config/mips/windiss.h (ASM_SPEC): Likewise.
2682
2683 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2684
2685         * read-rtl.c (map_value, mapping, macro_group): New structures.
2686         (BELLWETHER_CODE): New macro.
2687         (modes, codes, bellwether_codes): New variables.
2688         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
2689         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
2690         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
2691         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
2692         (add_map_value, initialize_macros): New functions.
2693         (def_hash, def_hash_eq_p): Generalize to anything that points to,
2694         or starts with, a char * field.
2695         (find_macro, read_mapping, check_code_macro): New functions.
2696         (read_rtx_1): New, split out from read_rtx.  Handle the new
2697         define_{mode,code}_{macro,attr} constructs.  Use find_macro
2698         to parse the name of a code or mode.  Use BELLWETHER_CODE to
2699         extract the format and to choose a suitable code for rtx_alloc.
2700         Modify recursive invocations to use read_rtx_1.
2701         (read_rtx): Call initialize_macros.  Apply code and mode macros
2702         to the rtx returned by read_rtx_1.  Cache everything after the
2703         first macro expansion for subsequent read_rtx calls.
2704         * doc/md.texi: Document new .md constructs.
2705         * config/mips/mips.md (GPR): New mode macro.
2706         (d, si8_di5): New mode attributes.
2707         (any_cond): New code macro.
2708         (add[sd]i3): Redefine using :GPR.
2709         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
2710         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
2711         previously unnamed MIPS16 patterns.
2712         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
2713         lines.  Don't match (plus (const_int 0) ...).
2714         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
2715         Use a define_split to generate the addition.
2716         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
2717         (subsi3_internal): Delete.
2718         (*subsi3_extended): Renamed from subsi3_internal_2.
2719         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
2720         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
2721         using an any_cond template.
2722
2723 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2724
2725         * read-rtl.c (read_rtx): Tidy use of format_ptr.
2726
2727 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2728
2729         * read-rtl.c (string_obstack): New file-scope variable.
2730         (read_string, read_quoted_string, read_braced_string)
2731         (read_escape): Remove obstack parameter and use string_obstack instead.
2732         (read_rtx): Remove function-local rtl_obstack and initialize
2733         string_obstack instead.  Update call to read_string.
2734
2735 2004-08-22  Andrew Pinski  <apinski@apple.com>
2736
2737         PR c/15262
2738         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
2739         expression is not constant.
2740         (c_finish_return): Do not go through INDIRECT_REF when looking
2741         for the inner expression of an ADDR_EXPR for warning about.
2742
2743 2004-08-22  Richard Henderson  <rth@redhat.com>
2744
2745         PR 17075
2746         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
2747         create new blocks and fall through.
2748         (expand_gimple_basic_block): Update to match.
2749
2750 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
2751
2752         * reload.c (find_reloads_address): Make return value tri-state.
2753         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
2754         (find_reloads): Assume that reloaded addresses match 'o' or
2755         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
2756         returned 1 (not -1).  Omit optional reloads for address operands
2757         only if find_reloads_address returned 1 (not -1).
2758
2759         * config/s390/s390.c (legitimize_reload_address): New function.
2760         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
2761         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
2762         legitimize_reload_address.
2763
2764 2004-08-22  Richard Hendersion  <rth@redhat.com>
2765
2766         * tree.h (SAVE_EXPR_RESOLVED_P): New.
2767         * gimplify.c (gimplify_save_expr): Use it.
2768         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
2769         on the temporary variable.
2770
2771 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
2772
2773         * fold-const.c (rtl_expr_nonnegative_p): Delete.
2774         * tree.h (rtl_expr_nonnegative_p): Remove.
2775
2776 2004-08-22  Steven Bosscher  <stevenb@suse.de>
2777
2778         * config/i386/ppro.md (ppro_complex_insn): Add missing check
2779         for cpu==pentiumpro.
2780
2781         * combine.c (struct reg_stat): Fix comment typo.
2782
2783 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2784
2785         * c-tree.h (c_sizeof_nowarn): Remove.
2786
2787 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2788
2789         * c-decl.c (set_array_declarator_type): Rename to
2790         set_array_declarator_inner.
2791         (build_c_parm, build_attrs_declarator, build_function_declarator):
2792         New functions.
2793         (make_pointer_declarator): Call build_attrs_declarator.
2794         * c-tree.h (set_array_declarator_type): Rename to
2795         set_array_declarator_inner.
2796         (build_c_parm, build_attrs_declarator, build_function_declarator):
2797         New prototypes.
2798         * c-parse.in (after_type_declarator,
2799         parm_declarator_starttypename, parm_declarator_nostarttypename,
2800         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
2801         firstparm): Use these functions
2802
2803 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2804
2805         * c-decl.c (build_array_declarator, set_array_declarator_type,
2806         start_decl, grokdeclarator, grokparms): Change boolean parameters
2807         to type bool.
2808         * c-tree.h (build_array_declarator, set_array_declarator_type,
2809         start_decl): Update prototypes.
2810         * c-decl.c, c-parse.in: All callers changed.
2811
2812 2004-08-21  Mike Stump  <mrs@apple.com>
2813
2814         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
2815         (darwin_fix_and_continue): Likewise.
2816         (darwin_fix_and_continue_switch): Likewise.
2817         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
2818         (darwin_fix_and_continue): Likewise.
2819         (darwin_fix_and_continue_switch): Likewise.
2820
2821 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
2822
2823         PR  c++/16030
2824         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
2825         Remove, merging into ...
2826         (gen_stdcall_or_fastcall_suffix): New function, returning tree
2827         rather than const char*, and accepting additional parameter.
2828         Don't add suffix to '*'-prefixed symbols or variadic functions.
2829         (i386_pe_encode_section_info): Adjust for call to new function.
2830         Call change_decl_assembler_name.
2831
2832 2004-08-20  Mike Stump  <mrs@apple.com>
2833
2834         * config/darwin.c (machopic_indirect_data_reference): Mark
2835         stubs as defined.
2836         * config/386/386.c (darwin_local_data_pic): Add.
2837         (legitimate_constant_p): Reorder so that PLUS handling runs
2838         before darwin_local_data_pic to match the ordering in
2839         legitimate_pic_address_disp_p and so that MINUS runs after
2840         darwin_local_data_pic as otherwise the darwin_local_data_pic
2841         logic can be skipped, which would be very bad.
2842         (legitimate_pic_address_disp_p): Move from from here to
2843         darwin_local_data_pic so it can be reused.
2844
2845 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
2846
2847         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
2848         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
2849         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
2850         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
2851         (RS6000_ABI_NAME): Define as "linux".
2852         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
2853         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
2854         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
2855         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
2856         * config/rs6000/rs6000.c (dot_symbols): New global var.
2857         (rs6000_output_function_entry): New function, modified for
2858         !DOT_SYMBOLS..
2859         (print_operand <case 'z'>): ..extracted from here.
2860         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
2861         (rs6000_output_function_epilogue): Likewise.
2862         (rs6000_elf_declare_function_name): Likewise.
2863         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
2864         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
2865         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
2866         * configure: Regenerate.
2867         * config.in: Regenerate.
2868
2869 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
2870
2871         * reload.c (find_reloads_address): Fix thinko in previous change.
2872
2873         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
2874         a CONST_INT.
2875
2876 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
2877
2878         PR rtl-optimization/17099
2879         * combine.c (force_to_mode): Check if inner_mask has any bits set
2880         outside of GET_MODE (x) instead of op_mode.
2881
2882 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
2883
2884         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
2885         fragment.
2886         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
2887         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
2888         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
2889         architecture.
2890         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
2891         configurations.
2892         * config/arm/t-symbian: New file.
2893
2894 2004-08-20  Andrew Pinski  <apinski@apple.com>
2895
2896         * regrename.c (kill_value_regno): ANSIfy.
2897
2898 2004-08-20  Dale Johannesen  <dalej@apple.com>
2899
2900         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
2901
2902 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
2903
2904         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
2905         (kill_value_regno): New function, derived from kill_value.
2906         (kill_value): Update.
2907         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
2908
2909 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
2910
2911         Fix PR tree-optimization/17111
2912         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
2913         of non-value_handles.
2914         (bitmap_set_contains): All constants are in every set.
2915
2916 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2917
2918         * fold-const.c (round_up, round_down): Use build_int_cst.
2919         Optimize common case.
2920
2921 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
2922             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2923
2924         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
2925         one_only_data_section): Rename to som_readonly_data_section,
2926         som_one_only_readonly_data_section and som_one_only_data_section.
2927         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
2928         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
2929         conditional defines.
2930         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
2931         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
2932         string values.
2933         (pa_select_section): Use renamed section functions.
2934         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
2935         SOM_READONLY_DATA_SECTION_FUNCTION,
2936         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
2937         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
2938         Define here ...
2939         * config/pa/som.h: ... not here.
2940         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
2941         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
2942         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
2943         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
2944         (READONLY_DATA_SECTION): Use som_readonly_data_section.
2945
2946 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2947
2948         * fold-const.c (int_const_binop): Don't generate non-overflowing
2949         size-types specially.
2950         (fold_convert_const): Likewise.
2951
2952         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
2953         clear cache on copied sizetype.
2954
2955 2004-08-20  Ben Elliston  <bje@au.ibm.com>
2956
2957         * configure.ac: Don't escape apostrophe in --enable-coverage help.
2958         * configure: Regenerate.
2959
2960 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
2961
2962         PR 5620
2963         * gcc.c (struct stat input_stat): Don't define if
2964         HOST_LACKS_INODE_NUMBERS
2965         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
2966         than stat to determine if temp file is same as input file.
2967         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
2968         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
2969
2970 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
2971
2972         * configure.ac (mips*-*-*): Print an error if not using GAS.
2973         * configure: Regenerated.
2974         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
2975         comments about buggy MIPSpro assemblers.
2976         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
2977         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
2978         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
2979         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
2980         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
2981         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
2982         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
2983         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
2984         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
2985         of more general IRIX 6 definitions.
2986         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
2987         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
2988         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
2989         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
2990         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
2991         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
2992         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
2993         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
2994         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
2995         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
2996         (LINK_SPEC): Move most of definition to iris.h.
2997         (SUBTARGET_LINK_SPEC): New macro.
2998         (IRIX_STARTFILE_SPEC): Fold into...
2999         (STARTFILE_SPEC): ...here.
3000         (IRIX_ENDFILE_SPEC): Fold into...
3001         (ENDFILE_SPEC): ...here.
3002         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
3003         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
3004         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
3005         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
3006         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
3007         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
3008         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
3009         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
3010         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
3011         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
3012         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
3013         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
3014         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
3015         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
3016         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
3017         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
3018         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
3019         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
3020         (TARGET_IRIX6): Define to 1.
3021         (DRIVER_SELF_SPECS): Define.
3022         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
3023         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
3024         (SUBTARGET_LINK_SPEC): New macro.
3025         (IRIX_STARTFILE_SPEC): Fold into...
3026         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
3027         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
3028         (LIB_SPEC, LIBGCC_SPEC): Use them.
3029         (LIB_SPEC): Remove !mabi=* case.
3030         (IRIX_ENDFILE_SPEC): Fold into...
3031         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
3032         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
3033         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
3034         (TARGET_IRIX6): New macro.
3035         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
3036         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
3037         (LABEL_AFTER_LOC): Delete.
3038         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
3039         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
3040         (mips_build_builtin_va_list): Check TARGET_IRIX6.
3041         (override_options): Remove TARGET_SGI_O32_AS-related code.
3042         (irix_output_external_libcall): Make static.
3043         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
3044         LABEL_AFTER_LOC.
3045         (mips_file_start): Tidy guard for ABI sections.  Remove use of
3046         ABICALLS_ASM_OP; use .abicalls instead.
3047         (mips_output_aligned_decl_common, mips_declare_object_name)
3048         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
3049         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
3050         .globl foo .text directives.
3051         (irix_asm_named_section_1, irix_asm_named_section)
3052         (irix_section_align_entry, irix_section_align_htab)
3053         (irix_orig_asm_out_file, irix_section_align_entry_eq)
3054         (irix_section_align_entry_hash, irix_asm_output_align)
3055         (irix_file_start, irix_section_align_1, copy_file_data)
3056         (irix_file_end, irix_section_type_flags): Delete.
3057         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
3058         Use standard section syntax.  Remove protective "jr $31".
3059         (__gcc_fini): Likewise .gcc_fini.
3060         * config/mips/irix-crtn.asm: Adjust sections accordingly.
3061         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
3062         iris5gas.h.
3063         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
3064         from t-irix-gld.
3065         (EXTRA_MULTILIB_PARTS): Define.
3066         * config/mips/t-iris6: Remove bogus comment.
3067         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
3068         * config/mips/iris5gas.h, config/mips/iris5gld.h,
3069         config/mips/iris6gas.h, config/mips/iris6gld.h,
3070         config/mips/t-iris5-as, config/mips/t-iris5-gas
3071         config/mips/t-irix-gld: Delete.
3072         * config/mips/iris.h: New file.
3073         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
3074
3075 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
3076
3077         * postreload.c (reload_cse_move2add): Allow any condjump, but check
3078         that the implicit set isn't clobbered in the jump insn.
3079
3080 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
3081
3082         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
3083         * optabs.c (init_optabs): Don't check it.
3084         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
3085         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
3086
3087 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3088
3089         * config/s390/s390.md (s390_warn_framesize_string)
3090         (s390_warn_dynamic_string, s390_stack_size_string)
3091         (s390_stack_guard_string): New global string variables.
3092         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
3093         (s390_stack_guard): New global variables.
3094         (override_options): Added checks for the new options.
3095         (s390_emit_prologue): Emit stack check and trap code and perform
3096         compile time stack size checking.
3097
3098         * config/s390/s390.h (TARGET_OPTIONS): Added new options
3099         "warn-framesize", "warn-dynamicstack", "stack-size" and
3100         "stack-guard".
3101
3102         * doc/invoke.texi: Added documentation for the new options.
3103
3104 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
3105
3106         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
3107         to eliminate warning.
3108         (linear_search_fdes): Declare p as unsigned.
3109         (binary_search_mixed_encoding_fdes): Likewise.
3110         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
3111         to eliminate warning.
3112         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
3113         type cast.
3114
3115 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
3116
3117         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
3118         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
3119         instead of one.  Check for strictly legitimate address.
3120         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
3121         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
3122
3123 2004-08-19  Eric Christopher  <echristo@redhat.com>
3124
3125         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
3126         * langhooks.h (unsave_expr_now): Ditto.
3127         * tree.h (unsave_expr_1): Remove prototype.
3128         (lhd_unsave_expr_now): Rename to unsave_expr_now.
3129         * tree-inline.c (unsave_expr_1): Move here
3130         from tree.c. Make static.
3131         (unsave_expr_now): Rename from lhd_unsave_expr_now.
3132         * tree-sra.c: Fix up for rename.
3133         * tree-ssa-copy.c: Ditto.
3134         * tree-eh.c: Ditto.
3135         * tree.c (unsave_expr_1): Move to tree-inline.c.
3136
3137 2004-08-19  Caroline Tice  <ctice@apple.com>
3138
3139         * config/i386/cygming.h (switch_to_section):  Fix typo (change
3140         in_unlikely_text_section to in_unlikely_executed_text).
3141
3142 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
3143
3144         * vec.h (VEC_lower_bound): New macro.
3145
3146 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
3147
3148         PR target/16446
3149         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
3150         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
3151         treat each ABI separately.  Deal with n32/n64 complex float arguments.
3152         (function_arg): Add associated complex handling here.
3153
3154 2004-08-19  Richard Henderson  <rth@redhat.com>
3155
3156         * config/arm/arm.c (arm_gen_load_multiple): Use
3157         adjust_automodify_address.  Take base memory and offset instead
3158         of unchanging/struct/scalar bits.
3159         (arm_gen_store_multiple): Likewise.
3160         (arm_gen_movmemqi): Use adjust_automodify_address.
3161         * config/arm/arm-protos.h: Update decls.
3162         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
3163         (store_multiple): Similarly.
3164
3165 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
3166
3167         * regclass.c (globalize_reg): Update call_really_used_regs.
3168
3169 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
3170
3171         * doc/invoke.texi (integer-share-limit): Document.
3172
3173         * tree.h (TYPE_CACHED_VALUES_P): New.
3174         (TYPE_CACHED_VALUES): New.
3175         (TYPE_ORIG_SIZE_TYPE): Adjust.
3176         * tree.def (INTEGER_CST): Update documentation.
3177         * tree.c: Inlcude params.h.
3178         (build_int_cst): Cache small values.
3179         (build_type_copy): Do not copy the value cache.
3180         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
3181         unneeded zeroing.
3182         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
3183         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
3184         cache.
3185         * fold-const.c (force_fit_type): Copy value when setting
3186         overflows.
3187         (int_const_binop): Likewise.
3188         * stor-layout.c: Include params.h
3189         (set_sizetype): Create values cache.
3190         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
3191         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
3192         * params.h (INTEGER_SHARE_LIMIT): New.
3193         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
3194
3195 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
3196
3197         * gimplify.c (gimplify_minimax_expr): Remove.
3198         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
3199
3200 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
3201
3202         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
3203         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
3204
3205 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
3206
3207         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
3208
3209 2004-08-18  Andrew Pinski  <apinski@apple.com>
3210
3211         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
3212
3213 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
3214
3215         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
3216         (__aeabi_ul2f): Likewise.
3217
3218 2004-08-18  Richard Henderson  <rth@redhat.com>
3219
3220         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
3221         move to rtl completely.
3222         (struct meminsnbuf, xtensa_emit_block_move): Remove.
3223         (xtensa_find_mode_for_size): Remove.
3224         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
3225         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
3226
3227 2004-08-18  Richard Henderson  <rth@redhat.com>
3228
3229         * config/mcore/mcore.c (mode_from_align): Remove DImode.
3230         (block_move_sequence): Rewrite to use adjust_address.
3231         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
3232         Return boolean indicating success/failure.
3233         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
3234         * config/mcore/mcore.md (movmemsi): Update to match.
3235
3236 2004-08-18  Mike Stump  <mrs@apple.com>
3237
3238         * doc/invoke.texi (-mfix-and-continue): Add support for
3239         fast turn around debugging.
3240         (-ffix-and-continue): Likewise.
3241         (-mindirect-data): Likewise.
3242         (-findirect-data): Likewise.
3243         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
3244         (indirect_data): Likewise.
3245         (machopic_data_defined_p): Likewise.
3246         (machopic_output_indirection): Likewise.
3247         (darwin_encode_section_info): Likewise.
3248         (darwin_fix_and_continue): Likewise.
3249         (darwin_fix_and_continue_switch): Likewise.
3250         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
3251         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
3252         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
3253         (SUBTARGET_OPTIONS): Likewise.
3254         (darwin_fix_and_continue): Likewise.
3255         (darwin_fix_and_continue_switch): Likewise.
3256         (TARGET_FIX_AND_CONTINUE): Likewise.
3257         * config/rs6000.c (rs6000_emit_prologue): Likewise.
3258
3259 2004-08-19  Steven Bosscher  <stevenb@suse.de>
3260
3261         * basic-block.h (struct edge_def): Remove crossing_edge.
3262         (EDGE_CROSSING): New define.
3263         (EDGE_ALL_FLAGS): Update.
3264         * bb-reorder.c (find_traces_1_round, better_edge_p,
3265         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
3266         find_jump_block, fix_crossing_conditional_branches,
3267         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
3268         Replace all occurences of crossing_edge with an edge flag check
3269         or set/reset.
3270         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
3271         try_crossjump_bb): Likewise.
3272         * cfglayout.c (fixup_reorder_chain): Likewise.
3273         * cfgrtl.c (force_nonfallthru_and_redirect,
3274         commit_one_edge_insertion): Likewise.
3275
3276         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
3277         * tree-flow.h (compute_dominance_frontiers): Move prototype...
3278         * basic-block.h:  ...here.
3279         * tree-cfg.c (compute_dominance_frontiers_1,
3280         compute_dominance_frontiers): Move from here...
3281         * cfganal.c: ...to here.  Include timevar.h.
3282
3283 2004-08-18  James E Wilson  <wilson@specifixinc.com>
3284
3285         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
3286         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
3287
3288         * config/mips/mips.md (type): Add frdiv.
3289         (divsf3+1, divsf3+2): Change type to frdiv.
3290         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
3291         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
3292
3293         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
3294         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
3295         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
3296         * config/mips/5000.md (r5k_fdiv_single): Likewise.
3297         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
3298         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
3299         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
3300         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
3301         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
3302         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
3303         Likewise.
3304         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
3305
3306 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
3307
3308         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
3309         get regression tester working again.
3310
3311 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
3312
3313         * insn-notes.def, reg-notes.def: New files.
3314         * rtl.h: Use them to define enum insn_note and enum reg_note.
3315         * rtl.c: Use them to define note_insn_name and reg_note_name.
3316         * Makefile.in (RTL_BASE_H): Update.
3317
3318         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
3319         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
3320
3321 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
3322
3323         * arm.c (arm_size_rtx_costs): New function.
3324         (arm_override_options): Use it if optimizing for space.
3325
3326 2004-08-18  Richard Henderson  <rth@redhat.com>
3327
3328         * emit-rtl.c (gen_const_mem): New.
3329         * rtl.h (gen_const_mem): Declare.
3330         * expr.c (do_tablejump): Use it.
3331         * varasm.c (force_const_mem): Likewise.
3332         * config/darwin.c (machopic_indirect_data_reference): Likewise.
3333         (machopic_legitimize_pic_address): Likewise.
3334         * config/arm/arm.c (legitimize_pic_address): Likewise.
3335         * config/i386/i386.c (legitimize_pic_address): Likewise.
3336         (legitimize_tls_address): Likewise.
3337         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
3338         * config/ia64/ia64.md (load_fptr): Likewise.
3339         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
3340         * config/pa/pa.c (legitimize_pic_address): Likewise.
3341         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
3342         (rs6000_emit_move): Likewise.
3343         * config/s390/s390.c (legitimize_pic_address): Likewise.
3344         (legitimize_tls_address): Likewise.
3345         * config/s390/s390.md (casesi): Likewise.
3346         * config/sh/sh.c (sh_reorg): Likewise.
3347         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
3348         * config/v850/v850.md (casesi): Likewise.
3349
3350         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
3351         * config/sh/sh.c (prepare_move_operands): Remove incorrect
3352         use of MEM_READONLY_P.
3353
3354 2004-08-18  Steven Bosscher  <stevenb@suse.de>
3355
3356         * Makefile.in (OBJS-common): Add postreload-gcse.c.
3357         Add new postreload-gcse.o.
3358         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
3359         (lookup_as_function, insert, rehash_using_reg, use_related_value,
3360         equiv_constant): Use SAFE_HASH instead of safe_hash.
3361         (exp_equiv_p): Export.  Add for_gcse argument when comparing
3362         for GCSE.
3363         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
3364         find_comparison_args, fold_rtx, cse_insn): Update callers.
3365         (hash_rtx): New function derived from old canon_hash and bits
3366         from gcse.c hash_expr_1.
3367         (canon_hash_string): Rename to hash_rtx_string.
3368         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
3369         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
3370         (cselib_lookup): Update this caller.
3371         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
3372         Make static.
3373         (hash_expr): Call hash_rtx.
3374         (ldst_entry): Likewise.
3375         (expr_equiv_p): Call exp_equiv_p.
3376         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
3377         reg_used_on_edge, reg_set_between_after_reload_p,
3378         reg_used_between_after_reload_p, get_avail_load_store_reg,