1 2004-06-22 Richard Sandiford <rsandifo@redhat.com>
4 * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
6 2004-06-22 Alexandre Oliva <aoliva@redhat.com>
8 * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
11 2004-06-22 Dale Johannesen <dalej@apple.com>
13 * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
14 global, rename rs6000_legitimate_offset_address_p.
15 (rs6000_legitimate_address_p): Adjust calls to it.
16 (lmw_operation): Ditto.
17 (stmw_operation): Ditto.
18 * config/rs6000/rs6000-protos.h: Declare it.
19 * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
20 instead of offsettable_memref_p.
22 2004-06-22 Dale Johannesen <dalej@apple.com>
24 * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
25 [reg+reg] mode for TFmode memory accesses.
26 (rs6000_eliminate_indexed_memrefs): New.
27 (rs6000_emit_move): Call preceding for TImode and TFmode.
29 2004-06-22 Paolo Bonzini <bonzini@gnu.org>
31 * tree-cfg.c (pass_warn_function_return): It needs
34 2004-06-22 Nathan Sidwell <nathan@codesourcery.com>
36 * doc/invoke.texi (Machine Dependent Options): Alphabetize.
37 (Submodel Options): Likewise.
39 2004-06-21 Andrew Pinski <apinski@apple.com>
42 * c-decl.c (push_file_scope): Return early if we already
45 2004-06-21 Geoffrey Keating <geoffk@apple.com>
47 * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
48 * c-common.h (flag_pch_preprocess): Declare.
49 (c_common_pch_pragma): Likewise.
50 * c-common.c (flag_pch_preprocess): New.
51 * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
52 (c_common_pch_pragma): New.
53 * c-ppoutput.c (cb_read_pch): New.
54 (init_pp_output): Support -fpch-preprocess.
55 * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
56 * c.opt (fpch-preprocess): New.
57 * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
58 * doc/cppopts.texi: Document -fpch-preprocess.
59 * doc/invoke.texi (Precompiled Headers): Mention that
60 -fpreprocessed is safe for PCH. Mention that if an option is
61 listed as safe that doesn't mean it does what you expect.
63 2004-06-22 Ben Elliston <bje@au.ibm.com>
65 * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
67 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
69 * Makefile.in (gimplify.o): Add cgraph.h.
70 * alias.c (adjust_offset_for_component_ref): Use
71 component_ref_field_offset.
72 * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
73 * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
74 (gimplify_decl_stmt): Call gimplify_type_sizes for type.
75 For decl, call gimplify_one_sizepos and use statement list.
76 (gimplify_compound_literal_expr): New arg PRE_P.
77 Add statement to PRE_P list and return DECL.
78 (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
79 gimplify_compound_literal_expr.
80 * c-tree.h (getdecls): Deleted.
81 * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
82 (build_array_ref): Add two operands for ARRAY_REF.
83 (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
84 COMPOUND_LITERAL_EXPR.
85 * coverage.c (tree_coverage_counter_ref): Add new operands
87 * emit-rtl.c (component_ref_for_mem_expr): Add new operand
89 (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
90 and array_ref_element_size.
91 (widen_memory_access):Use component_ref_field_offset.
92 * explow.c (update_nonlocal_goto_save_area): Add two operands
94 * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
95 (component_ref_field_offset): Likewise.
96 (get_inner_reference): Use them.
97 (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
98 * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
99 (fold_read_from_constant_string): Use array_ref_low_bound.
100 Verify that result is a character type.
101 (build_fold_indirect_ref): Add two operands for ARRAY_REF.
102 * function.c (expand_function_start): Likewise.
103 * gimple-low.c (expand_var_p): Delete duplicated line.
104 * gimplify.c: Add static decls for local functions.
105 (cgraph.h): Now included.
106 (create_tmp_var): Remove check for ARRAY_TYPE.
107 (copy_if_shared_r): Look at bounds and sizes of types.
108 (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
109 (gimplify_exit_expr, shortcut_cond_expr): Likewise.
110 (gimplify_save_expr, gimple_push_cleanup): Likewise.
111 (gimplify_init_constructor): Likewise.
113 If empty list with no result wanted, return GS_UNHANDLED.
114 Add additional operands for ARRAY_REF and COMPONENT_REF.
115 (canonicalize_component_ref): Convert to &array[L].
116 (gimplify_array_ref_to_plus): Use array_ref_element_size and
117 array_ref_lower_bound.
118 (build_addr_expr_with_type, build_addr_expr): New functions.
119 (gimplify_compound_lval): WANT_LVALUE now bool.
120 Major rework to allow handle_component_p and initialize and
121 gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
123 (gimplify_array_ref): Deleted.
124 (gimplify_self_mod_expr): WANT_VALUE now bool.
125 (gimplify_modify_expr): Gimplify to_p and from_p later.
126 Factor out code into gimplify_modify_expr_rhs and call twice.
127 Move variable-size code earlier and handle PLACEHOLDER_EXPR.
128 (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
129 (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
130 (gimplify_expr, case ARRAY_REF): Delete special case.
131 Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
132 IMAGPART, and REALPART the same way.
133 (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
134 (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
135 Call alloc_stmt_list instead of build_empty_stmt.
136 Deal with _REF that's volatile.
137 (gimplify_type_sizes, gimplify_one_sizepos): New functions.
138 (unshare_body, unvisit_body): New functions.
139 (gimplify_body): Call them.
140 * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
141 * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
142 * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
143 * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
145 (verify_expr, case ADDR_EXPR): Use handled_component_p.
146 * tree-dfa.c (get_virtual_var): Likewise.
147 * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
148 New cases to dump new operands; likewise for ARRAY_RANGE_REF.
149 * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
150 * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
152 (get_base_address): Use handled_component_p.
153 * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
154 * tree-inline.c (walk_tree): Walk more things for types and decls.
155 * tree-mudflap.c (mf_build_check_statement_for): Add new operands
156 for ARRAY_REF and COMPONENT_REF.
157 (mx_xform_derefs_1): Clean up usage of decl sizes.
158 * tree-nested.c (build_addr): Use handled_component_p.
159 (walk_stmts, case CATCH_EXPR): Add missing "break".
160 (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
161 (finalize_nesting_tree_1): Likewise.
162 (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
163 and process additional operands.
164 (convert_local_reference): Likewise.
165 * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
166 ARRAY_RANGE_REF similarly to ARRAY_REF.
167 * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
169 (dump_generic_node, case COMPONENT_REF): Print offset operand.
170 (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
171 and print lower bound and element size for both.
172 (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
173 * tree-sra.c (csc_build_component_ref): Add new operand.
174 (scalarize_call_expr): Use get_base_address.
175 * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
176 (maybe_fold_offset_to_array_ref): Rework to handle input having an
177 ARRAY_REF, refine handling of lower bound, and add new operands
179 (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
180 (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
181 (maybe_fold_stmt_addition): Only handle constant lower bound.
182 * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
183 Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
184 Look at new offset operand of COMPONENT_REF.
185 * tree-ssa.c (set_is_used): Use handled_component_p.
186 * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
187 (stabilize_reference, case COMPONENT_REF): Likewise.
188 (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
189 (recompute_tree_invariant_for_addr_expr): Completely rework to
190 be more precise. Also set TREE_SIDE_EFFECTS.
191 (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
192 (build2_stat, build3_stat, build4_stat): For references,
193 propagate TREE_THIS_VOLATILE.
194 (get_unwidened): Add new operand for COMPONENT_REF.
195 (get_narrower): Likewise; use host_integerp for DECL_SIZE.
196 * tree.def (COMPONENT_REF): Add new operand.
197 (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
198 * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
199 (component_ref_field_offset): Likewise.
200 * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
201 (alpha_gimplify_va_arg): Likewise.
202 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
203 * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
204 * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
205 * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
206 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
208 * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
209 * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
210 * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
212 (xstormy16_expand_builtin_va_arg): Likewise.
213 * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
214 * objc/objc-act.c (generate_static_references): Likewise.
215 (generate_strings, build_method_prototype_list_template): Likewise.
216 (generate_protocol_list): Likewise.
218 2004-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
220 PR rtl-optimization/14782
221 * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
222 the address checks for secondary reloads for loads from and stores
223 to floating-point registers.
224 * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
225 in the address check. Move work around for ELF32 targets to
226 GO_IF_LEGITIMATE_ADDRESS.
227 (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
228 correctly aligned for DImode loads and stores. Don't allow long
229 SFmode displacements on ELF32.
231 2004-06-21 Richard Henderson <rth@redhat.com>
234 * cse.c (merge_equiv_classes): Also rehash in response to
235 delete_reg_equiv changes.
236 (rehash_using_reg): Don't exclude REGs from rehashing.
238 2004-06-21 Richard Henderson <rth@redhat.com>
240 * c-common.def (RETURN_STMT): Remove.
241 * c-common.h (RETURN_STMT_EXPR): Remove.
242 (c_expand_return, build_return_stmt): Remove.
243 (c_common_stmt_codes): Remove RETURN_STMT.
244 * c-dump.c (dump_next_stmt): Remove.
245 (c_dump_tree): Remove RETURN_STMT.
246 * c-decl.c (finish_function): Use c_finish_return.
247 * c-parse.in (stmt): Likewise.
248 * c-gimplify.c (gimplify_return_stmt): Remove.
249 (c_gimplify_expr): Remove RETURN_STMT.
250 * c-pretty-print.c (pp_c_statement): Likewise.
251 * c-semantics.c (build_return_stmt): Remove.
252 * c-tree.h (c_finish_return): Declare.
253 * c-typeck.c (c_finish_return): Rename from c_expand_return.
254 Return void. Build RETURN_EXPR directly.
255 * tree-dump.h (dump_next_stmt): Remove.
257 2004-06-21 Zack Weinberg <zack@codesourcery.com>
259 * c-decl.c (start_function): Don't call make_decl_rtl. Don't
260 look at TREE_ADDRESSABLE of symbol name.
262 2004-06-21 Kelley Cook <kcook@gcc.gnu.org>
265 * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
266 (allocate_stack_worker): Make unspec_volatile.
267 (allocate_stack_worker_rex64): Likewise.
268 (allocate_stack_worker_postreload): Likewise.
269 (allocate_stack_worker_rex64_postreload): Likewise.
271 2004-06-21 Daniel Berlin <dberlin@dberlin.org>
273 Fix PR optimization/15982
274 * tree-ssa-pre.c: Update a few comments and todos to
275 reflect constants change.
276 (get_value_handle): Constants now value number to themselves.
277 (lookup): Constants lookup to themselves.
278 (add_to_value): Adjust to always be on.
279 (set_contains_value): Adjust for constants change.
280 (find_leader): Ditto.
281 (phi_translate): 'r' nodes are never ANTIC right now.
282 (valid_in_set): Ditto.
283 (get_expr_set): New function.
284 (find_or_generate_expression): New function, broken out from
286 (create_expression_by_pieces): Ditto, plus additional
287 machinery to handle complex values.
288 (compute_avail): Remove dead RETURN_EXPR handling.
290 2004-06-21 Steven Bosscher <stevenb@suse.de>
292 * config/i386/i386.c: Include insn-codes.h
293 * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
295 * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
296 DIRFLAG_REG): New define_constants. Use them everywhere.
298 2004-06-21 Kaz Kojima <kkojima@gcc.gnu.org>
300 * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
302 2004-06-21 J"orn Rennecke <joern.rennecke@superh.com>
304 * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define.
305 (SUPPORT_SH4_SINGLE): Likewise.
306 (TARGET_SWITCHES): Break out switches for cpu subtargets:
307 (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
308 (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
309 (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
310 (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
311 (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
312 (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
313 (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
314 (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
315 (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
316 (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
317 (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
318 (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
319 (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
320 * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
321 (TARGET_DEFAULT): Likewise.
322 * config/sh/t-elf: Amend comment.
323 * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
324 * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
325 * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
326 * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
327 * config/sh/t-mlib-sh4-single: Likewise.
328 * config/sh/t-mlib-sh4-single-only: Likewise.
329 * config/sh/t-mlib-sh5-32media: Likewise.
330 * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
331 * config/sh/t-mlib-sh5-64media: Likewise.
332 * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
333 * config/sh/t-mlib-sh5-compact: Likewise.
334 * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
335 * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
336 (MULTILIB_CPUS): Define.
337 (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
338 (MULTILIB_MATCHES): Use some shell code to calculate it.
339 (MULTILIB_EXCEPTIONS): Change to ml/m1.
340 * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
341 * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
342 (LINK_DEFAULT_CPU_EMUL): Don't redefine.
343 (NO_PROFILE_COUNTERS): Define to 1.
344 * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
345 (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
346 * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
347 (MULTILIB_MATCHES): Don't zap.
348 (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
349 * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
350 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
351 (MULTILIB_RAW_DIRNAMES): Define.
352 (MULTILIB_DIRNAMES): Use it.
353 * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
354 (sh*linux configurations): Merge into:
355 (sh*elf / sh*kaos configurations). Support --with-endian, --with-cpu,
356 --with-multilib-list options. Support sh-superh-elf configuration.
357 (sh*-netbsd*): Use SELECT_SH* macros.
358 (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
359 Merge sh*-*-netbsd* configurations into sh-elf configurations.
360 * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
361 * config/sh/t-monolib: Likewise.
363 2004-06-21 Paul Brook <paul@codesourcery.com>
365 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
368 2004-06-21 Roger Sayle <roger@eyesopen.com>
370 * fold-const.c (operand_equal_p): Pass flags in recursive calls for
371 binary and relational operations. Add support for TRUTH_ANDIF_EXPR,
372 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
373 * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
374 ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
377 2004-06-21 Paolo Bonzini <bonzini@gnu.org>
379 * rtlanal.c (may_trap_p): Mark LTGT as trapping.
381 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
383 * tree-alias-common.h (struct tree_alias_ops): Change ip and
384 ip_partial to unsigned int.
386 2004-06-21 Richard Henderson <rth@redhat.com>
388 * c-common.c (verify_sequence_points): Export.
389 (c_expand_expr_stmt): Move to c-typeck.c.
390 * c-common.h (c_expand_expr_stmt): Remove.
391 (verify_sequence_points): Declare.
392 * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
393 * c-parse.in (for_init_stmt, stmt): Likewise.
394 * c-tree.h (c_finish_expr_stmt): Declare.
395 (c_tree_expr_nonnegative_p): Remove.
396 * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
397 (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
398 (emit_side_effect_warnings): New.
399 (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it.
400 (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions.
401 Use emit_side_effect_warnings.
402 (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
403 * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
404 * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
405 with void initializer.
406 (gimplify_target_expr): Handle void BIND_EXPR initializer.
407 * tree-inline.c (estimate_num_insns_1): Fix type lookup for
408 INIT_EXPR and MODIFY_EXPR.
409 * objc/objc-act.c (build_module_descriptor): Use add_stmt
410 instead of c_expand_expr_stmt.
412 2004-06-21 Paolo Bonzini <bonzini@gnu.org>
414 * fold-const.c (fold_cond_expr_with_comparison):
415 New function, extracted from fold.
416 (fold): Extract code to fold A op B ? A : C, use
417 it to fold A op B ? C : A. Really optimize
418 A & N ? N : 0 where N is a power of two. Avoid
419 relying on canonicalization and recursion for
420 foldings of COND_EXPR to happen.
422 2004-06-20 David Ayers <d.ayers@inode.at>
424 * objc/objc-act.h (get_object_reference): Rename to
425 get_protocol_reference.
426 (super_type): Rename to objc_super_type.
427 (selector_type): Rename to objc_selector_type.
428 (id_type): Rename to objc_id_type.
429 (instance_type): Rename to objc_instance_type.
430 (protocol_type): Rename to objc_protocol_type.
431 (IS_ID): Update reference to id_type.
432 * objc/objc-act.c (get_object_reference): Rename to
433 get_protocol_reference; add documentation; update references to
435 (lookup_method_in_protocol_list): Rename class_meth to
436 is_class; add documentation.
437 (finish_message_expr): Rename is_class to class_tree.
438 (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
439 next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
440 build_next_objc_exception_stuff, get_arg_type_list,
441 build_objc_method_call): Update references to id_type.
442 (synth_module_prologue, build_objc_symtab_template,
443 build_selector_reference_decl, build_selector,
444 build_selector_translation_table, build_typed_selector_reference,
445 get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
446 synth_self_and_ucmd_args): Update references to selector_type.
447 (build_private_template, build_ivar_reference): Update references
449 (synth_module_prologue, build_protocol_reference,
450 build_protocol_expr, start_protocol): Update references to
452 (synth_module_prologue, get_arg_type_list, build_objc_method_call):
453 Update references to super_type.
454 * c-parse.in: (typespec_nonreserved_nonattr): Update
455 references to get_object_reference.
456 * objc/objc-tree.def: Add C mode identifier sequence.
458 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
460 * loop-invariant.c: New file.
461 * Makefile.in (loop-invariant.o): New.
462 * cfgloop.h (global_cost_for_size, init_set_costs,
463 move_loop_invariants): Declare.
464 * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
466 (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
468 * common.opt (floop-optimize2, fmove-loop-invariants): New options.
469 * loop-init.c (loop_optimizer_init): Call init_set_costs.
470 * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
471 (rest_of_compilation): Check flag_loop_optimize2.
472 * toplev.c (process_options): Handle flag_loop_optimize2.
473 * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
474 * doc/passes.texi (loop-invariant.c): Document.
476 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
478 * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
480 2004-06-20 Richard Henderson <rth@redhat.com>
482 * stmt.c (warn_if_unused_value): Add locus argument.
483 * tree.h (warn_if_unused_value): Update decl.
484 * c-typeck.c (internal_build_compound_expr): Update call.
485 * c-gimplify.c (gimplify_expr_stmt): Likewise.
487 2004-06-20 Andrew Pinski <pinskia@physics.uc.edu>
490 * builtins.c (entry_of_function): Move to ...
491 * cfgrtl.c (entry_of_function): Here and make non-static.
492 * integrate.c (emit_initial_value_sets): Use entry_of_function.
493 * rtl.h (entry_of_function): Prototype.
495 2004-06-20 Roger Sayle <roger@eyesopen.com>
497 * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
498 (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
499 TARGET_DECOMPOSE_LEA.
501 2004-06-20 Richard Henderson <rth@redhat.com>
503 * c-common.h (add_decl_stmt): Move to cp-tree.h.
504 * c-decl.c (finish_decl): Don't use add_decl_stmt.
505 * c-parse.in: Likewise.
506 * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
507 (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
508 * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
510 2004-06-20 Richard Henderson <rth@redhat.com>
512 * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
513 * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
514 CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
515 (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
516 * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
517 * c-pretty-print.c (pp_c_statement): Similarly.
518 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
519 gimplify_if_stmt): Move to cp-gimplify.c.
520 (c_genericize, c_gimplify_expr): Don't call them.
521 * c-semantics.c (push_cleanup): Move to cp/semantics.c.
522 * c-typeck.c (push_cleanup): New.
523 (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
524 c_finish_if_stmt): Use COND_EXPR.
525 * tree.h (CLEANUP_EH_ONLY): Update documentation.
527 2004-06-20 Zack Weinberg <zack@codesourcery.com>
529 * c-common.h (has_c_linkage): New interface.
530 * c-cppbuiltin.c: Include target.h.
531 (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
532 __PRAGMA_EXTERN_PREFIX when appropriate.
533 * c-pragma.c: Include target.h.
534 Document clarified semantics of symbol-renaming #pragmas.
535 (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
536 (maybe_apply_renaming_pragma): Rewrite according to clarified
537 semantics. Always recognize, but do not necessarily execute.
538 (init_pragma): Unconditionally register symbol-renaming pragmas.
539 * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
540 and HANDLE_PRAGMA_EXTERN_PREFIX.
541 * target.h (struct gcc_target): Add handle_pragma_redefine_extname
542 and handle_pragma_extern_prefix flags.
543 * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
544 and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
545 * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
546 * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
547 not HANDLE_PRAGMA_REDEFINE_EXTNAME.
548 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
549 (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
550 * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
551 not HANDLE_PRAGMA_EXTERN_PREFIX.
552 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
553 * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
554 into one section "Symbol-Renaming Pragmas"; clarify; document
557 * builtins.c (expand_builtin): Do not issue error for a builtin
558 with no special case code and no DECL_ASSEMBLER_NAME; just do the
560 * c-decl.c (builtin_function): Don't call make_decl_rtl.
561 * c-objc-common.c (has_c_linkage): Stub implementation.
562 * cgraphunit.c (cgraph_expand_function)
563 (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
565 2004-06-19 Roger Sayle <roger@eyesopen.com>
567 * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
568 instead of both an ARGLIST and a result TYPE. Handle these C99
569 comparison functions as "polymorphic" builtins. Also handle
570 lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
571 (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
572 Move handling of BUILT_IN_ISUNORDERED from here to there.
574 2004-06-19 Richard Henderson <rth@redhat.com>
576 * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
577 * c-gimplify.c: Remove unnecessary prototypes.
578 (c_gimplify_stmt): Merge into ...
579 (c_gimplify_expr): ... here. Don't play with prep_stmt.
580 * c-semantics.c (prep_stmt): Remove.
581 * gimplify.c (annotate_one_with_locus): Break out from ...
582 (annotate_all_with_locus): ... here.
583 (gimplify_expr): Add locus to expressions even if pre/post queues
586 2004-06-19 Richard Henderson <rth@redhat.com>
589 * function.c (assign_parms): If not padding upward or intentionally
590 forcing upward padding, take offset_rtx into account when determining
591 the alignment for stack_parm.
593 2004-06-19 Richard Henderson <rth@redhat.com>
596 * ifcvt.c (noce_try_move): Recognize all generated instructions.
598 2004-06-19 Jan Hubicka <jh@suse.cz>
600 * function.c (free_after_compilation): Do not free computed_goto_common*.
601 * function.h (struct function): Kill computed_goto_common*.
602 * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
603 * tree-cfg.c (disband_implicit_edges): Do not forward across the
604 commonized computed goto.
606 2004-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
608 * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
611 2004-06-19 Andrew Pinski <apinski@apple.com>
614 * toplev.c (wrapup_global_declarations): Do not check
615 TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
616 cgraph_varpool_node's needed field.
618 2004-06-19 Jan Hubicka <jh@suse.cz>
619 Steven Bosscher <stevenb@suse.de>
621 CFG transparent RTL expansion:
622 * Makefile.in (cfgexpand.o): New object file.
623 (builtins.o): Add dependency on basic-block.h
624 * builtins.c: Include basic-block.h
625 (entry_of_function): New function.
626 (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
627 * cfgexpand.c: New file.
628 * expr.c (execute_expand, pass_expand): Kill.
629 * pass.c (rest_of_compilation): Do not build CFG unless called from
631 * tree-cfg.c (delete_tree_cfg): Rename to..
632 (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
633 * tree-flow.h (delete_tree_cfg_annotations): Declare.
634 (dleete_tree_cfg): Kill.
635 * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
636 (execute_del_cfg): Rename to...
637 (execute_free_datastructures): This one...
638 (pass_del_cfg): Rename to...
639 (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
640 (init_tree_optimization_passes): Make cfg build and profiling to happen
643 2004-06-19 Steven Bosscher <stevenb@suse.de>
645 * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
646 inserting the cache variables.
648 * tree-mudflap.c: Include headers to make basic_block available.
649 Move functions around such that related functions are near each
650 other. Add prototypes for all static functions. Add comments
651 briefly explaining what IR the mudflap1 and mudflap2 work on and
653 (mudflap_function_decls): Rename to execute_mudflap_function_decls.
654 (mudflap_function_ops): Rename to execute_mudflap_function_ops.
655 (pass_mudflap_1, pass_mudflap_2): Update.
656 (mf_decl_cache_locals): Make it work on the CFG instead of the saved
658 (mf_build_check_statement_for): Make it work on the CFG.
659 (mf_xform_derefs_1): Likewise. Cleanup code style.
660 (mf_xform_derefs): Likewise.
662 2004-06-19 Jan Hubicka <jh@suse.cz>
664 * tree-cfg.c (label_to_block): Invent the label destination for
666 (cleanup_dead_labels): Update table in the case label_to_block added
669 2004-06-18 Richard Henderson <rth@redhat.com>
672 * gimple-low.c (lower_function_body): Generate return statement for
673 fall off the end of the function here ...
674 * tree-cfg.c (make_edges): ... instead of here.
675 * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
677 2004-06-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
679 * tree-ssa.c (raise_value): Removed.
680 (get_eq_name, check_phi_redundancy): New functions.
681 (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
683 2004-06-18 Roger Sayle <roger@eyesopen.com>
685 * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
686 UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
687 constant folding for unordered comparison tree nodes. If both
688 operands are real constants, call fold_relational_const. If either
689 operand is a NaN, evaluate the other for side-effects and return a
690 constant. Optimize (double)float1 CMP (double)float2 into the
691 equivalent float1 CMP float2.
692 (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
693 ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
694 LTGT_EXPR>: Call fold_relational_const for constant operands.
695 (fold_relational_const): Add support for unordered comparison tree
696 nodes. Don't constant fold "ordered" floating point comparisons
697 against NaN if when flag_trapping_math is set.
699 2004-06-19 Jakub Jelinek <jakub@redhat.com>
701 * fold-const.c (build_range_check): If !in_p and recursive call
702 fails, exit immediately. If high - low overflows and etype is
703 a signed type, retry with unsigned etype.
704 (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
705 to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
707 2004-06-18 Richard Henderson <rth@redhat.com>
709 * c-gimplify.c (gimplify_condition): Remove.
710 (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
713 2004-06-18 Richard Henderson <rth@redhat.com>
715 * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
718 2004-06-18 Andrew Pinski <pinskia@physics.uc.edu>
720 * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
721 (NORMAL_TEXT_SECTION_NAME): Define.
722 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
723 (SECTION_FORMAT_STRING): Define.
725 2004-06-18 Steven Bosscher <stevenb@suse.de>
727 * config/xtensa/xtensa.c
728 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
729 * xtensa.md: Replace the old pipeline description with a DFA model.
731 2004-06-18 Steven Bosscher <stevenb@suse.de>
732 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
734 * config/s390/s390.md: Remove the generic pipeline description.
735 * config/s390/2064.md: Make all insn reservations apply to
737 * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
738 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
739 Define to hook_int_void_1.
740 (s390_adjust_cost): Cleanup. Don't check address dependency here.
741 (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
743 2004-06-18 Daniel Berlin <dberlin@dberlin.org>
744 Diego Novillo <dnovillo@redhat.com>
746 * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
747 (create_stmt_ann): Ditto.
748 (create_tree_ann): New function.
749 (create_cst_ann): Remove.
750 (create_expr_ann): Ditto.
752 * tree-flow-inline.h (cst_ann): Remove.
753 (get_cst_ann): Ditto.
754 (get_expr_ann): Ditto.
756 (get_tree_ann): New function.
758 (ann_type): tree_ann -> tree_ann_t.
759 * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
760 (struct cst_ann_d): Removed.
761 (struct expr_ann_d): Ditto.
762 (union tree_ann_d): Removed cst and expr.
763 (tree_ann): Renamed to tree_ann_t.
764 * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
765 * tree-ssa-pre.c (get_value_handle): Rewrite for single common
767 (set_value_handle): Ditto.
768 (phi_translate): Ditto.
769 * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
771 2004-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
773 * config/sh/t-linux64: New file.
774 * config.gcc: Add it to tmake_file for sh64*-*-linux*.
776 2004-06-18 Paolo Bonzini <bonzini@gnu.org>
778 * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
779 (unshare_all_rtl_again): Call unshare_all_rtl_1.
780 (unshare_all_rtl): New.
781 * function.c (instantiate_virtual_regs): Remove parameters.
782 * function.h (instantiate_virtual_regs): Add prototype.
783 * rtl.h (unshare_all_rtl): Add prototype.
784 * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
786 * passes.c: Remove assertions on the parameters to
787 rest_of_handle_* functions. Remove the parameters to
788 the functions, replacing decl with current_function_decl
789 and insns with get_insns ().
791 2004-06-17 Roger Sayle <roger@eyesopen.com>
793 * fold-const.c (constant_boolean_node): Handle boolean_type_node
794 directly, return either boolean_true_node or boolean_false_node.
796 2004-06-18 Kelley Cook <kcook@gcc.gnu.org>
798 * opts.sh: Delete. Break out generated code to next four files.
799 * opt-gather.awk: New file.
800 * optc-gen.awk: New file.
801 * opth-gen.awk: New file.
802 * opt-functions.awk: New common file.
803 * Makefile.in: Update for above.
804 * configure.ac: Update comment.
805 * configure: Regenerate.
807 2004-06-17 Richard Henderson <rth@redhat.com>
809 * c-common.c (flag_objc_sjlj_exceptions): New.
810 * c-common.h (flag_objc_sjlj_exceptions): Declare.
811 * c-opts.c (c_common_handle_option): Set it.
812 (c_common_post_options): Handle interation of different
813 objective-c exception and runtime switches.
814 * c-decl.c (c_eh_initialized_p): New.
815 (finish_decl): Use it instead of local eh_initialized_p.
816 * c-parse.in (nested_function, notype_nested_function): Record
817 the result of compstmt.
818 (compstmt_or_error): Likewise.
819 (compstmt): Don't add_stmt the result.
820 (stmt): Don't return anything. Rewrite objc try and sync rules.
821 (objc_try_stmt, objc_catch_list): Remove.
822 (objc_catch_block, objc_finally_block): Remove.
823 (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
824 (objc_try_catch_clause, objc_finally_clause): New.
825 (objc_try_catch_stmt): Rewrite.
826 * c-tree.h (c_eh_initialized_p): Declare.
827 * c-opt (fobjc-sjlj-exceptions): New.
828 * except.c (output_function_exception_table): Don't call cgraph
830 * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
831 UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
832 catch_count_stack, exc_binding_stack, if_nesting_count,
833 blk_nesting_count, objc_enter_block, objc_exit_block,
834 objc_declare_variable, val_stack_push, val_stack_pop,
835 objc_build_try_enter_fragment, objc_build_extract_expr,
836 objc_build_try_exit_fragment, objc_build_extract_fragment,
837 objc_build_try_prologue, objc_build_try_epilogue,
838 objc_build_catch_stmt, objc_build_catch_epilogue,
839 objc_build_finally_prologue, objc_build_finally_epilogue,
840 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
841 objc_build_synchronized_epilogue): Remove.
842 (objc_create_temporary_var, struct objc_try_context, cur_try_context,
843 objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
844 next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
845 next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
846 next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
847 objc_begin_catch_clause, objc_finish_catch_clause,
848 objc_build_finally_clause, objc_finish_try_stmt,
849 objc_build_synchronized): New.
850 (objc_is_object_id, objc_is_class_id): New.
851 (objc_comptypes): Use them.
852 (build_next_objc_exception_stuff): Break NeXT sjlj out from
853 build_objc_exception_stuff.
854 (synth_module_prologue): Update to match.
855 (objc_build_throw_stmt): Use cur_try_context to decide if
857 * objc/objc-act.h: Update prototypes.
858 (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
860 2004-06-17 Andrew Pinski <apinski@apple.com>
862 * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
863 Use TYPE_FIELDS instead of TYPE_VALUES.
865 2004-06-17 Jason Merrill <jason@redhat.com>
868 * gimplify.c (gimplify_target_expr): Handle void initializer.
869 * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
870 * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
873 2004-06-17 Roger Sayle <roger@eyesopen.com>
875 * fold-const.c (fold_relational_const): Use constant_boolean_node.
877 2004-06-17 Jan Hubicka <jh@suse.cz>
880 * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
881 operand numbering in the output template.
882 (SSE DF cmov 0 splitter): The conditional is VOIDmode.
884 2004-06-17 Jan Hubicka <jh@suse.cz>
886 * except.c (can_throw_internal): Recognize RESX expresisons.
888 2004-06-17 Jan Hubicka <jh@suse.cz>
890 * cfgbuild.c (make_edges): Do not use label_value_list.
891 (find_basic_blocks_1): Do not collect label_value_list.
892 (find_sub_basic_blocks): Update call of make_edges.
894 2004-06-17 Andrew MacLeod <amacleod@redhat.com>
896 * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.
897 * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p.
898 (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers.
899 (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'.
900 (get_v_may_def_result_ptr): Return a def_operand_p.
901 (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p.
902 (get_v_must_def_op_ptr): Return a def_operand_p.
903 (get_phi_result_ptr): New. Return a pointer to the result of a PHI.
904 (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI.
905 (phi_element_for_edge): Remove.
906 * tree-flow.h (propagate_value, replace_exp): Change prototype.
907 (propagate_tree_value): Add new prototype.
908 (phi_element_for_edge): Remove prototype.
909 * tree-into-ssa.c (mark_def_sites): Use new operand types.
910 (prepare_operand_for_rename): Split into two functions.
911 (prepare_use_operand_for_rename): Prepare use operands.
912 (prepare_def_operand_for_rename): Prepare def operands.
913 (rewrite_stmt): Use new operand types.
914 (rewrite_operand): Use new operand types, change parameter type.
915 * tree-outof-ssa.c (replace_variable): Split into two functions.
916 (replace_use_variable): Rewrite uses.
917 (replace_def_variable): Rewrite defs.
918 (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types.
919 * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types.
920 (add_phi_arg, remove_phi_arg_num): Use new operand types.
921 * tree-ssa-ccp.c (substitute_and_fold): Use new operand types.
922 (ccp_fold, replace_uses_in): Use new operand types.
923 * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann
924 and no longer set the value, change parameter type.
925 (replace_exp_1): Use new operand types.
926 (propagate_value): Change parameter type, use new operand types.
927 (propagate_tree_value): Propagate_value without SSA operands.
928 (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types.
929 (cprop_into_successor_phis): Use new operand types.
930 * tree-ssa-dom.c (thread_across_edge): Use new operand types.
931 (eliminate_redundant_computations): Use new operand types.
932 * tree-ssa-dse.c (fix_phi_uses): Use new operand_types.
933 (fix_stmt_v_may_defs): Use new operand_types.
934 * tree-ssa-live.c (create_ssa_var_map): Use new operand_types.
935 (build_tree_conflict_graph): Use new operand_types.
936 * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE.
937 * tree-ssa-operands.c (struct freelist_d): Remove.
938 (check_optype_freelist, add_optype_freelist): Remove.
939 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
940 allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc.
941 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
942 Call ggc_free instead of add_optype_freelist.
943 (init_ssa_operands, fini_ssa_operands): Remove free list code.
944 (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands.
945 * tree-ssa-operands.h (struct def_optype_d): Change underlying type.
946 (struct use_optype_d): Change underlying type.
947 (def_operand_p, use_operand_p): New types for pointers to operands.
948 (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
949 V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly.
950 (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
952 (SET_USE, SET_DEF): New macros to set operands from their pointer.
953 (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
954 SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
955 (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the
956 PHI result as an operand.
957 (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
958 PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments.
959 * tree-ssa-pre.c (eliminate): Call propagate_tree_value.
960 * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use
961 PHI_ARG_DEF_FROM_EDGE.
962 * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE.
963 (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE.
965 2004-06-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
967 PR tree-optimization/15991
968 * tree-cfg.c (tree_block_label): Export.
969 * tree-flow-inline.h (bsi_after_labels): New function.
970 * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
971 * tree-ssa.c (propagate_into_addr): New function.
972 (replace_immediate_uses): Handle propagation of pointer constants.
973 (raise_value): Do not restrict propagation of pointer constants.
974 * tree-ssanames.c (duplicate_ssa_name): New function.
975 * tree.h (duplicate_ssa_name): Declare.
977 2004-06-17 David Ayers <d.ayers@inode.at>
979 * c-parse.in: Unify Objective-C token names.
981 2004-06-17 Zack Weinberg <zack@codesourcery.com>
984 * Makefile.in (min-insn-modes.o): Correct dependencies.
985 * real.c (encode_ieee_extended, decode_ieee_extended): Always
986 produce/consume 12-byte little-endian Intel format.
987 (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
988 (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
989 (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
990 (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
991 New functions which convert between 12-byte little-endian Intel
992 format and the desired format.
993 (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
994 (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
997 2004-06-17 Zack Weinberg <zack@codesourcery.com>
999 * expmed.c (expand_mult_const): In sanity check, compare only
1000 the bits of val and val_so_far that are significant in the
1003 2004-06-17 Daniel Berlin <dberlin@dberlin.org>
1005 * tree-ssa-pre.c: Update comments.
1006 (val_expr_pair_eq): Factor code from here.
1007 (expr_pred_trans_eq): and here.
1008 (expressions_equal_p): To here.
1009 (print_value_set): Print value for expression.
1010 (phi_trans_lookup): Rename some variables.
1012 (value_exists_in_set_bitmap): Ditto.
1013 (value_remove_from_set_bitmap): Ditto.
1014 (value_insert_into_set_bitmap): Ditto.
1016 2004-06-17 Ulrich Weigand <uweigand@de.ibm.com>
1018 * config/s390/s390-modes.def (CCL3mode): New machine mode.
1019 * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
1020 (s390_alc_comparison, s390_slb_comparison): Likewise.
1021 (s390_branch_condition_mask): Likewise.
1022 * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
1023 ("*subsi3_cc2", "*subsi3_cconly2"): New.
1025 * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
1026 ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
1027 * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
1028 Handle SIGN_EXTEND and ZERO_EXTEND.
1030 * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
1031 * config/s390/s390.c (s390_expand_addcc): New function.
1032 * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
1033 ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
1034 ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
1036 2004-06-17 Ben Elliston <bje@au.ibm.com>
1038 * tree-alias-common.c: Add whitespace.
1039 * tree-inline.c: Correct comment about this file's purpose.
1040 * tree-optimize.c: Likewise.
1041 * tree-tailcall.c: Likewise.
1043 * tree-alias-ander.h: Add standard top-of-file comment.
1044 * tree-alias-common.h: Likewise.
1045 * tree-alias-type.h: Likewise.
1047 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
1049 * tree-ssa-pre.c (compute_avail): Value number uses as well.
1050 Strip useless type conversions.
1051 Casts have to be treated slightly different than normal unaries.
1053 2004-06-16 Richard Henderson <rth@redhat.com>
1055 * c-common.def (COMPOUND_STMT): Remove.
1056 * c-common.c (finish_fname_decls): Don't look through it.
1057 * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
1058 * c-common.h (COMPOUND_BODY): Remove.
1059 (c_common_stmt_codes): Remove COMPOUND_STMT.
1060 * c-dump.c (c_dump_tree): Likewise.
1061 * c-gimplify.c (c_gimplify_stmt): Likewise.
1062 * c-pretty-print.c (pp_c_statement): Likewise.
1063 * tree.h (DECL_SAVED_TREE): Update commentary.
1064 * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
1065 (CASE_LABEL_EXPR): Rename from CASE_LABEL.
1066 (GOTO_EXPR): Rename from GOTO_STMT.
1067 (GOTO_FAKE_P): Remove.
1068 (COMPOUND_STMT): Remove.
1069 (HANDLER): Update wrt COMPOUND_STMT.
1070 (STMT_EXPR): Likewise.
1071 (LABEL_EXPR): Rename from LABEL_STMT.
1072 (SCOPE_STMT): Remove.
1073 * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
1074 through COMPOUND_STMT.
1076 2004-06-16 Richard Henderson <rth@redhat.com>
1078 * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
1079 c_finish_while_stmt_cond): Remove decls.
1080 * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
1081 * c-typeck.c (c_begin_if_stmt): Return void.
1082 (c_begin_else): Tidy. Save stmt_count.
1083 * c-tree.h (c_begin_if_stmt): Update decl.
1085 * objc/objc-act.c (objc_build_try_enter_fragment,
1086 objc_build_extract_fragment, objc_build_try_epilogue,
1087 objc_build_catch_stmt, objc_build_catch_epilogue,
1088 objc_build_finally_prologue, objc_build_finally_epilogue): Update
1089 for if builder function changes.
1091 2004-06-16 Ulrich Weigand <uweigand@de.ibm.com>
1093 * config/s390/s390.c (struct machine_function): New member
1095 (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
1096 Do not modify machine->save_return_addr_p or regs_ever_live.
1097 Fill in machine->last_restore_gpr.
1098 (s390_optimize_prolog): Use s390_frame_info to compute registers
1099 to save/restore, remove duplicated code.
1100 (s390_arg_frame_offset): Use s390_frame_info to compute frame
1101 size, remove duplicated code.
1102 (s390_emit_prologue): Adapt s390_frame_info call. Update
1103 machine->save_return_addr_p and regs_ever_live.
1104 (s390_emit_epilogue): Use machine->last_restore_gpr instead of
1105 machine->last_save_gpr.
1107 2004-06-16 Richard Henderson <rth@redhat.com>
1109 * c-parse.in (if_stmt_locus): Remove.
1110 (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
1111 (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
1112 * c-typeck.c (if_elt): Sort by expected size. Rename locus to
1113 empty_locus. Add stmt_count, saw_else.
1114 (c_begin_if_stmt): Push if_stack here.
1115 (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count.
1116 (c_finish_then, c_finish_else): Record empty_locus.
1117 (c_begin_else): Rename from c_expand_start_else. Record stmt_count.
1118 (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty
1120 * c-tree.h: Update prototypes.
1122 2004-06-16 Steven Bosscher <stevenb@suse.de>
1124 * tree.h (PHI_CHAIN): New.
1125 * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
1126 tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
1127 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
1128 tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1129 tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
1130 when traversing a list of PHI_NODEs.
1132 2004-06-16 Bernardo Innocenti <bernie@develer.com>
1135 * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
1137 (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
1138 68040 and soft-float.
1139 * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
1140 in the TARGET_68040_ONLY case.
1142 2004-06-16 Peter Barada <peter@the-baradas.com>
1144 * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
1145 (movsi_cf): Make named, don't match TARGET_CFV4.
1146 (pushexthisi_const): Use mov3q if possible.
1147 (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
1148 to special case mvz.w for ColdFire V4.
1149 (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
1150 to special case mvz.b for ColdFire V4.
1151 (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
1153 (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
1154 * config/m68k/m68k.c(valid_mov3q_const): New function.
1155 (const_method): SWAP is valid for ColdFire.
1156 (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
1157 * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
1159 2004-06-16 Richard Henderson <rth@redhat.com>
1161 * c-common.def (CASE_LABEL): Remove.
1162 * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
1163 (match_case_to_enum_1): Likewise.
1164 * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
1165 * c-dump.c (c_dump_tree): Likewise.
1166 * c-gimplify.c (c_gimplify_stmt): Likewise.
1167 * c-pretty-print.c (pp_c_statement): Likewise.
1168 * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
1169 * tree.h (CASE_LOW): Update commentary.
1171 2004-06-16 Richard Henderson <rth@redhat.com>
1173 * c-common.def (ASM_STMT): Remove.
1174 * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
1175 * c-dump.c (c_dump_tree): Likewise.
1176 * c-gimplify.c (c_gimplify_stmt): Likewise.
1177 * c-pretty-print.c (pp_c_statement): Likewise.
1178 * c-typeck.c (build_asm_expr): Use ASM_EXPR.
1179 * tree.h: Fix commentary.
1181 2004-06-16 Richard Henderson <rth@redhat.com>
1183 * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
1184 * c-common.c (c_add_case_label): Use LABEL_EXPR.
1185 * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
1186 (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
1187 * c-dump.c (c_dump_tree): Likewise.
1188 * c-gimplify.c (c_gimplify_stmt): Likewise.
1189 * c-pretty-print.c (pp_c_statement): Likewise.
1190 * c-parse.in (stmt): Use GOTO_EXPR.
1191 (label): Use LABEL_EXPR.
1192 * c-semantics.c (build_stmt): Set TREE_TYPE to void.
1193 * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
1195 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
1197 * cfgcleanup.c (try_simplify_condjump): Update test to make
1198 sure we have a conditional branch around am unconditional branch.
1200 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
1202 * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
1204 2004-06-16 Dale Johannesen <dalej@apple.com>
1206 * loop.c (loop_givs_reduce): Avoid miscompilation of
1207 loops entered at bottom.
1209 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
1211 * cfglayout.c (fixup_reorder_chain): Handle case where the
1212 destination of E_FALL is EXIT_BLOCK_PTR.
1214 2004-06-16 Vladimir Makarov <vmakarov@redhat.com>
1217 * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
1218 after shifts before asm.
1220 2004-06-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1222 PR tree-optimization/15993
1223 * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
1224 destination is unchanged.
1226 2004-06-16 Andreas Jaeger <aj@suse.de>
1228 * doc/install.texi (Configuration): Update description for
1229 --enable-version-specific-runtime-libs.
1231 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
1233 * doc/install.texi: boehm-gc now uses automake 1.8.5.
1235 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
1237 * toplev.h (rest_of_compilation): Adjust prototype.
1239 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
1241 * coverage.c: Remove argument to rest_of_compilation.
1242 * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
1243 * passes.c (rest_of_compilation): Remove argument.
1244 (pass_rest_of_compilation): New.
1245 (rest_of_handle_final, rest_of_handle_delay_slots,
1246 rest_of_handle_stack_regs, rest_of_handle_variable_tracking
1247 rest_of_handle_machine_reorg, rest_of_handle_regrename
1248 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
1249 rest_of_handle_regmove, rest_of_handle_tracer
1250 rest_of_handle_if_conversion, rest_of_handle_if_after_combine
1251 rest_of_handle_web, rest_of_handle_branch_prob
1252 rest_of_handle_value_profile_transformations, rest_of_handle_cfg
1253 rest_of_handle_addressof, rest_of_handle_jump_bypass
1254 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
1255 Check that the two arguments are actually superfluous.
1256 * tree-optimize.c (register_dump_files): Add properties argument.
1257 Track validity of passes. Only initialize dump files for
1258 tree-based passes. Store the full set of provided passes in
1260 (init_tree_optimization_passes): Register pass_expand and
1261 pass_rest_of_compilation.
1262 (execute_one_pass): Do not track the presence of required properties
1263 here. Set in_gimple_form. Do not update current_properties.
1264 (current_properties): Remove.
1265 (set_save_expr_context): Remove.
1266 (tree_rest_of_compilation): Do not set in_gimple_form. Do not
1267 expand to RTL here, and do not call rest_of_compilation. Push
1268 GGC context even before gimplification.
1269 * tree-pass.h (PROP_rtl, PROP_trees): New flags.
1270 (pass_expand, pass_rest_of_compilation): Declare.
1272 2004-06-15 Jeff Law <law@redhat.com>
1274 * fold-const.c (swap_tree_comparison): No longer static.
1275 (tree_swap_operands_p): Similarly. Return true if both operands
1276 are SSA_NAMEs and the first operand has a higher version number than
1278 * tree.h (swap_tree_comparison): Prototype.
1279 (tree_swap_operands_p): Prototype.
1280 * tree-ssa-operands.c (get_expr_operands): For commutative
1281 operators and relational comparisons, canonicalize the
1282 order of the operands.
1284 2004-06-15 Richard Henderson <rth@redhat.com>
1286 * c-common.c (lang_gimplify_stmt): Remove next_p argument.
1287 (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
1288 c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
1289 c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
1290 (finish_fname_decls, fname_decl): Use statement_lists.
1291 (c_expand_expr_stmt): Don't set last_expr_type.
1292 (c_type_hash): Fix indentation.
1293 (c_safe_from_p): Don't follow TREE_CHAIN.
1294 (c_tree_chain_matters_p): Remove.
1295 * c-common.def (SCOPE_STMT): Remove.
1296 (CLEANUP_STMT): Redefine to contain its own body.
1297 * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
1298 x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
1299 Add x_cur_stmt_list.
1300 (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
1301 (cur_stmt_list): New.
1302 (STATEMENT_LIST_STMT_EXPR): New.
1303 (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
1304 SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
1305 (CLEANUP_BODY): New.
1306 (CLEANUP_DECL): Move to operand 2.
1307 (c_common_stmt_codes): Remove SCOPE_STMT.
1308 (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
1309 * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
1310 (c_push_function_context, c_pop_function_context): Don't save it.
1311 (finish_decl): Set TREE_USED on the decl for a cleanup.
1313 (store_parm_decls): Use statement lists.
1314 (finish_function): Remove compstmt rule workaround. Use statement
1315 lists. Call finish_fname_decls after finalizing the body.
1316 (c_begin_compound_stmt): Move to c-typeck.c.
1317 * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
1318 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
1319 (c_genericize): Invoke them.
1320 (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT.
1321 (c_build_bind_expr): Export.
1322 (gimplify_block, gimplify_cleanup): Remove.
1323 (gimplify_condition): Use gimplify_stmt.
1324 (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
1325 (gimplify_if_stmt): Remove recursion hack.
1326 (c_gimplify_expr): Remove STMT_EXPR handling.
1327 (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
1328 (is_last_stmt_of_scope): Remove.
1329 * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
1330 * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
1331 c_end_compound_stmt.
1332 * c-objc-common.c (build_cdtor): Likewise.
1333 * c-parse.in (primary): Use c_finish_stmt_expr.
1334 (push_scope, pop_scope): Remove.
1335 (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
1336 (c99_block_end, compstmt): Use c_end_compound_stmt.
1337 (c99_block_lineno_labeled_stmt): Likewise.
1338 (compstmt_primary_start): Use c_begin_stmt_expr.
1339 (simple_if, select_or_iter_stmt): Update calls to stmt builders.
1340 (do_stmt_start): Fill in body directly.
1341 (lineno_stmt): Avoid setting lineno on constants.
1342 * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
1344 * c-semantics.c (begin_stmt_tree): Remove.
1345 (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
1346 (add_stmt): Use statement lists.
1347 (add_scope_stmt, finish_stmt_tree): Remove.
1348 (push_cleanup): New.
1349 * c-tree.h: Move some decls from c-common.h.
1350 * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
1351 (do_case, c_finish_case): Likewise.
1352 (c_finish_then): Take body for then as argument.
1353 (c_finish_else): Similarly.
1354 (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
1355 c_finish_for_stmt_incr, c_finish_for_stmt): New.
1356 (c_begin_stmt_expr, c_finish_stmt_expr): New.
1357 (c_begin_compound_stmt): Do scope management.
1358 (c_end_compound_stmt): New.
1359 * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
1360 * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
1361 Look through exception handling constructs.
1362 (gimplify_bind_expr): Accept temporary argument.
1363 (gimplify_target_expr): Special case BIND_EXPR bodies.
1364 (gimplify_expr): Handle fallback == fb_none like a statement.
1365 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
1366 * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
1367 * langhooks.h (tree_chain_matters_p): Remove.
1368 * stub-objc.c (objc_clear_super_receiver): New.
1369 * tree-gimple.h (voidify_wrapper_expr): Update decl.
1370 (append_to_statement_list, append_to_statement_list_force): Move
1372 * tree-inline.c (expand_call_inline): Update call.
1373 (clone_body): Use statement lists.
1374 (walk_tree): Don't check tree_chain_matters_p.
1375 (copy_tree_r): Likewise.
1376 * tree-iterator.c (alloc_stmt_list): Clear lang bits.
1377 (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
1378 * tree-iterator.h (append_to_statement_list,
1379 append_to_statement_list_force): Moved from tree-gimple.h.
1380 * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
1381 * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
1382 (objc_enter_block): Likewise.
1383 (objc_exit_block): Use c_end_compound_stmt.
1384 (objc_build_try_enter_fragment): Add #error and comment for
1385 rewriting for OBJCPLUS.
1386 (objc_build_extract_fragment, objc_build_try_epilogue,
1387 objc_build_catch_stmt, objc_build_finally_prologue,
1388 objc_build_finally_epilogue): Update for C statement builders.
1389 * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
1392 2004-06-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1394 * df.c (df_reg_clobber_gen): Removed.
1395 (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
1396 Make more effective for hard regs.
1397 * ra-build.c (livethrough_conflicts_bb): Check contains_call.
1399 2004-06-15 Alexandre Oliva <aoliva@redhat.com>
1401 * c-pragma.h (c_lex_string_translate): Change type to int.
1402 * c-parse.in: Change all assignments of c_lex_string_translate
1403 to true and false to 1 and 0.
1404 * c-lex.c (c_lex_string_translate): Likewise.
1405 (lex_string): Convert string without translation in the -1
1408 2004-06-15 Mark G. Adams <mark.g.adams@sympatico.ca>
1410 * convert.h: Add include guards
1412 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
1414 * tree-flow-inline.h: Document all functions.
1416 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
1418 * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
1419 * tree-dfa.c (create_stmt_ann): Ditto.
1420 * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
1421 * tree-inline.c (estimate_num_insns_1): Ditto.
1422 * tree.c (tree_size): Ditto.
1423 (make_node_stat): Ditto.
1424 (tree_node_structure): Ditto.
1425 (ephi_node_elt_check_failed): Remove.
1426 (is_essa_node): Ditto.
1427 * tree.def (EPHI_NODE): Ditto.
1428 (EEXIT_NODE): Ditto.
1430 (EKILL_NODE): Ditto.
1431 * tree.h (EREF_NODE_CHECK): Remove.
1432 (EPHI_NODE_ELT_CHECK): Ditto.
1433 (struct tree_eref_common): Ditto.
1434 (struct tree_euse_node): Ditto.
1435 (struct ephi_arg_d): Ditto.
1436 (struct tree_ephi_node): Ditto.
1437 (ephi_node_elt_check_failed): Remove prototype.
1438 (is_essa_node): Ditto.
1439 (enum tree_node_structure_enum): Remove TS_E*_NODE.
1440 (union tree_node): Remove E*_NODE uses.
1442 2004-06-15 Jerry Quinn <jlquinn@optonline.net>
1444 * alias.c (record_set, record_base_value, canon_rtx, get_addr,
1445 nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
1446 * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
1448 * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
1449 expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
1450 expand_builtin_strcmp, expand_builtin_strncmp,
1451 expand_builtin_frame_address): Likewise.
1452 * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
1453 insert_one_insn): Likewise.
1454 * calls.c (prepare_call_address, precompute_register_parameters,
1455 precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
1456 * cfganal.c (flow_active_insn_p): Likewise.
1457 * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
1458 combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
1459 subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
1460 make_extraction, recog_for_combine, gen_lowpart_for_combine,
1461 simplify_comparison, record_dead_and_set_regs_1,
1462 record_dead_and_set_regs, record_promoted_value,
1463 check_promoted_subreg, get_last_value_validate, get_last_value,
1464 reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
1465 unmentioned_reg_p_1): Likewise.
1466 * conflict.c (mark_reg): Likewise.
1467 * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
1468 mention_regs, insert_regs, lookup, lookup_for_remove, insert,
1469 merge_equiv_classes, flush_hash_table, invalidate,
1470 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
1471 invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
1472 cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
1473 record_jump_cond, cse_insn, addr_affects_sp_p,
1474 invalidate_from_clobbers, cse_process_notes, cse_around_loop,
1475 cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
1476 cse_cc_succs, cse_condition_code_reg): Likewise.
1477 * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
1478 cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
1479 cselib_record_set, cselib_record_sets): Likewise.
1480 * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
1481 dbxout_block): Likewise.
1482 * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
1483 * dojump.c (do_jump): Likewise.
1484 * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
1485 is_based_loc, rtl_for_decl_location): Likewise.
1486 * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
1487 set_decl_incoming_rtl, mark_user_reg): Likewise.
1488 * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
1489 copy_to_suggested_reg, allocate_dynamic_stack_space,
1490 probe_stack_range, hard_function_value): Likewise.
1491 * expmed.c (store_bit_field, store_fixed_bit_field,
1492 store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
1493 extract_split_bit_field, expand_divmod, emit_store_flag_force):
1495 * expr.c (convert_move, convert_modes,
1496 block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1497 use_group_regs, emit_move_insn, emit_move_insn_1,
1498 compress_float_constant, push_block, emit_single_push_insn,
1499 emit_push_insn, get_subtarget, expand_assignment, store_expr,
1500 store_constructor, store_field, force_operand, safe_from_p,
1501 expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1503 * final.c (profile_function, final_scan_insn, alter_subreg,
1504 get_mem_expr_from_op, output_asm_operand_names, output_operand,
1505 only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1506 * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1507 find_regno_partial, propagate_one_insn, init_propagate_block_info,
1508 insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1509 attempt_auto_inc, find_auto_inc, mark_used_regs,
1510 count_or_remove_death_notes_bb): Likewise.
1511 * function.c (find_temp_slot_from_address, update_temp_slot_address,
1512 preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1513 fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1514 put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1515 purge_single_hard_subreg_set, instantiate_decl,
1516 instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1517 promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1518 setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1519 expand_function_start, diddle_return_value, clobber_return_register,
1520 expand_function_end, keep_stack_depressed, handle_epilogue_set,
1521 update_epilogue_consts): Likewise.
1522 * genemit.c (gen_exp, gen_insn): Likewise.
1523 * genrecog.c (make_insn_sequence): Likewise.
1524 * global.c (global_conflicts, expand_preferences, mark_reg_store,
1525 mark_reg_conflicts, set_preference, reg_becomes_live,
1526 build_insn_chain, mark_reg_change): Likewise.
1527 * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1529 * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1531 * integrate.c (copy_rtx_and_substitute, try_constants,
1532 subst_constants, mark_stores, allocate_initial_values): Likewise.
1533 * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1534 delete_computation, rtx_renumbered_equal_p, true_regnum,
1535 reg_or_subregno): Likewise.
1536 * lcm.c (reg_dies, reg_becomes_live): Likewise.
1537 * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1538 update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1539 wipe_dead_reg, no_conflict_p): Likewise.
1540 * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1541 iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
1542 simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
1543 * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
1544 move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
1545 find_single_use_in_loop, count_one_set, loop_bivs_init_find,
1546 loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
1547 valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
1548 loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
1549 maybe_eliminate_biv_1, record_initial, update_reg_last_use,
1550 canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
1551 try_swap_copy_prop): Likewise.
1552 * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
1553 expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
1555 * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
1556 reload_cse_simplify_operands, reload_combine,
1557 reload_combine_note_store, reload_combine_note_use,
1558 reload_cse_move2add, move2add_note_store): Likewise.
1559 * print-rtl.c (print_rtx): Likewise.
1560 * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
1561 contains_pseudo, handle_asm_insn): Likewise.
1562 * ra-debug.c (ra_print_rtx_object, dump_constraints,
1563 dump_static_insn_cost): Likewise.
1564 * ra-rewrite.c (slots_overlap_p, emit_colors,
1565 remove_suspicious_death_notes): Likewise.
1566 * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1567 register_operand, scratch_operand, nonmemory_operand,
1568 constrain_operands): Likewise.
1569 * reg-stack (check_asm_stack_operands, remove_regno_note,
1570 emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1571 subst_asm_stack_regs): Likewise.
1572 * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1573 record_address_regs, reg_scan_mark_refs): Likewise.
1574 * regmove.c (discover_flags_reg, replacement_quality,
1575 copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1576 fixup_match_1): Likewise.
1577 * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1578 kill_set_value, copyprop_hardreg_forward_1): Likewise.
1579 * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1580 reload_inner_reg_of_subreg, can_reload_into, push_reload,
1581 combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1582 operands_match_p, decompose, find_reloads, find_reloads_toplev,
1583 find_reloads_address, subst_indexed_address, find_reloads_address_1,
1584 find_reloads_subreg_address, find_replacement,
1585 refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1586 refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1587 * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1588 find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1589 elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1590 forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1591 emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1592 do_output_reload, emit_reload_insns, gen_reload,
1593 delete_address_reloads_1, inc_for_reload): Likewise.
1594 * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1595 update_reg_unused_notes, fill_slots_from_thread): Likewise.
1596 * resource.c (update_live_status, mark_referenced_resources,
1597 mark_set_resources, mark_target_live_regs): Likewise.
1598 * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1599 global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1600 reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1601 note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1602 find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1603 parms_set, find_first_parameter_load, keep_with_call_p,
1604 hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1605 num_sign_bit_copies1): Likewise.
1606 * rtlhooks.c (gen_lowpart_general): Likewise.
1607 * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1608 sched_analyze): Likewise.
1609 * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1611 * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1612 * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1613 simplify_binary_operation, simplify_const_relational_operation,
1614 simplify_subreg): Likewise.
1615 * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1616 expand_end_stmt_expr, expand_return, expand_decl,
1617 expand_anon_union_decl): Likewise.
1618 * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1619 find_splittable_regs, find_splittable_givs, find_common_reg_term,
1620 loop_iterations): Likewise.
1621 * var-tracking.c (variable_union, variable_part_different_p,
1622 variable_different_p, count_uses, add_uses, add_stores,
1623 compute_bb_dataflow, set_variable_part, delete_variable_part,
1624 emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1626 * varasm.c (assemble_variable): Likewise.
1628 2004-06-15 Chris Demetriou <cgd@broadcom.com>
1630 * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1632 * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1633 #undef and #if 0'd definition.
1635 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1637 * combine.c (distribute_notes): Comment typo fix.
1639 2004-06-15 Roger Sayle <roger@eyesopen.com>
1641 * expmed.c (synth_mult): Mask bits of the multiplier to the
1642 machine mode of the multiplication. Don't consider shifts
1643 by more than (or equal to) the width of the operation's mode.
1645 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1647 * doc/install.texi: Yet another update for autoconf
1648 and automake versions.
1650 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1652 * function.h (struct function): Remove cannot_inline field.
1653 (current_function_cannot_inline): Remove.
1654 * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1655 Simplify conditionals to ignore warn_return_type.
1656 * tree-optimize.c (tree_rest_of_compilation): Do not reset
1658 * objc/objc-act.c (build_module_descriptor, finish_method_def):
1659 Do not set current_function_cannot_inline.
1661 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1663 * cfglayout.c (fixup_reorder_chain): Handle case where the
1664 destination of E_TAKEN is EXIT_BLOCK_PTR.
1666 2004-06-15 Diego Novillo <dnovillo@redhat.com>
1668 * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1670 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1672 * fold-const.c (operand_equal_p): Update comment.
1674 2004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1676 * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1677 (INCOMING_RETURN_ADDR_RTX): Define.
1678 * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1679 * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1680 __builtin_return_address(0).
1681 (m32r_return_addr): Added for __builtin_return_address(0).
1682 (m32r_reload_lr): Ditto.
1684 * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1686 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1688 * doc/install.texi (Prerequisites): Update libbanshee,
1689 fastjar, libcpp, libjava/libltdl entries to
1692 2004-06-15 Eric Botcazou <ebotcazou@act-europe.fr>
1693 Olivier Hainque <hainque@act-europe.fr>
1695 * function.c (fixup_var_refs): Also adjust the start of sequence
1696 after fixing up the insns.
1698 2004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1700 * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1702 2004-06-14 Benjamin Kosnik <bkoz@redhat.com>
1704 * doc/install.texi (Prerequisites): Update libstdc++ entry to
1707 2004-06-14 Eric Christopher <echristo@redhat.com>
1709 * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1710 to -mtpf-trace (-mno-tpf-trace).
1711 * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1714 2004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1716 * real.c: Fix bit count in head comment.
1718 2004-06-14 Jeff Law <law@redhat.com>
1720 * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1721 PHIs where the destination or an argument is marked with
1722 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1724 2004-06-14 Jakub Jelinek <jakub@redhat.com>
1727 * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1728 Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1730 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1732 * opts.sh (var_args): Fix regexp.
1734 2004-06-14 Jakub Jelinek <jakub@redhat.com>
1737 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1739 2004-06-14 Paul Brook <paul@codesourcery.com>
1741 * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1743 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1745 * Makefile.in (FLAGS_H): New.
1746 (flags.h): Replace by FLAGS_H.
1747 * c.opt: Document Var, VarExists, Init and Report attributes.
1748 * common.opt: Fill the values of the attributes.
1749 * diagnostic.c (flag_fatal_errors): Do not define.
1750 * except.c (flag_non_call_exceptions): Do not define.
1751 * flags.h: Include options.h. Remove declarations conflicting with
1752 the automatically defined ones.
1753 * opts.c: Remove automatically defined variables.
1754 (handle_option): Perform default initialization.
1755 (common_handle_option): Do not handle options covered by the
1756 default initialization.
1757 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1760 * opts.sh: Generate variable declarations, handle CL_REPORT.
1761 * toplev.c: Remove automatically defined variables.
1762 (f_options): Removed.
1763 (print_switch_values): Use cl_options instead of f_options.
1764 * toplev.h (version_flag): Declaration removed.
1766 2004-06-14 Ian Lance Taylor <ian@wasabisystems.com>
1768 * config/sparc/sparc.h: Correct comment about availability of
1769 little endian option.
1771 * config.gcc: Remove sparc64-*-aout*.
1772 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1773 * config/sparc/sp64-aout.h: Remove.
1774 * config/sparc/aout.h: Remove.
1776 2004-06-14 Ulrich Weigand <uweigand@de.ibm.com>
1778 * config/s390/s390.c: Include "tree-gimple.h".
1779 (s390_gimplify_va_arg): New function.
1780 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1781 (s390_va_arg): Remove.
1782 * config/s390/s390-protos.h (s390_va_arg): Remove.
1783 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1785 2004-06-14 J"orn Rennecke <joern.rennecke@superh.com>
1787 * basic-block.h (could_fall_through): Declare.
1788 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1789 Fail if the source already has a fallthrough edge to the exit
1791 (could_fall_through): New function.
1792 * cfgbuild.c (make_edges): Check if we already have a fallthrough
1793 edge to the exit block pointer.
1794 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1795 not called before reload has completed.
1796 Handle special case of first block having a fall-through exit edge.
1797 (cfg_layout_finalize): Don't call it before reload or if we have
1799 (fixup_reorder_chain): A fall through to the exit block does not
1800 require the block to come last. Add sanity checks.
1801 * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1802 edges to the exit block.
1803 * function.c (cfglayout.h): #include.
1804 (thread_prologue_and_epilogue_insns): If we have neither return nor
1805 epilogue, but a fall through to the exit block from mid-function,
1806 force a non-fall-through exit.
1807 * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1809 2004-06-14 Alan Modra <amodra@bigpond.net.au>
1811 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1812 for power5 and rs64a. Correct condition for default. Correct power3,
1813 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
1815 2004-06-13 Steven Bosscher <stevenb@suse.de>
1817 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1818 Revert previous change, don't use CALL_P.
1820 2004-06-13 Jason Merrill <jason@redhat.com>
1822 * tree.h: Move std_gimplify_va_arg_expr protoype here.
1823 * tree-gimple.h: From here.
1825 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
1827 Fix PR tree-optimization/15979
1828 Fix PR tree-optimization/15981
1829 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1830 try to insert values undefined along some path.
1832 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
1834 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1835 are available everywhere too.
1837 2004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
1839 * fold-const.c (fold_checksum_tree <case 't'>): Only
1840 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1841 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1842 EXPR is an INTEGERAL_TYPE or a scalar float type.
1844 2004-06-13 Diego Novillo <dnovillo@redhat.com>
1846 * tree-sra.c (tree_sra): Update documentation.
1848 2004-06-13 Joseph S. Myers <jsm@polyomino.org.uk>
1850 * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1851 function_types_compatible_p, type_lists_compatible_p): Remove
1853 * c-tree.h (comptypes): Likewise.
1854 (COMPARE_STRICT): Remove.
1855 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1858 2004-06-13 Eric Christopher <echristo@redhat.com>
1860 * c-decl.c (diagnose_mismatched_decls): Improve error message.
1862 * c-typeck.c (comptypes): Add location in standard we're checking.
1864 2004-06-13 Kaz Kojima <kkojima@gcc.gnu.org>
1866 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1869 2004-06-12 Roger Sayle <roger@eyesopen.com>
1871 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1872 index by machine mode.
1873 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1874 tables inside the loop over machine modes.
1875 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1876 expand_divmod): Index shift*_cost by the appropriate machine mode.
1878 2004-06-12 Eric Christopher <echristo@redhat.com>
1880 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1881 * config/s390/s390.md: Ditto.
1882 * config/s390/s390.c: Ditto.
1883 (s390_frame_info): Conditionalize frame and setup info on
1884 TARGET_TPF_PROFILING.
1885 (s390_arg_frame_offset): Ditto.
1887 2004-06-12 Roger Sayle <roger@eyesopen.com>
1889 * fold-const.c (omit_two_operands): New function.
1890 * tree.h (omit_two_operands): Prototype here.
1891 * builtins.c (fold_builtin_unordered_cmp): New function to lower
1892 C99 unordered comparison builtins to the appropriate tree nodes.
1893 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1894 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1895 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower
1896 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1897 (simplify_builtin_memcmp, simplify_builtin_strncmp,
1898 simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1899 omit_two_operands function to build the required COMPOUND_EXPRs.
1901 2004-06-12 Steven Bosscher <stevenb@suse.de>,
1902 Andreas Jaeger <aj@suse.de>
1904 * gcse.c (record_set_info): Use predicates like REG_P.
1905 (mems_conflict_for_gcse_p): Likewise.
1906 (load_killed_in_block_p): Likewise.
1907 (hash_expr_1): Likewise.
1908 (insert_set_in_table): Likewise.
1909 (gcse_constant_p): Likewise.
1910 (hash_scan_set): Likewise.
1911 (hash_scan_insn): Likewise.
1912 (canon_list_insert): Likewise.
1913 (record_last_mem_set_info): Likewise.
1914 (record_last_set_info): Likewise.
1915 (compute_hash_table_work): Likewise.
1916 (mark_set): Likewise.
1917 (mark_clobber): Likewise.
1918 (mark_oprs_set): Likewise.
1919 (compute_transp): Likewise.
1920 (find_avail_set): Likewise.
1921 (cprop_insn): Likewise.
1922 (do_local_cprop): Likewise.
1924 (find_implicit_sets): Likewise.
1925 (find_bypass_set): Likewise.
1926 (bypass_conditional_jumps): Likewise.
1927 (insert_insn_end_bb): Likewise.
1928 (pre_insert_copy_insn): Likewise.
1929 (compute_transpout): Likewise.
1930 (next_ls_expr): Likewise.
1931 (invalidate_any_buried_refs): Likewise.
1932 (compute_ld_motion_mems): Likewise.
1933 (reg_set_info): Likewise.
1934 (reg_clear_last_set): Likewise.
1935 (find_moveable_store): Likewise.
1936 (compute_store_table): Likewise.
1937 (find_loads): Likewise.
1938 (store_killed_in_insn): Likewise.
1939 (insert_insn_start_bb): Likewise.
1940 (reg_set_between_after_reload_p): Likewise.
1941 (reg_used_between_after_reload_p): Likewise.
1942 (is_jump_table_basic_block): Likewise.
1943 (gcse_after_reload): Likewise.
1944 (hash_scan_set_after_reload): Likewise.
1945 (compute_hash_table_after_reload): Likewise.
1947 2004-06-12 Steven Bosscher <stevenb@suse.de>
1949 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1950 (INSN_P): Don't look at the rtx code class, just explicitly
1951 check for one of the tree RTX_INSN codes.
1953 2004-06-11 Zack Weinberg <zack@codesourcery.com>
1955 * c-typeck.c (default_function_array_conversion): Use
1956 build_pointer_type not TYPE_POINTER_TO.
1958 2004-06-11 Zack Weinberg <zack@codesourcery.com>
1960 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1961 * configure, config.in: Regenerate.
1962 * system.h: Unconditionally define bool as unsigned char,
1963 BOOL_BITFIELD as unsigned int.
1964 * domwalk.h: Use BOOL_BITFIELD.
1966 2004-06-12 Andreas Jaeger <aj@suse.de>
1968 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1969 * libgcc-darwin.ver: Likewise.
1971 2004-06-12 Peter Jakubek <peter@laseranimation.com>
1973 * reload.c (find_reloads): Force reload for pseudo registers on big
1976 2004-06-11 Steven Bosscher <stevenb@suse.de>
1978 * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1979 Don't try to mark anything control dependent on the entry or
1982 2004-06-11 Daniel Berlin <dberlin@dberlin.org>
1986 * tree.h (SSA_NAME_VALUE): New macro.
1987 (struct tree_ssa_name): Add value_handle member.
1988 * tree-ssa-pre.c: Replaced.
1989 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1990 (struct cst_ann_d): New.
1991 (struct expr_ann_d): New.
1992 (union tree_ann_d): Add cst_ann, expr_ann.
1993 * tree-dfa.c (create_cst_ann): New function.
1994 (create_expr_ann): Ditto.
1995 * tree-flow-inline.h (cst_ann): New function.
1997 (get_cst_ann): Ditto.
1998 (get_expr_ann): Ditto..
2000 2004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2002 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
2003 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
2004 _U_Qfcmp library function.
2005 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
2006 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
2008 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
2009 unspec used for loading address from DLT.
2010 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
2011 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
2012 Don't use short code sequence when loading the address of a nonlocal
2014 (nonlocal_goto): New expander.
2015 (indirect_goto): New jump pattern for nonlocal gotos.
2016 (short_jump): Remove extra whitespace.
2017 (builtin_longjmp): Clobber memory and hard frame pointer. Restore
2018 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
2021 2004-06-11 Roger Sayle <roger@eyesopen.com>
2023 * expmed.c (synth_mult): Add an additional MODE argument for the
2024 machine mode of the multiplication. Update recursive calls. Use
2025 mode instead of word_mode for determining operation costs.
2026 (choose_mult_variant): Update calls to synth_mult with "mode".
2028 2004-06-11 Richard Henderson <rth@redhat.com>
2030 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
2031 and makes_aliased_stores.
2033 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
2035 * doc/install.text (--enable-shared): Fix typo.
2037 2004-06-11 Richard Henderson <rth@redhat.com>
2039 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
2040 argument. Use internal post for call to gimplify_expr. Tidy
2041 rounded type size computation.
2042 (alpha_gimplify_va_arg): Use get_formal_tmp_var and
2043 get_initialized_tmp_var.
2045 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
2047 * doc/install.texi (--enable-shared): Update libobjc's shared library
2048 status. Remove reference to libf2c.
2050 2004-06-11 Jason Merrill <jason@redhat.com>
2052 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2053 * config/i386/i386.c (ix86_va_arg): Remove.
2054 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2055 * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
2056 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2057 * config/alpha/alpha.c (alpha_va_arg): Remove.
2058 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2059 * config/sparc/sparc.c (sparc_va_arg): Remove.
2061 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
2062 assignment might throw.
2063 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
2066 2004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
2069 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
2071 2004-06-11 Joseph S. Myers <jsm@polyomino.org.uk>
2073 * doc/install.texi (Prerequisites): Update documentation of
2074 required versions of autoconf and automake. Remove mention of
2077 2004-06-11 Jason Merrill <jason@redhat.com>
2079 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
2080 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2082 2004-06-11 Jerry Quinn <jlquinn@optonline.net>
2084 * typeclass.h: Add GPL plus exception license. Add include
2087 2004-06-10 Jason Merrill <jason@redhat.com>
2089 * gimplify.c (gimplify_modify_expr): Don't force a temporary
2090 of an aggregate_value_p type.
2092 2004-06-10 Jeff Law <law@redhat.com>
2094 * fold-const.c (fold_inf_compare): Avoid creating non-gimple
2095 code when we are in gimple form.
2097 2004-06-10 Diego Novillo <dnovillo@redhat.com>
2099 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
2100 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
2101 (highest_ssa_version): Remove.
2102 * tree-outof-ssa.c (new_temp_expr_table): Replace
2103 highest_ssa_version with num_ssa_names.
2104 (dump_replaceable_exprs): Likewise.
2105 (rewrite_vars_out_of_ssa): Likewise.
2106 * tree-ssa-ccp.c (initialize): Likewise
2107 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
2108 * tree-ssa-dce.c (tree_dce_init): Likewise.
2109 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2110 * tree-ssa-live.c (create_ssa_var_map): Likewise.
2111 (dump_var_map): Likewise.
2112 * tree-ssa.c (verify_ssa): Likewise.
2113 (kill_redundant_phi_nodes): Likewise.
2114 Do not build a local array of SSA_NAMEs. Use the ssa_names table.
2115 * tree-ssanames.c: Include tree-flow.h
2116 (ssa_names): New varray.
2117 (init_ssa_names): Initialize ssa_names.
2118 Reserve the first slot of the ssa_names table.
2119 (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
2120 Assign version numbers using num_ssa_names.
2122 2004-06-10 Joseph S. Myers <jsm@polyomino.org.uk>
2124 * doc/sourcebuild.texi (Front End): Add details of more
2125 installation documentation required.
2127 2004-06-10 Brian Booth <bbooth@redhat.com>
2129 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
2130 of V_MAY_DEF and V_MUST_DEF.
2131 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
2132 num_vdefs to num_v_may_defs.
2133 (compute_immediate_uses_for_stmt): Rename occurences of vdef
2135 (redirect_immediate_uses): Ditto.
2136 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
2137 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
2138 Also add code to sum up the number of v_must_defs.
2139 (vdefs_disappeared_p): Replace with...
2140 (v_may_defs_disappeared_p): This.
2141 (v_must_defs_disappeared_p): New function.
2142 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
2143 Also add code to mark new variables found in V_MUST_DEFs for
2145 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
2146 vdef_ops to v_may_def_ops.
2147 (get_vdef_ops): Replace with...
2148 (get_v_may_def_ops): This.
2149 * tree-flow-inline.h (get_vdef_ops): Replace with...
2150 (get_v_may_def_ops): This.
2151 (get_v_must_def_ops): New function.
2152 (get_vdef_result_ptr): Replace with...
2153 (get_v_may_def_result_ptr): This.
2154 (get_vdef_op_ptr): Ditto with...
2155 (get_v_may_def_op_ptr); This.
2156 (get_v_must_def_op_ptr): New function.
2157 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
2158 to v_may_def. Also add code to mark statements with
2159 V_MUST_DEFs as definition sites.
2160 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
2161 add code to register new V_MUST_DEFs made by the statement.
2162 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
2163 (check_replaceable): Rename occurences of vdef to v_may_def. Also
2164 add check for V_MUST_DEFs.
2165 (find_replaceable_in_bb): Ditto.
2166 * tree-pretty-print.c (dump_vops): Rename occurences of vdef
2167 to v_may_def. Also add code to dump V_MUST_DEFs.
2168 * tree-sra.c (mark_all_vdefs): Replace with...
2169 (mark_all_v_may_defs): This.
2170 (mark_all_v_must_defs): New function.
2171 (create_scalar_copies): Replace call to mark_all_vdefs with
2172 calls to mark_all_v_may_defs and mark_all_v_must_defs.
2173 (scalarize_structures): Rename occurences of vdef to v_may_def.
2174 Also add a check for V_MUST_DEFs.
2175 (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
2176 * tree-ssa-alias.c (global_var): Update comment.
2177 (compute_may_aliases): Ditto.
2178 (compute_points_to_and_addr_escape): Rename occurences of vdef
2179 to v_may_def. Also add code to mark variables in V_MUST_DEF
2180 operands as being written to.
2181 (group_aliases): Update comment.
2182 (maybe_create_global_var): Ditto.
2183 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
2184 Also add a check for V_MUST_DEFs on GIMPLE registers.
2185 (replace_immediate_uses): Rename occurences of vdef to v_may_def.
2186 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
2187 to v_may_def. Also add code to mark all V_MUST_DEF operands
2189 (initialize): Ditto.
2190 (set_rhs): Rename occurences of vdef to v_may_def. Also add
2191 code to update SSA_NAMEs in V_MUST_DEFs.
2192 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
2194 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
2195 occurences of vdef to v_may_def. Also add code to mark statements
2196 with V_MUST_DEFs as necessary.
2197 (propagate_necessity): Rename occurences of vdef to v_may_def.
2198 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
2199 occurences of vdef to v_may_def. Also add code to mark operands
2200 in V_MUST_DEFs for renaming.
2201 (eliminate_redundant_computations): Rename occurences of vdef
2203 (record_equivalences_from_stmt): Rename occurences of vdef
2204 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
2205 (optimize_stmt): Remove unnesessary variable vdefs. Update
2207 (register_definitions_for_stmt): Rename occurences of vdef
2208 to v_may_def. Also add code to register definitions made with
2210 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
2211 (fix_stmt_v_may_defs): This.
2212 (fix_phi_uses): Rename occurences of vdef to v_may_def.
2213 (dse_optimize_stmt): Ditto.
2214 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
2215 to v_may_def. Also add code to mark V_MUST_DEF operands as being
2216 used in virtual operators.
2217 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
2218 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
2220 * tree-ssa-operands.c (opf_kill_def): New flag for killing
2222 (build_vdefs): Renamed to...
2223 (build_v_may_defs): This.
2224 (build_v_must_defs): New variable.
2225 (voperands_d): Add v_must_def_ops and replace vdef_ops with
2227 (append_vdef): Replace with...
2228 (append_v_may_def): This.
2229 (append_v_must_def): New function.
2230 (NUM_FREE): Increment for V_MUST_DEF
2231 (optype_freelist): Increment its size for V_MUST_DEF
2232 (allocate_vdef_optype): Replace with...
2233 (allocate_v_may_def_optype): This.
2234 (allocate_v_must_def_optype): New function.
2235 (free_vdefs): Replace with...
2236 (free_v_may_defs): This.
2237 (free_v_must_defs): New function.
2238 (remove_vdefs): Replace with...
2239 (remove_v_may_defs): This.
2240 (remove_v_must_defs): New function.
2241 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
2242 add code to initialize build_v_must_defs.
2243 (finalize_ssa_vdefs): Replace with...
2244 (finalize_ssa_v_may_defs): This.
2245 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
2246 (finalize_ssa_v_must_defs): New function.
2247 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
2248 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
2249 (verify_start_operands): Rename occurences of vdef to v_may_def.
2250 Also add check for build_v_must_defs.
2251 (get_stmt_operands): Rename occurences of vdef to v_may_def.
2252 Also add code to handle V_MUST_DEFs and to use opf_kill_def for
2253 killing definitions.
2254 (get_expr_operands): Update comment and use opf_kill_def for
2255 killing definitions.
2256 (add_stmt_operand): Replace code that appends VDEFs with code
2257 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
2259 (add_call_clobber_ops): Update comments.
2260 * tree-ssa-operands.h (vdef_optype_d): Replace with...
2261 (v_may_def_optype_d): This.
2262 (v_must_def_optype_d): New structure.
2263 (VDEF_OPS): Replace with...
2264 (V_MAY_DEF_OPS): This.
2265 (STMT_VDEF_OPS): Same with...
2266 (STMT_V_MAY_DEF_OPS): This.
2268 (NUM_V_MAY_DEFS): This.
2269 (VDEF_RESULT_PTR): As well as...
2270 (V_MAY_DEF_RESULT_PTR): This.
2271 (VDEF_RESULT): Same goes for...
2272 (V_MAY_DEF_RESULT): This.
2273 (VDEF_OP_PTR): And...
2274 (V_MAY_DEF_OP_PTR): This.
2276 (V_MAY_DEF_OP): This.
2277 (V_MUST_DEF_OPS): New macro.
2278 (STMT_V_MUST_DEF_OPS): Ditto.
2279 (NUM_V_MUST_DEFS): Ditto.
2280 (V_MUST_DEF_OP_PTR): Ditto.
2281 (V_MUST_DEF_OP): Ditto.
2282 (remove_vdefs): Replace signature with...
2283 (remove_v_may_defs): This.
2284 (remove_v_must_defs): New function signature.
2285 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
2286 with calls to remove_v_may_defs and remove_v_must_defs.
2287 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
2288 Also add code that marks left occurences of operands in V_MUST_DEFs.
2289 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
2290 to v_may_def. Also add check for V_MUST_DEFs.
2291 (eliminate_tail_call):Rename occurences of vdef to v_may_def.
2293 2004-06-10 Vladimir Makarov <vmakarov@redhat.com>
2296 * haifa-sched.c (schedule_block): Finish cycle after issuing asm
2299 2004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2302 * doc/install.texi: Remove superfluous linebreak.
2304 2004-06-10 Roger Sayle <roger@eyesopen.com>
2306 * builtins.c (expand_builtin): Fall back to library function call for
2307 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
2308 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
2309 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
2310 IMAGPART_EXPR respectively.
2312 2004-06-10 J"orn Rennecke <joern.rennecke@superh.com>
2314 * sh.c (dump_table): New argument start. Changed caller.
2315 (fixup_mova): New function.
2316 (find_barrier): Use it.
2317 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2.
2318 If the label a mova refers to is above the mova itself, change
2319 the mova into a load.
2320 * sh.md (*casesi_worker): Rename to:
2322 (casesi_worker_2): New insn.
2324 2004-06-10 Jason Merrill <jason@redhat.com>
2326 * target.h (struct gcc_target): Change gimplify_va_arg_expr
2328 * tree-gimple.h: Adjust.
2329 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
2330 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
2332 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
2333 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
2334 Use COMPLEX_EXPR for complex numbers. Use fold_convert.
2335 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
2336 (gimplify_va_arg_expr): Return GS_ERROR in error case.
2337 Gimplify valist rather than calling stabilize_va_list.
2339 2004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2341 * Makefile.in (df.o): Remove fibheap dependency.
2342 * df.h: Do not include sbitmap.h.
2343 (struct ref): New field "data".
2344 (DF_REF_DATA): New accessor macro.
2345 (struct df): Field "dom" removed.
2346 (df_analyze_subcfg): New function.
2347 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
2348 (transfer_function): ... new type.
2349 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
2350 (iterative_dataflow): ... new function.
2351 (enum set_representation, struct dataflow): New.
2352 * df.c: Do not include fibheap.h.
2354 (df_reg_def_chain_clean, df_reg_use_chain_clean,
2355 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
2356 prune_to_subcfg, df_bb_modify): New functions.
2357 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
2358 df_refs_update, df_reg_table_realloc, df_ref_create,
2359 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
2360 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
2361 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
2363 (dataflow_set_a_op_b, dataflow_set_copy): New functions.
2364 (df_rd_transfer_function, df_ru_transfer_function,
2365 df_lr_transfer_function): Type of bitmaps changed to void *.
2366 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
2367 (hybrid_search): ... new function.
2368 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
2369 (iterative_dataflow): ... new function. Avoid use of fibheaps for
2370 a worklist. Do not process basic blocks unnecessarily.
2372 2004-06-10 Roger Sayle <roger@eyesopen.com>
2374 * fold-const.c (fold_abs_const): Make extern.
2375 * tree.h (fold_abs_const): Prototype here.
2376 * builtins.c (fold_builtin_fabs): New function to transform
2377 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
2378 (fold_builtin_abs): New function to transform abs, labs, llabs
2379 and imaxabs builtins into ABS_EXPR tree nodes.
2380 (expand_builtin): Fall back to a function call for abs, labs,
2381 llabs and imaxabs builtins that survive constant folding.
2382 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
2383 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
2385 2004-06-10 Jakub Jelinek <jakub@redhat.com>
2387 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
2388 leaf function without unwind info at RP 0.
2390 2004-06-10 Jakub Jelinek <jakub@redhat.com>
2393 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
2394 (fileptr_type_node): Define.
2395 * tree.c (build_common_tree_nodes_2): Initialize
2396 fileptr_type_node to ptr_type_node.
2397 * c-common.c (c_common_nodes_and_builtins): For C++, make
2398 fileptr_type_node a distinct type copy.
2399 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
2400 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
2401 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
2402 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
2403 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
2404 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
2405 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
2406 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
2407 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
2408 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
2409 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
2410 the above *FILEPTR* types instead of *PTR*.
2412 2004-06-09 Daniel Berlin <dberlin@dberlin.org>
2414 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
2417 2004-06-09 Roger Sayle <roger@eyesopen.com>
2419 * fold-const.c (fold_not_const): New function.
2420 (fold) <ABS_EXPR>: Don't bother testing wins.
2421 (fold) <BIT_NOT_EXPR>: Call fold_not_const.
2422 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
2424 2004-06-09 Richard Henderson <rth@redhat.com>
2427 * function.c (assign_parms): Always set_mem_align with the computed
2428 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT.
2430 2004-06-09 Richard Henderson <rth@redhat.com>
2433 * tree-tailcall.c (find_tail_calls): Don't check early for
2434 tail_recursion failure.
2436 2004-06-09 Diego Novillo <dnovillo@redhat.com>
2438 Move SSA_NAME annotations into tree_ssa_name.
2440 * tree-dfa.c (create_ssa_name_ann): Remove.
2441 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
2442 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
2443 (struct ssa_name_ann_d): Remove.
2444 (union tree_ann_d): Update.
2445 (ssa_name_ann_t): Remove.
2446 * tree-ssa-alias.c: (get_ptr_info): New local function.
2447 Replace references to ssa_name_ann_t with struct ptr_info_def.
2448 * tree-ssa-operands.c (get_expr_operands): Likewise.
2449 * tree.h (SSA_NAME_PTR_INFO): Define.
2450 (struct ptr_info_def): Declare.
2451 (struct tree_ssa_name): Add field 'ptr_info'.
2453 2004-06-09 Danny Smith <dannysmith@users.sourceforge.net>
2455 * config/i386/winnt.c (i386_pe_output_labelref): Correct
2458 2004-06-09 Steven Bosscher <stevenb@suse.de>
2460 * config/i386/k6.md: Rewrite using the DFA model.
2461 * config/i386/i386.c (ix86_adjust_cost): Don't increase the
2462 cost of load-operation insns for the K6.
2463 (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
2464 (ia32_multipass_dfa_lookahead): Likewise.
2466 2004-06-09 Richard Henderson <rth@redhat.com>
2468 * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
2469 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
2471 2004-06-09 Richard Henderson <rth@redhat.com>
2473 * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
2475 2004-06-09 Geoffrey Keating <geoffk@apple.com>
2477 * Makefile.in (CPPLIB_H): Put files in order of inclusion.
2478 (CPP_ID_DATA_H): New.
2479 (gtype-desc.o): Update dependencies.
2480 (GTFILES): Use CPP_ID_DATA_H.
2482 2004-06-09 Mark Mitchell <mark@codesourcery.com>
2486 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2487 * doc/extend.texi: Deprecate #pragma interface and #pragma
2490 2004-06-09 David S. Miller <davem@nuts.davemloft.net>
2492 * config/sparc/sparc.h (MOVE_RATIO): New definition.
2494 2004-06-09 Richard Henderson <rth@redhat.com>
2496 * basic-block.h (struct edge_def): Add goto_locus.
2497 * tree-cfg.c (make_goto_expr_edges): Set it.
2498 (disband_implicit_edges): Use it.
2499 * tree-pretty-print.c (dump_implicit_edges): Print it.
2501 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2503 * h8300.md (ldm_h8300s_4): Fix condition for expander.
2505 2004-06-08 Jason Merrill <jason@redhat.com>
2507 Gimplify VA_ARG_EXPR into simpler forms.
2508 * target.h: Add gimplify_va_arg_expr hook.
2509 * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2510 * fold-const.c (build_fold_addr_expr)
2511 (build_fold_addr_expr_with_type): Move from gimplify.c.
2512 * tree.h: Declare them.
2513 * gimplify.c (gimplify_and_add): New fn.
2514 (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2515 (gimplify_array_ref_to_plus, gimplify_modify_expr)
2516 (gimplify_expr): Use build_fold_*.
2517 (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2518 don't know how to gimplify it.
2519 * builtins.c (std_gimplify_va_arg_expr): New fn.
2520 (dummy_object): New static fn.
2521 (gimplify_va_arg_expr): New fn.
2522 (stabilize_va_list): Use build_fold_*.
2523 * tree-gimple.h: Declare new fns.
2524 * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2525 (ix86_gimplify_va_arg): New fn.
2526 * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2527 (ia64_gimplify_va_arg): New fn.
2528 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
2529 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2530 * alias.c (get_varargs_alias_set): Just return 0 for now.
2532 * c-objc-common.c (c_tree_printer): Improve handling of %T.
2534 2004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
2536 * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2538 * tree-inline.c (setup_one_parameter): Likewise.
2539 * tree-sra.c (csc_build_component_ref): Likewise.
2540 * tree-ssa-ccp.c (ccp_fold): Likewise.
2541 * tree-ssa-copy.c (cprop_operand): Likewise.
2542 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2543 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2545 2004-06-09 J"orn Rennecke <joern.rennecke@superh.com>
2547 PR rtl-optimization/15521:
2548 * sched-int.h (in_post_call_group_p): Change type to enum.
2549 * sched-deps.c (sched_analyze_insn):
2550 (sched_analyze): When in_post_call_group_p is post_call_initial,
2551 don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
2552 and also reset in_post_call_group_p to post_call.
2553 (sched_analyze): When the previous basic block ended in a CALL_INSN,
2554 initialize in_post_call_group_p as post_call_initial.
2555 (init_deps): initialize in_post_call_group_p to not_post_call.
2557 2004-06-09 Arnaud Charlet <charlet@act-europe.fr>
2560 * doc/install.texi: List ada, libada as options to --enable-shared
2562 2004-06-09 Paolo Bonzini <bonzini@gnu.org>
2564 * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2565 (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2567 * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2568 if hard links are not available.
2569 * configure: Regenerate.
2570 * config.in: Regenerate.
2572 2004-06-08 Per Bothner <per@bothner.com>
2574 * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION.
2576 2004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2578 * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2581 2004-06-08 James E Wilson <wilson@specifixinc.com>
2584 * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2586 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2588 * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2589 POINTER_TYPE and INTEGER_TYPE.
2591 2004-06-08 Bernardo Innocenti <bernie@develer.com>
2593 * modulo-sched.c: Compile only when INSN_SCHEDULING is
2596 2004-06-08 Jeff Law <law@redhat.com>
2598 * doc/contrib.texi: Add entries for Stefan Olsson and
2601 2004-06-08 DJ Delorie <dj@redhat.com>
2603 * toplev.c (floor_log2_wide): Replace loop with faster bit
2605 (exact_log2_wide): Define in terms of the above.
2606 * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2609 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2611 * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2612 Make sure that we are in INDIRECT mode when getting the
2615 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2617 * h8300.md (extendqisi2_h8300): Add constraints.
2618 (ldm_h8300s_4_normal): Fix typo.
2620 2004-06-08 Richard Henderson <rth@redhat.com>
2622 * gimple-low.c (struct lower_data): Replace the_return_label and
2623 one_return_stmt with return_statements.
2624 (lower_function_body): Process the entire list of return_statements.
2625 (lower_return_expr): Check source value before unifying return_exprs.
2626 * gimplify.c (gimplify_return_expr): Force the use of a temporary
2627 for !aggregate_value_p.
2628 * tree-gimple.c: Update RETURN_EXPR grammer.
2630 2004-06-08 Vladimir Makarov <vmakarov@redhat.com>
2633 * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2635 2004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2637 PR rtl-optimization/15717
2638 * config/i386/i386.c (legitimate_constant_p): Do not allow
2641 2004-06-08 Alexandre Oliva <aoliva@redhat.com>
2643 * gimplify.c (copy_if_shared_r): Revert:
2644 2004-05-21 Richard Henderson <rth@redhat.com>
2645 * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2647 2004-06-07 Roger Sayle <roger@eyesopen.com>
2649 * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2650 Make arrays indexed by machine mode. Rename negate_cost to neg_cost.
2651 (init_expmed): Initialize these cost arrays as appropriate.
2652 (store_bit_field, extract_bit_field): Correct whitespace.
2653 (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2654 expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2655 neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2656 word_mode or compute_mode as appropriate.
2658 2004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2661 * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2662 parameter. Enumerate the registers inside the PARALLEL.
2663 (function_arg): Adjust call to function_arg_union_value.
2664 (function_value): Likewise.
2666 * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2668 2004-06-07 Roger Sayle <roger@eyesopen.com>
2670 * real.c (real_copysign): New function to implement libm's copysign.
2671 * real.h (real_copysign): Prototype here.
2672 * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2673 and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace.
2674 * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2675 fold_builtin_isdigit): Add function prototypes.
2676 (fold_builtin_copysign): New function to fold copysign, copysignf
2677 and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of
2678 constant arguments at compile-time using real_copysign. Fold
2679 copysign(X,Y) as fabs(X) if Y is always non-negative.
2680 (fold_builtin_1): Correct minor whitespace/style issues. Call
2681 fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2683 2004-06-07 J"orn Rennecke <joern.rennecke@superh.com>
2685 * tree.c (iterative_hash_expr): Use real_hash.
2687 2004-06-07 Joseph S. Myers <jsm@polyomino.org.uk>
2690 * c-parse.in (compstmt_primary_start): Set last_expr_type to
2693 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2696 * doc/extend.texi: Deprecate #pragma interface and #pragma
2699 2004-06-07 Alexandre Oliva <aoliva@redhat.com>
2702 * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2703 builtin decl as well.
2705 2004-06-07 Roger Sayle <roger@eyesopen.com>
2708 * c-typeck.c (require_constant_value, require_constant_elements):
2709 Move declarations to the top of the file.
2710 (build_function_call): If we require a constant value, fold with
2711 fold_initializer. If the result is a constant, and the function
2712 wasn't called using __builtin_foo, issue a pedantic warning.
2713 (build_unary_op): If we require a constant value, fold tree with
2715 (build_binary_op): Use require_constant_value to determine whether
2716 to call fold or fold_initializer.
2718 2004-06-07 Richard Henderson <rth@redhat.com>
2720 * gimple-low.c (struct lower_data): Add the_return_label and
2722 (lower_function_body): Initialize and use them.
2723 (lower_return_expr): New.
2724 (lower_stmt): Call it.
2725 * gimplify.c (gimplify_return_expr): Force the argument to be either
2726 null or a result_decl.
2727 * tree-gimple.c: Update gimple grammer to match.
2728 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2729 coalescing of result_decls.
2731 2004-06-07 Richard Henderson <rth@redhat.com>
2734 * expmed.c (extract_bit_field): Fix vector_extract return.
2736 * config/i386/i386.md (negv4sf2): New pattern.
2738 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2741 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2744 2004-06-06 Paolo Bonzini <bonzini@gnu.org>
2746 * config.in: Regenerate.
2748 2004-06-06 Steven Bosscher <stevenb@suse.de>
2750 * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2751 SWITCH_LABELS are always sorted.
2753 2004-06-06 Steven Bosscher <stevenb@suse.de>
2755 * hooks.c (hook_int_void_1): New generic hook.
2756 * hooks.h (hook_int_void_1): Add prototype.
2757 * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2758 Define to hook_int_void_1.
2759 * config/c4x/c4x.md: Replace dummies for the old pipeline model
2760 with dummies for the new one.
2762 2004-06-06 Roger Sayle <roger@eyesopen.com>
2764 * tree.h (lvalue_or_else): Delete function prototype.
2765 * c-typeck.c (lvalue_or_else): Make static. Add static prototype.
2767 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
2770 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2771 a live change of a register after peephole replacement.
2773 2004-06-06 Joseph S. Myers <jsm@polyomino.org.uk>
2776 * c-typeck.c (composite_type, common_pointer_type): New functions.
2777 (common_type): Split parts into composite_type and
2778 common_pointer_type. Ensure that arithmetic operations return
2779 unqualified types without attributes. Don't make composite type
2780 of signed enum and compatible integer be unsigned.
2781 (build_conditional_expr, build_binary_op): Use
2782 common_pointer_type.
2783 * c-decl.c (merge_decls): Use composite_type.
2784 * c-tree.h (composite_type): Declare.
2786 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
2789 * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2790 * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2791 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2792 (inhibit_libc): Must define.
2793 * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2794 ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2795 ("xorhi3"): Likewise.
2797 2004-06-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2799 * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2802 2004-06-05 David S. Miller <davem@nuts.davemloft.net>
2804 * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2805 * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2807 2004-06-05 Bernardo Innocenti <bernie@develer.com>
2809 * regclass.c (init_reg_sets): Check for missing registers in target
2810 initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2812 2004-06-05 Zack Weinberg <zack@codesourcery.com>
2814 * Makefile.in (MKDEPS_H): New shorthand.
2815 (c-opts.o): Update dependencies.
2816 * c-opts.c: Include mkdeps.h.
2817 (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2818 not cpp_add_dependency_target.
2820 2004-06-05 Steven Bosscher <stevenb@suse.de>
2822 * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2823 * config/v850/v850.md: Convert to DFA scheduler description.
2825 2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2828 * doc/install.texi: Document GMP as prerequisite. Document
2829 --with-gmp and --with-gmp-dir configure options.
2830 * fortran/gfortran.texi: Remove section "Compiling and testing",
2831 remove TOC reference to it.
2833 2004-06-05 Graham Stott <graham.stott@btinternet.com>
2835 * combine.c(simplify_shift_const): Check shift amount is a
2838 2004-06-05 Danny Smith <dannysmith@users.sourceforge.net>
2840 * toplev.c (init_asm_output): Add explicit 'b' to mode when
2841 opening asm_out_file.
2842 * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2843 reading asm_out_file. Replace fflush after reading asm_out_file
2845 * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2846 default and add to HOST_HOOKS_INITIALIZER.
2847 * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2848 * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2849 (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2850 to set mmi.offset padding.
2851 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2852 $(srcdir)/config/i386/winnt.c.
2853 (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2854 (i[34567]86-*-uwin*): Likewise.
2855 *i[34567]86-*-interix3*): Likewise.
2856 * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2857 * config/i386/host-mingw32.c: New file.
2858 * config/i386/x-mingw32: Add rule for host-mingw32.o.
2859 * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2860 (extern_head): Likewise.
2861 (struct export_list) Likewise.
2862 (export_head): Likewise.
2863 (i386_pe_record_external_function): Use ggc_alloc.
2864 (i386_pe_record_exported_symbol): Likewise.
2865 Include "gt-winnt.h" at end.
2866 * doc/hostconfig.texi: Document
2867 HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2869 2004-06-04 Bernardo Innocenti <bernie@develer.com>
2871 * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2872 Rename 68000 and 68k to m68k for consistency in comments. Remove
2873 trailing whitespace before EOLs and before TABs.
2874 (MAX_CODE_ALIGN): Remove unused macro.
2875 (CALL_USED_REGISTERS): Reformat and add comments.
2877 2004-06-04 Frank Ch. Eigler <fche@redhat.com>
2879 * gcc.c (MFLIB_SPEC): Remove library references, to require users
2880 to enumerate -lmudflap* and dependencies when linking.
2882 2004-06-04 Paolo Bonzini <bonzini@gnu.org>
2885 * dojump.c (do_jump): Fix uninitialized variable tcode1.
2887 2004-06-04 Jerry Quinn <jlquinn@optonline.net>
2889 * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2890 * genconditions.c (write_header): Back out removal of reload.h.
2892 2004-06-04 Jan Hubicka <jh@suse.cz>
2894 Re-apply hopefully fixed patch:
2895 * i386.md (UNSPECV_EH_RETURN): Kill.
2896 (eh_return): Use jump_insn.
2897 (eh_return_si, eh_return_di): Change pattern to jump instruction.
2899 2004-06-04 Jeff Law <law@redhat.com>
2901 * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2903 2004-06-04 Steven Bosscher <stevenb@suse.de>
2905 * except.c (for_each_eh_region): New function.
2906 * except.h (for_each_eh_region): Add a prototype for it.
2907 * tree-cfg.c (update_eh_labels): New function, callback for
2909 (label_for_bb): Make global static, unfortunately.
2910 (cleanup_dead_labels): Also update label references for
2913 2004-06-03 Chris Demetriou <cgd@broadcom.com>
2915 * config/mips/mips.c (struct irix_section_align_entry): Fix
2918 2004-06-03 Geoffrey Keating <geoffk@apple.com>
2920 * toplev.c (check_global_declarations): Don't ask for
2921 DECL_ASSEMBLER_NAME unless the function really is declared
2922 static and not defined.
2924 2004-06-03 Matt Austern <austern@apple.com>
2927 * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2928 for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2929 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2930 * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2931 documentation to reflect the new macro name and to clarify its
2934 2004-06-03 Steven Bosscher <stevenb@suse.de>
2936 * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2938 2004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
2940 * config/darwin.c (machopic_indirect_data_reference): Copy
2941 the SYMBOL_REF_DECL from the original RTX for the new
2942 non-lazy pointer RTX.
2944 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
2946 * tree.h: Remove include of version.h
2947 * c-cppbuiltin.c: Include version.h
2948 * diagnostic.c: Include version.h
2949 * dwarf2out.c: Include version.h
2950 * toplev.c: Include version.h
2951 * vmsdbgout.c: Include version.h
2952 * Makefile.in: Remove dependency on version.h from TREE_H, and
2953 add dependencies to required .o targets
2955 2004-06-03 Jerry Quinn <jlquinn@optonline.net>
2957 * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2958 CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2959 (TARGET_H): Add insn-modes.h.
2960 (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2961 loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2962 loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2963 loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2964 cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2965 (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2966 loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2967 bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2969 (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2970 Replace ra.h with RA_H.
2971 (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2972 insn-recog.o): Replace resource.h with RESOURCE_H.
2973 (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2974 sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h
2976 (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2977 ra-rewrite.o): Replace df.h with DF_H.
2978 (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2979 (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2980 Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2981 (insn-conditions.o): Remove unused reload.h.
2982 * cfglayout.h: Add include guard. Include basic-block.h.
2983 * cfgloop.h: Add include guard. Include basic-block.h, rtl.h.
2984 * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2985 * df.h: Add include guard. Include bitmap.h, sbitmap.h,
2987 * genconditions.c: Remove reload.h.
2988 * ra.h: Add include guard. Include bitmap.h, sbitmap.h,
2989 hard-reg-set.h, insn-modes.h.
2990 * resource.h: Add include guard. Include hard-reg-set.h.
2991 * sched-int.h: Add include guard. Include insn-attr.h,
2992 basic-block.h, rtl.h.
2993 * target.h: Add include guard. Include insn-modes.h.
2994 * tree-ssa-live.h: Include partition.h.
2996 2004-06-03 Daniel Berlin <dberlin@dberlin.org>
2997 Kenneth Zadeck <zadeck@naturalbridge.com>
2999 * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
3000 (add_var_to_ssa_edges_worklist): Add value argument.
3003 (process_ssa_edge_worklist): New function.
3004 (tree_ssa_ccp): Move worklist processing core to
3005 process_ssa_edge_worklist, and just call that for the two worklists.
3007 2004-06-03 Steven Bosscher <stevenb@suse.de>
3009 * basic-block.c (tail_recursion_label_list): Don't declare.
3010 (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_*
3012 * cfgbuild.c (find_label_refs): Remove.
3013 (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
3014 * cfgcleanup.c (tail_recursion_label_p): Remove.
3015 (merge_blocks_move): Do not check for tail recursion.
3016 (try_optimize_cfg): Likewise.
3017 (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
3018 * cfgrtl.c (tail_recursion_label_list): Remove.
3019 * except.c (remove_unreachable_regions): Don't handle
3020 CALL_PLACEHOLDER insns.
3021 (convert_from_eh_region_ranges_1, can_throw_internal,
3022 can_throw_external): Likewise.
3023 * function.c (free_after_compilation): Don't clear
3024 x_tail_recursion_label.
3025 (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
3026 (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
3027 (reorder_blocks_1): Likewise.
3028 * function.h (struct function): Remove x_tail_recursion_label
3029 member. Don't define tail_recursion_label.
3030 * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
3031 * print-rtl.c (print_rtx): Likewise.
3032 * rtl.def (CALL_PLACEHOLDER): Remove.
3033 * rtl.h (sibcall_use_t): Remove enum.
3034 (optimize_sibling_and_tail_recursive_calls,
3035 replace_call_placeholder): Remove function prototypes.
3036 * stmt.c (tail_recursion_args): Remove.
3037 (optimize_tail_recursion): Remove.
3038 (expand_return): Don't check for possible tail recursion.
3039 * tree.h (optimize_tail_recursion): Remove prototype.
3041 2004-06-02 Jan Hubicka <jh@suse.cz>
3043 * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before
3046 2004-06-02 Jason Merrill <jason@redhat.com>
3048 * Makefile.in (TAGS): Don't mess with c-parse.[ch].
3049 Do include c-parse.in.
3051 2004-06-02 Eric Christopher <echristo@redhat.com>
3053 * c-typeck.c (common_type): Don't lose type qualifiers
3054 when creating new variants.
3056 2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
3058 PR tree-optimization/14042
3059 PR tree-optimization/14729
3060 PR tree-optimization/14736
3061 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
3062 Check the type which the pointer points to
3063 instead of the pointer types.
3065 2004-06-02 Kazu Hirata <kazu@cs.umass.edu>
3067 PR tree-optimization/15738.
3068 * builtins.c (fold_builtin_strchr): Transform
3069 strrchr (s, '\0') to strchr (s, '\0').
3071 2004-06-02 Steven Bosscher <stevenb@suse.de>
3073 * i386.c (ix86_adjust_cost): Don't increase the cost for
3074 load+operation for PROCESSOR_PENTIUMPRO, it is already
3075 modelled in the DFA description
3077 2004-06-01 Jerry Quinn <jlquinn@optonline.net>
3079 * Makefile.in (EXPR_H): Add insn-config.h, function.h,
3080 $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
3081 (ALIAS_H, EMIT_RTL_H): New.
3082 (cselib.o): Replace EXPR_H with EMIT_RTL_H.
3083 (cfgcleanup.o): Add EMIT_RTL_H.
3084 (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
3085 * alias.c: Replace expr.h with emit-rtl.h and alias.h.
3086 * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
3087 * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
3088 * expr.h: Add include guard. Include function.h, rtl.h, flags.h,
3089 tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
3090 (get_varargs_alias_set, get_frame_alias_set, record_base_value,
3091 record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
3092 (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
3093 set_mem_size): Move to emit-rtl.h.
3097 2004-06-01 Eric Botcazou <ebotcazou@act-europe.fr>
3099 * function.c (walk_fixup_memory_subreg): New parameter 'var'.
3100 Call fixup_memory_subreg only if the MEM is equal to 'var'.
3101 Adjust recursive calls to self.
3102 (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
3104 2004-06-01 Richard Henderson <rth@redhat.com>
3105 Andrew Pinski <pinskia@physics.uc.edu>
3107 * c-parse.in (OFFSETOF, offsetof_member_designator): New.
3108 (primary): Handle offsetof. Add error productions for faux functions.
3109 Move component_ref objc checking to build_component_ref.
3110 (reswords): Add offsetof.
3111 (rid_to_yy): Add offsetof.
3112 * c-tree.h (build_offsetof): Declare.
3113 * c-common.h (objc_is_public): Declare.
3114 * c-typeck.c (build_component_ref): Check objc_is_public.
3115 (build_offsetof): New.
3116 * stub-objc.c (objc_is_public): New.
3117 * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
3119 * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
3120 * doc/extend.texi (Offsetof): Move from C++ section to C section
3121 and rewrite for __builtin_offsetof.
3123 2004-06-01 Peter Barada <peter@the-baradas.com>
3124 Peter Jakubek <peter@laseranimation.com>
3126 * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as
3127 a scratch to perform an add to memory.
3129 2004-06-01 Bernardo Innocenti <bernie@develer.com>
3132 * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
3133 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
3134 m68k_align_funcs): Remove.
3135 (override_options): Remove code to handle -malign-* options.
3136 * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
3137 (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
3138 (m68k_align_loops_string, m68k_align_jumps_string,
3139 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
3140 m68k_align_funcs): Remove definitions.
3142 2004-06-01 Paul Eggert <eggert@cs.ucla.edu>
3145 * doc/install.texi (sparc-sun-solaris2*): Document messages issued
3146 by the Sun linker in conjunction with the Sun assembler.
3147 (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
3149 2004-06-01 Jeff Law <law@redhat.com>
3151 * stmt.c (expand_decl): Be more selective about calling
3154 2004-06-01 Nicola Pero <nicola@brainstorm.co.uk>
3157 * objc-act.c (is_private): Do not emit the 'instance variable %s
3158 is declared private' error.
3159 (is_public): Emit the error after calling is_private.
3160 (lookup_objc_ivar): If the instance variable is private, return 0
3161 - the instance variable is invisible here.
3163 2004-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
3165 * doc/invoke.texi (-static-libgcc): Explicitly mention
3168 2004-06-01 Bernardo Innocenti <bernie@develer.com>
3171 * doc/invoke.texi: Document stack alignment side-effect of -mshort.
3173 2004-05-31 Joseph S. Myers <jsm@polyomino.org.uk>
3176 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
3177 misuses of structures with flexible array members if
3180 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
3183 * config/sparc/sparc.c (compare_operand): New predicate.
3184 * config/sparc/sparc.h (PREDICATE_CODES): Add it.
3185 * config/sparc/sparc.md (cmpsi expander): Use it. If the first
3186 operand is a ZERO_EXTRACT and the second operand is not zero,
3187 force the former to a register.
3188 (cmpdi expander): Likewise.
3190 2004-05-31 Geoffrey Keating <geoffk@apple.com>
3192 * gengtype-lex.l: Catch stray GTY markers in the files gengtype
3194 * alias.c (alias_invariant_size): Make alias_invariant_size
3195 static, fix GTY marker.
3197 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
3199 PR tree-optimization/15743.
3200 * builtins.c (fold_builtin_1): Fold index() and rindex().
3202 2004-05-31 Roger Sayle <roger@eyesopen.com>
3205 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
3206 into "X < 0" (where C is the signbit) if X's type is a full mode.
3208 2004-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3210 * pa.md: Disable the peephole2 patterns that generate indexed
3211 floating-point stores when indexing is disabled.
3213 2004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
3215 * c-pretty-print.c (pp_c_left_bracket): Make a function.
3216 (pp_c_right_bracket): Likewise.
3217 (pp_c_star): Likewise.
3218 (pp_c_ampersand): Define.
3219 * c-pretty-print.h (pp_c_left_bracket): Declare.
3220 (pp_c_right_bracket): Likewise.
3221 (pp_c_star): Likewise.
3222 (pp_c_ampersand): Likewise.
3224 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
3226 * config/sol2.h (__enable_execute_stack): ANSIfy function
3229 2004-05-31 Danny Smith <dannysmith@users.sourceforge.net>
3231 * c-incpath.c (add_path): Canonicalize paths to use '/' if
3232 HAVE_DOS_BASED_FILESYSTEM.
3234 2004-05-31 Steven Bosscher <stevenb@suse.de>
3236 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
3237 Only look at case labels if the immediate dominator is also
3238 the only predecessor. Don't look for more case labels if the
3239 first seen is a case range.
3241 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
3243 * builtins.c: Add a prototype for fold_builtin_strchr().
3245 2004-05-31 Paolo Bonzini <bonzini@gnu.org>
3248 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
3250 * combine.c (gen_binary): Remove.
3251 (known_cond, simplify_shift_const
3252 find_split_point, combine_simplify_rtx,
3253 simplify_if_then_else, simplify_set,
3254 simplify_logical, expand_field_assignment,
3255 extract_left_shift, force_to_mode,
3256 if_then_else_cond, apply_distributive_law,
3257 simplify_and_const_int, simplify_shift_const,
3258 gen_lowpart_for_combine, simplify_comparison,
3259 reversed_comparison): Replace with
3260 simplify_gen_binary, simplify_gen_relational or
3261 distribute_and_simplify_rtx.
3262 (distribute_and_simplify_rtx): New function.
3264 2004-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3266 * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
3267 when generating PIC code.
3269 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
3271 * c-decl.c (c_expand_body_1): Remove and fold back into ...
3272 (c_expand_body): here.
3273 (c_expand_decl): Move to ...
3274 * c-common.c (c_expand_decl): Here and remove check for nested
3276 * c-common.h (c_expand_decl): Add prototype.
3277 * c-tree.h (c_expand_decl): Remove.
3279 2004-05-30 Roger Sayle <roger@eyesopen.com>
3281 * fold-const.c (combine_comparisons, optimize_bit_field_compare,
3282 range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
3283 fold_mathfn_compare, fold_inf_compare, fold,
3284 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3285 Use constant_boolean_node where appropriate. Don't bother using
3286 fold_convert on the second argument to omit_one_operand.
3288 2004-05-30 Roger Sayle <roger@eyesopen.com>
3290 * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
3291 CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
3292 ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of
3293 TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
3294 Add missing (but documented) tree nodes to the index.
3296 2004-05-30 Steven Bosscher <stevenb@suse.de>
3298 PR tree-optimization/14819
3299 * builtins.c (fold_builtin_strchr): New.
3300 (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
3301 with fold_builtin_strchr().
3303 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
3305 * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
3306 c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
3307 expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
3308 passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
3309 tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
3310 tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
3311 tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
3312 tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
3313 tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
3316 2004-05-30 Steven Bosscher <stevenb@suse.de>
3318 * gimplify.c (sort_case_labels): New. Split out from...
3319 (gimplify_switch_expr): ...here. Use it.
3320 * tree-eh.c (lower_try_finally_switch): Sort the labels of
3321 the SWITCH_EXPR created here before leaving the function.
3322 * tree.c (sort_case_labels): Add prototype.
3324 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
3326 * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
3329 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
3331 * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
3332 ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
3333 fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
3334 modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
3335 tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
3336 tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
3337 comment typos. Follow spelling conventions.
3339 2004-05-29 Geoffrey Keating <geoffk@apple.com>
3341 * gengtype-yacc.y: Add NESTED_PTR token.
3342 (option): Record `nested_ptr' option.
3343 * gengtype-lex.l: Handle `nested_ptr' keyword.
3344 * gengtype.c (walk_type): Process `nested_ptr' option.
3345 * gengtype.h (struct nested_ptr_data): New.
3346 * doc/gty.texi (GTY Options): Document `nested_ptr' option.
3347 * stringpool.c (struct string_pool_data): Make 'entries' point to
3348 ht_identifier instead of tree.
3349 (gt_pch_save_stringpool): Don't adjust pointers.
3350 (gt_pch_restore_stringpool): Call ht_load.
3352 2004-05-29 Jason Merrill <jason@redhat.com>
3354 * gimplify.c (gimplify_expr): Don't build a statement list
3355 if no gimplification was necessary.
3357 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
3359 * pretty-print.c (pp_base_format_text): Support %< instead of %`
3360 and %> as well as %'.
3361 * c-format.c: Use %< and %>.
3362 (gcc_diag_char_table, gcc_cdiag_char_table,
3363 gcc_cxxdiag_char_table): Update.
3365 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
3367 * c-typeck.c (common_type): Correct comment.
3369 2004-05-29 Peter Barada <peter@the-baradas.com>
3371 * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
3372 * config/m68k/m68k.c (const_method): Likewise.
3373 * config/m68k/m68k.c (const_int_cost): Likewise.
3374 * config/m68k/m68k.c (const_int_cost): Likewise.
3375 * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
3377 2004-05-29 Peter Barada <peter@the-baradas.com>
3379 * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
3381 * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
3382 movsi,movhi,movqi insn patterns.
3384 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
3386 * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
3389 * config/darwin.c (machopic_indirect_call_target): Copy
3390 the SYMBOL_REF_DECL from the original RTX for the new
3393 2004-05-28 DJ Delorie <dj@redhat.com>
3395 * stor-layout.c (place_field): Revert erroneous commit.
3397 2004-05-28 Ziemowit Laski <zlaski@apple.com>
3399 * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
3400 vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
3401 vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
3402 vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
3403 vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
3404 vec_ste): Remove type checks for integral parameters and literals
3405 from '..._args_eq' macros.
3407 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
3409 * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
3411 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
3413 * testsuite/g++.dg/charset/function.cc: New.
3415 * testsuite/gcc.dg/charset/function.c: New.
3417 * c-decl.c (c_make_fname_decl): Free return value from
3420 * cp/decl.c (cp_make_fname_decl): Free return value from
3423 * c-common.c (fname_as_string): Translate if necessary.
3425 2004-05-28 Geoffrey Keating <geoffk@apple.com>
3427 * stringpool.c: Add comments to PCH saving/restoring routines.
3429 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
3431 * c-common.c (c_estimate_num_insns_1): Kill.
3432 (c_estimate_num_insns): Kill.
3433 * c-common.h (c_estimate_num_insns): Kill.
3435 * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
3436 when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
3437 Remove comment about not checking for
3438 _POSIX_PRIORITY_SCHEDULING.
3439 * gthr-posix.c: Likewise.
3441 2004-05-28 Paolo Bonzini <bonzini@gnu.org>
3442 Roger Sayle <roger@eyesopen.com>
3444 PR rtl-optimization/15649
3445 Add LTGT_EXPR and improve pretty-printing of unordered
3447 * c-common.c (c_common_truthvalue_conversion):
3449 * c-typeck.c (build_binary_op): Likewise.
3450 * dojump.c (do_jump): Likewise.
3451 * expr.c (expand_expr_real_1, do_store_flag): Likewise.
3452 * predict.c (tree_predict_by_opcode): Likewise.
3453 * real.c (real_compare): Likewise.
3454 * tree-cfg.c (verify_expr): Likewise.
3455 * tree-inline.c (estimate_num_insns_1): Likewise.
3456 * tree-pretty-print.c (dump_generic_node): Likewise.
3457 Handle ORDERED_EXPR, UNORDERED_EXPR.
3458 (op_symbol): Print unordered comparisons differently
3460 * tree.def (LTGT_EXPR): New '<' tree code.
3461 * doc/c-tree.texi (Expressions): Document floating-point
3464 Fold comparisons between floating point values.
3465 * fold-const.c (enum comparison_code): New, from
3466 #define'd constants. Define compcodes for unordered
3467 comparisons and for invalid transformations.
3468 (invert_tree_comparison): Add "honor_nans" parameter.
3469 (fold_truthop): Revamp to work on floating-point types too.
3470 (comparison_to_compcode): Support unordered comparisons.
3471 Use new enum comparison_code.
3472 (compcode_to_comparison): Likewise.
3473 (combine_compcodes): New function.
3474 (invert_truthvalue): Let invert_tree_comparison decide
3475 whether it is valid to fold the comparison. Fold ORDERED
3476 and UNORDERED even if flag_unsafe_math_optimizations is off,
3477 and the remaining even if flag_unsafe_math_optimizations
3478 is off but we are under -fno-trapping-math.
3479 (fold_relational_const): Integer modes do not honor NaNs.
3481 2004-05-28 Paul Brook <paul@codesourcery.com>
3483 * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
3485 2004-05-28 Paul Brook <paul@codesourcery.com>
3487 * config/arm/arm.c (thumb_force_lr_save): New function.
3488 (arm_get_frame_offsets, thumb_unexpanded_epilogue,
3489 thumb_output_function_prologue): Use it.
3490 (thumb_expand_prologue): Set lr_save_eliminated.
3492 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
3494 * config/mips/mips.md (extendsidi2): Tie the source and destination
3495 of the register alternative. Split it into nothing.
3497 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
3499 * rtl.h (skip_consecutive_labels): Declare.
3500 * emit-rtl.c (skip_consecutive_labels): New function.
3501 * reorg.c (relax_delay_slots, dbr_schedule): Use it.
3502 * jump.c (follow_jumps): Say what null return values mean.
3504 2004-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
3507 * config/sh/sh.md (rotlsi3): Use emit_move_insn.
3509 2004-05-27 Kaz Kojima <kkojima@gcc.gnu.org>
3511 * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
3513 * config/sh/libgcc-std.ver: New file.
3515 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3517 * except.c: Revert change of 2004-05-26.
3518 * config/i386/i386.md: Revert change of 2004-05-27.
3520 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3522 * configure.ac: Remove --enable-tree-browser option.
3523 Define TREEBROWSER when ac_tree_checking is defined.
3524 * configure: Rebuilt.
3526 2004-05-27 Olivier Hainque <hainque@act-europe.fr>
3528 * expr.c (store_constructor): Restore sanity check on
3529 the size of the type before clearing.
3531 2004-05-27 Jan Hubicka <jh@suse.cz>
3533 * cfgbuild.c (control_flow_insn_p): Notice noreturn call
3535 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
3537 * combine.c (gen_binary): Remove.
3538 (known_cond, simplify_shift_const
3539 find_split_point, combine_simplify_rtx,
3540 simplify_if_then_else, simplify_set,
3541 simplify_logical, expand_field_assignment,
3542 extract_left_shift, force_to_mode,
3543 if_then_else_cond, apply_distributive_law,
3544 simplify_and_const_int, simplify_shift_const,
3545 gen_lowpart_for_combine, simplify_comparison,
3546 reversed_comparison): Replace with
3547 simplify_gen_binary, simplify_gen_relational or
3548 distribute_and_simplify_rtx.
3549 (distribute_and_simplify_rtx): New function.
3550 * simplify-rtx.c (simplify_binary_operation):
3551 Use nonzero_bits to simplify ANDs where we are
3552 turning off bits already known to be off in OP0.
3554 2004-05-27 Alan Modra <amodra@bigpond.net.au>
3557 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
3559 2004-05-27 Josef Zlomek <zlomekj@suse.cz>
3562 * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
3565 2004-05-26 Aldy Hernandez <aldyh@redhat.com>
3568 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
3570 2004-05-26 Roger Sayle <roger@eyesopen.com>
3572 * tree.h: Fix comment typo.
3574 2004-05-27 Steven Bosscher <stevenb@suse.de>
3576 * gimplify.c (compare_case_labels): New function.
3577 (gimplify_switch_expr): Sort case labels, and make sure the
3578 last label in the label vector is the default case.
3579 * tree-cfg.c (group_case_labels): New function.
3580 (build_tree_cfg): Cleanup redundant labels and group case labels
3581 before creating edges.
3582 (cleanup_dead_labels): Handle GOTO_EXPRs.
3583 (find_case_label_for_value): Use a binary search to find the
3584 case label for the given value.
3585 * tree-gimple.c: Mention that labels are sorted, and that the
3586 last label must be the default.
3588 2004-05-27 Jan Hubicka <jh@suse.cz>
3590 * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3592 2004-05-27 Jan Hubicka <jh@suse.cz>
3594 * i386.md (UNSPECV_EH_RETURN): Kill.
3595 (eh_return): Use jump_insn.
3596 (eh_return_si, eh_return_di): Change pattern to jump instruction.
3598 2004-05-26 Jan Hubicka <jh@suse.cz>
3600 * cfgcleanup.c (try_forward_edges): Do not check loop structure when
3601 not loop optimizing.
3603 2004-05-26 Jan Hubicka <jh@suse.cz>
3605 * except.c (can_throw_internal): Notice RESX instructions.
3607 2004-05-26 Eric Botcazou <ebotcazou@act-europe.fr>
3609 * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3610 of the two sizes to assemble_integer.
3612 2004-05-25 Paul Brook <paul@codesourcery.com>
3614 * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3617 2004-04-25 Paolo Bonzini <bonzini@gnu.org>
3619 * Makefile.in (top_builddir): Define to .
3621 2004-05-25 Alexandre Oliva <aoliva@redhat.com>
3623 * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3624 top-level detects, except when in-tree ld is being cross-built.
3625 (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and
3626 then AS only if target is host.
3627 * configure: Rebuilt.
3629 2004-05-25 Vladimir Makarov <vmakarov@redhat.com>
3631 * global.c (global_alloc): Call make_accurate_live_analysis.
3632 (record_one_conflict): Remove dead code.
3633 (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3634 (bb_info): New structure.
3635 (BB_INFO, BB_INFO_BY_INDEX): New macros.
3636 (allocate_bb_info, free_bb_info, mark_reg_change,
3637 calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3638 modify_bb_reg_pav, calculate_reg_pav,
3639 make_accurate_live_analysis): New functions.
3641 2004-05-25 Devang Patel <dpatel@apple.com>
3643 * alias.c (init_alias_analysis): Use ggc_calloc instead of
3645 (end_alias_analysis): Use ggc_free instead fo free.
3647 2004-05-25 Andrew Pinski <pinskia@physics.uc.edu>
3650 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
3651 as needed to be outputted.
3653 2004-05-25 Jan Hubicka <jh@suse.cz>
3655 * builtins.def (__builtin_expect): Mark the function as const¬hrow.
3657 2004-05-25 Ayal Zaks <zaks@il.ibm.com>
3658 Mostafa Hagog <mustafa@il.ibm.com>
3660 * Makefile.in (modulo-sched.o, ddg.o): New.
3661 * ddg.h, ddg.c, modulo-sched.c: New files.
3662 * cfglayout.c (duplicate_insn_chain): Remove "static" and push
3663 internals to "dupicate_insn".
3664 (duplicate_insn): New function.
3665 * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
3667 * common.opt (fmodulo-sched): New flag.
3668 * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
3669 Remove static and forward declaration.
3670 (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3672 * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3673 df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3675 * flags.h (flag_modulo_sched): New flag.
3676 * opts.c (common_handle_option): Handle modulo-sched flag.
3677 * params.def (max-sms-loop-number, sms-max-ii-factor,
3678 sms-dfa-history, sms-loop-average-count-threshold): New
3680 * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3681 SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3683 * passes.c ("sms", "sms-vcg"): New dumps.
3684 (rest_of_handle_sched): Call sms_schedule.
3685 * rtl.h (sms_schedule): New declaration.
3686 * timevar.def (TV_SMS): New.
3687 * toplev.c (flag_modulo_sched): Initialize.
3688 (f_options): Handle -fmodulo-sched option.
3689 * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3690 * docs/passes.texi: Document new SMS pass.
3692 2004-05-25 Paolo Bonzini <bonzini@gnu.org>
3694 * Makefile.in (OBJS): Add rtlhooks.o.
3695 (rtlanal.o): Depend on function.h.
3696 (cse.o): Depend on rtlhooks-def.h.
3697 (combine.o): Depend on rtlhooks-def.h.
3698 (rtlhooks.o): New rule.
3699 * combine.c: Include rtlhooks-def.h.
3700 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3701 num_sign_bit_copies, cached_num_sign_bit_copies,
3702 num_sign_bit_copies1): Move most of the code to rtlanal.c.
3703 (reg_nonzero_bits_for_combine,
3704 reg_num_sign_bit_copies_for_combine): New functions holding
3705 the remnants of the above.
3706 (combine_rtl_hooks): New.
3707 (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3708 * cse.c: Include rtlhooks-def.h.
3709 (cse_rtl_hooks): New.
3710 (cse_main): Set rtl_hooks instead of gen_lowpart.
3711 * emit-rtl.c (gen_lowpart): Remove.
3712 (gen_lowpart_general): Move to rtlhooks.c.
3713 * rtl.h (nonzero_bits, num_sign_bit_copies,
3714 struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3715 (gen_lowpart_general): Remove.
3716 (gen_lowpart): Temporarily redefine as a macro.
3717 * rtlanal.c: Include function.h.
3718 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3719 num_sign_bit_copies, cached_num_sign_bit_copies,
3720 num_sign_bit_copies1): New, from combine.c.
3721 * rtlhooks.c: New file.
3722 * rtlhooks-def.h: New file.
3724 2004-05-25 Svein E. Seldal <Svein.Seldal@solidas.com>
3726 * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3727 to support 32-bit -mint8 mode.
3729 * doc/invoke.texi (-mint8): Added documentation for the -mint8
3730 option in the AVR architecture.
3732 2004-05-24 Mike Stump <mrs@apple.com>
3734 * doc/install.texi: Document that dejagnu 1.4.4 is required.
3736 2004-05-24 Joseph S. Myers <jsm@polyomino.org.uk>
3738 * intl.h (open_quote, close_quote): New.
3739 * intl.c (open_quote, close_quote): New.
3740 (gcc_init_libintl): Set them.
3741 * pretty-print.c: Include "intl.h".
3742 (pp_base_format_text): Support 'q' format flag and %` and %'
3743 formats. Use ' instead of ` in comments.
3744 * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3745 gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3746 foramt_types_orig): Describe these new formats.
3747 (decode_format_attr, check_function_format,
3748 check_format_info_main): Use these new formats.
3749 (status_warning): Use ATTRIBUTE_GCC_DIAG.
3750 * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3751 check these formats to 3.5.
3753 2004-05-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3755 * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3756 (BACKEND): Reflect this.
3757 (LIBDEPS): Move CPPLIB before LIBIBERTY.
3760 2004-05-24 Ulrich Weigand <uweigand@de.ibm.com>
3762 PR tree-optimization/14197
3763 * builtins.c: Include "tree-gimple.h"
3764 (readonly_data_expr): Use get_base_address. Make sure to call
3765 decl_readonly_section only on trees it can handle.
3766 * tree-gimple.c (get_base_address): Accept STRING_CST and
3767 CONSTRUCTOR expressions.
3768 * Makefile.in: Update dependencies.
3770 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3772 Move libcpp to the toplevel.
3773 * Makefile.in: Remove references to libcpp files,
3774 use CPPLIBS instead of libcpp.a. Define SYMTAB_H
3775 and change hashtable.h to that.
3776 * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3777 gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3778 * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3779 * configure: Regenerate.
3780 * config.in: Regenerate.
3781 * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3782 * cppcharset.c: Removed.
3783 * cpperror.c: Removed.
3784 * cppexp.c: Removed.
3785 * cppfiles.c: Removed.
3786 * cpphash.c: Removed.
3787 * cpphash.h: Removed.
3788 * cppinit.c: Removed.
3789 * cpplex.c: Removed.
3790 * cpplib.c: Removed.
3791 * cpplib.h: Removed.
3792 * cppmacro.c: Removed.
3793 * cpppch.c: Removed.
3794 * cpptrad.c: Removed.
3795 * cppucnid.h: Removed.
3796 * cppucnid.pl: Removed.
3797 * cppucnid.tab: Removed.
3798 * hashtable.c: Removed.
3799 * hashtable.h: Removed.
3800 * line-map.c: Removed.
3801 * line-map.h: Removed.
3802 * mkdeps.c: Removed.
3803 * mkdeps.h: Removed.
3804 * stringpool.h: Include symtab.h instead of hashtable.h.
3805 * tree.h: Include symtab.h instead of hashtable.h.
3806 * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3808 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3810 * gcc.c (struct prefix_list): Add forward declaration.
3811 (do_spec_path): New function, extracted from...
3812 (do_spec_1) <'D'>: ... here. Drop support for
3813 SPACE_AFTER_L_OPTION.
3814 (do_spec_1) <'I'>: Use do_spec_path.
3815 (process_command): Do not store the 'include' suffix
3816 in include_prefixes.
3817 * system.h: Poison SPACE_AFTER_L_OPTION.
3819 2002-05-23 Roger Sayle <roger@eyesopen.com>
3821 * fold-const.c (non_lvalue): Explicitly list the tree codes that
3822 need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3824 2004-05-23 Joseph S. Myers <jsm@polyomino.org.uk>
3826 * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3827 Update based on printed manual. Enable setting of offsets for
3828 FSFPRINT and move it to gcc-common.texi.
3829 * doc/gcc.texi: Update FSF printing details.
3830 * doc/gccint.texi: Remove FSF printing details.
3832 2004-05-23 Andrew Pinski <pinskia@physics.uc.edu>
3834 * config/rs6000/t-rs6000: Remove the disabling -Werror.
3836 2004-05-22 Roger Sayle <roger@eyesopen.com>
3838 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3839 expand_builtin_strrchr, expand_builtin_strpbrk,
3840 expand_builtin_mempcpy, expand_builtin_memcmp,
3841 expand_builtin_strcmp, expand_builtin_strncmp,
3842 expand_builtin_strcat, std_expand_builtin_va_start,
3843 std_expand_builtin_va_arg, expand_builtin_va_copy,
3844 expand_builtin_signbit, fold_builtin_cabs,
3845 fold_builtin_logarithm, fold_builtin_mempcpy,
3846 fold_builtin_signbit, fold_builtin_isascii,
3847 fold_builtin_toascii, fold_builtin_isdigit,
3848 fold_builtin_1, build_function_call_expr,
3849 simplify_builtin_strchr, simplify_builtin_strrchr,
3850 simplify_builtin_strpbrk, simplify_builtin_strncpy,
3851 simplify_builtin_memcmp, simplify_builtin_strcmp,
3852 simplify_builtin_strncmp, simplify_builtin_strncat,
3853 simplify_builtin_strspn, simplify_builtin_strcspn,
3854 simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3855 to build with calls to build2, build3 or omit_one_operand.
3857 2004-05-22 Richard Sandiford <rsandifo@redhat.com>
3859 * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3860 section when generating EABI code.
3862 2004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
3865 * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3866 Call mark_decl_referenced on the SYMBOL_REF_DECL.
3868 2004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
3870 * c-common.c (c_common_truthvalue_conversion): Handle
3871 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3872 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3873 i.e. set the type to truthvalue_type_node and return.
3875 2004-05-22 Zack Weinberg <zack@codesourcery.com>
3877 * tree.h (struct tree_decl): Add possibly_inlined bit.
3878 (DECL_POSSIBLY_INLINED): New accessor macro.
3879 * cgraph.h: Remove declaration of cgraph_inline_hash.
3880 * cgraph.c: Remove definition of cgraph_inline_hash.
3881 (hash_node): Revert to hashing DECL_UID.
3882 (eq_node): Take two pointers to cgraph_node structures.
3884 (cgraph_remove_node): Pass the node directly to htab_find_slot.
3885 (cgraph_varpool_hash_node): Rename hash_varpool_node;
3887 (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3888 pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3889 (cgraph_node): Allocate a temporary node on the stack, fill in
3890 its DECL field, and pass that to htab_find_slot.
3891 (cgraph_varpool_node): Likewise.
3892 (cgraph_function_possibly_inlined_p): If global info is ready,
3893 return the DECL_POSSIBLY_INLINED bit.
3894 * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3895 instead of mucking with cgraph_inline_hash.
3897 2004-05-22 Joseph S. Myers <jsm@polyomino.org.uk>
3899 * doc/contrib.texi: Add g77 contributors.
3901 2004-05-22 Richard Sandiford <rsandifo@redhat.com>
3903 * calls.c (initialize_argument_information): Forbid sibcalls if a
3904 callee-copied argument is stored in the current function's frame.
3906 2004-05-22 Eric Christopher <echristo@redhat.com>
3908 * fix-header.c (read_scan_file): Update for add_path change.
3910 2004-05-22 Ben Elliston <bje@au.ibm.com>
3912 * c.opt (Wmissing-include-dirs): New.
3913 * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3914 to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3915 OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3916 * c-incpath.h (add_path): Add fourth (bool) argument.
3917 * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3918 (add_standard_paths): Likewise.
3919 (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3920 is used and the directory was user-supplied via -I.
3921 (add_path): Set p->user_supplied_p. Remove duplicated code by
3922 using add_cpp_dir_path ().
3923 * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3924 (struct cpp_dir): Add user_supplied_p.
3925 * doc/invoke.texi (Warning Options): Document new option.
3927 2004-05-21 Ulrich Weigand <uweigand@de.ibm.com>
3929 * fold-const.c (fold_read_from_constant_string): Convert result to
3932 2004-05-21 Richard Henderson <rth@redhat.com>
3934 * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3935 (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3936 Don't mark VA_ARG_EXPRs volatile here.
3937 (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3939 2004-05-21 Richard Henderson <rth@redhat.com>
3941 * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3942 * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3944 2004-05-21 Roger Sayle <roger@eyesopen.com>
3946 * fold-const.c (fold, fold_relational_hi_lo,
3947 nondestructive_fold_binary_to_constant,
3948 fold_read_from_constant_string): Use fold_convert instead of convert.
3949 * builtins.c (simplify_builtin, simplify_builtin_strstr,
3950 simplify_builtin_strchr, simplify_builtin_strrchr,
3951 simplify_builtin_strpbrk): Use fold_convert instead of convert.
3953 2004-05-21 Diego Novillo <dnovillo@redhat.com>
3955 * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3958 2004-05-21 Jakub Jelinek <jakub@redhat.com>
3960 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3961 override sparc.h definition.