1 2004-07-16 Frank Ch. Eigler <fche@redhat.com>
3 * tree-mudflap.c (mf_file_function_line_tree): Correct typo
4 that prevented descriptive __mf_check source location strings.
6 2004-07-16 Richard Henderson <rth@redhat.com>
8 * tree-def (WITH_SIZE_EXPR): New.
9 * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
10 * expr.c (expand_expr_real_1): Likewise.
11 * gimplify.c (maybe_with_size_expr): New.
12 (gimplify_arg, gimplify_modify_expr): Use it.
13 (gimplify_modify_expr_to_memcpy): Take size parameter.
14 (gimplify_modify_expr_to_memset): Likewise.
15 (gimplify_expr): Handle WITH_SIZE_EXPR.
16 * tree-alias-common.c (find_func_aliases): Likewise.
17 * tree-eh.c (tree_could_trap_p): Likewise.
18 (tree_could_throw_p): Likewise.
19 * tree-gimple.c (is_gimple_lvalue): Likewise.
20 (get_call_expr_in): Likewise.
21 * tree-inline.c (estimate_num_insns_1): Likewise.
22 (expand_calls_inline): Likewise.
23 * tree-nested.c (convert_call_expr): Likewise.
24 * tree-pretty-print.c (dump_generic_node): Likewise.
25 * tree-sra.c (sra_walk_expr): Likewise.
26 * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
27 * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
28 * tree-ssa-operands.c (get_expr_operands): Likewise.
29 * tree-tailcall.c (find_tail_calls): Likewise.
31 * calls.c (expand_call): Reset old_stack_allocated after
32 calling emit_stack_restore.
34 2004-07-16 Richard Henderson <rth@redhat.com>
36 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
37 lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
38 * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
39 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
40 copy_res_decl_for_inlining.
42 * tree-inline.c (declare_return_variable): New modify_dest argument.
43 Use it as the return value, when possible or manditory. Handle
44 TREE_ADDRESSABLE types.
45 (expand_call_inline): Extract MODIFY_EXPR lhs for call. Simplify
46 replacement of CALL_EXPR.
48 2004-07-16 Richard Henderson <rth@redhat.com>
50 * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
51 * gimple-low.c (expand_var_p): Don't check it.
52 * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
53 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
54 * tree-ssa-operands.c (add_stmt_operand): Likewise.
55 * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
56 (find_referenced_vars): Don't call them.
57 * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
59 2004-07-16 Richard Henderson <rth@redhat.com>
61 * function.c (pass_by_reference): True for all variable sized types.
63 2004-07-16 Sebastian Pop <pop@cri.ensmp.fr>
65 * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
66 * tree-pretty-print.c: Include tree-chrec.h.
67 (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
68 and POLYNOMIAL_CHREC nodes.
70 2004-07-16 Steve Ellcey <sje@cup.hp.com>
72 * builtins.c (expand_builtin_stpcpy): Do not create temporary
75 2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
77 * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
79 2004-07-16 Andreas Krebbel <krebbel1@de.ibm.com>
81 * config/s390/s390.md: Changed every occurence of BASE_REGISTER
83 * config/s390/s390.c: Likewise.
84 * config/s390/s390.h: Likewise.
86 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
88 * config/mips/mips.md (addsi3, adddi3): Remove special handling
89 of $sp adds. Remove REGNO checks from mips16 patterns.
91 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
93 * config/mips/mips.md: Delete outdated comment.
95 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
97 * config/mips/mips.c (get_float_compare_codes): Delete.
98 (mips_emit_compare): New function, mostly extracted from
99 get_float_compare_codes and gen_conditional_branch.
100 (gen_conditional_branch, gen_conditional_move): Use it.
102 2004-07-16 Segher Boessenkool <segher@kernel.crashing.org>
104 * genautomata.c (add_vect): Speedup by using integers as
105 bit-vectors for walking through the comb_vect and finding
108 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
110 * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
111 operand is an uns_arith_operand; use subtraction otherwise.
112 * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
113 not just arith_operands.
115 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
117 * config/mips/mips-protos.h (gen_int_relational): Delete.
118 (mips_emit_scc): Declare.
119 * config/mips/mips.c (internal_test): Delete.
120 (sle_operand, sleu_operand): New functions.
121 (map_test_to_internal_test, gen_int_relational): Delete.
122 (mips_emit_binary, mips_relational_operand_ok_p)
123 (mips_emit_int_relational, mips_zero_if_equal)
124 (mips_emit_scc): New functions.
125 (gen_conditional_branch): Rework to use mips_emit_int_relational.
126 * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
128 * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
129 (sltu, sleu): Use mips_emit_scc.
130 (*sge_[sd]i, *sgeu_[sd]i): New patterns.
131 (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
132 (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
134 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
136 * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
138 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
140 * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
141 (*sne_[sd]i): Likewise sne_[sd]i_zero.
142 (*sgt_[sd]i): ...and sgt_[sd]i.
143 (*slt_[sd]i): ...and slt_[sd]i.
144 (*sgtu_[sd]i): ...and sgtu_[sd]i.
145 (*sltu_[sd]i): ...and sltu_[sd]i.
146 (*sleu_[sd]i): ...and sleu_[sd]i_const.
147 Name previously unnamed mips16 patterns. Formatting fixes.
149 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
151 * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
152 (branch_type): Delete.
153 (gen_conditional_branch, gen_conditional_move)
154 (mips_gen_conditional_trap): Update after name change. Get the
155 comparison mode from cmp_operands[0].
156 * config/mips/mips.h (cmp_type, branch_type): Delete.
157 (cmp_operands): Renamed from branch_cmp.
158 * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
159 name change. Don't set branch_type.
160 (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
161 mode class of cmp_operands[0] rather than branch_type. Update after
164 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
166 * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
167 of 0...255 to 0 when inside a SET.
169 2004-07-16 Richard Sandiford <rsandifo@redhat.com>
171 * config/mips/mips.md: Remove mips16 define_peepholes.
173 2004-07-16 Daniel Berlin <dberlin@dberlin.org>
175 * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
176 (fini_pre): Remove fake edges.
178 2004-07-15 Richard Henderson <rth@redhat.com>
180 * tree-ssa-operands.c (get_expr_operands): Use a switch. Split out...
181 (get_indirect_ref_operands, get_call_expr_operands): ... these.
183 2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
185 * vec.h (VEC_address): New function.
187 2004-07-14 Jason Merrill <jason@redhat.com>
190 * gimplify.c (gimplify_arg): New fn, split out from...
191 (gimplify_call_expr): Here. Special-case BUILT_IN_VA_START.
193 2004-07-15 Roman Zippel <zippel@linux-m68k.org>
195 * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
196 generate code which is generated by pushqi1 now
197 * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
199 2004-07-15 Roman Zippel <zippel@linux-m68k.org>
201 * combine.c (simplify_set): match the mode of the constant 0 with
202 the tested operand to match the compare behaviour and the
203 simplify_relational_operation() expectation.
205 2004-07-15 Aldy Hernandez <aldyh@redhat.com>
207 * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
210 2004-07-15 Aldy Hernandez <aldyh@redhat.com>
212 * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
214 * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
216 2004-07-15 Richard Sandiford <rsandifo@redhat.com>
218 * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
219 calls in mips16 code.
221 2004-07-15 Richard Sandiford <rsandifo@redhat.com>
223 * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
224 the destination of the li as well as for the neg.
226 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
229 * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
230 * cgraph.h: Update declaration.
231 * c-decl.c (build_cdtor): Update call with default priority.
232 * coverage.c (create_coverage): Ditto.
233 * tree-mudflap.c (mf_init_fndecl): New tree.
234 (mudflap_init): Set it.
235 (mudflap_register_call): Arrange to call __mf_init before the first
237 (mudflap_finish_file): Mark the mudflap static initializer as extra
238 high priority, to beat all C++ static constructors.
240 2004-07-15 Jeff Law <law@redhat.com>
242 * loop.c (check_insn_for_givs): Restore check for code labels that was
243 accidentally deleted by a recent checkin.
245 2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
247 * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
248 (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
250 2004-07-14 Richard Henderson <rth@redhat.com>
252 * print-tree.c (print_node): Fix casts last change.
254 2004-07-15 Paul Brook <paul@codesourcery.com>
256 * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
257 to TARGET_UNWIND_INFO.
258 * except.c (output_function_exception_table): Ditto.
260 * opts.c (decode_options): Ditto.
261 * passes.c (rest_of_handle_final): Ditto.
262 * final.c (final_start_function): Ditto.
263 (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
265 * targhooks.h (default_unwind_emit): Declare.
266 * targhooks.c (default_unwind_emit): New function.
267 * target-def.h: Define and use TARGET_UNWIND_EMIT.
268 * target.h (struct gcc_target): Add unwind_emit.
269 * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
270 * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
271 Remove IA64_UNWIND_EMIT.
272 * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
274 2004-07-14 Richard Henderson <rth@redhat.com>
276 * print-tree.c (print_node): Handle SSA_NAME.
278 2004-07-14 James E Wilson <wilson@specifixinc.com>
281 * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
282 and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
284 2004-07-15 Jakub Jelinek <jakub@redhat.com>
286 * expr.c (expand_assignment): Reenable bitfield += optimizations.
287 Use alias set 0 for memory, do proper mode calculations and adjust
288 address for memories.
290 2004-07-14 Per Bothner <per@bothner.com>
292 * input.h: If USE_MAPPED_LOCATION, define separate expanded_location
293 structure with extra column field.
294 * tree.c (expand_location): Also fill in column field.
295 * gengtype-lex.l: Ignore expanded_location typedef, sinze gengtype
296 gets confused by the two conditionally-compiled definitions.
298 2004-07-14 Eric Christopher <echristo@redhat.com>
300 * calls.c (expand_call): Fix typo in comment.
302 2004-07-14 Steve Ellcey <sje@cup.hp.com>
304 * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
305 comparision of TFmode.
307 2004-07-14 Richard Henderson <rth@redhat.com>
309 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
310 (alpha_gimplify_va_arg): ... handling here. Use pass_by_reference.
311 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
312 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
313 * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
314 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
315 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
316 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
317 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
319 2004-07-14 Mike Stump <mrs@apple.com>
321 * config/darwin.h (WINT_TYPE): Define to be int to match
324 2004-07-14 Bob Wilson <bob.wilson@acm.org>
326 * config/xtensa/xtensa.c (function_arg_advance): Check for args
327 that must be passed in the stack.
328 (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
329 arguments if the size is not a constant.
331 2004-07-14 Per Bothner <per@bothner.com>
333 * c-typeck.c (emit_side_effect_warnings): Use EXPR_HAS_LOCATION
334 instead of EXPR_LOCUS in a boolean context, which is always true
335 if --enable-mapped-location.
336 * stmt.c (warn_if_unused_value): Likewise. Also use EXPR_LOCATION.
338 2004-07-14 Richard Henderson <rth@redhat.com>
340 * dominance.c (struct dom_info): Add fake_exit_edge.
341 (init_dom_info): Allocate it.
342 (free_dom_info): Free it.
343 (calc_dfs_tree): Set it. Handle noreturn and infinite loops
345 (calc_idoms): Honor fake_exit_edge.
347 2004-07-13 Jason Merrill <jason@redhat.com>
349 * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
350 (rhs_test_for): New fn.
351 (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
352 * tree-gimple.h: Declare them.
353 * gimplify.c (gimplify_modify_expr): Use the new fns.
355 2004-07-14 Richard Henderson <rth@redhat.com>
357 * config/arm/arm-protos.h (arm_va_arg): Remove.
358 * config/arm/arm.c (arm_va_arg): Remove.
359 (arm_init_expanders): Fix alignment of arg_pointer_rtx.
360 * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
362 2004-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
364 * pa.c (fix_range): New function to mark a range(s) of registers as
366 (override_options): Call fix_range if the -mfixed-range option string
368 * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
369 * doc/invoke.texi (-mfixed-range): Document new option.
371 2004-07-14 David Edelsohn <edelsohn@gnu.org>
373 * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
375 (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
377 2004-07-14 Roger Sayle <roger@eyesopen.com>
379 * expmed.c (expand_sdiv_pow2): New function to expand signed division
380 by a positive power of two, split out from expand_divmod. Provide
381 an alternate implementation when shifts are expensive. Lower the
382 threshold for using a branchless implementation to BRANCH_COST >= 2.
383 (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
385 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
387 * tree-dfa.c (make_rename_temp): *Really* work just
388 like create_tmp_var if called while outside SSA form.
390 2004-07-14 Ulrich Weigand <uweigand@de.ibm.com>
392 * config/s390/s390.md ("udivsi3"): Ensure trap is generated
393 for division by zero.
394 ("umodsi3"): Likewise.
396 2004-07-14 Richard Sandiford <rsandifo@redhat.com>
398 * config/mips/mips.c (mips_output_move): When generating mips16 code,
399 force loads of negative constants to be split.
400 * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
401 Generalize SImode li/neg splitter to cope with other modes.
403 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
405 * expmed.c: Remove more references to QUEUED in the comments.
408 2004-07-14 Richard Sandiford <rsandifo@redhat.com>
411 2004-07-13 Richard Henderson <rth@redhat.com>
412 * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
415 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
417 * tree-dfa.c (make_rename_temp): Work just like
418 create_tmp_var if called while outside SSA form.
420 2004-07-14 Paolo Bonzini <bonzini@gnu.org>
422 * expr.c (enqueue_insn, finish_expr_for_function,
423 protect_from_queue, queued_subexp_p, mark_queue,
424 emit_insns_enqueued_after_mark, emit_queue,
425 expand_increment): Remove.
426 (store_constructor): Expand increment as an assignment.
427 (expand_expr_real_1 <case PREINCREMENT_EXPR,
428 case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
429 case POSTDECREMENT_EXPR>): Abort.
430 * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
431 QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
432 protect_from_queue, emit_queue, queued_subexp_p): Remove.
433 * function.h (pending_chain, x_pending_chain): Remove.
434 * rtl.def (QUEUED): Remove.
436 * emit-rtl.c (copy_insn_1, copy_most_rtx,
437 set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
438 * genattrtab.c (attr_copy_rtx, clear_struct_flag,
439 encode_units_mask): Likewise.
440 * local-alloc.c (equiv_init_varies_p): Likewise.
441 * rtl.c (copy_rtx): Likewise.
442 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
443 * simplify-rtx.c (simplify_gen_subreg): Likewise.
444 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
446 * builtins.c (expand_builtin, expand_builtin_apply,
447 expand_builtin_mathfn, expand_builtin_mathfn_2,
448 expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
449 Remove calls to emit_queue and protect_from_queue.
450 * calls.c (expand_call, precompute_arguments,
451 precompute_register_parameters, rtx_for_function_call,
452 store_one_arg): Likewise.
453 * dojump.c (do_compare_and_jump, do_jump): Likewise.
454 * explow.c (memory_address): Likewise.
455 * expmed.c (clear_by_pieces_1, clear_storage,
456 clear_storage_via_libcall, emit_group_load,
457 emit_group_store, emit_store_flag,
458 expand_expr_real_1, store_by_pieces,
459 store_constructor, store_expr, try_casesi,
460 try_tablejump): Likewise.
461 * function.c (expand_pending_sizes): Likewise.
462 * optabs.c (emit_cmp_and_jump_insns,
463 emit_conditional_add, emit_conditional_move,
464 expand_fix, expand_float, prepare_cmp_insn): Likewise.
465 * stmt.c (emit_case_bit_tests,
466 expand_asm_expr, expand_computed_goto,
467 expand_decl_init, expand_end_case_type,
468 expand_end_stmt_expr, expand_expr_stmt_value,
469 expand_return, expand_start_case,
470 optimize_tail_recursion): Likewise.
471 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
472 * config/s390/s390.c (s390_expand_cmpmem): Likewise.
474 2004-07-14 Ben Elliston <bje@au.ibm.com>
476 * vec.h: Comment fix.
478 2004-07-13 Richard Henderson <rth@redhat.com>
480 * target.h (struct gcc_target): Add calls.pass_by_reference.
481 * target-def.h (TARGET_PASS_BY_REFERENCE): New.
482 * function.c (pass_by_reference): Use the hook.
483 * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
484 * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
485 (hook_pass_by_reference_must_pass_in_stack): New.
486 * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
487 (alpha_pass_by_reference): New.
488 (TARGET_PASS_BY_REFERENCE): New.
489 * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
490 * config/arc/arc.c (arc_pass_by_reference): New.
491 (TARGET_PASS_BY_REFERENCE): New.
492 * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
493 (FUNCTION_ARG_CALLEE_COPIES): True.
494 * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
495 * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
496 (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
497 * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
498 * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
499 * config/cris/cris.c (cris_pass_by_reference): New.
500 (TARGET_PASS_BY_REFERENCE): New.
501 * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
502 (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
503 (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
504 * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
505 * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
506 * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
507 * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
508 (frv_function_arg_pass_by_reference): Remove.
509 * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
510 * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
511 * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
512 (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
513 * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
514 * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
515 * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
516 (ia64_pass_by_reference): Rename from
517 ia64_function_arg_pass_by_reference.
518 * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
519 * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
520 * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
521 * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
522 (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
523 * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
524 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
525 * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
526 * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
527 (m32r_pass_by_reference): Adjust prototype. Make static.
528 Handle mode sizes correctly.
529 * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
530 * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
531 (m68hc11_function_arg_pass_by_reference): Remove.
532 * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
533 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
534 * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
535 * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
536 * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
537 * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
538 (mips_va_arg): Use pass_by_reference.
539 (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
540 Handle mode sizes correctly.
541 * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
542 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
543 * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
544 * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
545 (mmix_pass_by_reference): Rename from
546 mmix_function_arg_pass_by_reference.
547 * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
548 (FUNCTION_ARG_CALLEE_COPIES): True.
549 * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
550 (mn10300_pass_by_reference): New.
551 * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
552 (FUNCTION_ARG_CALLEE_COPIES): True.
553 * config/pa/pa.c (pa_pass_by_reference): New.
554 (TARGET_PASS_BY_REFERENCE): New.
555 * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
556 (FUNCTION_ARG_CALLEE_COPIES): True.
557 * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
558 * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
559 (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
560 * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
561 * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
562 * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
563 (s390_pass_by_reference): Rename from
564 s390_function_arg_pass_by_reference.
565 (s390_function_arg_advance): Don't query pass-by-ref.
566 (s390_function_arg): Likewise.
567 (s390_gimplify_va_arg): Use pass_by_reference.
568 (s390_call_saved_register_used): Likewise.
569 * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
570 * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
571 (shcompact_byref, sh_pass_by_reference): New.
572 * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
573 (SHCOMPACT_BYREF): Remove.
574 * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
575 * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
576 (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
577 (sparc_gimplify_va_arg): Use pass_by_reference.
578 * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
579 * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
580 * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
581 (v850_pass_by_reference): New.
582 * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
583 (FUNCTION_ARG_CALLEE_COPIES): True.
584 * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
585 FUNCTION_ARG_PASS_BY_REFERENCE docs.
587 2004-07-14 Richard Henderson <rth@redhat.com>
588 Richard Sandiford <rsandifo@redhat.com>
590 * config/mips/mips-protos.h (mips_va_arg): Delete.
591 * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
592 * config/mips/mips.c: Include tree-gimple.h.
593 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
594 (mips_arg_info): Remove special handling of must_pass_in_stck args.
595 (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
596 (function_arg_pass_by_reference): Return true if must_pass_in_stack.
598 2004-07-13 Bob Wilson <bob.wilson@acm.org>
600 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
601 arguments for COND_EXPR in big-endian adjustment code.
603 2004-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
605 * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
606 * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
607 * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
608 * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
610 2004-07-13 Diego Novillo <dnovillo@redhat.com>
612 PR tree-optimization/16443
613 * tree-ssa-alias.c: Add more description for
614 CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
615 * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
616 clobbering of call-clobbered and addressable variables. If
617 there are any before aliases have been computed, add them.
619 2004-07-13 Diego Novillo <dnovillo@redhat.com>
621 * tree-optimize.c (execute_todo): Flush DUMP_FILE before
624 2004-07-13 Ulrich Weigand <uweigand@de.ibm.com>
626 * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
627 of build_int_2. Convert both operands of PLUS_EXPR and MULT_EXPR
630 2004-07-13 Per Bothner <per@bothner.com>
632 * collect2.c (main): Handle --no-demangle and --demangle flags.
634 2004-07-13 Sebastian Pop <pop@cri.ensmp.fr>
636 * Makefile.in (OBJS-common): Add tree-data-ref.o.
637 (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
638 (tree-data-ref.o): New rule.
639 * lambda.h: New file.
640 * tree-data-ref.c: New file.
641 * tree-data-ref.h: New file.
642 * tree.c (int_cst_value, tree_fold_gcd): New functions.
643 * tree.h (int_cst_value, tree_fold_gcd): Declared here.
645 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
648 * config/sparc/sparc-protos.h (output_ubranch): New prototype.
649 * config/sparc/sparc.c (output_ubranch): New function.
650 * config/sparc/sparc.md (jump pattern): Use it.
652 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
655 * config/sparc/sparc.c (output_cbranch): Properly guard
656 the code handling far branches with TARGET_V9.
657 * config/sparc/sparc.md (length attribute): Document the
658 side-effect of having a length greater or equal to 3.
660 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
661 Lloyd Parkes <lloyd@must-have-coffee.gen.nz>
664 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
665 /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
667 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
668 Martin Sebor <sebor@roguewave.com>
671 * doc/invoke.texi (SPARC options): Document -threads
672 and -pthreads on Solaris.
674 2004-07-13 Richard Henderson <rth@redhat.com>
676 * builtins.c (std_gimplify_va_arg_expr): Handle types passed
678 (ind_gimplify_va_arg_expr): Remove.
679 * tree.h (ind_gimplify_va_arg_expr): Remove.
680 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
681 * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
684 * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
685 (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
686 * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
687 config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
688 config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
690 2004-07-13 Richard Henderson <rth@redhat.com>
692 * function.c (pass_by_reference): New.
693 (assign_parm_find_data_types): Use it.
694 * calls.c (initialize_argument_information): Likewise.
695 (emit_library_call_value_1): Likewise.
696 * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
697 * function.h (pass_by_reference): Declare.
699 2004-07-13 Richard Henderson <rth@redhat.com>
701 * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
702 * target.h (struct gcc_target): Add calls.must_pass_in_stack.
703 * expr.h (MUST_PASS_IN_STACK): Remove.
704 * system.h (MUST_PASS_IN_STACK): Poison.
705 * tree.h (must_pass_in_stack_var_size): Declare.
706 (must_pass_in_stack_var_size_or_pad): Declare.
707 * calls.c (must_pass_in_stack_var_size): New.
708 (must_pass_in_stack_var_size_or_pad): Rename from
709 default_must_pass_in_stack.
710 * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
711 (TARGET_MUST_PASS_IN_STACK): New.
712 * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
713 * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
714 (TARGET_MUST_PASS_IN_STACK): New.
715 * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
716 * config/frv/frv.c (frv_must_pass_in_stack): New.
717 (TARGET_MUST_PASS_IN_STACK): New.
718 * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
719 * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
720 * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
721 (ix86_must_pass_in_stack): Make static.
722 * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
723 * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
724 * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
725 * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
726 * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
727 * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
728 * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
729 (mcore_must_pass_on_stack): Remove.
730 * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
731 * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
732 * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
733 * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
734 * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
735 * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
736 * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
737 * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
738 (TARGET_MUST_PASS_IN_STACK): New.
739 * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
740 * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
741 * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
742 * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
743 * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
744 * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
745 * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
748 * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
749 config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
750 config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
751 config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
752 config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
753 config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
754 config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
755 config/xtensa/xtensa.c: Use target hook.
757 2004-07-13 Anthony Heading <aheading@jpmorgan.com>
759 * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
760 * configure: Rebuilt.
762 2004-07-13 Richard Sandiford <rsandifo@redhat.com>
764 * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
765 * config/mips/mips.h (mips_reg_names): Don't declare.
766 (MASK_NAME_REGS): Delete. Shuffle other MASK_* values down.
767 (TARGET_NAME_REGS): Delete.
768 (TARGET_SWITCHES): Remove -mrnames.
769 (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
770 (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
772 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
773 (override_options): Remove handling of TARGET_NAME_REGS.
775 2004-07-13 Richard Sandiford <rsandifo@redhat.com>
777 * config/mips/mips.h (TARGET_*): Boolify.
779 2004-07-12 Nick Clifton <nickc@redhat.com>
781 * config.gcc: Add sh-*-symbianelf target.
782 * config/sh/sh.c: Add new target macros:
783 TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
784 TARGET_CXX_IMPORT_EXPORT_CLASS.
785 (sh_file_start): Create a definition of the .directive section.
786 (sh_attribute): Add dllimport and dllexport attributes.
787 * config/sh/symbian-pre.h: New file.
788 * config/sh/symbian-post.h: New file.
789 * config/sh/symbian.c: New file. Contains Symbian specific
791 * config/sh/sh-protos.h: Add prototypes for new functions
792 provided by symbian.c.
793 * config/sh/t-symbian: New file.
794 * doc/extend.texi: Document support for dllimport and dllexport
795 attributes by the sh-symbianelf target.
797 2004-07-12 James E Wilson <wilson@specifixinc.com>
799 * Makefile.in (AR): Use @AR@ not ar.
801 (AR_FOR_TARGET): Use $(AR) not ar for native.
802 (NM_FOR_TARGET): Use $(NM) not nm for native.
803 * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
804 * configure: Regenerate.
806 2004-07-12 David S. Miller <davem@nuts.davemloft.net>
808 * config/sparc/sparc.md (ashlsi3): Eliminate const 1
810 (ashldi3_sp64): Likewise.
812 2004-07-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
815 * pa.c (function_arg): Update comment.
816 * pa.h (BLOCK_REG_PADDING): Define.
818 2004-07-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
820 PR tree-optimization/16461
821 * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
822 arguments of phi nodes.
824 2004-07-12 Devang Patel <dpatel@apple.com>
826 * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
828 2004-07-12 Steve Ellcey <sje@cup.hp.com>
830 * function.c (expand_function_start): Ensure r_save is in Pmode.
831 * calls.c (prepare_call_address): Ensure static_chain_value is
833 * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
834 r_save_area are in Pmode.
835 * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
836 fnaddr, and static_chain are in Pmode.
838 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
841 * config/ia64/ia64.c (bundling): Don't count ignored insns.
843 2004-07-12 Richard Henderson <rth@redhat.com>
845 * target.h (struct gcc_target): Move gimplify_va_arg_expr
846 next to build_builtin_va_list.
847 * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
848 * builtins.c (gimplify_va_arg_expr): Likewise.
849 * gimplify.c (copy_if_shared_r): Likewise.
851 2004-07-12 Alexandre Oliva <aoliva@redhat.com>
853 * passes.c (rest_of_decl_compilation): Don't defer call of
854 assemble_variable if its DECL_RTL is already set.
856 2004-07-12 Sebastian Pop <pop@cri.ensmp.fr>
858 * cfgloop.h (struct loop): Add nb_iterations field.
859 (current_loops): Declare.
860 * tree-chrec.c (chrec_not_analyzed_yet,
861 chrec_dont_know, chrec_known, count_ev_in_wider_type,
862 chrec_contains_symbols_defined_in_loop): Remove the temporary
864 * tree-flow-inline.h (loop_containing_stmt): New function.
865 * tree-scalar-evolution.c: Add implementation.
866 * tree-scalar-evolution.h: Add declarations.
868 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
870 PR rtl-optimization/15921
871 * Makefile.in (global.o): Add recog.h.
873 * global.c (recog.h): Add the include-clause.
874 (bb_info): New member earlyclobber.
875 (allocate_bb_info, free_bb_info): Initialize/finish the new
877 (earlyclobber_regclass, earlyclobber_regclass_length): The new
879 (check_earlyclobber, regclass_intersect,
880 mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
882 (calculate_local_reg_bb_info): Calculate value of earlyclobber.
883 (make_accurate_live_analysis): Modify pavin.
885 2004-07-12 Diego Novillo <dnovillo@redhat.com>
887 * tree-cfg.c (find_taken_edge): Statically compute the truth
888 value of a predicate comparing an SSA_NAME to itself.
890 2004-07-12 Roger Sayle <roger@eyesopen.com>
892 * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
893 rs6000 doesn't have shift-and-add or shift-and-sub instructions
894 by returning the cost of a multiplication plus an addition.
896 2004-07-12 Paolo Bonzini <bonzini@gnu.org>
898 PR tree-optimization/14107
899 * gimplify.c (gimplify_return_expr): Accept a
900 RETURN_EXPR with an error argument.
901 * tree-optimize.c (init_tree_optimization_passes):
902 Run pass_warn_function_return at -O0.
904 2004-07-12 Roger Sayle <roger@eyesopen.com>
906 * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
909 2004-07-12 Richard Sandiford <rsandifo@redhat.com>
911 * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
912 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
913 * config/mips/3000.md: Add copyright notice. Remove automota and
914 function units; use generic ones instead. Only define reservations
915 for things that are different from generic.md. Extend each clause
917 * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
918 * config/mips/mips.md: Include them. Remove define_function_units.
919 (alu, imuldiv): New automata and units.
921 2004-07-12 Ben Elliston <bje@au.ibm.com>
923 * doc/invoke.texi (Optimize Options): Document -frename-registers
924 not being enabled by default at -O3.
926 2004-07-11 Roger Sayle <roger@eyesopen.com>
928 * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
929 floating point additions, to keep real immediate constant positive.
930 <MINUS_EXPR>: For floating point subtractions, only transform X - -C
931 into X + C, and leave positive real constants as X - C.
933 2004-07-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
935 * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
937 2004-07-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
939 PR tree-optimization/15654
940 * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
942 2004-07-11 Roger Sayle <roger@eyesopen.com>
944 * builtins.c (fold_builtin_fputs): Don't bother converting the
945 return type to integer_type_node, as we've already checked that
946 the result will be ignored.
948 * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
949 that signed addition, subtraction, multiplication, division,
950 remainder, negation and absolute value may potentially trap.
952 * fold-const.c (fold_ignored_result): New function to strip
953 non-side-effecting tree nodes from an expression whose result
955 (fold_convert): Call fold_ignored_result when casting a value
957 (omit_one_operand): Call fold_ignored_result on the "omitted"
958 operand when building a COMPOUND_EXPR.
959 (pedantic_omit_one_operand): Likewise.
960 * tree.h (fold_ignored_result): Prototype here.
961 * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
962 when we're going to ignore the result.
964 2004-07-11 Richard Henderson <rth@redhat.com>
967 * tree-ssa-ccp.c (fold_stmt_r): Split out...
968 * tree.c (fields_compatible_p, find_compatible_field): ... new.
969 * tree.h (fields_compatible_p, find_compatible_field): Declare.
970 * tree-sra.c (sra_hash_tree): Hash fields by offset.
971 (sra_elt_eq): Use fields_compatible_p.
972 (generate_one_element_ref): Use find_compatible_field.
974 2004-07-11 Richard Henderson <rth@redhat.com>
977 * tree-sra.c (generate_one_element_init): New.
978 (generate_element_init): Use it.
979 (scalarize_init): Push/pop gimplify context around it.
980 (find_new_referenced_vars_1, find_new_referenced_vars): New.
981 * gimplify.c (gimplify_expr): Allow SSA_NAME.
983 2004-07-11 Roger Sayle <roger@eyesopen.com>
985 * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
986 combine.c's combine_insn_cost.
987 * rtl.h (insn_rtx_cost): Prototype here.
988 * combine.c (combine_insn_cost): Delete function.
989 (combine_validate_cost): Update callers of combine_insn_cost to
990 call insn_rtx_cost instead.
991 (combine_instructions): Likewise. Use NONJUMP_INSN_P to avoid
992 requesting the rtx_cost of call and/or jump instructions.
994 * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
995 rtx_cost directly. Don't request/use the cost of call or jump
996 instructions. Return -1 if the cost of any instruction can't be
997 determined (or the BB contains a function call).
998 (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
999 -1 (i.e. can't determine the cost of any instruction or the basic
1000 block contains a subroutine call).
1001 (find_if_case_2): Likewise.
1003 2004-07-11 Roger Sayle <roger@eyesopen.com>
1005 * rs6000.c (struct processor_costs): Change semantics of fields to
1006 include the COST_N_INSNS scaling, and update all initializers.
1007 (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
1008 Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
1009 Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP. When
1010 optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
1012 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
1014 * LANGUAGES: Remove obsolete information.
1016 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
1018 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
1019 SIGBUS signal frames, the PSW address points *to* the faulting
1020 instruction, not after it.
1022 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
1024 * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
1025 added to TLS symbol addresses.
1027 2004-07-11 Richard Henderson <rth@redhat.com>
1029 * expmed.c (init_expmed): Use stack-local structures for
1030 temporary rtl. Don't recognize shifts.
1032 2004-07-11 Richard Henderson <rth@redhat.com>
1034 * expr.c (store_expr): Don't fiddle subreg promotion for types
1035 with precision smaller than the mode.
1037 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
1039 * tree.h (all_types_permanent): Remove.
1041 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
1043 * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
1044 maybe_build_cleanup, update_decl_after_saving): Remove hooks.
1045 * langhooks.c (lhd_clear_binding_stack): Remove.
1046 * langhooks-def.h (lhd_clear_binding_stack,
1047 LANG_HOOKS_MAYBE_BUILD_CLEANUP,
1048 LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
1049 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
1050 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
1051 (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
1052 * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
1053 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
1054 LANG_HOOKS_MAYBE_BUILD_CLEANUP,
1055 LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
1056 * tree.h (poplevel): Don't declare.
1057 * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
1058 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
1059 * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
1060 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
1063 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
1065 PR tree-optimization/16437
1066 * c-common.c (shorten_compare): Don't mark result of conversion to
1067 narrower signed type as overflowing.
1068 * fold-const.c (decode_field_reference): Determine whether
1069 signedness comes from outer type using precision rather than size.
1071 2004-07-11 Phil Edwards <phil@codesourcery.com>
1073 * configure.ac: Alphabetize --enable-checking list, add
1074 missing valgrind entry.
1075 * configure: Regenerate.
1077 2004-07-11 Phil Edwards <phil@codesourcery.com>
1079 * doc/install.texi (Testing): Fix syntax in "make check" example.
1081 2004-07-10 James E Wilson <wilson@specifixinc.com>
1083 * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
1085 2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1087 PR rtl-optimization/16001
1088 * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
1091 2004-07-10 Geoffrey Keating <geoffk@apple.com>
1093 * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
1095 2004-07-10 Steve Kargl <sgk@troutmask.apl.washington.edu>
1096 James Morrison <phython@gcc.gnu.org>
1098 * doc/contrib.texi (Contributors): Add gfortran contributors and
1099 fix a couple of typos.
1101 2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1103 PR rtl-optimization/15387
1104 * calls.c (check_sibcall_argument_overlap_1): Handle pointers
1105 to incoming args space correctly.
1107 2004-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1109 * pa.c (output_indirect_call): Only use %r2 as the link register in
1110 indirect calls with the long PA 2.0 pc-relative branch.
1112 2004-07-10 Daniel Jacobowitz <dan@debian.org>
1114 * config/i386/i386.c (override_options): Pick a 64-bit CPU
1115 for the default tuning if TARGET_64BIT.
1117 2004-07-10 Richard Henderson <rth@redhat.com>
1119 * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
1120 to HOST_WIDE_INT. Fold pad-args-down arithmetic.
1122 2004-07-10 Jakub Jelinek <jakub@redhat.com>
1124 * expr.h (store_bit_field, extract_bit_field): Remove last argument.
1125 * expmed.c (store_bit_field, extract_bit_field): Remove last
1127 * builtins.c (expand_builtin_signbit): Adjust callers.
1128 * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
1129 * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
1130 * ifcvt.c (noce_emit_move_insn): Likewise.
1131 * stmt.c (expand_return): Likewise.
1132 * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
1133 store_field, expand_expr_real_1): Likewise.
1135 2004-07-10 Richard Henderson <rth@redhat.com>
1137 * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
1139 2004-07-09 Mike Stump <mrs@apple.com>
1141 * config/darwin.c (no_dead_strip): Add.
1142 (HAVE_DEAD_STRIP): Add.
1143 (darwin_emit_unwind_label): Ensure that we don't dead code strip
1146 2004-07-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1148 * tree-ssa-loop-im.c: New file.
1149 * Makefile.in (tree-ssa-loop-im.o): Add.
1150 * cfgloop.c (superloop_at_depth): New function.
1151 * cfgloop.h (superloop_at_depth): Declare.
1152 * common.opt (ftree-lim): New flag.
1153 * expr.c (array_ref_up_bound): New function.
1154 * params.def (PARAM_LIM_EXPENSIVE): New parameter.
1155 * timevar.def (TV_LIM): New timevar.
1156 * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
1157 computing immediate uses of a phi node.
1158 * tree-flow.h (struct tree_ann_common_d): Add aux field.
1159 (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
1160 * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
1161 * tree-pass.h (pass_lim): Declare.
1162 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
1164 (pass_lim): New pass structure.
1165 * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
1166 * tree.c (in_array_bounds_p): New function.
1167 * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
1168 (in_array_bounds_p, array_ref_up_bound): Declare.
1169 * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
1170 * doc/passes.texi (tree-ssa-loop-im.c): Document.
1172 2004-07-09 Richard Henderson <rth@redhat.com>
1174 * builtins.c (expand_builtin_stpcpy): Don't modify len.
1176 * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
1179 2004-07-10 Kelley Cook <kcook@gcc.gnu.org>
1181 * flags.h: Delete redundant prototypes that are being generated
1182 in options.h from common.opt.
1183 * common.opt: Add in the expository comments formerly in flags.h.
1185 2004-07-09 Jan Beulich <jbeulich@novell.com>
1187 * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
1188 available for use only when TARGET_MMX/_SSE is set, and check for
1189 variable argument function if any register count is non-zero.
1190 (function_arg): Correctly suppress repeated warnings for passing SSE
1191 vectors are arguments without SSE enabled.
1192 (ix86_function_arg_boundary): Without SSE enabled, the use of what
1193 would be SSE register modes does no longer influence the alignment.
1195 2004-07-09 Richard Henderson <rth@redhat.com>
1197 * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
1198 Always align upward to arg boundary. Use size_in_bytes/round_up.
1199 Maintain type-correctness of constants.
1200 * stor-layout.c (round_up, round_down): Special-case powers of 2.
1202 2004-07-09 David S. Miller <davem@nuts.davemloft.net>
1204 * config/sparc/sparc.c (*_costs): Scale instruction costs
1206 (sparc_rtx_costs): Adjust as appropriate.
1208 2004-07-09 Jan Beulich <jbeulich@novell.com>
1210 * config/i386/mm3dnow.h: New.
1211 * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
1213 2004-07-09 Richard Henderson <rth@redhat.com>
1215 * simplify-rtx.c (simplify_const_relational_operation): Only
1216 look at bounds of scalar integers.
1218 2004-07-09 Jan Beulich <jbeulich@novell.com>
1220 * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
1222 2004-07-09 Andrew Pinski <apinski@apple.com>
1224 * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
1226 (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
1227 UOBJC_METACLASS_decl.
1229 2004-07-09 James E Wilson <wilson@specifixinc.com>
1232 * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
1233 do return a parallel if hfa_mode == XFmode and mode == TImode.
1235 2004-07-09 Jan Beulich <jbeulich@novell.com>
1237 * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
1238 permissible for unary plus.
1240 2004-07-09 Jan Beulich <jbeulich@novell.com>
1242 * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
1243 (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
1244 (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
1245 (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
1246 BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
1247 * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
1248 BUILTIN_POPCOUNTxxx): Arguments are unsigned.
1249 (BUILTIN_xxxIMAX): New.
1250 * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
1251 BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
1252 BUILT_IN_PARITYIMAX.
1254 2004-07-09 David S. Miller <davem@nuts.davemloft.net>
1256 * config/sparc/sparc.h (processor_costs): Define.
1257 (sparc_costs): Declare.
1258 * config/sparc/sparc.c (cypress_costs, supersparc_costs,
1259 hypersparc_costs, sparclet_costs, ultrasparc_costs,
1260 ultrasparc3_costs): New.
1261 (sparc_override_options): Set sparc_costs as appropriate.
1262 (sparc_rtx_costs): Use sparc_costs instead of messy
1265 2004-07-09 Steven Bosscher <stevenb@suse.de>
1267 * doc/md.texi (Processor pipeline description): Mention that
1268 the old pipeline description is deprecated.
1270 * config/rs6000/7450.md (automaton ppc7450): Split up, move
1271 mciu_7450 function unit to...
1272 (automaton ppc7450mciu): ...new automaton.
1274 * haifa-sched.c (insert_schedule_bubbles_p): Remove.
1275 (schedule_block): Don't consider inserting bubbles.
1276 (sched_init): Don't initialize DFA bubbles.
1277 * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
1278 TARGET_SCHED_DFA_BUBBLE): Remove.
1279 * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
1280 * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
1281 TARGET_SCHED_DFA_BUBBLE): Remove documentation.
1283 * stmt.c (conditional_context): Remove prototype.
1284 * tree.h (conditional_context): Remove.
1285 * tree-cfg.c (pre_insert_on_edge): Remove.
1287 * c-common.h (c_expand_asm_operands): Remove prototype.
1288 * c-typeck.c (c_expand_asm_operands): Remove.
1290 2004-07-09 Jan Beulich <jbeulich@novell.com>
1292 * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
1293 their base modes. CTImode, TCmode, and XCmode must be passed in memory.
1294 TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
1295 and V8QI are class SSE. All sufficiently small remaining vector modes
1296 must be passed in one or two integer registers.
1297 (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
1299 (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
1300 __builtin_ia32_pmuludq128 have non-uniform argument and return types
1301 and must thus be handled explicitly.
1302 * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
1304 (movv8qi_internal, movv4hi_internal, movv2si_internal,
1305 movv2sf_internal): Permit moving between MMX and XMM registers (since
1306 MMX areguments and return values are passed in XMM registers).
1307 (sse2_umulsidi3): Correct type and mode.
1309 2004-07-09 Richard Henderson <rth@redhat.com>
1311 * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
1313 2004-07-09 Eric Christopher <echristo@redhat.com>
1315 * config/rs6000/40x.md: Split into two automatons.
1317 2004-07-09 Zack Weinberg <zack@codesourcery.com>
1318 Andrew Pinski <apinski@apple.com>
1320 * c-opts.c (c_common_post_options): Force unit-at-a-time mode
1321 on when we have more than one input file.
1322 (c_common_parse_file): Restore loop over all input files.
1323 Clarify diagnostic for -dy when YYDEBUG wasn't defined.
1325 * c-decl.c (set_type_context): New function.
1326 (pop_scope): Use it to set context of types. When we
1327 encounter a TYPE_DECL, set the context of the attached type too.
1328 (pop_file_scope): Don't call cpp_undef_all here.
1329 (diagnose_mismatched_decls): Do not complain about a second
1330 definition of an 'extern inline' function if it's not in the
1331 same translation unit. Do not complain about inline
1332 declaration after use if the use was in a different
1334 (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
1335 (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
1337 (pushdecl_top_level): Likewise.
1338 (grokdeclarator): Clarify what is going on with setting
1339 DECL_EXTERNAL on function types, a little.
1340 (c_write_global_declarations): Don't do anything if
1341 -fsyntax-only or errors have been encountered.
1343 2004-07-09 Zack Weinberg <zack@codesourcery.com>
1345 * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
1347 2004-07-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1350 * pa.c (output_indirect_call): Use %r2 as the link register when
1351 calling $$dyncall with a pc-relative branch.
1353 2004-07-08 Gerald Pfeifer <gerald@pfeifer.com>
1355 * doc/install.texi (Binaries): Mention OpenPKG.
1357 2004-07-09 Diego Novillo <dnovillo@redhat.com>
1359 Fix PR tree-optimization/15555
1360 * tree-dfa.c (dump_variable): If the variable is a pointer
1361 SSA_NAME, also dump its points-to information.
1362 * tree-flow.h (struct ptr_info_def): Add field
1364 (dump_points_to_info_for): Declare.
1365 (debug_points_to_info_for): Declare.
1366 * tree-optimize.c (init_tree_optimization_passes): Add a
1367 second alias analysis pass after DOM2.
1368 Move pass_del_pta to a later spot.
1369 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
1370 create a name tags when we find a dereferenced pointer. Just
1371 mark the pointer dereferenced.
1372 (collect_points_to_info_for): Move code to clear points-to
1373 information to create_name_tags.
1374 (create_name_tags): New function.
1375 (compute_flow_sensitive_aliasing): Call it.
1376 (setup_pointers_and_addressables): Mark type tags for renaming
1378 (create_memory_tag): ... here.
1379 (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
1380 (dump_points_to_info_for): Declare extern.
1381 (debug_points_to_info_for): New function.
1383 2004-07-09 Paolo Bonzini <bonzini@gnu.org>
1385 * config/arc/arc.md: Switch to DFA-based scheduler description.
1386 * config/arc/arc.c: Switch to DFA-based scheduler description.
1388 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
1390 * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
1393 2004-07-09 Richard Henderson <rth@redhat.com>
1395 * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
1396 * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1397 (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
1398 * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
1400 * config/v850/v850-protos.h (v850_va_arg): Remove.
1401 * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1402 (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
1403 * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
1404 (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
1405 (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
1407 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
1410 * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
1411 and DImode to use +/-4k offset.
1413 2004-07-09 Richard Henderson <rth@redhat.com>
1415 * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
1417 * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1418 (xstormy16_gimplify_va_arg_expr): Rewrite from
1419 xstormy16_expand_builtin_va_arg.
1420 * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
1422 * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
1423 * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
1425 * config/sh/sh-protos.h (sh_va_arg): Remove.
1426 * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1427 (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
1428 * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
1430 * config/pa/pa-protos.h (hppa_va_arg): Remove.
1431 * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1432 (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
1433 * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
1435 * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
1436 * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1437 (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
1438 * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
1440 2004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
1442 * config/sparc/sparc.md (return): Rewrite length formula.
1443 * config/sparc/sparc.c (output_return): Pass 1 as 5th
1444 argument to final_scan_insn when in a delay slot.
1445 (output_sibcall): Likewise.
1447 2004-07-09 Richard Earnshaw <rearnsha@arm.com>
1449 * arm.c (arm_cpp_interwork): New variable.
1450 (arm_override_options): Set it if TARGET_INTERWORK was on the command
1452 * arm.h (arm_cpp_interwork): Declare it.
1453 (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
1454 __THUMB_INTERWORK__ in the preprocessor.
1456 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
1458 * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
1460 2004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr>
1463 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
1464 Override default settings to account for -m32 and -m64.
1466 2004-07-08 Randolph Chung <tausq@debian.org>
1468 * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
1470 2004-07-09 Alexandre Oliva <aoliva@redhat.com>
1472 * builtins.c (fold_builtin_strncpy): Make sure len is a constant
1473 before comparing it as such.
1475 2004-07-08 Richard Henderson <rth@redhat.com>
1477 * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
1478 temporary. Use bit arithmetic to align.
1480 2004-07-08 Jerry Quinn <jlquinn@optonline.net>
1482 * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
1483 nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
1484 NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
1485 * bb-reorder.c (mark_bb_for_unlikely_executed_section,
1486 add_labels_and_missing_jumps, find_jump_block,
1487 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
1489 * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
1490 link_btr_uses, move_btr_def): Likewise.
1491 * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
1492 expand_builtin_expect_jump): Likewise.
1493 * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
1494 * calls.c (expand_call, emit_library_call_value_1): Likewise.
1495 * cfganal.c (forwarder_block_p): Likewise.
1496 * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
1497 make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
1498 find_bb_boundaries): Likewise.
1499 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1500 merge_blocks_move_predecessor_nojumps,
1501 merge_blocks_move_successor_nojumps, insns_match_p,
1502 flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
1503 try_optimize_cfg): Likewise.
1504 * cfgexpand.c (expand_block, construct_exit_block): Likewise.
1505 * cfglayout.c (skip_insns_after_block, label_for_bb,
1506 record_effective_endpoints, insn_locators_initialize,
1507 fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
1508 * cfgmainloop.c (create_loop_notes): Likewise.
1509 * cfgrtl.c (delete_insn, delete_insn_chain,
1510 create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
1511 update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
1512 block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
1513 redirect_branch_edge, force_nonfallthru_and_redirect,
1514 rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
1515 rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
1516 update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
1517 purge_dead_edges, cfg_layout_redirect_edge_and_branch,
1518 cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
1519 cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
1520 need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
1521 * combine.c (combine_instructions, can_combine_p, try_combine,
1522 find_split_point, record_dead_and_set_regs, reg_dead_at_p,
1523 distribute_notes, distribute_links, insn_cuid): Likewise.
1524 * cse.c (fold_rtx, cse_insn, cse_around_loop,
1525 invalidate_skipped_block, cse_set_around_loop,
1526 cse_end_of_basic_block, cse_main, cse_basic_block,
1527 cse_condition_code_reg): Likewise.
1528 * cselib.c (cselib_process_insn): Likewise.
1529 * ddg.c (create_ddg): Likewise.
1530 * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
1532 * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1533 gen_label_die, dwarf2out_var_location): Likewise.
1534 * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
1535 next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
1536 last_call_insn, active_insn_p, next_label, prev_label,
1537 link_cc0_insns, next_cc0_user, try_split, add_insn_after,
1538 add_insn_before, remove_insn, add_function_usage_to,
1539 reorder_insns, find_line_note, remove_unnecessary_notes,
1540 emit_insn_after_1, classify_insn): Likewise.
1541 * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
1542 connect_post_landing_pads, sjlj_mark_call_sites,
1543 sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
1544 can_throw_internal, can_throw_external, set_nothrow_function_flags,
1545 convert_to_eh_region_ranges): Likewise.
1546 * explow.c (optimize_save_area_alloca): Likewise.
1547 * expr.c (expand_expr_real): Likewise.
1548 * final.c (insn_current_reference_address, compute_alignments,
1549 shorten_branches, final, scan_ahead_for_unlikely_executed_note,
1550 final_scan_insn, output_asm_label, leaf_function_p): Likewise.
1551 * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
1552 propagate_block_delete_insn, propagate_one_insn,
1553 init_propagate_block_info, propagate_block, libcall_dead_p,
1554 mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
1556 * function.c (instantiate_virtual_regs, reorder_blocks_1,
1557 expand_function_start, expand_function_end, contains,
1558 thread_prologue_and_epilogue_insns,
1559 reposition_prologue_and_epilogue_notes): Likewise.
1560 * gcse.c (constprop_register, bypass_conditional_jumps,
1561 insert_insn_end_bb, gcse_after_reload): Likewise.
1562 * genemit.c (gen_expand, gen_split): Likewise.
1563 * genpeep.c (gen_peephole, main): Likewise.
1564 * global.c (build_insn_chain): Likewise.
1565 * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
1566 * haifa-sched.c (unlink_other_notes, unlink_line_notes,
1567 get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
1568 restore_line_notes, rm_redundant_line_notes, rm_other_notes,
1569 ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
1570 * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
1571 cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
1572 merge_if_block, block_jumps_and_fallthru_p, find_if_block,
1573 dead_or_predicable): Likewise.
1574 * integrate.c (try_constants): Likewise.
1575 * jump.c (rebuild_jump_labels, cleanup_barriers,
1576 purge_line_number_notes, init_label_info, mark_all_labels,
1577 squeeze_notes, get_label_before, get_label_after,
1578 reversed_comparison_code_parts, simplejump_p, pc_set,
1579 returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
1580 delete_barrier, delete_prior_computation, delete_computation,
1581 delete_related_insns, delete_for_peephole, redirect_jump):
1583 * lcm.c (optimize_mode_switching): Likewise.
1584 * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
1586 * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
1587 * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
1588 * loop-iv.c (simplify_using_assignment): Likewise.
1589 * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
1590 libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
1591 find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
1592 loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
1593 check_insn_for_givs, check_final_value, update_giv_derive,
1594 basic_induction_var, product_cheap_p, check_dbra_loop,
1595 loop_insn_first_p, last_use_this_basic_block,
1596 canonicalize_condition, get_condition, loop_regs_scan, load_mems,
1597 try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
1598 * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
1599 sms_schedule_by_order): Likewise.
1600 * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
1601 * postreload.c (reload_cse_simplify_operands, reload_combine,
1602 reload_cse_move2add): Likewise.
1603 * predict.c (can_predict_insn_p, estimate_probability,
1604 expected_value_to_br_prob, process_note_predictions): Likewise.
1605 * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
1606 * profile.c (branch_prob): Likewise.
1607 * ra-build.c (live_out_1, livethrough_conflicts_bb,
1608 detect_webs_set_in_cond_jump): Likewise.
1609 * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
1610 ra_print_rtl_with_bb): Likewise.
1611 * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
1612 * recog.c (next_insn_tests_no_inequality, find_single_use,
1613 split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
1614 * reg-stack.c (next_flags_user, record_label_references,
1615 emit_swap_insn, swap_rtx_condition, subst_stack_regs,
1616 compensate_edge, convert_regs_1): Likewise.
1617 * regclass.c (scan_one_insn): Likewise.
1618 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
1619 regmove_optimize, fixup_match_1, single_set_for_csa,
1620 combine_stack_adjustments_for_block): Likewise.
1621 * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
1622 * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
1623 find_equiv_reg): Likewise.
1624 * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
1625 reload_as_needed, emit_input_reload_insns, do_output_reload,
1626 delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
1628 * reorg.c (find_end_label, emit_delay_sequence,
1629 delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
1630 get_jump_flags, rare_destination, mostly_true_jump,
1631 try_merge_delay_insns, redundant_insn, own_thread_p,
1632 fill_simple_delay_slots, fill_slots_from_thread,
1633 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
1634 dbr_schedule): Likewise.
1635 * resource.c (find_basic_block, next_insn_no_annul,
1636 find_dead_or_set_registers, mark_target_live_regs): Likewise.
1637 * rtl.h (RTX_PREV): Likewise.
1638 * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
1639 no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
1640 reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
1641 find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
1642 tablejump_p, computed_jump_p, insns_safe_to_move_p,
1643 find_first_parameter_load, can_hoist_insn_p): Likewise.
1644 * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
1645 sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
1646 * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
1647 schedule_ebbs): Likewise.
1648 * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
1649 is_conditionally_protected, can_schedule_ready_p,
1650 add_branch_dependences, debug_dependencies): Likewise.
1651 * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
1653 * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
1654 reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
1655 set_dominates_use, ujump_to_loop_cont): Likewise.
1656 * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
1657 * varasm.c (output_constant_pool_1): Likewise.
1659 2004-07-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1661 * tree-scalar-evolution.c: New file.
1662 * tree-scalar-evolution.h: New file.
1663 * tree-ssa-loop-niter.c: New file.
1664 * Makefile.in (SCEV_H): New.
1665 (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
1666 * cfgloop.h (struct loop): Add bounds field.
1667 * tree-flow.h (struct tree_niter_desc): New type.
1668 (number_of_iterations_cond, number_of_iterations_exit,
1669 loop_niter_by_eval, find_loop_niter_by_eval,
1670 estimate_numbers_of_iterations, can_count_iv_in_wider_type,
1671 free_numbers_of_iterations_estimates): Declare.
1672 * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
1673 * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
1674 * doc/invoke.texi (max-iterations-to-track): Document.
1676 2004-07-08 Kaz Kojima <kkojima@gcc.gnu.org>
1678 * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
1679 * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
1680 (MODE_AFTER): Add cast appropriately.
1681 * config/sh/sh.md (movdi splitter): Likewise.
1682 (casesi_worker_2): Add const qualifier appropriately.
1683 (eh_return): Remove unused variable.
1684 (insv): Initialize v;
1686 2004-07-08 Richard Henderson <rth@redhat.com>
1688 * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
1689 * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1690 (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
1691 * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
1692 (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
1694 * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
1695 * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1696 (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
1697 * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
1699 * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
1700 * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1701 (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
1702 * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
1704 * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
1705 * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1706 (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
1707 * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
1709 * config/i860/i860-protos.h (i860_va_arg): Remove.
1710 * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1711 (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
1712 * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
1714 2004-05-31 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
1716 * system.h: Prototype getpagesize if missing.
1717 * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
1718 * configure: Regenerate.
1719 * config.in: Regenerate.
1721 2004-07-08 Richard Henderson <rth@redhat.com>
1723 * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
1724 * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1725 (fr30_gimplify_va_arg_expr): New.
1726 (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
1727 * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
1729 2004-07-08 Vladimir Makarov <vmakarov@redhat.com>
1732 * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
1733 of asm_noperands result.
1735 2004-07-08 Richard Henderson <rth@redhat.com>
1737 * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
1738 * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1739 (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
1740 * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
1742 2004-07-08 Richard Henderson <rth@redhat.com>
1744 * builtins.c (ind_gimplify_va_arg_expr): New.
1745 * tree.h (ind_gimplify_va_arg_expr): Declare.
1746 * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
1748 2004-07-08 Jan Beulich <jbeulich@novell.com>
1750 * expmed.c (extract_bit_field): Correct condition to use vec_extract
1751 patterns also on vector elements other than the first one.
1752 * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
1755 2004-07-08 Geoffrey Keating <geoffk@apple.com>
1757 * config/rs6000/darwin-ldouble.c: Correct reference
1758 to the Linnainmaa paper.
1760 2004-07-08 Richard Henderson <rth@redhat.com>
1762 * config/arc/arc-protos.h (arc_va_arg): Remove.
1763 * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1764 (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
1765 * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
1767 * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
1768 * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1769 (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
1770 * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
1772 2004-07-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1774 * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
1776 2004-07-08 Zack Weinberg <zack@codesourcery.com>
1778 * c-decl.c (static_ctors, static_dtors): Make static.
1779 (pop_file_scope): Call c_common_write_pch and
1780 cgraph_finalize_compilation_unit here.
1781 (build_cdtor): Moved here from c-objc-common.c; simplify.
1782 (c_write_global_declarations_1): Clarify comment.
1783 (c_write_global_declarations): Close the external scope before
1784 doing anything else. Call build_cdtor, cgraph_optimize, and
1785 mudflap_finish_file here.
1786 * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
1788 * c-objc-common.c: No need to include cgraph.h.
1789 (build_cdtor): Moved to c-decl.c.
1790 (c_objc_common_finish_file): Delete.
1791 * c-tree.h: Update to match.
1792 * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
1793 (generate_static_references): Set TREE_USED before calling finish_decl.
1794 Eliminate unnecessary dummy declaration. Call rest_of_decl_compilation
1795 on the static_instances_decl.
1797 2004-07-08 Zack Weinberg <zack@codesourcery.com>
1799 * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
1800 decls when there is only one input translation unit.
1801 * langhooks.c (lhd_set_decl_assembler_name): Partially revert
1802 change of 2004-07-05; do not treat declarations with
1803 DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
1804 * opts.c (cur_in_fname): Delete.
1806 * tree.c: Revert changes of 2004-07-05; no special treatment
1807 for TRANSLATION_UNIT_DECLs.
1808 * Makefile.in (tree.o): Update dependencies.
1810 2004-07-08 Roger Sayle <roger@eyesopen.com>
1812 * builtins.c (fold_builtin_strcpy): Merge functionality from
1813 simplify_builtin_strcpy. Add additional len argument. No longer
1814 static. Remove function prototype.
1815 (fold_builtin_strncpy): Likewise integrate functionality from
1816 simplify_builtin_strncpy. Add additional slen argument. No
1817 longer static. Remove function prototype.
1818 (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
1819 (simplify_builtin_fputs): Rename to fold_builtin_fputs. Change
1820 types of "ignore" and "unlocked" parameters to bool.
1821 (fold_builtin_1): Add additional ignore argument. Call renamed
1822 fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
1823 builtins. Update arguments to fold_builtin_strncpy and
1824 fold_builtin_strcpy. Add function prototype.
1825 (fold_builtin): Add additional Boolean ignore argument to pass
1827 (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
1828 and fold_builtin_strncpy instead of simplify_builtin_fputs,
1829 simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
1831 * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
1832 simplify_builtin_strncpy): Delete function prototypes.
1833 * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
1834 fold_builtin_strncpy): Add function prototypes here.
1835 (fold_builtin): Update function prototype with new "bool ignore".
1837 * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
1838 (ccp_fold_builtin): Update call to fold_builtin. Call
1839 fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
1840 instead of simplify_builtin_fputs, simplify_builtin_strcpy and
1841 simplify_builtin_strncpy respectively.
1842 * fold-const.c (fold): Update call to fold_builtin.
1844 2004-07-08 Alexandre Oliva <aoliva@redhat.com>
1846 * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
1849 * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
1850 (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
1851 (FUNCTION_ARG_CALLEE_COPIES): Likewise.
1852 * calls.c: Remove ifdefs of macros above.
1853 * functions.c: Likewise.
1856 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
1858 * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
1859 (arch attribute): Delete.
1860 (current_function_calls_alloca attribute): Rename into calls_alloca.
1861 (calls_eh_return): New attribute.
1862 (leaf_function): Likewise.
1863 (length attribute): Fix formula for sibcalls.
1864 (return insn): Correctly compute the 'length' attribute.
1865 (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
1867 2004-07-08 Richard Henderson <rth@redhat.com>
1869 * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
1870 (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
1871 (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
1872 * tree-eh.c (lower_eh_constructs_1): Likewise.
1873 * tree-sra.c (sra_walk_modify_expr): Likewise.
1874 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1875 (eliminate_unnecessary_stmts): Likewise.
1876 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
1877 * tree-tailcall.c (optimize_tail_call): Likewise.
1878 * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
1880 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
1881 Jakub Jelinek <jakub@redhat.com>
1883 * config/i386/i386.c (override_options): Enable
1884 SSE prefetches with -mtune, as long as we are
1885 compiling for i686 or higher. All i686 processors
1886 accept SSE prefetches as NOPS, some i586's don't.
1888 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
1891 * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
1893 2004-07-08 Diego Novillo <dnovillo@redhat.com>
1895 * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
1896 the handling of clobbering ASM_EXPRs.
1898 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
1901 * config/sparc/sparc.c (function_value): In 64-bit mode,
1902 return the aggregates larger than 16 bytes like unions.
1904 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
1907 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
1908 'temp' is zero, generate new pseudos as needed and emit the
1909 sequence of insns in single-assignment form. Resync comments
1911 (sparc_emit_set_const64): Pass zero as 'temp' argument to above
1912 function before reload.
1914 2004-07-08 Nathan Sidwell <nathan@codesourcery.com>
1916 * vec.c (vec_assert_fail): Remove duplicate 'function'.
1918 * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
1920 * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
1921 Allocation is signed.
1922 (VEC_reserve): Return flag, allocation is signed.
1924 2004-07-08 Richard Henderson <rth@redhat.com>
1926 * tree-ssa-ccp.c (fold_stmt): Get type directly from
1927 OBJ_TYPE_REF_OBJECT.
1929 2004-07-08 Joseph S. Myers <jsm@polyomino.org.uk>
1930 Neil Booth <neil@daikokuya.co.uk>
1934 * c-decl.c (finish_struct): Ensure bit-fields are given the
1936 * c-common.c (c_common_signed_or_unsigned_type): For C, require
1937 the precision to match as well as the mode.
1938 * expr.c (reduce_to_bit_field_precision): New function.
1939 (expand_expr_real_1): Reduce expressions of bit-field type to
1941 * langhooks.h (reduce_bit_field_operations): New hook.
1942 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
1944 * c-lang.c, objc/objc-lang.c
1945 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
1946 * objc/objc-act.c (check_ivars): Convert types to bit-field types
1948 * tree.c (build_nonstandard_integer_type): New function.
1949 * tree.h (build_nonstandard_integer_type): New prototype.
1950 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
1951 conversions between integer and boolean types as useless.
1953 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
1955 * c-common.c (c_common_nodes_and_builtins): Do not
1956 create __builtin_ptrdiff_t and __builtin_size_t.
1958 2004-07-08 Andrew Pinski <apinski@apple.com>
1960 * Makefile.in (libbackend.o): Add -combine to the gcc
1963 2004-07-08 Nick Clifton <nickc@redhat.com>
1965 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
1968 2004-07-08 Richard Henderson <rth@redhat.com>
1970 * except.c (expand_eh_region_start, expand_eh_region_end,
1971 expand_eh_handler, expand_eh_region_end_cleanup,
1972 expand_start_all_catch, expand_start_catch, expand_end_catch,
1973 expand_end_all_catch, expand_eh_region_end_allowed,
1974 expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
1975 expand_eh_region_end_fixup): Remove.
1976 * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
1977 cleanups, outer_cleanups, label_chain, exception_region.
1978 (struct goto_fixup): Remove stack_level, cleanup_list_list.
1979 (struct label_chain): Remove.
1980 (struct stmt_status): Remove x_stack_block_stack.
1981 (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
1982 fixup_gotos, save_stack_pointer, expand_decl_cleanup,
1983 expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
1984 end_cleanup_deferral, last_cleanup_this_contour,
1985 containing_blocks_have_cleanups_or_stack_level,
1986 any_pending_cleanups): Remove.
1987 (expand_null_return_1): Take no arguments.
1988 (expand_label, expand_naked_return, expand_return,
1989 expand_start_bindings_and_block, expand_end_bindings, expand_decl,
1990 expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
1991 expand_end_case_type): Don't use any of them.
1992 * calls.c (expand_call): Likewise.
1993 * dojump.c (do_jump): Likewise.
1994 * function.c (expand_function_end): Likewise.
1995 * expr.c (store_expr, expand_expr_real_1): Likewise.
1996 (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
1997 (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
1998 CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
1999 EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
2000 * fold-const.c (fold_checksum_tree): Use first_rtl_op.
2001 * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
2002 * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
2003 for WITH_CLEANUP_EXPR.
2004 (gimple_push_cleanup): Likewise.
2005 * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
2006 * print-tree.c (print_node): Likewise.
2007 * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
2008 * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
2009 (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
2010 * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
2011 (GOTO_SUBROUTINE_EXPR): Remove.
2012 * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
2013 (DECL_TOO_LATE): Remove.
2014 * except.h, tree.h: Update decls.
2016 2004-07-08 Paolo Bonzini <bonzini@gnu.org>
2018 * explow.c (optimize_save_area_alloca): Do not accept parameters.
2019 * passes.c (rest_of_handle_final): Handle symout.
2020 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
2022 (rest_of_handle_sched): Break out SMS. Remove ifs for
2023 flag_schedule_insns and flag_modulo_sched.
2024 (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
2026 (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
2027 (rest_of_handle_partition_blocks, rest_of_handle_sms,
2028 rest_of_handle_if_after_reload, rest_of_handle_peephole2,
2029 rest_of_handle_mode_switching, rest_of_handle_jump,
2030 rest_of_handle_guess_branch_prob, rest_of_handle_eh,
2031 rest_of_handle_jump2, rest_of_handle_postreload,
2032 rest_of_handle_flow2, rest_of_clean_state,
2033 rest_of_handle_shorten_branches,
2034 rest_of_handle_prologue_epilogue,
2035 rest_of_handle_branch_target_load_optimize): New.
2036 (rest_of_compilation): Call the above. Remove ggc_collect
2037 calls moved to rest_of_handle_*.
2038 * rtl.h (optimize_save_area_alloca): Do not accept parameters.
2040 * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
2041 * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
2042 * except.h (set_nothrow_function_flags): Update comment.
2043 * function.c (current_function_nothrow): Remove.
2044 * output.h (current_function_nothrow): Remove.
2045 * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
2046 * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
2048 2004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2051 * reorg.c: Revert 2004-06-30 change.
2052 (find_end_label): If HAVE_epilogue and !HAVE_return,
2053 return 0 instead of creating a label at the end of the insn chain.
2054 (optimize_skip): Account for the failure mode of find_end_label.
2055 (fill_simple_delay_slots): Likewise.
2056 (fill_slots_from_thread): Likewise.
2057 (relax_delay_slots): Likewise.
2059 2004-07-08 Diego Novillo <dnovillo@redhat.com>
2061 * tree-flow.h (addressable_vars): Declare.
2062 * tree-ssa-alias.c (addressable_vars): Define.
2063 (setup_pointers_and_addressables): Add addressable variables
2064 to addressable_vars.
2065 * tree-ssa-operands.c (get_stmt_operands): Move
2066 handling of ASM_EXPRs ...
2067 (get_asm_expr_operands): ... here.
2068 When the ASM_EXPR clobbers memory, also clobber addressable
2070 * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
2071 (delete_tree_ssa): Reset addressable_vars.
2073 2004-07-07 Jan Beulich <jbeulich@novell.com>
2074 Richard Henderson <rth@redhat.com>
2076 * varasm.c (assemble_variable): Use assemble_zeros for
2077 zero-initialized variables.
2078 (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
2079 for SECCAT_BSS and SECCAT_TBSS.
2081 2004-07-07 Jan Beulich <jbeulich@novell.com>
2083 * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
2085 * expmed.c (emit_store_flag): Also special-case double-word
2086 (in-)equality comparison against -1.
2088 * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
2089 passing arguments the containers for which are registers.
2091 * calls.c (emit_library_call_value_1): Use mode of function parameter
2092 rather than that of argument since constants have none.
2094 2004-07-08 Alexandre Oliva <aoliva@redhat.com>
2096 Introduce H8SX support.
2097 * expr.c (expand_strcpy): Renamed and moved to...
2098 * builtins.c (expand_movstr): ... here. Tweak.
2099 (expand_builtin_strcpy): Adjust. Use movstr if len can't be
2100 computed or has side effects.
2101 (expand_builtin_stpcpy): Likewise. Use strcpy if return value is
2102 unused, or if mempcpy fails. Adjust the return value in the
2103 latter case. Use movstr if everything else fails.
2104 * doc/md.texi (movstr): Document.
2105 (movmemM, clrmemM): Fix explanation of memory block operands.
2106 * config/h8300/h8300.md (stpcpy): Renamed to...
2107 (movstr): ... this. Adjust.
2108 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
2109 * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
2110 movmem* and clrstr* to clrmem*.
2111 2004-06-27 Alexandre Oliva <aoliva@redhat.com>
2112 * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
2113 GENERAL_REGS, always.
2114 (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
2115 getting the stack pointer as addr.
2116 * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
2117 from general_operand_dst.
2118 * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
2120 (movmd_internal): ... this. Add modes to operands. Disparage `D'
2121 instead of requiring it to match only before reload.
2122 (stpcpy_internal_normal): New, normal-mode variant of...
2123 (stpcpy_internal): ... this. Add modes to operands. Disparage
2124 `D' instead of requiring it to match only before reload.
2125 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
2127 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
2128 * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
2130 * config/h8300/h8300.md (attr type): Add call.
2131 (attr can_delay): If type is call, set it no.
2132 (call, call_value): Set type to call.
2133 2004-06-21 Alexandre Oliva <aoliva@redhat.com>
2134 * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
2135 2004-06-16 Alexandre Oliva <aoliva@redhat.com>
2136 * tree.c (get_narrower): Don't narrow integral types into
2138 * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
2139 frame_size *before* the first use.
2140 * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
2142 (peephole2): Don't widen instructions that push SP. Move
2143 decrement of SP to the end of all stm-generating peepholes.
2144 2003-07-24 Richard Sandiford <rsandifo@redhat.com>
2145 * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
2146 and OR to set it to all ones.
2147 2003-07-24 Richard Sandiford <rsandifo@redhat.com>
2148 * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
2149 (call, call_value): Set can_delay to "no".
2150 2003-07-22 Richard Sandiford <rsandifo@redhat.com>
2151 * config/h8300/h8300.md (extzv): Make subreg check more robust.
2152 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
2153 * config/h8300/h8300.md (*brabit): Remove.
2154 * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
2155 zero_extract. Use bit_memory_operand as the predicate for
2156 operand 1 and 'WU' as the constraint. Check the difference
2157 between the base length and the final one when deciding which
2158 type of branch to use.
2159 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
2160 * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
2161 Use convert_move to extend the result for TARGET_H8300SX. Check
2162 for QImode memory references. Optimize the case where the
2163 destination is a paradoxical subreg.
2164 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
2165 * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
2166 * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
2167 2003-07-21 Richard Sandiford <rsandifo@redhat.com>
2168 * config/h8300/h8300.md: Include mova.md
2169 (length_table): Add mova and mova_zero.
2170 * config/h8300/h8300.c (print_operand): Handle '%o'. Print a length
2171 after all constant addresses for '%R', '%X', '%T' and '%S'.
2172 (h8300_mova_length): New function.
2173 (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
2174 * config/h8300/t-h8300 (mova.md): Generate from genmova.sh. Add to
2175 dependencies for s-config, etc.
2176 * config/h8300/gemova.sh: New file.
2177 * config/h8300/mova.md: Generated.
2178 2003-07-20 Alexandre Oliva <aoliva@redhat.com>
2179 * config/h8300/h8300.c (h8300_bitfield_length): New.
2180 (nibble_operand): Adjust.
2181 (h8300_binary_length): Handle conditional binary op.
2182 (h8300_insn_length_from_table): Handle bitfield and bitbranch.
2183 * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
2184 P#<X, respectively. The original P is now IP4>X. Introduced P#>0
2185 and P#<0, unused so far. W and Y are now prefixes to multi-letter
2186 constraints. WU is introduced as a variant of U that requires a
2187 mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
2188 * config/h8300/h8300.md (attr type): Added bitbranch.
2189 (attr length_table): Added bitfield and bitbranch.
2190 (attr length): Compute bitbranch length.
2191 (andqi): Separate pattern for H8300SX. Use bfld for loading the
2192 least-significant bit of a byte.
2193 (brabit, brabc, brabs): New.
2194 (insv, extzv): Emit bfst and bfld on H8300SX.
2195 (bfld, bfst, seq, sne): New.
2196 (bstzhireg, cmpstz, bstz, bistz): New.
2197 (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
2198 (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
2199 2003-07-11 Richard Sandiford <rsandifo@redhat.com>
2200 * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
2201 (h8sx_unary_memory_operator): New function.
2202 * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
2203 (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
2204 * config/h8300/h8300.md: Add peepholes to combine reloads and
2206 2003-07-10 Richard Sandiford <rsandifo@redhat.com>
2207 * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
2208 (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
2209 (and?i, ior?i, xor?i): Likewise.
2210 2003-07-10 Richard Sandiford <rsandifo@redhat.com>
2211 * config/h8300/h8300.c: Move enums and prototypes to head of file.
2212 Various whitespace fixes.
2213 (h8300_constant_length): New function, split out from...
2214 (h8300_displacement_size): ...here. Rename h8300_displacement_length.
2215 (h8300_classify_operand): Use IN_RANGE.
2216 (h8300_classify_operand): Use h8300_constant_length.
2217 (h8300_short_move_mem_p): Tighten size check.
2218 (h8sx_mergeable_memrefs_p): Tighten equality check.
2219 2003-06-30 Richard Sandiford <rsandifo@redhat.com>
2220 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
2222 * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
2223 * config/h8300/crtn.asm: Likewise.
2224 * config/h8300/lib1funcs.asm: Likewise. Use 32-bit pointers
2225 if __H8300SX__ is defined.
2226 2003-06-27 Richard Sandiford <rsandifo@redhat.com>
2227 * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
2228 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
2229 (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
2230 addresses as mode-dependent.
2231 * config/h8300/h8300.c (print_operand_address): Update call to
2233 (h8300_get_index): Take a mode argument. Rework to fix an
2234 earlier misunderstanding.
2235 2003-06-26 Richard Sandiford <rsandifo@redhat.com>
2236 * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
2237 into a register if TARGET_H8300SX.
2238 (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
2239 TARGET_H8300SX. Also disable related define_splits.
2240 (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
2241 2003-06-23 Richard Sandiford <rsandifo@redhat.com>
2242 * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
2243 2003-06-20 Richard Sandiford <rsandifo@redhat.com>
2244 * config/h8300/h8300.h (OK_FOR_Z): New macro.
2245 (EXTRA_CONSTRAINT_STR): Check it.
2246 * config/h8300/h8300.c (h8300_classify_operand): Accept null
2248 (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
2249 * config/h8300/h8300.md (length_table): Add mov_imm4.
2250 (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
2251 2003-06-20 Richard Sandiford <rsandifo@redhat.com>
2252 * genattrtab.c (write_eligible_delay): Allow candidate_insn to
2254 * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
2255 * config/h8300/h8300.c (h8300_reorg): New function.
2256 (TARGET_MACHINE_DEPENDENT_REORG): Define.
2257 * config/h8300/h8300.md (length): Subtract the length of the
2258 delay slot from (pc) when checking the range of forward branches.
2259 (delay_slot, can_delay): New attributes.
2260 (define_delay): Add bra/s handling.
2261 (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
2262 (jump): Add delayed-branch handling.
2263 2003-06-17 Richard Sandiford <rsandifo@redhat.com>
2264 * expr.c (expand_strcpy): New function.
2265 * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
2266 (expand_builtin_stpcpy): Likewise.
2267 * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
2268 (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
2269 * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
2270 handling to improve register allocation for -fno-omit-frame-pointer.
2271 (h8sx_split_movmd): Delete, moving er6 handling into...
2272 (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
2273 * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
2274 (movmd): Add calls to copy_rtx.
2275 (movmd_internal): In the second alternative, allow the initial and
2276 final destination registers to be different . Update the splitter
2277 accordingly. Call h8300_swap_into_er6 and h8300_swap_out_of_er6
2278 instead of h8sx_split_movmd.
2279 (stpcpy, movsd): New expanders.
2280 (movsd_internal): New define_insn.
2281 2003-06-13 Richard Sandiford <rsandifo@redhat.com>
2282 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
2283 (h8sx_emit_movmd, h8sx_split_movmd): Declare.
2284 * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
2285 and DESTINATION_REGS.
2286 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2287 (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
2288 (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
2289 (h8300_move_ratio): Declare.
2290 (MOVE_RATIO): Use it.
2291 * config/h8300/h8300.c (h8300_move_ratio): New variable.
2292 (h8300_init_once): Initialize it.
2293 (h8300_reg_class_from_letter): New function.
2294 (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
2295 (h8sx_emit_movmd, h8sx_split_movmd): New functions.
2296 * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
2297 (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
2298 (movstrsi, movmd): New expanders.
2299 (movmd_internal): New insn.
2300 2003-06-06 Richard Sandiford <rsandifo@redhat.com>
2301 * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
2302 2003-06-04 Richard Sandiford <rsandifo@redhat.com>
2303 * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
2304 * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
2305 2003-06-03 Richard Sandiford <rsandifo@redhat.com>
2306 * config/h8300/h8300.c (nibble_operand): Fix warning.
2307 * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
2308 (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
2309 (movsf_h8300h): Disable for TARGET_H8300SX.
2310 2003-06-03 Richard Sandiford <rsandifo@redhat.com>
2311 * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
2312 h8300_stm_parallel and h8300_return_parallel.
2313 * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
2314 h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
2315 h8300_stm_parallel, h8300_return_parallel): New functions.
2316 (h8300_expand_prologue): Don't enforce ldm/stm register alignment
2317 if TARGET_H8300SX. Use h8300_push_pop.
2318 (h8300_expand_epilogue): Likewise. Try to merge the return insn
2319 and final pop when generating h8sx code. Always emit some form
2321 * config/h8300/h8300.md: Don't enforce register alignment in
2322 stm peepholes if TARGET_H8300SX.
2323 (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
2324 (ldm_h8300s_[234], stm_h8300_[234]): Disable.
2325 (epilogue): Expect h8300_expand_epilogue to emit a return insn.
2326 2003-06-03 Richard Sandiford <rsandifo@redhat.com>
2327 * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
2328 (MULTILIB_DIRNAMES): Add a directory for it.
2329 (MULTILIB_MATCHES): Delete.
2330 2003-05-28 Richard Sandiford <rsandifo@redhat.com>
2331 * final.c (walk_alter_subreg): Handle addresses with subregs
2332 inside a ZERO_EXTEND or AND.
2333 * config/h8300/h8300-protos.h (h8300_get_index): Declare.
2334 * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
2336 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
2337 * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
2338 @(dd,Rn.w) and @(dd,ERn.L).
2339 (h8300_displacement_size): Take the whole address as argument.
2340 (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
2341 2003-05-28 Richard Sandiford <rsandifo@redhat.com>
2342 * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
2343 (h8sx_mergeable_memrefs_p): Declare.
2344 * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
2345 (HAVE_PRE_INCREMENT): Likewise.
2346 (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
2347 addresses for TARGET_H8300SX,
2348 * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
2350 (movb_length_table, movl_length_table): New tables.
2351 (movw_length_table): Define to movb_length_table.
2352 (h8300_displacement_size): New, split out from...
2353 (h8300_classify_address): ...here. Handle pre/post inc/dec.
2354 (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
2355 (h8300_insn_length_from_table): Add cases for movb, movw and movl.
2356 (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
2357 (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
2358 (compute_plussi_length, compute_plussi_cc): Update accordingly.
2359 (h8sx_unary_shift_operator): Get the mode from the operator.
2360 (binary_shift_operator): Likewise.
2361 * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
2362 a memory reference, check whether the reference is offsettable.
2363 (length_table): Add movb, movw and movl.
2364 (movqi): Add new h8sx pattern. Don't force one operand to be a
2365 register when generating h8sx code.
2366 (movhi, movsi, movsf): Likewise.
2367 (movstrictqi): Use the length_table attribute.
2368 (movstricthi): Likewise. Add h8sx alternative for mov.w #xx:3,Rn.
2369 (addqi3): Split into a define_expand and define_insn. Don't accept
2370 memory operands in the expander. Use h8300_operands_match_p to
2371 check for matching operands in the define_insn.
2372 (subqi3, negqi2, one_cmplqi2): Likewise.
2373 (add[hs]i3): Don't accept memory operands in the expander. Likewise
2374 in any patterns that are unused in h8sx code. In the h8sx patterns,
2375 use h8300_operands_match_p to check whether operands match.
2376 (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
2377 one_cmpl[hs]i3): Likewise.
2378 (andqi3, iorqi3, xorqi3): Likewise. Don't call fix_bit_operand
2380 2003-05-23 Richard Sandiford <rsandifo@redhat.com>
2381 * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
2382 (h8300_insn_length_from_table): Add a second parameter.
2383 (output_h8sx_shift): Declare.
2384 * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
2385 (EXTRA_CONSTRAINT): Replace with...
2386 (EXTRA_CONSTRAINT_STR): ...this. Use OK_FOR_W and OK_FOR_Y.
2387 (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
2388 (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
2389 and h8sx_binary_shift_operator.
2390 * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
2392 (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
2393 (bit_memory_operand, fix_bit_operand): Likewise.
2394 (h8300_length_table_for_insn): Remove.
2395 (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
2397 (h8300_short_immediate_length, h8300_binary_length): New functions.
2398 (h8300_insn_length_from_table): Add an opcodes parameter. Rework.
2399 (output_plussi): Use sub to add negative constants.
2400 (compute_plussi_length): Adjust accordingly.
2401 (h8sx_single_shift_type): New enum.
2402 (h8sx_single_shift, h8sx_unary_shift_operator,
2403 h8sx_binary_shift_operator, output_h8sx_shift): New functions.
2404 (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
2405 single h8sx instruction. Return false in this case.
2406 * config/h8300/h8300.md (length_table): Add short_immediate.
2407 (length): Pass the operand array to h8300_insn_length_from_table.
2408 (adjust_length): Assume "no" for insns with a length_table attribute.
2409 (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
2410 (*addhi3_h8300hs): Don't use for h8sx.
2411 (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
2413 (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
2414 1's predicate to nonimmediate_operand. Only skip default expansion
2415 if expand_a_shift or expand_a_rotate returns true. Add new patterns
2416 for single h8sx shift instructions.
2417 2003-05-22 Alexandre Oliva <aoliva@redhat.com>
2418 * config/h8300/h8300.c (nibble_operand): Split out of...
2419 (reg_or_nibble_operand): ... this.
2420 * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
2421 * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
2422 umulhisi3): Introduce expand, and introduce separate insns for
2423 sign- or zero-extended REG and already-extended CONST_INT.
2424 2003-05-20 Richard Sandiford <rsandifo@redhat.com>
2425 * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
2426 * config/h8300/h8300.md (subqi3): Generalize for h8sx.
2427 (subhi3): Likewise. Don't accept immediates for operand 1.
2428 Remove the early clobber from second alternative of the h8300s pattern.
2429 (subsi3): Generalize for h8sx. Force operand 2 into a register
2430 on plain h8300 targets.
2431 (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
2432 (subsi3_h8300h): Generalize for h8sx.
2433 (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
2434 2003-05-19 Alexandre Oliva <aoliva@redhat.com>
2435 * config/h8300/h8300.c (reg_or_nibble_operand): New.
2436 * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
2437 (TARGET_H8300SXMUL): New.
2438 (CONST_OK_FOR_P): New.
2439 (CONST_OK_FOR_LETTER_P): Adjust.
2440 * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
2441 umulhisi3): Accept 4-bit immediate on H8SX.
2442 (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
2443 (udivsi3, divhi3, udivsi3, divsi3): New.
2444 2003-05-19 Richard Sandiford <rsandifo@redhat.com>
2445 * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
2446 * config/h8300/h8300.h (OK_FOR_Q): New macro.
2447 (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
2448 (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
2449 Add ADDRESSOF to the bit_operand entry.
2450 * config/h8300/h8300.c (h8300_dst_operand): New predicate.
2451 (h8300_src_operand): Likewise.
2452 (bit_operand): Check nonimmediate_operand rather than general_operand.
2453 Accept any nonimmediate_operand in h8sx code.
2454 (h8300_and_costs): Initialize operands[1].
2455 (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
2456 (h8300_operand_class): New enum.
2457 (h8300_length_table): New typedef.
2458 (addb_length_table, addw_length_table, addl_length_table,
2459 logicl_length_table): New tables.
2460 (logicb_length_table, logicw_length_table): New macros.
2461 (h8300_classify_operand, h8300_length_from_table,
2462 h8300_length_table_for_insn, h8300_unary_length,
2463 h8300_insn_length_from_table): New functions.
2464 (output_plussi): Only use adds and subs for register destinations.
2465 Disable redundant clause.
2466 (compute_plussi_cc): Likewise.
2467 (compute_plussi_length): Likewise. Use h8300_length_from_table
2468 to work out the length of an insn.
2469 (output_logical_op): Only use narrower immediate instructions
2470 if the destination is a register.
2471 (compute_logical_op_cc): Likewise.
2472 (compute_logical_op_length): Likewise. Use h8300_length_from_table.
2473 (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
2474 * config/h8300/h8300.md (length_table): New attribute.
2475 (length): When an instruction has a length_table attribute, use
2476 h8300_insn_length_from_table to calculate its default length.
2477 (cmpqi): Use h8300_dst_operand for the first operand and
2478 h8300_src_operand for the second.
2479 (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
2480 negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
2481 addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
2482 iorsi3, xorhi3, xorsi3): Likewise.
2483 (andqi3): Use h8300_src_operand for operand 2. Adjust the condition
2484 so that it allows any combination of operands for TARGET_H8300SX.
2485 (iorqi3, xorqi3): Likewise.
2486 (cmpqi): Use the length_table attribute.
2487 (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
2488 xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
2489 (cmpqi): Add 'Q' constraint.
2490 (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
2491 iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
2492 2003-05-14 Richard Sandiford <rsandifo@redhat.com>
2493 * config/h8300/h8300.h (MASK_H8300SX): New macro.
2494 (TARGET_H8300S): True for both -ms and -msx.
2495 (TARGET_H8300SX): New macro.
2496 (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
2497 * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
2498 * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
2499 * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
2501 2003-02-28 Alexandre Oliva <aoliva@redhat.com>
2502 * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
2503 16-bit pointers and 32-bit ints.
2504 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
2505 CONST_DOUBLE with mode no wider than SImode.
2506 * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
2508 2003-02-27 Alexandre Oliva <aoliva@redhat.com>
2509 * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
2511 * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
2512 2003-02-22 Alexandre Oliva <aoliva@redhat.com>
2513 * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
2515 2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
2517 * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
2519 2004-07-07 Per Bothner <per@bothner.com>
2521 * flow.c (attempt_auto_inc): Remove now-redundant PUT_CODE.
2523 2004-07-07 Mike Stump <mrs@apple.com>
2525 * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
2526 * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
2527 (machopic_finish): Likewise.
2529 2004-07-07 Richard Henderson <rth@redhat.com>
2531 * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
2532 through any value-preserving cast.
2534 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
2536 * function.c (assign_parm_find_data_types): Call
2537 FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
2539 2004-07-07 Steven Bosscher <stevenb@suse.de>
2541 * tree-cfg.c (group_case_labels): Remove case labels that have
2542 the same target as the default case.
2544 2004-07-07 Steven Bosscher <stevenb@suse.de>
2546 * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
2547 regardless of DECL_LANG_SPECIFIC being present or not.
2548 * tree.h (DECL_NUM_STMTS): Purge.
2550 2004-07-07 Andrew Pinski <apinski@apple.com>
2552 * configure: Regenerate with the right autoconf.
2554 2004-07-07 David Edelsohn <edelsohn@gnu.org>
2556 * ifcvt.c (total_bb_rtx_cost): New function.
2557 (find_if_case_1): Compare rtx_cost of basic block to cost of
2559 (find_if_case_2): Same.
2561 2004-07-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2564 * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
2565 (output_return): Likewise.
2566 (output_sibcall): Abort if !flag_delayed_branch.
2567 (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
2568 (emit_and_preserve): New function.
2569 (sparc_output_mi_thunk): Use it. Honor flag_delayed_branch. Emit an
2570 indirect jump to the thunked-to function if !flag_delayed_branch.
2571 * config/sparc/sparc.md (delayed_branch): New attribute.
2572 (load_pcrel_sym): Honor flag_delayed_branch. Use above
2573 attribute to compute the length of the insn.
2574 (goto_handler_and_restore): Likewise.
2576 2004-07-07 Andrew Pinski <apinski@apple.com>
2578 PR tree-optimization/15777
2579 * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
2581 * expr.c (expand_expr_real_1): Fix formating.
2582 BUFFER_REF and IN_EXPR are dead.
2583 * fold-const.c (non_lvalue): BUFFER_REF is dead.
2584 * tree-inline.c (estimate_num_insns_1): Likewise.
2585 * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
2586 IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
2587 * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
2589 2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
2591 * collect2.c (dump_file): Don't call cplus_demangle if
2592 HAVE_LD_DEMANGLE is defined.
2593 (main): Pass "--demangle" to ld if no_demangle is not 0 and
2594 HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
2595 if HAVE_LD_DEMANGLE is defined.
2597 * configure.ac (--with-demangler-in-ld): Added
2598 (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
2599 --with-demangler-in-ld is used.
2600 * config.in: Regenerated.
2601 * configure: Likewise.
2603 2004-07-07 Roger Sayle <roger@eyesopen.com>
2605 * config/rs6000/rs6000.c (struct processor_costs): Add new fields
2606 for simple floating point operations "fp", double precision
2607 multiplication "dmul", and single and double precision division
2608 "sdiv" and "ddiv". Update all CPU variant tables as appropriate.
2609 (ppc630_cost): New table split from ppc620_cost, to distinguish
2610 differences in floating point latencies.
2611 (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
2612 (rs6000_rtx_costs): Add support for single and double precision
2613 floating point addition, subtraction, multiplication, division,
2614 fused-multiply-add, fused-multiply-sub, negation, absolute value
2615 and negative absolute value. Tweak MEM case to use prefered idiom.
2617 2004-07-07 Richard Henderson <rth@redhat.com>
2619 * tree-flow-inline.h (may_propagate_copy): Move...
2620 * tree-ssa-copy.c (may_propagate_copy): ... here. Fail if we
2621 attempt to copy between types requiring conversion.
2622 * tree-flow.h (may_propagate_copy): Update decl.
2623 * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
2625 2004-07-07 Jakub Jelinek <jakub@redhat.com>
2627 * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
2628 from -mtune= option.
2630 2004-07-07 Alexandre Oliva <aoliva@redhat.com>
2632 * builtins.c: Rename movstr*, except for movstrict*, to
2633 movmem* and clrstr* to clrmem*.
2636 * genopinit.c: Likewise.
2637 * integrate.c: Likewise.
2638 * local-alloc.c: Likewise.
2639 * optabs.c: Likewise.
2640 * optabs.h: Likewise.
2641 * config/alpha/alpha.h: Likewise.
2642 * config/alpha/alpha.md: Likewise.
2643 * config/arm/arm-protos.h: Likewise.
2644 * config/arm/arm.c: Likewise.
2645 * config/arm/arm.md: Likewise.
2646 * config/avr/avr.md: Likewise.
2647 * config/c4x/c4x.c: Likewise.
2648 * config/c4x/c4x.md: Likewise.
2649 * config/frv/frv.md: Likewise.
2650 * config/i386/i386-protos.h: Likewise.
2651 * config/i386/i386.c: Likewise.
2652 * config/i386/i386.h: Likewise.
2653 * config/i386/i386.md: Likewise.
2654 * config/i860/i860.c: Likewise.
2655 * config/i860/i860.md: Likewise.
2656 * config/ip2k/ip2k.md: Likewise.
2657 * config/ip2k/libgcc.S: Likewise.
2658 * config/ip2k/t-ip2k: Likewise.
2659 * config/m32r/m32r.c: Likewise.
2660 * config/m32r/m32r.md: Likewise.
2661 * config/mcore/mcore.md: Likewise.
2662 * config/mips/mips.c: Likewise.
2663 * config/mips/mips.md: Likewise.
2664 * config/ns32k/ns32k.c: Likewise.
2665 * config/ns32k/ns32k.h: Likewise.
2666 * config/ns32k/ns32k.md: Likewise.
2667 * config/pa/pa.c: Likewise.
2668 * config/pa/pa.md: Likewise.
2669 * config/pdp11/pdp11.h: Likewise.
2670 * config/pdp11/pdp11.md: Likewise.
2671 * config/rs6000/rs6000.c: Likewise.
2672 * config/rs6000/rs6000.md: Likewise.
2673 * config/s390/s390-protos.h: Likewise.
2674 * config/s390/s390.c: Likewise.
2675 * config/s390/s390.md: Likewise.
2676 * config/sh/lib1funcs.asm: Likewise.
2677 * config/sh/sh.c: Likewise.
2678 * config/sh/sh.md: Likewise.
2679 * config/sh/t-sh: Likewise.
2680 * config/sparc/sparc.h: Likewise.
2681 * config/vax/vax.md: Likewise.
2682 * config/xtensa/xtensa.c: Likewise.
2683 * config/xtensa/xtensa.md: Likewise.
2684 * doc/invoke.texi: Likewise.
2685 * doc/md.texi: Likewise.
2686 * doc/rtl.texi: Likewise.
2688 2004-07-07 Richard Sandiford <rsandifo@redhat.com>
2691 * config/mips/mips-protos.h (mips_declare_common_object): Declare.
2692 * config/mips/mips.c (mips_declare_common_object): New function,
2693 mostly split out from...
2694 (mips_output_aligned_decl_common): ...here.
2695 * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
2696 (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
2697 * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
2698 rather than ASM_OUTPUT_LOCAL. Call mips_declare_common_object.
2700 2004-07-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2703 * function.c (assign_parms): Fix typo from previous change.
2705 2004-07-07 Jason Merrill <jason@redhat.com>
2708 * doc/extend.texi (C++ Interface): Correct information and
2711 2004-07-07 Vladimir Makarov <vmakarov@redhat.com>
2716 * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
2719 2004-07-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2722 * config/m32r/m32r.c (m32r_function_symbol): New function:
2723 Generate a symbol name RTX with the correct m32r specific flags
2725 (block_move_call): Use new function to generate correct symbol.
2726 * config/m32r/m32r-protos.h: Add prototype for new funcion.
2727 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
2730 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
2732 * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
2733 TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
2734 TYPE_BINFO_BASETYPE): Remove.
2735 (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
2737 (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
2739 (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
2740 (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
2741 (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
2742 (struct tree_binfo): Rename base_types to base_binfos.
2743 * alias.c (record_component_aliases): Adjust BINFO macros.
2744 * dbxout.c (dbxout_type): Likewise.
2745 * dwarf2out.c (gen_member_die): Likewise.
2746 * sdbout.c (sdbout_one_type): Likewise.
2747 * tree-dump.c (deque_and_dump): Likewise.
2748 * config/i386/i386.c (classify_argument,
2749 contains_128bit_aligned_vector_p): Likewise.
2751 2004-07-07 Nick Clifton <nickc@redhat.com>
2753 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
2754 arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
2756 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
2758 * vec.h: Fix the example use.
2760 2004-07-06 Richard Henderson <rth@redhat.com>
2762 * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
2763 * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
2764 * tree-inline.c (copy_body_r, setup_one_parameter,
2765 initialize_inlined_parameters, expand_call_inline,
2766 declare_inline_vars): Don't check it.
2767 (expand_calls_inline): Remove old version, rename new version
2768 from gimple_expand_calls_inline.
2769 * tree-optimize.c (execute_gimple): Remove.
2770 (pass_gimple): Don't run anything.
2772 2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
2774 * doc/sourcebuild.texi: Use semicolons instead of commas in
2777 2004-07-06 Richard Henderson <rth@redhat.com>
2779 * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
2780 (sra_walk_modify_expr, scan_init): Likewise.
2781 (generate_element_zero): Check visited before scanning children.
2782 (generate_element_init): Set visited on error.
2783 (scalarize_init): Handle generate_element_init failure similar
2786 2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
2788 * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
2789 (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
2791 2004-07-06 Richard Henderson <rth@redhat.com>
2793 * config/i386/i386.c (legitimize_pic_address): Make static.
2794 (legitimize_address): Handle CONST with TLS operand.
2795 (ix86_expand_move): Don't call legitimize_pic_address directly.
2796 * config/i386/i386-protos.h (legitimize_pic_address): Remove.
2798 2004-07-06 Roger Sayle <roger@eyesopen.com>
2800 * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
2801 (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
2802 (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
2803 is currently executed unconditionally, i.e. not in "else_bb".
2805 2004-07-06 Steven Bosscher <stevenb@suse.de>
2807 * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
2808 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
2809 * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
2810 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
2811 * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
2812 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
2813 * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
2814 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
2815 * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
2816 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
2817 * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
2818 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
2819 * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
2820 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
2821 * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
2822 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
2824 2004-07-06 Daniel Berlin <dberlin@dberlin.org>
2826 * dojump.c (do_jump): REFERENCE_EXPR is dead.
2827 * expr.c (expand_expr_real_1): Ditto.
2828 * tree-inline.c (estimate_num_insns_1): Ditto.
2829 * tree-pretty-print.c (dump_generic_node): Ditto.
2833 2004-07-06 Daniel Berlin <dberlin@dberlin.org>
2835 * tree-ssa-pre.c (reference_node_pool): New pool.
2836 (find_or_generate_expression): Class 'r' is okay too.
2837 (create_value_expr_from): Ditto.
2838 (add_to_sets): LHS should not include vuses.
2840 (compute_avail): Reverse ordering of tests.
2841 Valuize INDIRECT_REF as well.
2843 2004-07-06 Richard Sandiford <rsandifo@redhat.com>
2845 PR rtl-optimization/16380
2846 * loop.c (check_dbra_loop): Sink comparison instructions if they
2847 do something other than set cc0.
2849 2004-07-06 James E Wilson <wilson@specifixinc.com>
2851 * doc/interface.texi (longjmp and automatic variables): Delete
2852 paragraph recommending taking the address of a variable.
2854 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
2856 * vec.h (VEC_embedded_alloc): Remove.
2857 (VEC_embedded_size, VEC_embedded_init): New.
2858 (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
2860 (VEC_truncate): New.
2861 (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
2862 (vec_embedded_alloc): Remove.
2863 * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
2864 (vec_embedded_alloc): Remove.
2866 2004-07-06 Mark Mitchell <mark@codesourcery.com>
2868 * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
2869 (gt-langhooks.h): Remove.
2871 2004-07-06 George Helffrich <george@gly.bris.ac.uk>
2873 * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
2875 2004-07-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2877 * config/sparc/sparc.c (get_pc_symbol): Rename into
2878 add_pc_to_pic_symbol.
2879 (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
2880 (load_pic_register): Account for previous changes.
2881 Use reg_names. Don't create the label twice.
2882 * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
2883 UNSPEC_LOAD_PCREL_SYM.
2884 (get_pc): Rename into load_pcrel_sym. Add predicate to
2885 operands. Remove condition.
2887 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
2889 * dbxout.c (dbxout_type): Don't test whether the binfo slot of
2890 RECORD, UNION & QUAL_UNION is actually a binfo.
2892 * tree.h (TREE_VIA_VIRTUAL): Rename to ...
2893 (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
2894 (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
2895 * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
2896 * dwarf2out.c (add_data_member_location_attribute): Likewise.
2897 (gen_inheritance_die): Likewise.
2898 * tree-dump.c (deque_and_dump): Likewise.
2899 * doc/c-tree.texi (Binfos): Add under reconstruction note.
2901 2004-07-06 Steven Bosscher <stevenb@suse.de>
2903 * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2905 * config/mcore/mcore.md: Model memory latency with a simple DFA
2906 pipeline description instead of a define_function_unit.
2908 2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2910 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
2911 * langhooks.h (var_mod_type_p): Likewise.
2912 * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
2913 * expr.c (count_type_elements): Properly handle return from
2914 array_type_nelts and properly test for overflow.
2915 * gimplify.c (gimplify_init_constructor): Properly handle return
2916 from array_type_nelts.
2917 (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
2918 * integrate.c (copy_decl_for_inlining): Correct comments.
2919 * tree-inline.c (remap_decl): Update comments, remove dead code,
2920 and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
2921 (remap_type): Only remap if variably modified by vars in function
2923 (copy_body_r): Use compatible_type langhooks to see when can fold.
2924 (setup_one_parameter): Don't remap type.
2925 (inline_forbidden_p_1): Add arg to variably_modified_type_p.
2926 * tree.c (recompute_tree_invarant_for_addr_expr): Properly
2927 compute TREE_INVARIANT for decl case.
2928 (find_var_from_fn): New function.
2929 (variably_modified_type_p): Add arg and call new function.
2930 * tree.h (variably_modified_type_p): Add extra arg.
2932 2004-07-05 Eric Botcazou <ebotcazou@libertysurf.fr>
2934 * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
2935 (goto_handler_and_restore_v9): Delete disabled insn.
2936 (goto_handler_and_restore_v9_sp64): Likewise.
2938 2004-07-05 Roger Sayle <roger@eyesopen.com>
2940 * calls.c (load_register_parameters): Call expand_shift instead
2941 of expand_binop with ashl_optab (or other shift optab) directly.
2942 * expr.c (emit_group_load, emit_group_store): Likewise.
2943 * function.c (assign_parm_setup_block): Likewise.
2944 * stmt.c (shift_return_value): Likewise.
2946 2004-07-05 Jakub Jelinek <jakub@redhat.com>
2948 * expr.c (expand_assignment): Disable the bitfield += optimizations.
2950 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
2952 * doc/sourcebuild.texi: Revert previous patch.
2954 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
2956 * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
2957 TARGET_MEM_FUNCTIONS.
2958 * system.h: Poison TARGET_MEM_FUNCTIONS.
2959 * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
2960 bcmp_libfunc, bzero_libfunc): Remove.
2961 * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
2963 * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
2964 * doc/standards.texi: Don't mention calling BSD string functions.
2965 * doc/invoke.texi: Likewise. Mention that memmove may be called.
2966 * config/vax/t-memfuncs: New.
2967 * config/memcmp.c, config/memcpy.c, config/memmove.c,
2968 config/memset.c: New.
2969 * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
2970 * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
2972 * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
2973 config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
2974 config/elfos.h, config/gnu.h, config/h8300/h8300.h,
2975 config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
2976 config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
2977 config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
2978 config/netbsd.h, config/openbsd.h, config/pa/pa.h,
2979 config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
2980 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
2981 config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
2983 2004-07-05 Richard Henderson <rth@redhat.com>
2985 * function.c (assign_parm_setup_reg): Properly rename variables in
2986 FUNCTION_ARG_CALLEE_COPIES section.
2988 2004-07-05 Zack Weinberg <zack@codesourcery.com>
2990 * tree-mudflap.c: Include cgraph.h.
2991 (mf_init_extern_trees): Rename to mudflap_init. Export.
2992 Rewrite to create synthetic declarations instead of looking
2993 up declarations from mf-runtime.h.
2994 (mf_make_builtin, mf_make_cache_struct_type): New functions.
2995 (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
2997 (execute_mudflap_function_decls, mudflap_register_call):
2998 Don't call mf_init_extern_trees.
2999 (mudflap_finish_file): Use cgraph_build_static_cdtor.
3001 * tree-mudflap.h: Update prototypes.
3002 * c-mudflap.c: Delete file.
3003 * c-common.c: Include tree-mudflap.h.
3004 (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
3005 * Makefile.in: Remove all references to c-mudflap.o.
3006 Update dependencies.
3008 2004-07-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3010 * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
3011 displacements with the spatial-locality cache-control completer.
3013 2004-07-05 Zack Weinberg <zack@codesourcery.com>
3015 * langhooks.c: Don't include gt-langhooks.h.
3016 (var_labelno): Delete.
3017 (lhd_set_decl_assembler_name): Do not append a distinguishing
3018 number to file-scope internal-linkage declarations for the first
3019 input file, even if they have DECL_CONTEXT set. Use DECL_UID of
3020 the declaration itself (if at block scope), or its containing
3021 TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
3024 * opts.c (cur_in_fname): New global.
3025 * opts.h: Declare it.
3026 * tree.c: Include opts.h.
3027 (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
3028 DECL_UID equal to cur_in_fname.
3029 (copy_node_stat): Do not change DECL_UID when copying a
3030 TRANSLATION_UNIT_DECL.
3031 (build_common_tree_nodes): Adjust next_decl_uid to reserve the
3032 range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
3034 * c-decl.c (c_static_assembler_name): Delete.
3035 * c-tree.h (c_static_assembler_name): Delete prototype.
3036 * c-lang.c, objc/objc-lang.c: Don't override
3037 LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
3039 * Makefile.in (tree.o): Update dependencies.
3040 (GTFILES): Remove langhooks.c.
3042 2004-07-05 Roger Sayle <roger@eyesopen.com>
3044 * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
3045 by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
3046 Normalize "X % C" as "X % -C" for signed modulus and negative C.
3047 Optimize "X % -Y" as "X % Y" for signed modulus.
3048 <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
3049 into "((unsigned) X % Y) == 0".
3051 2004-07-05 Joseph S. Myers <jsm@polyomino.org.uk>
3053 * sourcebuild.texi (Config Fragments): Use @comma{} in
3054 cross-reference to section title.
3056 2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3058 * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
3059 * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
3060 (gimplify_target_expr, gimplify_expr): Likewise.
3061 (copy_if_shared_r): No longer need special case for BIND_EXPR.
3062 (unshare_body, unvisit_body): Only look at nested if BODY_P is
3064 (gimplify_compound_lval): See if we can strip any useless conversion.
3065 (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
3067 (gimplify_modify_expr_to_memset): Likewise.
3068 (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
3069 * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
3070 (declare_inline_vars): Likewise.
3071 (walk_type_fields): New function.
3072 (walk_tree): Use it.
3073 * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
3075 * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
3076 (sra_walk_modify_expr): Allow init function to fail.
3077 (scan_init): Now returns bool.
3078 (generate_element_init): If can't understand INIT, return false.
3079 (scalarize_init): Return false if generate_element_init does.
3081 * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
3084 * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
3085 bounds if bounds aren't constant.
3087 * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
3089 * function.c, langhooks-def.h, langhooks.h: Move max_size hook
3090 to type hooks; remove bogus PARAMS.
3092 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
3094 * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
3095 * dwarf2out.c (add_data_member_location_attribute): Check for
3097 * tree.c (tree_node_kinds): Add "binfos".
3098 (binfo_lang_slots): New.
3099 (make_node_stat): Add TREE_BINFO.
3100 (make_tree_binfo_stat): New.
3101 (tree_node_structure): Add TREE_BINFO.
3102 * tree.def (TREE_BINFO): New.
3103 * tree.h (REC_OR_UNION_CHECK): Rename to ...
3104 (RECORD_OR_UNION_CHECK): ... here.
3105 (NOT_RECORD_OR_UNION_CHECK): New.
3106 (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
3107 (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
3108 RECORD_OR_UNION_CHECK.
3109 (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
3110 (TYPE_LANG_SLOT_1): New.
3111 (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
3112 BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
3113 BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
3114 (BINFO_ELTS): Remove.
3115 (BINFO_LANG_SLOT): New.
3116 (struct tree_binfo): New.
3117 (binfo_lang_slots): Declare.
3118 (enum tree_node_structure_enum): Add TS_BINFO.
3119 (union tree_node): Add binfo.
3120 (make_tree_binfo_stat): Declare.
3121 (make_tree_binfo): New.
3122 (enum tree_node_kind): Add binfo_kind.
3124 * objc/objc-act.c (start_class, objc_declare_protocols,
3125 start_protocols): Use TYPE_LANG_SLOT_1.
3126 * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
3128 (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
3129 (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
3130 CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
3131 PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
3133 2004-07-05 Steven Bosscher <stevenb@suse.de>
3135 * rtl.h (struct rtx_def): Remove the integrated flag.
3136 Use the return_val flag for MEM_SCALAR_P.
3137 Reshuffle and update flags in CLEAR_RTX_FLAGS.
3139 2004-07-05 Richard Sandiford <rsandifo@redhat.com>
3142 * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
3143 to mips_expand_unaligned_load, mips_expand_unaligned_store, and
3146 2004-07-05 Josef Zlomek <zlomekj@suse.cz>
3148 * var-tracking.c: Fix some comments.
3149 (frame_stack_adjust): New.
3150 (vt_stack_adjustments): Init stack_adjust of entry block to
3151 minus stack adjustment of function prologue.
3152 (adjust_stack_reference): Do not adjust if adjustment == 0.
3153 (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
3154 (emit_notes_in_bb): Likewise.
3155 (vt_add_function_parameters): Do not adjust locations of
3157 (vt_initialize): Compute the stack adjustment of function
3158 prologue and offset the initial "location" of frame_base_decl
3159 from the stack pointer after prologue.
3161 2004-07-04 Richard Henderson <rth@redhat.com>
3163 * function.c (struct assign_parm_data_all): New.
3164 (struct assign_parm_data_one): New.
3165 (assign_parms_initialize_all, assign_parms_augmented_arg_list,
3166 assign_parm_find_data_types, assign_parms_setup_varargs,
3167 assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
3168 assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
3169 assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
3170 assign_parm_setup_block, assign_parm_setup_reg,
3171 assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
3172 (assign_parms): ... here.
3174 2004-07-04 Daniel Berlin <dberlin@dberlin.org>
3176 * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
3177 now are bitmap_set_t's.
3178 (bitmap_insert_into_set): No point in inserting the value if
3180 (bitmap_set_contains): New function.
3181 (bitmap_set_replace_value): Add comment on why we do it
3183 (set_contains): Removed.
3184 (bitmap_set_subtract_from_value_set): New name of
3185 set_subtract now that it's arguments are two different
3188 (bitmap_find_leader): Change algorithm used.
3189 (find_or_generate_expression): Update use of functions for new
3191 (create_expression_by_pieces): Ditto.
3192 (insert_aux): Ditto.
3194 (add_to_sets): Ditto.
3196 (execute_pre): Ditto.
3197 (compute_avail): Ditto.
3198 Also ignore virtual phis.
3200 2004-07-04 Richard Sandiford <rsandifo@redhat.com>
3202 * combine.c (simplify_comparison): Fix comment typo.
3204 2004-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
3206 * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
3207 into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
3208 (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
3209 (output_restore): Change parameter from 'insn' to 'pat'.
3210 (output_return): Adjust call to output_restore.
3211 (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
3212 Adjust call to output_restore.
3214 2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
3216 * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
3217 and assert system is bsd.
3219 2004-07-04 Richard Sandiford <rsandifo@redhat.com>
3221 * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
3222 (TARGET_SWITCHES): Remove -mdebugc.
3223 * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
3224 (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
3225 (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
3226 (sle_[sd]i_reg): Delete.
3228 2004-07-04 Steven Bosscher <stevenb@suse.de>
3230 * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
3232 * config/iq2000/iq2000.md: Translate old pipeline description to an
3235 2004-07-04 Roger Sayle <roger@eyesopen.com>
3237 * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
3238 Ensure the replacement rhs is valid gimple before performing
3239 the substitution. Return false if these sanity checks fail.
3240 (fold_stmt): Only set changed to true, if set_rhs returns true.
3241 (execute_fold_all_builtins): Only call modify_stmt if set_rhs
3244 2004-07-04 Richard Henderson <rth@redhat.com>
3247 * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
3249 2004-07-04 Mark Mitchell <mark@codesourcery.com>
3251 * configure.ac (ranlib_flags): New variable.
3252 * Makefile.in (RANLIB_FLAGS): New variable.
3253 (libbackend.a): Use it.
3254 * configure: Regenerated.
3256 2004-07-04 Roger Sayle <roger@eyesopen.com>
3258 * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
3259 a "sign mask" instead of using ashr_optab directly.
3261 2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
3263 * doc/cpp.texi: Don't document what we do for ill-formed expressions.
3264 * doc/cppopts.texi: Clarify processing of command-line defines.
3266 2004-07-04 Gerald Pfeifer <gerald@pfeifer.com>
3268 * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
3270 2004-07-04 Richard Henderson <rth@redhat.com>
3272 * rtl.def (ADDRESSOF): Remove.
3273 * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
3274 (find_base_term, memrefs_conflict_p): Likewise.
3275 * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
3276 (fold_rtx, cse_insn, set_live_p): Likewise.
3277 * dwarf2out.c (mem_loc_descriptor): Likewise.
3278 (add_location_or_const_value_attribute): Likewise.
3279 * emit-rtl.c (copy_insn_1): Likewise.
3280 * explow.c (memory_address): Likewise.
3281 * expmed.c (store_split_bit_field): Likewise.
3282 * expr.c (expand_expr_real_1): Likewise.
3283 * function.c (instantiate_decl
3284 (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
3285 * genrecog.c (preds, validate_pattern): Likewise.
3286 * integrate.c (copy_rtx_and_substitute): Likewise.
3287 * recog.c (general_operand, register_operand): Likewise.
3288 (memory_address_p): Likwise.
3289 * reload1.c (eliminate_regs, elimination_effects): Likewise.
3290 * rtl.c (copy_rtx): Likewise.
3291 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
3292 (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
3293 * rtlhooks.c (gen_lowpart_general): Likewise.
3294 * stmt.c (expand_asm_operands): Likewise.
3295 * web.c (entry_register, replace_ref, web_main): Likewise.
3296 * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
3297 alpha_expand_block_move, alpha_expand_block_clear): Likewise.
3298 * config/arm/arm.c (thumb_rtx_costs): Likewise.
3299 * config/c4x/c4x.c (c4x_valid_operands): Likewise.
3300 * config/frv/frv.c (move_destination_operand, move_source_operand,
3301 condexec_dest_operand, condexec_source_operand,
3302 condexec_memory_operand): Likewise.
3303 * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
3304 * config/ia64/ia64.c (general_xfmode_operand): Likewise.
3305 (destination_xfmode_operand): Likewise.
3306 * config/mips/mips.h (PREDICATE_CODES): Likewise.
3307 * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
3308 * config/s390/s390.c (general_s_operand): Likewise.
3309 * config/s390/s390.md (mov*): Likewise.
3310 * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
3312 * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
3313 * expr.c (expand_expr_real_1): Likewise.
3314 * stmt.c (expand_decl): Likewise.
3315 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
3317 * function.c (struct fixup_replacement, struct insns_for_mem_entry,
3318 postponed_insns, put_var_into_stack, put_reg_into_stack,
3319 schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
3320 fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
3321 fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
3322 walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
3323 gen_mem_addressof, flush_addressof, put_addressof_into_stack,
3324 purge_bitfield_addressof_replacements, purge_addressof_replacements,
3325 purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
3326 struct insns_for_mem_walk_info, insns_for_mem_walk,
3327 compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
3328 setjmp_protect_args): Remove.
3329 (push_function_context_to): Don't handle var_refs_queue.
3330 (pop_function_context_from, free_after_compilation): Likewise.
3331 (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
3332 (assign_parms, allocate_struct_function): Likewise.
3333 (use_register_for_decl): New.
3334 (expand_function_end): Don't setjmp_protect.
3335 * function.h (struct emit_status): Update commentary.
3336 (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
3337 (max_parm_reg, parm_reg_stack_loc): Remove.
3338 * passes.c (DFI_addressof): Remove.
3339 (dump_file_info): Remove addressof.
3340 (rest_of_handle_addressof): Remove.
3341 (rest_of_compilation): Don't call it.
3342 * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
3343 * stmt.c (expand_decl): Use use_register_for_decl.
3344 * tree.h: Update decls.
3345 * web.c (mark_addressof): Remove.
3346 * doc/invoke.texi (-dF): Remove.
3348 2004-07-03 Richard Henderson <rth@redhat.com>
3350 * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
3351 instead of gen_mem_addressof.
3352 * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
3353 TImode output register.
3355 2004-07-03 Richard Henderson <rth@redhat.com>
3357 PR tree-optimization/16341
3358 * tree-sra.c (sra_walk_function): Increment to next stmt before
3359 processing the current stmt.