1 2004-09-06 James E Wilson <wilson@specifixinc.com>
3 * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
5 2004-09-06 Eric Botcazou <ebotcazou@libertysurf.fr>
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.
13 2004-09-06 Jan Hubicka <jh@suse.cz>
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.
23 2004-09-06 Zack Weinberg <zack@codesourcery.com>
25 * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
28 2004-09-06 Mohan Embar <gnustuff@thisiscool.com>
30 * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
33 2004-09-06 Paolo Bonzini <bonzini@gnu.org>
35 Unify the management of RTL and tree-level dump files.
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
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.
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.
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.
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):
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
116 * tree-pass.h (dump_file_name): New.
117 * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
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
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
134 2004-09-05 Kazu Hirata <kazu@cs.umass.edu>
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.
145 2004-09-05 Kazu Hirata <kazu@cs.umass.edu>
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.
157 2004-09-05 Diego Novillo <dnovillo@redhat.com>
159 * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
160 vectorizer is enabled.
162 2004-09-05 Andreas Jaeger <aj@suse.de>
164 * tree-if-conv.c: Spell check comments and clean up whitespace.
166 2004-09-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
180 * gimplify.c (struct gimplify_ctx): Add into_ssa field.
181 (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
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
195 * tree-pass.h (pass_iv_optimize): Declare.
196 * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
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
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.
217 2004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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
223 (check_function_sentinel, handle_sentinel_attribute): Likewise.
224 * doc/extend.texi: Update accordingly.
226 2004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
228 * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
230 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
232 * c-common.c (handle_sentinel_attribute, check_function_sentinel):
234 (c_common_attribute_table): Add `sentinel' attribute.
235 (check_function_arguments): Handle `sentinel' attribute.
236 * doc/extend.texi: Document `sentinel' attribute.
238 2004-09-04 H.J. Lu <hongjiu.lu@intel.com>
240 * configure: Regenerated.
242 2004-09-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
244 * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
246 * tree.c (save_expr): No longer TREE_READONLY.
248 2004-09-04 Jan Hubicka <jh@suse.cz>
250 * passes.c (rest_of_clean_state): Fix merge conflict made during
253 2004-09-04 Jan Hubicka <jh@suse.cz>
255 * passes.c (rest_of_clean_state): Decompose the instruction stream.
257 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
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.
278 2004-09-04 Jan Hubicka <jh@suse.cz>
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
286 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
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.
297 2004-09-04 Uros Bizjak <uros@kss-loka.si>
299 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
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
306 * optabs.c (init_optabs): Initialize rint_optab.
307 * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
309 (btrunc_optab): Rename macro from trunc_optab.
310 (rint_optab): Define corresponding macro.
312 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
313 UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
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.
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.
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.
357 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
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
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.
370 2004-09-03 Devang Patel <dpatel@apple.com>
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
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.
388 2004-09-03 H.J. Lu <hongjiu.lu@intel.com>
391 Makefile.in (LIB2ADDEHSTATIC): New.
392 (LIB2ADDEHSHARED): 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*.
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.
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.
417 * config/ia64/t-glibc (LIB2ADDEH): Updated.
418 * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
420 * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
422 * unwind-dw2-fde-glibc.c: Likewise.
423 * unwind-dw2.c: Likewise.
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.
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.
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.
440 * gcc.c (init_spec): Add -lunwind to -lgcc_s if
441 USE_LIBUNWIND_EXCEPTIONS is defined.
443 * mklibgcc.in: Support libunwind.
445 2004-09-03 H.J. Lu <hongjiu.lu@intel.com>
447 * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
450 2004-09-03 Richard Henderson <rth@redhat.com>
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.
468 2004-09-04 Jan Hubicka <jh@suse.cz>
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.
476 2004-09-03 James E Wilson <wilson@specifixinc.com>
478 * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
481 2004-09-03 Eric Botcazou <ebotcazou@libertysurf.fr>
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'
489 * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
491 (output_sibcall): Likewise.
493 2004-09-03 Jan Hubicka <jh@suse.cz>
495 * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
496 * tree-ssanames (init_ssanames): Likewise.
498 2004-09-03 Ziemowit Laski <zlaski@apple.com>
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.
515 2004-09-03 James E Wilson <wilson@specifixinc.com>
517 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
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
527 (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
529 2004-09-03 Daniel Jacobowitz <dan@debian.org>
531 * reload.c (find_reloads): Swap operand_loc pointers for
532 find_dummy_reload if we have swapped two operands.
534 2004-09-03 Hans-Peter Nilsson <hp@axis.com>
536 * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
537 to get the tablejump-insn before the jump-table label.
539 2004-09-03 Ziemowit Laski <zlaski@apple.com>
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.
560 2004-09-03 Steve Ellcey <sje@cup.hp.com>
562 * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
564 (ia64_function_value): Ditto.
566 2004-09-03 Jan Beulich <jbeulich@novell.com>
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.
582 * doc/install.texi: Document NKS threading model.
584 2004-09-03 Jan Beulich <jbeulich@novell.com>
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.
605 2004-09-03 Devang Patel <dpatel@apple.com>
607 * dwarf2out.c (gen_field_die). Equate decl number to die.
609 2004-09-03 Vladimir Makarov <vmakarov@redhat.com>
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.
616 2004-09-03 Andreas Schwab <schwab@suse.de>
618 * config/m68k/m68k.c (output_andsi3): Use -1 instead of
619 (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
622 2004-09-02 Jan Beulich <jbeulich@novell.com>
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.
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.
635 2004-09-02 Roman Zippel <zippel@linux-m68k.org>
637 * combine.c (try_combine): Delay modifying of insns which cannot
640 2004-09-02 Daniel Berlin <dberlin@dberlin.org>
642 * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
644 * gcc/tree-ssa-loop.c: Ditto
645 * gcc/tree-ssa-loop-ivcanon.c: Ditto
646 * gcc/doc/invoke.texi: Ditto.
648 2004-09-02 Ziemowit Laski <zlaski@apple.com>
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.
655 2004-09-02 David Edelsohn <edelsohn@gnu.org>
657 * config/rs6000/rs6000.c (expand_block_move): Use SImode and
658 HImode with STRICT_ALIGNMENT.
660 2004-09-02 Mark Mitchell <mark@codesourcery.com>
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.
667 2004-09-02 Roman Zippel <zippel@linux-m68k.org>
669 * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
671 2004-09-02 Eric Christopher <echristo@redhat.com>
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.
687 2004-09-02 Ziemowit Laski <zlaski@apple.com>
689 * c-decl.c (store_parm_decls_newstyle): Make externally visible.
690 * c-tree.h (store_parm_decls_newstyle): New prototype.
692 2004-09-02 Geoffrey Keating <geoffk@apple.com>
694 * config/rs6000/rs6000.c (expand_block_clear): Use vector
695 instructions if available.
696 (expand_block_move): Likewise.
698 2004-09-03 Jan Hubicka <jh@suse.cz>
700 * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
702 2004-09-02 Mark Mitchell <mark@codesourcery.com>
704 * config/arm/symbian.h (LIB_SPEC): Define to empty.
705 * config/arm/t-symbian (SHLIB_LC): Likewise.
707 2004-09-02 Paul Brook <paul@codesourcery.com>
709 * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
711 2004-09-02 Richard Sandiford <rsandifo@redhat.com>
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
727 2004-09-02 Richard Sandiford <rsandifo@redhat.com>
729 * config/mips/mips.md (*lea_high64): Change split condition to
730 flow2_completed. Add a peephole2 to generate a more parallel version.
732 2004-09-02 Jan Hubicka <jh@suse.cz>
734 * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
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.
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.
760 2004-09-02 James E Wilson <wilson@specifixinc.com>
762 * common.opt (ftrapping-math): Default to on.
764 2004-09-02 Richard Earnshaw <rearnsha@arm.com>
766 * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
768 2004-09-02 Denis Chertykov <denisc@overta.ru>
771 * config/avr/avr.md ("movmemhi"): Substitute match_dup to
773 (*movmemqi_insn): Likewise.
774 (*movmemhi): Likewise.
775 (clrmemhi): Likewise.
776 (*clrmemqi): Likewise.
777 (*clrmemhi): Likewise.
779 2004-09-02 Paul Brook <paul@codesourcery.com>
781 * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
782 default_use_cxa_atexit=yes.
784 2004-09-02 Alan Modra <amodra@bigpond.net.au>
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
792 2004-09-02 Richard Sandiford <rsandifo@redhat.com>
794 * toplev.c (process_options): Fix typo.
796 2004-09-01 Richard Henderson <rth@redhat.com>
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
807 2004-09-01 Dan Nicolaescu <dann@ics.uci.edu>
809 * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
810 * ggc.h (ggc_alloc_rtx): Delete.
812 2004-09-01 Roger Sayle <roger@eyesopen.com>
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".
829 2004-09-01 David Edelsohn <edelsohn@gnu.org>
831 * config/rs6000/power4.md: Increase store latency to 12.
832 * config/rs6000/power5.md: Same.
834 2004-09-01 James E Wilson <wilson@specifixinc.com>
837 * config/avr/avr.c (avr_unique_section): Delete prototype and
839 (TARGET_ASM_UNIQUE_SECTION): Delete.
841 2004-09-01 Ziemowit Laski <zlaski@apple.com>
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.
856 2002-09-01 Fariborz Jahanian <fjahanian@apple.com>
858 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
861 2004-09-01 Wu Yongwei <adah@sh163.net>
862 Danny Smith <dannysmith@users.sourceforge.net>
864 * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
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.
879 2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
881 * tree-tailcall.c (find_tail_calls): Also fail is statement has
884 * tree-ssa.c (propagate_into_addr): Properly test for LHR.
886 * doc/c-tree.texi: Document new operands for ARRAY_REF and
889 2004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
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
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
910 * value-prof.c: Include ggc.h.
911 (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
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
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
929 * doc/invoke.texi (-fspeculative-prefetching): Document.
931 2004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
933 PR rtl-optimization/16408
934 * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
936 2004-09-01 Richard Henderson <rth@redhat.com>
938 * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
939 (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
941 2004-09-01 Jakub Jelinek <jakub@redhat.com>
943 * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
945 2004-09-01 Mike Stump <mrs@apple.com>
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.
955 2004-09-01 Jakub Jelinek <jakub@redhat.com>
957 * Makefile.in (bb-reorder.o): Add several dependencies.
959 2004-09-01 Jakub Jelinek <jakub@redhat.com>
961 * fold-const.c (operand_equal_p): Require equal sign also for
962 FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
964 2004-09-01 Richard Earnshaw <rearnsha@arm.com>
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.
970 2004-09-01 J"orn Rennecke <joern.rennecke@superh.com>
971 Nick Clifton <nickc@redhat.com>
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.
977 2004-09-01 Richard Earnshaw <rearnsha@arm.com>
979 * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
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.
989 2004-09-01 Richard Earnshaw <rearnsha@arm.com>
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.
997 2004-09-01 Ziemowit Laski <zlaski@apple.com>
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.
1012 2004-08-31 Mark Mitchell <mark@codesourcery.com>
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.
1021 2004-08-31 Stan Shebs <shebs@apple.com>
1023 * toplev.c (process_options): Ensure debug_hooks is initialized.
1025 2004-08-31 Mark Mitchell <mark@codesourcery.com>
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.
1033 2004-08-31 Kaz Kojima <kkojima@gcc.gnu.org>
1035 * config/sh/sh.c (output_branch): Check the insn length possibly
1036 in the delayed slot.
1038 2004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1040 * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
1042 (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
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.
1055 2004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1056 Jeff Law <law@redhat.com>
1058 * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
1061 2004-08-31 Mark Mitchell <mark@codesourcery.com>
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
1070 (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
1071 * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
1074 2004-08-31 Denis Chertykov <denisc@overta.ru>
1077 * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
1078 frame pointer register only in Pmode while reload in progress.
1080 2004-08-31 Stephane Carrez <stcarrez@nerim.fr>
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.
1086 2004-08-31 Matt Austern <austern@apple.com>
1088 * config/darwin.c (darwin_make_decl_one_only): Allocate section
1089 names once per compilation, instead of once per symbol.
1091 2004-08-31 Paolo Bonzini <bonzini@gnu.org>
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.
1108 * fixinc/*: Removed.
1110 2004-08-31 Joseph S. Myers <jsm@polyomino.org.uk>
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.
1118 2004-08-31 Richard Sandiford <rsandifo@redhat.com>
1120 * read-rtl.c: Disable RTL checking.
1121 (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
1123 2004-08-31 Richard Sandiford <rsandifo@redhat.com>
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.
1130 2004-08-30 Mark Mitchell <mark@codesourcery.com>
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.
1137 2004-08-30 Andrew Pinski <apinski@apple.com>
1140 s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
1141 * ChangeLog: Fix previous ChangeLog entry.
1144 * config.host (use_long_long_for_widest_fast_int): New, default is
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
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.
1165 2004-08-30 Steven Bosscher <stevenb@suse.de>
1167 * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
1170 2004-08-30 Geoffrey Keating <geoffk@apple.com>
1176 * c-decl.c (grokdeclarator): Produce error for 'static' on local
1177 function declaration.
1179 2004-08-30 Richard Henderson <rth@redhat.com>
1181 * expr.c (array_ref_element_size): Force aligned_size back to
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
1188 2004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
1190 * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
1193 2004-08-30 Joseph S. Myers <jsm@polyomino.org.uk>
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
1199 (c_push_function_context, c_pop_function_context): Save and
1202 2004-08-30 Richard Henderson <rth@redhat.com>
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.
1210 2004-08-30 Richard Henderson <rth@redhat.com>
1212 * expr.c (expand_expr_addr_expr): New.
1213 (expand_expr_real_1) <case ADDR_EXPR>: Use it.
1215 2004-08-30 Richard Sandiford <rsandifo@redhat.com>
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
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.
1242 2004-08-30 Richard Henderson <rth@redhat.com>
1244 * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
1245 assuming an ADDR_EXPR is non-null.
1247 2004-08-30 Jason Merrill <jason@redhat.com>
1249 * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
1251 2004-08-30 Nathan Sidwell <nathan@codesourcery.com>
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.
1278 2004-08-30 Nathan Sidwell <nathan@codesourcery.com>
1280 * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
1281 * gcov.c (abort): Remove undef.
1283 * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
1284 (struct tree_binfo): Remove primary field.
1286 2004-08-30 Paolo Bonzini <bonzini@gnu.org>
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.
1301 2004-08-30 Paolo Bonzini <bonzini@gnu.org>
1303 * configure.ac: Do not run fixincludes after stage1 during
1305 * configure: Regenerate.
1307 2004-08-30 Richard Earnshaw <rearnsha@arm.com>
1309 * sched-deps.c (get_condition): Partially revert previous, by never
1310 trying to extract the condition from a condjump.
1312 2004-08-30 Nathan Sidwell <nathan@codesourcery.com>
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.
1318 2004-08-30 Richard Sandiford <rsandifo@redhat.com>
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.
1326 2004-08-30 Diego Novillo <dnovillo@redhat.com>
1328 * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
1329 in COMPONENT_REF nodes.
1331 2004-08-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
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.
1342 2004-08-30 Richard Earnshaw <rearnsha@arm.com>
1344 * sched-deps.c (get_condition): Fix breakage in previous patch.
1346 2004-08-30 Paul Brook <paul@codesourcery.com>
1348 * doc/install.texi: Fix broken mpfr link.
1350 2004-08-29 David O'Brien <obrien@FreeBSD.org>
1352 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
1353 other FreeBSD platforms.
1355 2004-08-29 Richard Earnshaw <rearnsha@arm.com>
1357 * arm.h (REVERSE_CONDITION): Define.
1358 (REVERSIBLE_CC_MODE): All comparisons are now reversible.
1360 2004-08-29 Richard Earnshaw <rearnsha@arm.com>
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.
1370 2004-08-29 Richard Earnshaw <rearnsha@arm.com>
1372 * sched-deps.c (get_condition): Rewrite using jump support functions.
1373 Use reversed_comparison_code.
1374 (conditions_mutex_p): Use reversed_comparison_code.
1376 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
1378 * config/mips/mips.c (override_options): Disable hot/cold partitioning
1381 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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
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.
1401 2004-08-29 Mark Mitchell <mark@codesourcery.com>
1403 PR rtl-optimization/16590
1404 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
1406 2004-08-29 Diego Novillo <dnovillo@redhat.com>
1408 * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
1409 * tree-ssa-propagate.c: Fix documentation.
1411 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
1413 * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
1414 (mov[sd]fcc): Likewise.
1416 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
1418 * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
1420 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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
1428 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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
1440 (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
1441 (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
1443 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
1445 * config/mips/mips.c (mips_init_builtins): Simplify. Only create
1446 V2SF_type_node if it will be needed.
1448 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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.
1463 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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.
1475 2004-08-29 Richard Sandiford <rsandifo@redhat.com>
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.
1483 2004-08-29 Chao-ying Fu <fu@mips.com>
1484 James E Wilson <wilson@specifixinc.com>
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
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
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.
1539 2004-08-29 Diego Novillo <dnovillo@redhat.com>
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
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.
1551 2004-08-28 Andrew Pinski <apinski@apple.com>
1553 * tree-ssa-loop.c: Remove extra include of basic-block.h.
1555 2004-08-28 Ziemowit Laski <zlaski@apple.com>
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.
1568 2004-08-28 Nathan Sidwell <nathan@codesourcery.com>
1570 * system.h (gcc_assert): Remove __builtin_expect. Evaluate EXPR
1571 even when not checking.
1573 2004-08-27 Jason Merrill <jason@redhat.com>
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.
1596 2004-08-27 David Edelsohn <edelsohn@gnu.org>
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.
1603 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
1605 * stor-layout.c (sizetype_set): Remove.
1606 (set_sizetype): Don't test or set it.
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.
1617 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
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.
1626 2004-08-26 Richard Sandiford <rsandifo@redhat.com>
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.
1634 2004-08-26 Richard Henderson <rth@redhat.com>
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
1643 (primary): Use fold_offsetof, not build_offsetof.
1645 2004-08-26 Richard Henderson <rth@redhat.com>
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.
1655 2004-08-26 Richard Henderson <rth@redhat.com>
1657 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
1660 2004-08-26 Joseph S. Myers <jsm@polyomino.org.uk>
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
1669 (diagnose_mismatched_decls): Handle externs with initializers at
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
1679 2004-08-26 Ziemowit Laski <zlaski@apple.com>
1681 * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
1683 2004-08-26 Daniel Berlin <dberlin@dberlin.org>
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.
1690 2004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1692 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
1693 TFmode as additional register mode cloberred by call.
1695 2004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1697 * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
1698 parallel pattern for library call returning DImode in
1701 2004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1703 * config/rs6000/rs6000.c (function_arg): Generate parallel
1704 pattern for more split args.
1706 2004-08-26 Fariborz Jahanian <fjahanian@apple.com>
1708 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
1709 either gen_movdi_di_update or gen_movdi_si_update depending on
1711 * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
1712 to generate two versions.
1714 2004-08-26 Daniel Berlin <dberlin@dberlin.org>
1716 * Makefile.in (lambda-code.o): New.
1717 (lambda-trans.o): Ditto.
1718 (TREE_DATA_REF_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
1731 2004-08-26 Daniel Berlin <dberlin@dberlin.org>
1732 Sebastian Pop <pop@cri.ensmp.fr>
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
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.
1755 2004-08-26 Bob Wilson <bob.wilson@acm.org>
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.
1761 2004-08026 Richard Earnshaw <rearnsha@arm.com>
1764 * toplev.c (crash_signal): If we crashed while emitting
1765 a user asm, then die more gracefully.
1767 2004-08-26 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1770 * config/m32r.c (gen_compare): Use reg_or_int16_operand when
1771 checking for a valid constant, regardless of sign.
1773 2004-08-25 Richard Henderson <rth@redhat.com>
1776 * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
1777 if the constant satisfies add_operand.
1779 2004-08-25 Richard Henderson <rth@redhat.com>
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.
1786 2004-08-25 Richard B. Kreckel <richard.kreckel@framatome-anp.com>
1789 * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
1791 2004-08-25 Richard Henderson <rth@redhat.com>
1793 * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
1794 (TARGET_CANNOT_FORCE_CONST_MEM): New.
1796 2004-08-25 Andrew MacLeod <amacleod@redhat.com>
1798 * doc/tree-ssa.texi: Document new operand iterator.
1800 2004-08-26 Alan Modra <amodra@bigpond.net.au>
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
1807 2005-08-28 Paul Brook <paul@codesourcery.com>
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.
1813 2004-08-25 Richard Henderson <rth@redhat.com>
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.
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.
1825 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
1826 (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1828 2004-08-25 Richard Henderson <rth@redhat.com>
1830 * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1831 set REAL_MODE_FORMAT for TFmode.
1833 2004-08-25 Ziemowit Laski <zlaski@apple.com>
1835 * c-decl.c (grokparm): New function.
1836 * c-tree.h (grokparm): New prototype.
1838 2004-08-25 Andrew MacLeod <amacleod@redhat.com>
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
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
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
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.
1895 2004-08-25 Adam Nemet <anemet@lnxw.com>
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.
1903 2004-08-25 Ziemowit Laski <zlaski@apple.com>
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.
1908 2004-08-25 Paolo Carlini <pcarlini@suse.de>
1910 * doc/install.texi: Document that libstdc++-v3 requires
1913 2004-08-25 Caroline Tice <ctice@apple.com>
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
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.
1932 2004-08-25 Richard Sandiford <rsandifo@redhat.com>
1934 * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
1935 (*mov*_on_*): Adjust accordingly. Add an explicit MOVECC: prefix.
1937 2004-08-25 Richard Sandiford <rsandifo@redhat.com>
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.
1952 2004-08-24 Geoffrey Keating <geoffk@apple.com>
1954 * gimplify.c (lookup_tmp_var): Separate temporaries when not
1957 2004-08-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
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.
1992 2004-08-25 Steven Bosscher <stevenb@suse.de>
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.
2003 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
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):
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):
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):
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):
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):
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):
2091 * config/xtensa/xtensa.c (xtensa_va_start,
2092 xtensa_gimplify_va_arg_expr): Likewise.
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.
2109 2004-04-25 Paolo Bonzini <bonzini@gnu.org>
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
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.
2128 2004-08-25 Paolo Bonzini <bonzini@gnu.org>
2130 * doc/install.texi: Document that libcpp does not require
2131 Automake any longer. Document that Automake 1.9.1 should
2134 2004-08-25 Zack Weinberg <zack@codesourcery.com>
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.
2145 2004-08-25 Zack Weinberg <zack@codesourcery.com>
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.
2151 2004-08-25 Alan Modra <amodra@bigpond.net.au>
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
2160 2004-08-24 Richard Henderson <rth@redhat.com>
2163 * config/i386/i386.c (legitimate_constant_p): Rework to not accept
2164 random codes within CONST.
2166 2004-08-24 James E Wilson <wilson@specifixinc.com>
2168 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
2169 -freorder-blocks-and-partition.
2171 2004-08-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
2178 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
2180 * config/mips/predicates.md (small_data_pattern): Match prefetches.
2182 2004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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.
2189 2004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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
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):
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):
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.
2241 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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.
2252 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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
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.
2266 2004-08-24 Richard Earnshaw <rearnsha@arm.com>
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
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.
2295 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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.
2302 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
2304 * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode
2307 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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].
2313 (tablejump): Use expand_binop to calculate address. Adjust names
2314 of internal patterns.
2315 (tablejump[sd]i): Renamed from tablejump_internal[12].
2317 (tablejump_mips16[12]): Delete.
2319 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
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.
2327 2004-08-24 Richard Sandiford <rsandifo@redhat.com>
2329 * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
2330 (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine
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.
2339 2004-08-24 Zack Weinberg <zack@codesourcery.com>
2341 * rtl.def: Reorganize, placing all codes used only in machine
2342 descriptions at the end.
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.
2353 2004-08-24 Zack Weinberg <zack@codesourcery.com>
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.
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.
2371 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
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.
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.
2392 2004-08-24 Richard Henderson <rth@redhat.com>
2393 Andrew Pinski <apinski@apple.com>
2395 * gimplify.c (gimplify_array_ref_to_plus): Delete.
2396 (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
2399 * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
2400 ARRAY_REF also to get to the STRING_CST.
2402 2004-08-24 Paul Brook <paul@codesourcery.com>
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.
2410 2004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2413 * config/m32r.md (movsi_sda): Add SI mode specification to
2416 2004-08-24 Nick Clifton <nickc@redhat.com>
2418 * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
2419 of seth_add3_operand.
2421 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2423 * Makefile.in (PROTO_OBJS): Add errors.o.
2424 * protoize.c (fancy_abort): Remove.
2425 * mips-tfile.c (fancy_abort): Add parameters.
2427 2004-08-24 Jonathan Wakely <redi@gcc.gnu.org>
2429 * doc/trouble.texi (C++ misunderstandings): Fix example code.
2431 2004-08-24 Andreas Tobler <a.tobler@schweiz.ch>
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.
2440 2004-08-23 James E Wilson <wilson@specifixinc.com>
2442 * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
2445 2004-08-23 Mark Mitchell <mark@codesourcery.com>
2448 * dwarf2out.c (loc_descriptor_from_tree): Robustify.
2450 2004-08-23 Diego Novillo <dnovillo@redhat.com>
2452 * cfg.c (check_bb_profile): Fix typos.
2453 * function.c (assign_parm_is_stack_parm): Likewise.
2454 * tree-nested.c: Likewise.
2456 2004-08-23 Daniel Jacobowitz <dan@debian.org>
2458 * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
2460 (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
2462 2004-08-23 Eric Christopher <echristo@redhat.com>
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.
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.
2490 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
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
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,
2523 * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
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
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):
2541 * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
2542 * config/rs6000/rs6000.c (rs6000_init_builtins): Use
2543 build_distinct_type_copy.
2545 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
2547 * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode
2550 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
2552 * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
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.
2558 2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2560 * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
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.
2568 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
2570 * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
2571 $31 store insns. Redefine using :GPR.
2573 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2580 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2589 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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
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.
2603 2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2605 * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
2608 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2617 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
2619 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
2621 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2636 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2644 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2683 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2723 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
2725 * read-rtl.c (read_rtx): Tidy use of format_ptr.
2727 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
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.
2735 2004-08-22 Andrew Pinski <apinski@apple.com>
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.
2743 2004-08-22 Richard Henderson <rth@redhat.com>
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.
2750 2004-08-22 Ulrich Weigand <uweigand@de.ibm.com>
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).
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.
2764 2004-08-22 Richard Hendersion <rth@redhat.com>
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.
2771 2004-08-22 Andrew Pinski <pinskia@physics.uc.edu>
2773 * fold-const.c (rtl_expr_nonnegative_p): Delete.
2774 * tree.h (rtl_expr_nonnegative_p): Remove.
2776 2004-08-22 Steven Bosscher <stevenb@suse.de>
2778 * config/i386/ppro.md (ppro_complex_insn): Add missing check
2779 for cpu==pentiumpro.
2781 * combine.c (struct reg_stat): Fix comment typo.
2783 2004-08-22 Joseph S. Myers <jsm@polyomino.org.uk>
2785 * c-tree.h (c_sizeof_nowarn): Remove.
2787 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
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):
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):
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
2803 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
2805 * c-decl.c (build_array_declarator, set_array_declarator_type,
2806 start_decl, grokdeclarator, grokparms): Change boolean parameters
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.
2812 2004-08-21 Mike Stump <mrs@apple.com>
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.
2821 2004-08-21 Danny Smith <dannysmith@users.sourceforge.net>
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.
2832 2004-08-20 Mike Stump <mrs@apple.com>
2834 * config/darwin.c (machopic_indirect_data_reference): Mark
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.
2845 2004-08-21 Alan Modra <amodra@bigpond.net.au>
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
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.
2869 2004-08-20 Mark Mitchell <mark@codesourcery.com>
2871 * reload.c (find_reloads_address): Fix thinko in previous change.
2873 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
2876 2004-08-20 Jakub Jelinek <jakub@redhat.com>
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.
2882 2004-08-20 Mark Mitchell <mark@codesourcery.com>
2884 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
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
2890 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
2892 * config/arm/t-symbian: New file.
2894 2004-08-20 Andrew Pinski <apinski@apple.com>
2896 * regrename.c (kill_value_regno): ANSIfy.
2898 2004-08-20 Dale Johannesen <dalej@apple.com>
2900 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
2902 2004-08-20 Daniel Jacobowitz <dan@debian.org>
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.
2909 2004-08-20 Daniel Berlin <dberlin@dberlin.org>
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.
2916 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
2918 * fold-const.c (round_up, round_down): Use build_int_cst.
2919 Optimize common case.
2921 2004-08-20 Zack Weinberg <zack@codesourcery.com>
2922 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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
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):
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.
2946 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
2948 * fold-const.c (int_const_binop): Don't generate non-overflowing
2949 size-types specially.
2950 (fold_convert_const): Likewise.
2952 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
2953 clear cache on copied sizetype.
2955 2004-08-20 Ben Elliston <bje@au.ibm.com>
2957 * configure.ac: Don't escape apostrophe in --enable-coverage help.
2958 * configure: Regenerate.
2960 2004-08-20 Danny Smith <dannysmith@users.sourceforge.net>
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
2970 2004-08-20 Richard Sandiford <rsandifo@redhat.com>
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
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
3063 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
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.
3075 2004-08-20 Richard Earnshaw <rearnsha@arm.com>
3077 * postreload.c (reload_cse_move2add): Allow any condjump, but check
3078 that the implicit set isn't clobbered in the jump insn.
3080 2004-08-19 Mark Mitchell <mark@codesourcery.com>
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.
3087 2004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
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.
3098 * config/s390/s390.h (TARGET_OPTIONS): Added new options
3099 "warn-framesize", "warn-dynamicstack", "stack-size" and
3102 * doc/invoke.texi: Added documentation for the new options.
3104 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
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
3115 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
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.
3123 2004-08-19 Eric Christopher <echristo@redhat.com>
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.
3135 * tree.c (unsave_expr_1): Move to tree-inline.c.
3137 2004-08-19 Caroline Tice <ctice@apple.com>
3139 * config/i386/cygming.h (switch_to_section): Fix typo (change
3140 in_unlikely_text_section to in_unlikely_executed_text).
3142 2004-08-19 Daniel Berlin <dberlin@dberlin.org>
3144 * vec.h (VEC_lower_bound): New macro.
3146 2004-08-19 Richard Sandiford <rsandifo@redhat.com>
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.
3154 2004-08-19 Richard Henderson <rth@redhat.com>
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.
3165 2004-08-19 J"orn Rennecke <joern.rennecke@superh.com>
3167 * regclass.c (globalize_reg): Update call_really_used_regs.
3169 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
3171 * doc/invoke.texi (integer-share-limit): Document.
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
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
3185 * fold-const.c (force_fit_type): Copy value when setting
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.
3195 2004-08-19 Paolo Bonzini <bonzini@gnu.org>
3197 * gimplify.c (gimplify_minimax_expr): Remove.
3198 (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
3200 2004-08-19 Dorit Naishlos <dorit@il.ibm.com>
3202 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
3203 STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
3205 2004-08-19 Mark Mitchell <mark@codesourcery.com>
3207 * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
3209 2004-08-18 Andrew Pinski <apinski@apple.com>
3211 * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
3213 2004-08-18 Mark Mitchell <mark@codesourcery.com>
3215 * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
3216 (__aeabi_ul2f): Likewise.
3218 2004-08-18 Richard Henderson <rth@redhat.com>
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.
3227 2004-08-18 Richard Henderson <rth@redhat.com>
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.
3236 2004-08-18 Mike Stump <mrs@apple.com>
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.
3259 2004-08-19 Steven Bosscher <stevenb@suse.de>
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
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.
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.
3283 2004-08-18 James E Wilson <wilson@specifixinc.com>
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.
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.
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):
3304 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
3306 2004-08-18 Robert Bowdidge <bowdidge@apple.com>
3308 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
3309 get regression tester working again.
3311 2004-08-18 Zack Weinberg <zack@codesourcery.com>
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.
3318 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
3319 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
3321 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
3323 * arm.c (arm_size_rtx_costs): New function.
3324 (arm_override_options): Use it if optimizing for space.
3326 2004-08-18 Richard Henderson <rth@redhat.com>
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.
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.
3354 2004-08-18 Steven Bosscher <stevenb@suse.de>
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
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):
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,