OSDN Git Service

* Makefile.in (distclean): Don't try to remove empty directories.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2
3         * Makefile.in (distclean): Don't try to remove empty directories.
4
5 2004-06-22  Richard Sandiford  <rsandifo@redhat.com>
6
7         PR target/15869
8         * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
9
10 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
11
12         * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
13         operands.
14
15 2004-06-22  Dale Johannesen  <dalej@apple.com>
16
17         * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
18         global, rename rs6000_legitimate_offset_address_p.
19         (rs6000_legitimate_address_p): Adjust calls to it.
20         (lmw_operation): Ditto.
21         (stmw_operation): Ditto.
22         * config/rs6000/rs6000-protos.h: Declare it.
23         * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
24         instead of offsettable_memref_p.
25
26 2004-06-22  Dale Johannesen  <dalej@apple.com>
27
28         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
29         [reg+reg] mode for TFmode memory accesses.
30         (rs6000_eliminate_indexed_memrefs): New.
31         (rs6000_emit_move): Call preceding for TImode and TFmode.
32
33 2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
34
35         * tree-cfg.c (pass_warn_function_return): It needs
36         CFG, not SSA.
37
38 2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>
39
40         * doc/invoke.texi (Machine Dependent Options): Alphabetize.
41         (Submodel Options): Likewise.
42
43 2004-06-21  Andrew Pinski  <apinski@apple.com>
44
45         Radar #: 3701874
46         * c-decl.c (push_file_scope): Return early if we already
47         have a file scope.
48
49 2004-06-21  Geoffrey Keating  <geoffk@apple.com>
50
51         * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
52         * c-common.h (flag_pch_preprocess): Declare.
53         (c_common_pch_pragma): Likewise.
54         * c-common.c (flag_pch_preprocess): New.
55         * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
56         (c_common_pch_pragma): New.
57         * c-ppoutput.c (cb_read_pch): New.
58         (init_pp_output): Support -fpch-preprocess.
59         * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
60         * c.opt (fpch-preprocess): New.
61         * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
62         * doc/cppopts.texi: Document -fpch-preprocess.
63         * doc/invoke.texi (Precompiled Headers): Mention that
64         -fpreprocessed is safe for PCH.  Mention that if an option is
65         listed as safe that doesn't mean it does what you expect.
66
67 2004-06-22  Ben Elliston  <bje@au.ibm.com>
68
69         * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
70
71 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
72
73         * Makefile.in (gimplify.o): Add cgraph.h.
74         * alias.c (adjust_offset_for_component_ref): Use
75         component_ref_field_offset.
76         * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
77         * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
78         (gimplify_decl_stmt): Call gimplify_type_sizes for type.
79         For decl, call gimplify_one_sizepos and use statement list.
80         (gimplify_compound_literal_expr): New arg PRE_P.
81         Add statement to PRE_P list and return DECL.
82         (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
83         gimplify_compound_literal_expr.
84         * c-tree.h (getdecls): Deleted.
85         * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
86         (build_array_ref): Add two operands for ARRAY_REF.
87         (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
88         COMPOUND_LITERAL_EXPR.
89         * coverage.c (tree_coverage_counter_ref): Add new operands
90         for ARRAY_REF.
91         * emit-rtl.c (component_ref_for_mem_expr): Add new operand
92         for COMPONENT_REF.
93         (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
94         and array_ref_element_size.
95         (widen_memory_access):Use component_ref_field_offset.
96         * explow.c (update_nonlocal_goto_save_area): Add two operands
97         for ARRAY_REF.
98         * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
99         (component_ref_field_offset): Likewise.
100         (get_inner_reference): Use them.
101         (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
102         * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
103         (fold_read_from_constant_string): Use array_ref_low_bound.
104         Verify that result is a character type.
105         (build_fold_indirect_ref): Add two operands for ARRAY_REF.
106         * function.c (expand_function_start): Likewise.
107         * gimple-low.c (expand_var_p): Delete duplicated line.
108         * gimplify.c: Add static decls for local functions.
109         (cgraph.h): Now included.
110         (create_tmp_var): Remove check for ARRAY_TYPE.
111         (copy_if_shared_r): Look at bounds and sizes of types.
112         (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
113         (gimplify_exit_expr, shortcut_cond_expr): Likewise.
114         (gimplify_save_expr, gimple_push_cleanup): Likewise.
115         (gimplify_init_constructor): Likewise.
116         WANT_VALUE now bool.
117         If empty list with no result wanted, return GS_UNHANDLED.
118         Add additional operands for ARRAY_REF and COMPONENT_REF.
119         (canonicalize_component_ref): Convert to &array[L].
120         (gimplify_array_ref_to_plus): Use array_ref_element_size and
121         array_ref_lower_bound.
122         (build_addr_expr_with_type, build_addr_expr): New functions.
123         (gimplify_compound_lval): WANT_LVALUE now bool.
124         Major rework to allow handle_component_p and initialize and
125         gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
126         COMPONENT_REF.
127         (gimplify_array_ref): Deleted.
128         (gimplify_self_mod_expr): WANT_VALUE now bool.
129         (gimplify_modify_expr): Gimplify to_p and from_p later.
130         Factor out code into gimplify_modify_expr_rhs and call twice.
131         Move variable-size code earlier and handle PLACEHOLDER_EXPR.
132         (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
133         (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
134         (gimplify_expr, case ARRAY_REF): Delete special case.
135         Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
136         IMAGPART, and REALPART the same way.
137         (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
138         (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
139         Call alloc_stmt_list instead of build_empty_stmt.
140         Deal with _REF that's volatile.
141         (gimplify_type_sizes, gimplify_one_sizepos): New functions.
142         (unshare_body, unvisit_body): New functions.
143         (gimplify_body): Call them.
144         * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
145         * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
146         * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
147         * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
148         like ARRAY_REF.
149         (verify_expr, case ADDR_EXPR): Use handled_component_p.
150         * tree-dfa.c (get_virtual_var): Likewise.
151         * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
152         New cases to dump new operands; likewise for ARRAY_RANGE_REF.
153         * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
154         * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
155         and INDIRECT_REF.
156         (get_base_address): Use handled_component_p.
157         * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
158         * tree-inline.c (walk_tree): Walk more things for types and decls.
159         * tree-mudflap.c (mf_build_check_statement_for): Add new operands
160         for ARRAY_REF and COMPONENT_REF.
161         (mx_xform_derefs_1): Clean up usage of decl sizes.
162         * tree-nested.c (build_addr): Use handled_component_p.
163         (walk_stmts, case CATCH_EXPR): Add missing "break".
164         (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
165         (finalize_nesting_tree_1): Likewise.
166         (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
167         and process additional operands.
168         (convert_local_reference): Likewise.
169         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
170         ARRAY_RANGE_REF similarly to ARRAY_REF.
171         * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
172         like RECORD_TYPE.
173         (dump_generic_node, case COMPONENT_REF): Print offset operand.
174         (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
175         and print lower bound and element size for both.
176         (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
177         * tree-sra.c (csc_build_component_ref): Add new operand.
178         (scalarize_call_expr): Use get_base_address.
179         * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
180         (maybe_fold_offset_to_array_ref): Rework to handle input having an
181         ARRAY_REF, refine handling of lower bound, and add new operands
182         for ARRAY_REF.
183         (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
184         (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
185         (maybe_fold_stmt_addition): Only handle constant lower bound.
186         * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
187         Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
188         Look at new offset operand of COMPONENT_REF.
189         * tree-ssa.c (set_is_used): Use handled_component_p.
190         * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
191         (stabilize_reference, case COMPONENT_REF): Likewise.
192         (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
193         (recompute_tree_invariant_for_addr_expr): Completely rework to
194         be more precise.  Also set TREE_SIDE_EFFECTS.
195         (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
196         (build2_stat, build3_stat, build4_stat): For references,
197         propagate TREE_THIS_VOLATILE.
198         (get_unwidened): Add new operand for COMPONENT_REF.
199         (get_narrower): Likewise; use host_integerp for DECL_SIZE.
200         * tree.def (COMPONENT_REF): Add new operand.
201         (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
202         * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
203         (component_ref_field_offset): Likewise.
204         * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
205         (alpha_gimplify_va_arg): Likewise.
206         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
207         * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
208         * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
209         * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
210         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
211         Likewise.
212         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
213         * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
214         * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
215         Likewise.
216         (xstormy16_expand_builtin_va_arg): Likewise.
217         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
218         * objc/objc-act.c (generate_static_references): Likewise.
219         (generate_strings, build_method_prototype_list_template): Likewise.
220         (generate_protocol_list): Likewise.
221
222 2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
223
224         PR rtl-optimization/14782
225         * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
226         the address checks for secondary reloads for loads from and stores
227         to floating-point registers.
228         * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
229         in the address check.  Move work around for ELF32 targets to
230         GO_IF_LEGITIMATE_ADDRESS.
231         (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
232         correctly aligned for DImode loads and stores.  Don't allow long
233         SFmode displacements on ELF32.
234
235 2004-06-21  Richard Henderson  <rth@redhat.com>
236
237         PR rtl-opt/16114
238         * cse.c (merge_equiv_classes): Also rehash in response to
239         delete_reg_equiv changes.
240         (rehash_using_reg): Don't exclude REGs from rehashing.
241
242 2004-06-21  Richard Henderson  <rth@redhat.com>
243
244         * c-common.def (RETURN_STMT): Remove.
245         * c-common.h (RETURN_STMT_EXPR): Remove.
246         (c_expand_return, build_return_stmt): Remove.
247         (c_common_stmt_codes): Remove RETURN_STMT.
248         * c-dump.c (dump_next_stmt): Remove.
249         (c_dump_tree): Remove RETURN_STMT.
250         * c-decl.c (finish_function): Use c_finish_return.
251         * c-parse.in (stmt): Likewise.
252         * c-gimplify.c (gimplify_return_stmt): Remove.
253         (c_gimplify_expr): Remove RETURN_STMT.
254         * c-pretty-print.c (pp_c_statement): Likewise.
255         * c-semantics.c (build_return_stmt): Remove.
256         * c-tree.h (c_finish_return): Declare.
257         * c-typeck.c (c_finish_return): Rename from c_expand_return.
258         Return void.  Build RETURN_EXPR directly.
259         * tree-dump.h (dump_next_stmt): Remove.
260
261 2004-06-21  Zack Weinberg  <zack@codesourcery.com>
262
263         * c-decl.c (start_function): Don't call make_decl_rtl.  Don't
264         look at TREE_ADDRESSABLE of symbol name.
265
266 2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>
267
268         PR target/15551
269         * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
270         (allocate_stack_worker): Make unspec_volatile.
271         (allocate_stack_worker_rex64):  Likewise.
272         (allocate_stack_worker_postreload):  Likewise.
273         (allocate_stack_worker_rex64_postreload):  Likewise.
274
275 2004-06-21  Daniel Berlin  <dberlin@dberlin.org>
276
277         Fix PR optimization/15982
278         * tree-ssa-pre.c: Update a few comments and todos to
279         reflect constants change.
280         (get_value_handle): Constants now value number to themselves.
281         (lookup): Constants lookup to themselves.
282         (add_to_value): Adjust to always be on.
283         (set_contains_value): Adjust for constants change.
284         (find_leader): Ditto.
285         (phi_translate): 'r' nodes are never ANTIC right now.
286         (valid_in_set): Ditto.
287         (get_expr_set): New function.
288         (find_or_generate_expression): New function, broken out from
289         insert_aux.
290         (create_expression_by_pieces): Ditto, plus additional
291         machinery to handle complex values.
292         (compute_avail): Remove dead RETURN_EXPR handling.
293
294 2004-06-21  Steven Bosscher  <stevenb@suse.de>
295
296         * config/i386/i386.c: Include insn-codes.h
297         * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
298         define here.
299         * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
300         DIRFLAG_REG): New define_constants.  Use them everywhere.
301
302 2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>
303
304         * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
305
306 2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
307
308         * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define.
309         (SUPPORT_SH4_SINGLE): Likewise.
310         (TARGET_SWITCHES): Break out switches for cpu subtargets:
311         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
312         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
313         (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
314         (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
315         (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
316         (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
317         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
318         (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
319         (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
320         (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
321         (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
322         (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
323         (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
324         * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
325         (TARGET_DEFAULT): Likewise.
326         * config/sh/t-elf: Amend comment.
327         * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
328         * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
329         * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
330         * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
331         * config/sh/t-mlib-sh4-single: Likewise.
332         * config/sh/t-mlib-sh4-single-only: Likewise.
333         * config/sh/t-mlib-sh5-32media: Likewise.
334         * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
335         * config/sh/t-mlib-sh5-64media: Likewise.
336         * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
337         * config/sh/t-mlib-sh5-compact: Likewise.
338         * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
339         * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
340         (MULTILIB_CPUS): Define.
341         (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
342         (MULTILIB_MATCHES): Use some shell code to calculate it.
343         (MULTILIB_EXCEPTIONS): Change to ml/m1.
344         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
345         * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
346         (LINK_DEFAULT_CPU_EMUL): Don't redefine.
347         (NO_PROFILE_COUNTERS): Define to 1.
348         * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
349         (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
350         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
351         (MULTILIB_MATCHES): Don't zap.
352         (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
353         * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
354         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
355         (MULTILIB_RAW_DIRNAMES): Define.
356         (MULTILIB_DIRNAMES): Use it.
357         * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
358         (sh*linux configurations): Merge into:
359         (sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
360         --with-multilib-list options.  Support sh-superh-elf configuration.
361         (sh*-netbsd*): Use SELECT_SH* macros.
362         (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
363         Merge sh*-*-netbsd* configurations into sh-elf configurations.
364         * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
365         * config/sh/t-monolib: Likewise.
366
367 2004-06-21  Paul Brook  <paul@codesourcery.com>
368
369         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
370         not imply FPA.
371
372 2004-06-21  Roger Sayle  <roger@eyesopen.com>
373
374         * fold-const.c (operand_equal_p): Pass flags in recursive calls for
375         binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
376         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
377         * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
378         ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
379         and TRUTH_XOR_EXPR.
380
381 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
382
383         * rtlanal.c (may_trap_p): Mark LTGT as trapping.
384
385 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
386
387         * tree-alias-common.h (struct tree_alias_ops): Change ip and
388         ip_partial to unsigned int.
389
390 2004-06-21  Richard Henderson  <rth@redhat.com>
391
392         * c-common.c (verify_sequence_points): Export.
393         (c_expand_expr_stmt): Move to c-typeck.c.
394         * c-common.h (c_expand_expr_stmt): Remove.
395         (verify_sequence_points): Declare.
396         * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
397         * c-parse.in (for_init_stmt, stmt): Likewise.
398         * c-tree.h (c_finish_expr_stmt): Declare.
399         (c_tree_expr_nonnegative_p): Remove.
400         * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
401         (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
402         (emit_side_effect_warnings): New.
403         (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
404         (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
405         Use emit_side_effect_warnings.
406         (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
407         * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
408         * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
409         with void initializer.
410         (gimplify_target_expr): Handle void BIND_EXPR initializer.
411         * tree-inline.c (estimate_num_insns_1): Fix type lookup for
412         INIT_EXPR and MODIFY_EXPR.
413         * objc/objc-act.c (build_module_descriptor): Use add_stmt
414         instead of c_expand_expr_stmt.
415
416 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
417
418         * fold-const.c (fold_cond_expr_with_comparison):
419         New function, extracted from fold.
420         (fold): Extract code to fold A op B ? A : C, use
421         it to fold A op B ? C : A.  Really optimize
422         A & N ? N : 0 where N is a power of two.  Avoid
423         relying on canonicalization and recursion for
424         foldings of COND_EXPR to happen.
425
426 2004-06-20  David Ayers  <d.ayers@inode.at>
427
428         * objc/objc-act.h (get_object_reference): Rename to
429         get_protocol_reference.
430         (super_type): Rename to objc_super_type.
431         (selector_type): Rename to objc_selector_type.
432         (id_type): Rename to objc_id_type.
433         (instance_type): Rename to objc_instance_type.
434         (protocol_type): Rename to objc_protocol_type.
435         (IS_ID): Update reference to id_type.
436         * objc/objc-act.c (get_object_reference): Rename to
437         get_protocol_reference; add documentation; update references to
438         id_type.
439         (lookup_method_in_protocol_list): Rename class_meth to
440         is_class; add documentation.
441         (finish_message_expr): Rename is_class to class_tree.
442         (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
443         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
444         build_next_objc_exception_stuff, get_arg_type_list,
445         build_objc_method_call): Update references to id_type.
446         (synth_module_prologue, build_objc_symtab_template,
447         build_selector_reference_decl, build_selector,
448         build_selector_translation_table, build_typed_selector_reference,
449         get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
450         synth_self_and_ucmd_args): Update references to selector_type.
451         (build_private_template, build_ivar_reference): Update references
452         to instance_type.
453         (synth_module_prologue, build_protocol_reference,
454         build_protocol_expr, start_protocol): Update references to
455         protocol_type.
456         (synth_module_prologue, get_arg_type_list, build_objc_method_call):
457         Update references to super_type.
458         * c-parse.in: (typespec_nonreserved_nonattr): Update
459         references to get_object_reference.
460         * objc/objc-tree.def: Add C mode identifier sequence.
461
462 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
463
464         * loop-invariant.c: New file.
465         * Makefile.in (loop-invariant.o): New.
466         * cfgloop.h (global_cost_for_size, init_set_costs,
467         move_loop_invariants): Declare.
468         * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
469         functions.
470         (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
471         variables.
472         * common.opt (floop-optimize2, fmove-loop-invariants): New options.
473         * loop-init.c (loop_optimizer_init): Call init_set_costs.
474         * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
475         (rest_of_compilation): Check flag_loop_optimize2.
476         * toplev.c (process_options): Handle flag_loop_optimize2.
477         * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
478         * doc/passes.texi (loop-invariant.c): Document.
479
480 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
481
482         * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
483
484 2004-06-20  Richard Henderson  <rth@redhat.com>
485
486         * stmt.c (warn_if_unused_value): Add locus argument.
487         * tree.h (warn_if_unused_value): Update decl.
488         * c-typeck.c (internal_build_compound_expr): Update call.
489         * c-gimplify.c (gimplify_expr_stmt): Likewise.
490
491 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
492
493         PR middle-end/16089
494         * builtins.c (entry_of_function): Move to ...
495         * cfgrtl.c (entry_of_function): Here and make non-static.
496         * integrate.c (emit_initial_value_sets): Use entry_of_function.
497         * rtl.h (entry_of_function): Prototype.
498
499 2004-06-20  Roger Sayle  <roger@eyesopen.com>
500
501         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
502         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
503         TARGET_DECOMPOSE_LEA.
504
505 2004-06-20  Richard Henderson  <rth@redhat.com>
506
507         * c-common.h (add_decl_stmt): Move to cp-tree.h.
508         * c-decl.c (finish_decl): Don't use add_decl_stmt.
509         * c-parse.in: Likewise.
510         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
511         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
512         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
513
514 2004-06-20  Richard Henderson  <rth@redhat.com>
515
516         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
517         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
518         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
519         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
520         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
521         * c-pretty-print.c (pp_c_statement): Similarly.
522         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
523         gimplify_if_stmt): Move to cp-gimplify.c.
524         (c_genericize, c_gimplify_expr): Don't call them.
525         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
526         * c-typeck.c (push_cleanup): New.
527         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
528         c_finish_if_stmt): Use COND_EXPR.
529         * tree.h (CLEANUP_EH_ONLY): Update documentation.
530
531 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
532
533         * c-common.h (has_c_linkage): New interface.
534         * c-cppbuiltin.c: Include target.h.
535         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
536         __PRAGMA_EXTERN_PREFIX when appropriate.
537         * c-pragma.c: Include target.h.
538         Document clarified semantics of symbol-renaming #pragmas.
539         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
540         (maybe_apply_renaming_pragma): Rewrite according to clarified
541         semantics.  Always recognize, but do not necessarily execute.
542         (init_pragma): Unconditionally register symbol-renaming pragmas.
543         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
544         and HANDLE_PRAGMA_EXTERN_PREFIX.
545         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
546         and handle_pragma_extern_prefix flags.
547         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
548         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
549         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
550         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
551         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
552         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
553         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
554         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
555         not HANDLE_PRAGMA_EXTERN_PREFIX.
556         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
557         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
558         into one section "Symbol-Renaming Pragmas"; clarify; document
559         adjusted semantics.
560
561         * builtins.c (expand_builtin): Do not issue error for a builtin
562         with no special case code and no DECL_ASSEMBLER_NAME; just do the
563         library call.
564         * c-decl.c (builtin_function): Don't call make_decl_rtl.
565         * c-objc-common.c (has_c_linkage): Stub implementation.
566         * cgraphunit.c (cgraph_expand_function)
567         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
568
569 2004-06-19  Roger Sayle  <roger@eyesopen.com>
570
571         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
572         instead of both an ARGLIST and a result TYPE.  Handle these C99
573         comparison functions as "polymorphic" builtins.  Also handle
574         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
575         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
576         Move handling of BUILT_IN_ISUNORDERED from here to there.
577
578 2004-06-19  Richard Henderson  <rth@redhat.com>
579
580         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
581         * c-gimplify.c: Remove unnecessary prototypes.
582         (c_gimplify_stmt): Merge into ...
583         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
584         * c-semantics.c (prep_stmt): Remove.
585         * gimplify.c (annotate_one_with_locus): Break out from ...
586         (annotate_all_with_locus): ... here.
587         (gimplify_expr): Add locus to expressions even if pre/post queues
588         are not present.
589
590 2004-06-19  Richard Henderson  <rth@redhat.com>
591
592         PR target/15941
593         * function.c (assign_parms): If not padding upward or intentionally
594         forcing upward padding, take offset_rtx into account when determining
595         the alignment for stack_parm.
596
597 2004-06-19  Richard Henderson  <rth@redhat.com>
598
599         PR target/15550
600         * ifcvt.c (noce_try_move): Recognize all generated instructions.
601
602 2004-06-19  Jan Hubicka  <jh@suse.cz>
603
604         * function.c (free_after_compilation): Do not free computed_goto_common*.
605         * function.h (struct function): Kill computed_goto_common*.
606         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
607         * tree-cfg.c (disband_implicit_edges): Do not forward across the
608         commonized computed goto.
609
610 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
611
612         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
613         in binutils.
614
615 2004-06-19  Andrew Pinski  <apinski@apple.com>
616
617         PR c++/15721
618         * toplev.c (wrapup_global_declarations): Do not check
619         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
620         cgraph_varpool_node's needed field.
621
622 2004-06-19  Jan Hubicka  <jh@suse.cz>
623             Steven Bosscher  <stevenb@suse.de>
624
625         CFG transparent RTL expansion:
626         * Makefile.in (cfgexpand.o): New object file.
627         (builtins.o): Add dependency on basic-block.h
628         * builtins.c: Include basic-block.h
629         (entry_of_function): New function.
630         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
631         * cfgexpand.c: New file.
632         * expr.c (execute_expand, pass_expand): Kill.
633         * pass.c (rest_of_compilation): Do not build CFG unless called from
634         coverage code.
635         * tree-cfg.c (delete_tree_cfg): Rename to..
636         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
637         * tree-flow.h (delete_tree_cfg_annotations): Declare.
638         (dleete_tree_cfg): Kill.
639         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
640         (execute_del_cfg): Rename to...
641         (execute_free_datastructures): This one...
642         (pass_del_cfg): Rename to...
643         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
644         (init_tree_optimization_passes): Make cfg build and profiling to happen
645         unconditionally.
646
647 2004-06-19  Steven Bosscher  <stevenb@suse.de>
648
649         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
650         inserting the cache variables.
651
652         * tree-mudflap.c: Include headers to make basic_block available.
653         Move functions around such that related functions are near each
654         other.  Add prototypes for all static functions.  Add comments
655         briefly explaining what IR the mudflap1 and mudflap2 work on and
656         what they do.
657         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
658         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
659         (pass_mudflap_1, pass_mudflap_2): Update.
660         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
661         function tree.
662         (mf_build_check_statement_for): Make it work on the CFG.
663         (mf_xform_derefs_1): Likewise.  Cleanup code style.
664         (mf_xform_derefs): Likewise.
665
666 2004-06-19  Jan Hubicka  <jh@suse.cz>
667
668         * tree-cfg.c (label_to_block): Invent the label destination for
669         undefined labels.
670         (cleanup_dead_labels): Update table in the case label_to_block added
671         new label.
672
673 2004-06-18  Richard Henderson  <rth@redhat.com>
674
675         PR c++/16036
676         * gimple-low.c (lower_function_body): Generate return statement for
677         fall off the end of the function here ...
678         * tree-cfg.c (make_edges): ... instead of here.
679         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
680
681 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
682
683         * tree-ssa.c (raise_value): Removed.
684         (get_eq_name, check_phi_redundancy): New functions.
685         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
686
687 2004-06-18  Roger Sayle  <roger@eyesopen.com>
688
689         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
690         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
691         constant folding for unordered comparison tree nodes.  If both
692         operands are real constants, call fold_relational_const.  If either
693         operand is a NaN, evaluate the other for side-effects and return a
694         constant.  Optimize (double)float1 CMP (double)float2 into the
695         equivalent float1 CMP float2.
696         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
697         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
698         LTGT_EXPR>: Call fold_relational_const for constant operands.
699         (fold_relational_const): Add support for unordered comparison tree
700         nodes.  Don't constant fold "ordered" floating point comparisons
701         against NaN if when flag_trapping_math is set.
702
703 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
704
705         * fold-const.c (build_range_check): If !in_p and recursive call
706         fails, exit immediately.  If high - low overflows and etype is
707         a signed type, retry with unsigned etype.
708         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
709         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
710
711 2004-06-18  Richard Henderson  <rth@redhat.com>
712
713         * c-gimplify.c (gimplify_condition): Remove.
714         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
715         call it.
716
717 2004-06-18  Richard Henderson  <rth@redhat.com>
718
719         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
720         switch estimates.
721
722 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
723
724         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
725         (NORMAL_TEXT_SECTION_NAME): Define.
726         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
727         (SECTION_FORMAT_STRING): Define.
728
729 2004-06-18  Steven Bosscher  <stevenb@suse.de>
730
731         * config/xtensa/xtensa.c
732         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
733         * xtensa.md: Replace the old pipeline description with a DFA model.
734
735 2004-06-18  Steven Bosscher  <stevenb@suse.de>
736             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
737
738         * config/s390/s390.md: Remove the generic pipeline description.
739         * config/s390/2064.md: Make all insn reservations apply to
740         the z900, g5 and g6.
741         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
742         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
743         Define to hook_int_void_1.
744         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
745         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
746
747 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
748                         Diego Novillo  <dnovillo@redhat.com>
749
750         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
751         (create_stmt_ann): Ditto.
752         (create_tree_ann): New function.
753         (create_cst_ann): Remove.
754         (create_expr_ann): Ditto.
755
756         * tree-flow-inline.h (cst_ann): Remove.
757         (get_cst_ann): Ditto.
758         (get_expr_ann): Ditto.
759         (expr_ann): Ditto.
760         (get_tree_ann): New function.
761         (tree_ann): Ditto.
762         (ann_type): tree_ann -> tree_ann_t.
763         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
764         (struct cst_ann_d): Removed.
765         (struct expr_ann_d): Ditto.
766         (union tree_ann_d): Removed cst and expr.
767         (tree_ann): Renamed to tree_ann_t.
768         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
769         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
770         annotation.
771         (set_value_handle): Ditto.
772         (phi_translate): Ditto.
773         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
774
775 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
776
777         * config/sh/t-linux64: New file.
778         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
779
780 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
781
782         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
783         (unshare_all_rtl_again): Call unshare_all_rtl_1.
784         (unshare_all_rtl): New.
785         * function.c (instantiate_virtual_regs): Remove parameters.
786         * function.h (instantiate_virtual_regs): Add prototype.
787         * rtl.h (unshare_all_rtl): Add prototype.
788         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
789         prototype.
790         * passes.c: Remove assertions on the parameters to
791         rest_of_handle_* functions.  Remove the parameters to
792         the functions, replacing decl with current_function_decl
793         and insns with get_insns ().
794
795 2004-06-17  Roger Sayle  <roger@eyesopen.com>
796
797         * fold-const.c (constant_boolean_node): Handle boolean_type_node
798         directly, return either boolean_true_node or boolean_false_node.
799
800 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
801
802         * opts.sh: Delete.  Break out generated code to next four files.
803         * opt-gather.awk: New file.
804         * optc-gen.awk: New file.
805         * opth-gen.awk: New file.
806         * opt-functions.awk: New common file.
807         * Makefile.in: Update for above.
808         * configure.ac: Update comment.
809         * configure: Regenerate.
810
811 2004-06-17  Richard Henderson  <rth@redhat.com>
812
813         * c-common.c (flag_objc_sjlj_exceptions): New.
814         * c-common.h (flag_objc_sjlj_exceptions): Declare.
815         * c-opts.c (c_common_handle_option): Set it.
816         (c_common_post_options): Handle interation of different
817         objective-c exception and runtime switches.
818         * c-decl.c (c_eh_initialized_p): New.
819         (finish_decl): Use it instead of local eh_initialized_p.
820         * c-parse.in (nested_function, notype_nested_function): Record
821         the result of compstmt.
822         (compstmt_or_error): Likewise.
823         (compstmt): Don't add_stmt the result.
824         (stmt): Don't return anything.  Rewrite objc try and sync rules.
825         (objc_try_stmt, objc_catch_list): Remove.
826         (objc_catch_block, objc_finally_block): Remove.
827         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
828         (objc_try_catch_clause, objc_finally_clause): New.
829         (objc_try_catch_stmt): Rewrite.
830         * c-tree.h (c_eh_initialized_p): Declare.
831         * c-opt (fobjc-sjlj-exceptions): New.
832         * except.c (output_function_exception_table): Don't call cgraph
833         on non-decls.
834         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
835         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
836         catch_count_stack, exc_binding_stack, if_nesting_count,
837         blk_nesting_count, objc_enter_block, objc_exit_block,
838         objc_declare_variable, val_stack_push, val_stack_pop,
839         objc_build_try_enter_fragment, objc_build_extract_expr,
840         objc_build_try_exit_fragment, objc_build_extract_fragment,
841         objc_build_try_prologue, objc_build_try_epilogue,
842         objc_build_catch_stmt, objc_build_catch_epilogue,
843         objc_build_finally_prologue, objc_build_finally_epilogue,
844         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
845         objc_build_synchronized_epilogue): Remove.
846         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
847         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
848         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
849         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
850         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
851         objc_begin_catch_clause, objc_finish_catch_clause,
852         objc_build_finally_clause, objc_finish_try_stmt,
853         objc_build_synchronized): New.
854         (objc_is_object_id, objc_is_class_id): New.
855         (objc_comptypes): Use them.
856         (build_next_objc_exception_stuff): Break NeXT sjlj out from
857         build_objc_exception_stuff.
858         (synth_module_prologue): Update to match.
859         (objc_build_throw_stmt): Use cur_try_context to decide if
860         we're in a @catch.
861         * objc/objc-act.h: Update prototypes.
862         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
863
864 2004-06-17  Andrew Pinski <apinski@apple.com>
865
866         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
867         Use TYPE_FIELDS instead of TYPE_VALUES.
868
869 2004-06-17  Jason Merrill  <jason@redhat.com>
870
871         PR c++/16015
872         * gimplify.c (gimplify_target_expr): Handle void initializer.
873         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
874         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
875         and AGGR_INIT_EXPR.
876
877 2004-06-17  Roger Sayle  <roger@eyesopen.com>
878
879         * fold-const.c (fold_relational_const): Use constant_boolean_node.
880
881 2004-06-17  Jan Hubicka  <jh@suse.cz>
882
883         PR target/15433
884         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
885         operand numbering in the output template.
886         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
887
888 2004-06-17  Jan Hubicka  <jh@suse.cz>
889
890         * except.c (can_throw_internal): Recognize RESX expresisons.
891
892 2004-06-17  Jan Hubicka  <jh@suse.cz>
893
894         * cfgbuild.c (make_edges): Do not use label_value_list.
895         (find_basic_blocks_1): Do not collect label_value_list.
896         (find_sub_basic_blocks): Update call of make_edges.
897
898 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
899
900         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
901         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
902         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
903         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
904         (get_v_may_def_result_ptr):  Return a def_operand_p.
905         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
906         (get_v_must_def_op_ptr):  Return a def_operand_p.
907         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
908         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
909         (phi_element_for_edge):  Remove.
910         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
911         (propagate_tree_value):  Add new prototype.
912         (phi_element_for_edge):  Remove prototype.
913         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
914         (prepare_operand_for_rename):  Split into two functions.
915         (prepare_use_operand_for_rename):  Prepare use operands.
916         (prepare_def_operand_for_rename):  Prepare def operands.
917         (rewrite_stmt):  Use new operand types.
918         (rewrite_operand):  Use new operand types, change parameter type.
919         * tree-outof-ssa.c (replace_variable):  Split into two functions.
920         (replace_use_variable):  Rewrite uses.
921         (replace_def_variable):  Rewrite defs.
922         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
923         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
924         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
925         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
926         (ccp_fold, replace_uses_in):  Use new operand types.
927         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
928         and no longer set the value, change parameter type.
929         (replace_exp_1):  Use new operand types.
930         (propagate_value):  Change parameter type, use new operand types.
931         (propagate_tree_value):  Propagate_value without SSA operands.
932         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
933         (cprop_into_successor_phis):  Use new operand types.
934         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
935         (eliminate_redundant_computations):  Use new operand types.
936         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
937         (fix_stmt_v_may_defs):  Use new operand_types.
938         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
939         (build_tree_conflict_graph):  Use new operand_types.
940         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
941         * tree-ssa-operands.c (struct freelist_d):  Remove.
942         (check_optype_freelist, add_optype_freelist):  Remove.
943         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
944         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
945         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
946         Call ggc_free instead of add_optype_freelist.
947         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
948         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
949         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
950         (struct use_optype_d):  Change underlying type.
951         (def_operand_p, use_operand_p):  New types for pointers to operands.
952         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
953         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
954         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
955         pointer types.
956         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
957         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
958         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
959         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
960         PHI result as an operand.
961         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
962         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
963         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
964         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
965         PHI_ARG_DEF_FROM_EDGE.
966         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
967         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
968
969 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
970
971         PR tree-optimization/15991
972         * tree-cfg.c (tree_block_label): Export.
973         * tree-flow-inline.h (bsi_after_labels): New function.
974         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
975         * tree-ssa.c (propagate_into_addr): New function.
976         (replace_immediate_uses): Handle propagation of pointer constants.
977         (raise_value): Do not restrict propagation of pointer constants.
978         * tree-ssanames.c (duplicate_ssa_name): New function.
979         * tree.h (duplicate_ssa_name): Declare.
980
981 2004-06-17  David Ayers  <d.ayers@inode.at>
982
983         * c-parse.in: Unify Objective-C token names.
984
985 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
986
987         Bug 14610
988         * Makefile.in (min-insn-modes.o): Correct dependencies.
989         * real.c (encode_ieee_extended, decode_ieee_extended): Always
990         produce/consume 12-byte little-endian Intel format.
991         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
992         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
993         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
994         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
995         New functions which convert between 12-byte little-endian Intel
996         format and the desired format.
997         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
998         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
999         Update.
1000
1001 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
1002
1003         * expmed.c (expand_mult_const): In sanity check, compare only
1004         the bits of val and val_so_far that are significant in the
1005         result mode.
1006
1007 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
1008
1009         * tree-ssa-pre.c:  Update comments.
1010         (val_expr_pair_eq): Factor code from here.
1011         (expr_pred_trans_eq): and here.
1012         (expressions_equal_p): To here.
1013         (print_value_set): Print value for expression.
1014         (phi_trans_lookup): Rename some variables.
1015         (lookup): Ditto.
1016         (value_exists_in_set_bitmap): Ditto.
1017         (value_remove_from_set_bitmap): Ditto.
1018         (value_insert_into_set_bitmap): Ditto.
1019
1020 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
1021
1022         * config/s390/s390-modes.def (CCL3mode): New machine mode.
1023         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
1024         (s390_alc_comparison, s390_slb_comparison): Likewise.
1025         (s390_branch_condition_mask): Likewise.
1026         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
1027         ("*subsi3_cc2", "*subsi3_cconly2"): New.
1028
1029         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
1030         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
1031         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
1032         Handle SIGN_EXTEND and ZERO_EXTEND.
1033
1034         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
1035         * config/s390/s390.c (s390_expand_addcc): New function.
1036         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
1037         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
1038         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
1039
1040 2004-06-17  Ben Elliston  <bje@au.ibm.com>
1041
1042         * tree-alias-common.c: Add whitespace.
1043         * tree-inline.c: Correct comment about this file's purpose.
1044         * tree-optimize.c: Likewise.
1045         * tree-tailcall.c: Likewise.
1046
1047         * tree-alias-ander.h: Add standard top-of-file comment.
1048         * tree-alias-common.h: Likewise.
1049         * tree-alias-type.h: Likewise.
1050
1051 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
1052
1053         * tree-ssa-pre.c (compute_avail): Value number uses as well.
1054         Strip useless type conversions.
1055         Casts have to be treated slightly different than normal unaries.
1056
1057 2004-06-16  Richard Henderson  <rth@redhat.com>
1058
1059         * c-common.def (COMPOUND_STMT): Remove.
1060         * c-common.c (finish_fname_decls): Don't look through it.
1061         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
1062         * c-common.h (COMPOUND_BODY): Remove.
1063         (c_common_stmt_codes): Remove COMPOUND_STMT.
1064         * c-dump.c (c_dump_tree): Likewise.
1065         * c-gimplify.c (c_gimplify_stmt): Likewise.
1066         * c-pretty-print.c (pp_c_statement): Likewise.
1067         * tree.h (DECL_SAVED_TREE): Update commentary.
1068         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
1069         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
1070         (GOTO_EXPR): Rename from GOTO_STMT.
1071         (GOTO_FAKE_P): Remove.
1072         (COMPOUND_STMT): Remove.
1073         (HANDLER): Update wrt COMPOUND_STMT.
1074         (STMT_EXPR): Likewise.
1075         (LABEL_EXPR): Rename from LABEL_STMT.
1076         (SCOPE_STMT): Remove.
1077         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
1078         through COMPOUND_STMT.
1079
1080 2004-06-16  Richard Henderson  <rth@redhat.com>
1081
1082         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
1083         c_finish_while_stmt_cond): Remove decls.
1084         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
1085         * c-typeck.c (c_begin_if_stmt): Return void.
1086         (c_begin_else): Tidy.  Save stmt_count.
1087         * c-tree.h (c_begin_if_stmt): Update decl.
1088
1089         * objc/objc-act.c (objc_build_try_enter_fragment,
1090         objc_build_extract_fragment, objc_build_try_epilogue,
1091         objc_build_catch_stmt, objc_build_catch_epilogue,
1092         objc_build_finally_prologue, objc_build_finally_epilogue): Update
1093         for if builder function changes.
1094
1095 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
1096
1097         * config/s390/s390.c (struct machine_function):  New member
1098         last_restore_gpr.
1099         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
1100         Do not modify machine->save_return_addr_p or regs_ever_live.
1101         Fill in machine->last_restore_gpr.
1102         (s390_optimize_prolog): Use s390_frame_info to compute registers
1103         to save/restore, remove duplicated code.
1104         (s390_arg_frame_offset): Use s390_frame_info to compute frame
1105         size, remove duplicated code.
1106         (s390_emit_prologue): Adapt s390_frame_info call.  Update
1107         machine->save_return_addr_p and regs_ever_live.
1108         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
1109         machine->last_save_gpr.
1110
1111 2004-06-16  Richard Henderson  <rth@redhat.com>
1112
1113         * c-parse.in (if_stmt_locus): Remove.
1114         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
1115         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
1116         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
1117         empty_locus.  Add stmt_count, saw_else.
1118         (c_begin_if_stmt): Push if_stack here.
1119         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
1120         (c_finish_then, c_finish_else): Record empty_locus.
1121         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
1122         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
1123         if or else body.
1124         * c-tree.h: Update prototypes.
1125
1126 2004-06-16  Steven Bosscher  <stevenb@suse.de>
1127
1128         * tree.h (PHI_CHAIN): New.
1129         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
1130         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
1131         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
1132         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1133         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
1134         when traversing a list of PHI_NODEs.
1135
1136 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
1137
1138         PR target/13292
1139         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
1140         on -msoft-float.
1141         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
1142         68040 and soft-float.
1143         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
1144         in the TARGET_68040_ONLY case.
1145
1146 2004-06-16 Peter Barada  <peter@the-baradas.com>
1147
1148         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
1149         (movsi_cf): Make named, don't match TARGET_CFV4.
1150         (pushexthisi_const): Use mov3q if possible.
1151         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
1152         to special case mvz.w for ColdFire V4.
1153         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
1154         to special case mvz.b for ColdFire V4.
1155         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
1156         divide.
1157         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
1158         * config/m68k/m68k.c(valid_mov3q_const):  New function.
1159         (const_method): SWAP is valid for ColdFire.
1160         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
1161         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
1162
1163 2004-06-16  Richard Henderson  <rth@redhat.com>
1164
1165         * c-common.def (CASE_LABEL): Remove.
1166         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
1167         (match_case_to_enum_1): Likewise.
1168         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
1169         * c-dump.c (c_dump_tree): Likewise.
1170         * c-gimplify.c (c_gimplify_stmt): Likewise.
1171         * c-pretty-print.c (pp_c_statement): Likewise.
1172         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
1173         * tree.h (CASE_LOW): Update commentary.
1174
1175 2004-06-16  Richard Henderson  <rth@redhat.com>
1176
1177         * c-common.def (ASM_STMT): Remove.
1178         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
1179         * c-dump.c (c_dump_tree): Likewise.
1180         * c-gimplify.c (c_gimplify_stmt): Likewise.
1181         * c-pretty-print.c (pp_c_statement): Likewise.
1182         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
1183         * tree.h: Fix commentary.
1184
1185 2004-06-16  Richard Henderson  <rth@redhat.com>
1186
1187         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
1188         * c-common.c (c_add_case_label): Use LABEL_EXPR.
1189         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
1190         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
1191         * c-dump.c (c_dump_tree): Likewise.
1192         * c-gimplify.c (c_gimplify_stmt): Likewise.
1193         * c-pretty-print.c (pp_c_statement): Likewise.
1194         * c-parse.in (stmt): Use GOTO_EXPR.
1195         (label): Use LABEL_EXPR.
1196         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
1197         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
1198
1199 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
1200
1201         * cfgcleanup.c (try_simplify_condjump): Update test to make
1202         sure we have a conditional branch around am unconditional branch.
1203
1204 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
1205
1206         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
1207
1208 2004-06-16  Dale Johannesen  <dalej@apple.com>
1209
1210         * loop.c (loop_givs_reduce): Avoid miscompilation of
1211         loops entered at bottom.
1212
1213 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
1214
1215         * cfglayout.c (fixup_reorder_chain): Handle case where the
1216         destination of E_FALL is EXIT_BLOCK_PTR.
1217
1218 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
1219
1220         PR target/15653
1221         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
1222         after shifts before asm.
1223
1224 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1225
1226         PR tree-optimization/15993
1227         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
1228         destination is unchanged.
1229
1230 2004-06-16  Andreas Jaeger  <aj@suse.de>
1231
1232         * doc/install.texi (Configuration): Update description for
1233         --enable-version-specific-runtime-libs.
1234
1235 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
1236
1237         * doc/install.texi: boehm-gc now uses automake 1.8.5.
1238
1239 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
1240
1241         * toplev.h (rest_of_compilation): Adjust prototype.
1242
1243 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
1244
1245         * coverage.c: Remove argument to rest_of_compilation.
1246         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
1247         * passes.c (rest_of_compilation): Remove argument.
1248         (pass_rest_of_compilation): New.
1249         (rest_of_handle_final, rest_of_handle_delay_slots,
1250         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
1251         rest_of_handle_machine_reorg, rest_of_handle_regrename
1252         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
1253         rest_of_handle_regmove, rest_of_handle_tracer
1254         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
1255         rest_of_handle_web, rest_of_handle_branch_prob
1256         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
1257         rest_of_handle_addressof, rest_of_handle_jump_bypass
1258         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
1259         Check that the two arguments are actually superfluous.
1260         * tree-optimize.c (register_dump_files): Add properties argument.
1261         Track validity of passes.  Only initialize dump files for
1262         tree-based passes.  Store the full set of provided passes in
1263         the pass.
1264         (init_tree_optimization_passes): Register pass_expand and
1265         pass_rest_of_compilation.
1266         (execute_one_pass): Do not track the presence of required properties
1267         here.  Set in_gimple_form.  Do not update current_properties.
1268         (current_properties): Remove.
1269         (set_save_expr_context): Remove.
1270         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
1271         expand to RTL here, and do not call rest_of_compilation.  Push
1272         GGC context even before gimplification.
1273         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
1274         (pass_expand, pass_rest_of_compilation): Declare.
1275
1276 2004-06-15  Jeff Law  <law@redhat.com>
1277
1278         * fold-const.c (swap_tree_comparison): No longer static.
1279         (tree_swap_operands_p): Similarly.  Return true if both operands
1280         are SSA_NAMEs and the first operand has a higher version number than
1281         the second operand.
1282         * tree.h (swap_tree_comparison): Prototype.
1283         (tree_swap_operands_p): Prototype.
1284         * tree-ssa-operands.c (get_expr_operands): For commutative
1285         operators and relational comparisons, canonicalize the
1286         order of the operands.
1287
1288 2004-06-15  Richard Henderson  <rth@redhat.com>
1289
1290         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
1291         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
1292         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
1293         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
1294         (finish_fname_decls, fname_decl): Use statement_lists.
1295         (c_expand_expr_stmt): Don't set last_expr_type.
1296         (c_type_hash): Fix indentation.
1297         (c_safe_from_p): Don't follow TREE_CHAIN.
1298         (c_tree_chain_matters_p): Remove.
1299         * c-common.def (SCOPE_STMT): Remove.
1300         (CLEANUP_STMT): Redefine to contain its own body.
1301         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
1302         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
1303         Add x_cur_stmt_list.
1304         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
1305         (cur_stmt_list): New.
1306         (STATEMENT_LIST_STMT_EXPR): New.
1307         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
1308         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
1309         (CLEANUP_BODY): New.
1310         (CLEANUP_DECL): Move to operand 2.
1311         (c_common_stmt_codes): Remove SCOPE_STMT.
1312         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
1313         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
1314         (c_push_function_context, c_pop_function_context): Don't save it.
1315         (finish_decl): Set TREE_USED on the decl for a cleanup.
1316         Use push_cleanup.
1317         (store_parm_decls): Use statement lists.
1318         (finish_function): Remove compstmt rule workaround.  Use statement
1319         lists.  Call finish_fname_decls after finalizing the body.
1320         (c_begin_compound_stmt): Move to c-typeck.c.
1321         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
1322         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
1323         (c_genericize): Invoke them.
1324         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
1325         (c_build_bind_expr): Export.
1326         (gimplify_block, gimplify_cleanup): Remove.
1327         (gimplify_condition): Use gimplify_stmt.
1328         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
1329         (gimplify_if_stmt): Remove recursion hack.
1330         (c_gimplify_expr): Remove STMT_EXPR handling.
1331         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
1332         (is_last_stmt_of_scope): Remove.
1333         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
1334         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
1335         c_end_compound_stmt.
1336         * c-objc-common.c (build_cdtor): Likewise.
1337         * c-parse.in (primary): Use c_finish_stmt_expr.
1338         (push_scope, pop_scope): Remove.
1339         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
1340         (c99_block_end, compstmt): Use c_end_compound_stmt.
1341         (c99_block_lineno_labeled_stmt): Likewise.
1342         (compstmt_primary_start): Use c_begin_stmt_expr.
1343         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
1344         (do_stmt_start): Fill in body directly.
1345         (lineno_stmt): Avoid setting lineno on constants.
1346         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
1347         Remove SCOPE_STMT.
1348         * c-semantics.c (begin_stmt_tree): Remove.
1349         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
1350         (add_stmt): Use statement lists.
1351         (add_scope_stmt, finish_stmt_tree): Remove.
1352         (push_cleanup): New.
1353         * c-tree.h: Move some decls from c-common.h.
1354         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
1355         (do_case, c_finish_case): Likewise.
1356         (c_finish_then): Take body for then as argument.
1357         (c_finish_else): Similarly.
1358         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
1359         c_finish_for_stmt_incr, c_finish_for_stmt): New.
1360         (c_begin_stmt_expr, c_finish_stmt_expr): New.
1361         (c_begin_compound_stmt): Do scope management.
1362         (c_end_compound_stmt): New.
1363         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
1364         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
1365         Look through exception handling constructs.
1366         (gimplify_bind_expr): Accept temporary argument.
1367         (gimplify_target_expr): Special case BIND_EXPR bodies.
1368         (gimplify_expr): Handle fallback == fb_none like a statement.
1369         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
1370         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
1371         * langhooks.h (tree_chain_matters_p): Remove.
1372         * stub-objc.c (objc_clear_super_receiver): New.
1373         * tree-gimple.h (voidify_wrapper_expr): Update decl.
1374         (append_to_statement_list, append_to_statement_list_force): Move
1375         to tree-iterator.h.
1376         * tree-inline.c (expand_call_inline): Update call.
1377         (clone_body): Use statement lists.
1378         (walk_tree): Don't check tree_chain_matters_p.
1379         (copy_tree_r): Likewise.
1380         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
1381         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
1382         * tree-iterator.h (append_to_statement_list,
1383         append_to_statement_list_force): Moved from tree-gimple.h.
1384         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
1385         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
1386         (objc_enter_block): Likewise.
1387         (objc_exit_block): Use c_end_compound_stmt.
1388         (objc_build_try_enter_fragment): Add #error and comment for
1389         rewriting for OBJCPLUS.
1390         (objc_build_extract_fragment, objc_build_try_epilogue,
1391         objc_build_catch_stmt, objc_build_finally_prologue,
1392         objc_build_finally_epilogue): Update for C statement builders.
1393         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
1394         Remove.
1395
1396 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1397
1398         * df.c (df_reg_clobber_gen): Removed.
1399         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
1400         Make more effective for hard regs.
1401         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
1402
1403 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
1404
1405         * c-pragma.h (c_lex_string_translate): Change type to int.
1406         * c-parse.in: Change all assignments of c_lex_string_translate
1407         to true and false to 1 and 0.
1408         * c-lex.c (c_lex_string_translate): Likewise.
1409         (lex_string): Convert string without translation in the -1
1410         case.
1411
1412 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
1413
1414         * convert.h: Add include guards
1415
1416 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
1417
1418         * tree-flow-inline.h: Document all functions.
1419
1420 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
1421
1422         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
1423         * tree-dfa.c (create_stmt_ann): Ditto.
1424         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
1425         * tree-inline.c (estimate_num_insns_1): Ditto.
1426         * tree.c (tree_size): Ditto.
1427         (make_node_stat): Ditto.
1428         (tree_node_structure): Ditto.
1429         (ephi_node_elt_check_failed): Remove.
1430         (is_essa_node): Ditto.
1431         * tree.def (EPHI_NODE): Ditto.
1432         (EEXIT_NODE): Ditto.
1433         (EUSE_NODE): Ditto.
1434         (EKILL_NODE): Ditto.
1435         * tree.h (EREF_NODE_CHECK): Remove.
1436         (EPHI_NODE_ELT_CHECK): Ditto.
1437         (struct tree_eref_common): Ditto.
1438         (struct tree_euse_node): Ditto.
1439         (struct ephi_arg_d): Ditto.
1440         (struct tree_ephi_node): Ditto.
1441         (ephi_node_elt_check_failed): Remove prototype.
1442         (is_essa_node): Ditto.
1443         (enum tree_node_structure_enum): Remove TS_E*_NODE.
1444         (union tree_node): Remove E*_NODE uses.
1445
1446 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
1447
1448         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
1449         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
1450         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
1451         Likewise.
1452         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
1453         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
1454         expand_builtin_strcmp, expand_builtin_strncmp,
1455         expand_builtin_frame_address): Likewise.
1456         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
1457         insert_one_insn): Likewise.
1458         * calls.c (prepare_call_address, precompute_register_parameters,
1459         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
1460         * cfganal.c (flow_active_insn_p): Likewise.
1461         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
1462         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
1463         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
1464         make_extraction, recog_for_combine, gen_lowpart_for_combine,
1465         simplify_comparison, record_dead_and_set_regs_1,
1466         record_dead_and_set_regs, record_promoted_value,
1467         check_promoted_subreg, get_last_value_validate, get_last_value,
1468         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
1469         unmentioned_reg_p_1): Likewise.
1470         * conflict.c (mark_reg): Likewise.
1471         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
1472         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
1473         merge_equiv_classes, flush_hash_table, invalidate,
1474         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
1475         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
1476         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
1477         record_jump_cond, cse_insn, addr_affects_sp_p,
1478         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
1479         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
1480         cse_cc_succs, cse_condition_code_reg): Likewise.
1481         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
1482         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
1483         cselib_record_set, cselib_record_sets): Likewise.
1484         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
1485         dbxout_block): Likewise.
1486         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
1487         * dojump.c (do_jump): Likewise.
1488         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
1489         is_based_loc, rtl_for_decl_location): Likewise.
1490         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
1491         set_decl_incoming_rtl, mark_user_reg): Likewise.
1492         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
1493         copy_to_suggested_reg, allocate_dynamic_stack_space,
1494         probe_stack_range, hard_function_value): Likewise.
1495         * expmed.c (store_bit_field, store_fixed_bit_field,
1496         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
1497         extract_split_bit_field, expand_divmod, emit_store_flag_force):
1498         Likewise.
1499         * expr.c (convert_move, convert_modes,
1500         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1501         use_group_regs, emit_move_insn, emit_move_insn_1,
1502         compress_float_constant, push_block, emit_single_push_insn,
1503         emit_push_insn, get_subtarget, expand_assignment, store_expr,
1504         store_constructor, store_field, force_operand, safe_from_p,
1505         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1506         Likewise.
1507         * final.c (profile_function, final_scan_insn, alter_subreg,
1508         get_mem_expr_from_op, output_asm_operand_names, output_operand,
1509         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1510         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1511         find_regno_partial, propagate_one_insn, init_propagate_block_info,
1512         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1513         attempt_auto_inc, find_auto_inc, mark_used_regs,
1514         count_or_remove_death_notes_bb): Likewise.
1515         * function.c (find_temp_slot_from_address, update_temp_slot_address,
1516         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1517         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1518         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1519         purge_single_hard_subreg_set, instantiate_decl,
1520         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1521         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1522         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1523         expand_function_start, diddle_return_value, clobber_return_register,
1524         expand_function_end, keep_stack_depressed, handle_epilogue_set,
1525         update_epilogue_consts): Likewise.
1526         * genemit.c (gen_exp, gen_insn): Likewise.
1527         * genrecog.c (make_insn_sequence): Likewise.
1528         * global.c (global_conflicts, expand_preferences, mark_reg_store,
1529         mark_reg_conflicts, set_preference, reg_becomes_live,
1530         build_insn_chain, mark_reg_change): Likewise.
1531         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1532         Likewise.
1533         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1534         Likewise.
1535         * integrate.c (copy_rtx_and_substitute, try_constants,
1536         subst_constants, mark_stores, allocate_initial_values): Likewise.
1537         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1538         delete_computation, rtx_renumbered_equal_p, true_regnum,
1539         reg_or_subregno): Likewise.
1540         * lcm.c (reg_dies, reg_becomes_live): Likewise.
1541         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1542         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1543         wipe_dead_reg, no_conflict_p): Likewise.
1544         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1545         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
1546         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
1547         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
1548         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
1549         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
1550         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
1551         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
1552         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
1553         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
1554         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
1555         try_swap_copy_prop): Likewise.
1556         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
1557         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
1558         Likewise.
1559         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
1560         reload_cse_simplify_operands, reload_combine,
1561         reload_combine_note_store, reload_combine_note_use,
1562         reload_cse_move2add, move2add_note_store): Likewise.
1563         * print-rtl.c (print_rtx): Likewise.
1564         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
1565         contains_pseudo, handle_asm_insn): Likewise.
1566         * ra-debug.c (ra_print_rtx_object, dump_constraints,
1567         dump_static_insn_cost): Likewise.
1568         * ra-rewrite.c (slots_overlap_p, emit_colors,
1569         remove_suspicious_death_notes): Likewise.
1570         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1571         register_operand, scratch_operand, nonmemory_operand,
1572         constrain_operands): Likewise.
1573         * reg-stack (check_asm_stack_operands, remove_regno_note,
1574         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1575         subst_asm_stack_regs): Likewise.
1576         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1577         record_address_regs, reg_scan_mark_refs): Likewise.
1578         * regmove.c (discover_flags_reg, replacement_quality,
1579         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1580         fixup_match_1): Likewise.
1581         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1582         kill_set_value, copyprop_hardreg_forward_1): Likewise.
1583         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1584         reload_inner_reg_of_subreg, can_reload_into, push_reload,
1585         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1586         operands_match_p, decompose, find_reloads, find_reloads_toplev,
1587         find_reloads_address, subst_indexed_address, find_reloads_address_1,
1588         find_reloads_subreg_address, find_replacement,
1589         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1590         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1591         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1592         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1593         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1594         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1595         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1596         do_output_reload, emit_reload_insns, gen_reload,
1597         delete_address_reloads_1, inc_for_reload): Likewise.
1598         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1599         update_reg_unused_notes, fill_slots_from_thread): Likewise.
1600         * resource.c (update_live_status, mark_referenced_resources,
1601         mark_set_resources, mark_target_live_regs): Likewise.
1602         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1603         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1604         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1605         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1606         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1607         parms_set, find_first_parameter_load, keep_with_call_p,
1608         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1609         num_sign_bit_copies1): Likewise.
1610         * rtlhooks.c (gen_lowpart_general): Likewise.
1611         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1612         sched_analyze): Likewise.
1613         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1614         Likewise.
1615         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1616         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1617         simplify_binary_operation, simplify_const_relational_operation,
1618         simplify_subreg): Likewise.
1619         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1620         expand_end_stmt_expr, expand_return, expand_decl,
1621         expand_anon_union_decl): Likewise.
1622         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1623         find_splittable_regs, find_splittable_givs, find_common_reg_term,
1624         loop_iterations): Likewise.
1625         * var-tracking.c (variable_union, variable_part_different_p,
1626         variable_different_p, count_uses, add_uses, add_stores,
1627         compute_bb_dataflow, set_variable_part, delete_variable_part,
1628         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1629         Likewise.
1630         * varasm.c (assemble_variable): Likewise.
1631
1632 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
1633
1634         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1635         definition.
1636         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1637         #undef and #if 0'd definition.
1638
1639 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1640
1641         * combine.c (distribute_notes): Comment typo fix.
1642
1643 2004-06-15  Roger Sayle  <roger@eyesopen.com>
1644
1645         * expmed.c (synth_mult): Mask bits of the multiplier to the
1646         machine mode of the multiplication.  Don't consider shifts
1647         by more than (or equal to) the width of the operation's mode.
1648
1649 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1650
1651         * doc/install.texi: Yet another update for autoconf
1652         and automake versions.
1653
1654 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1655
1656         * function.h (struct function): Remove cannot_inline field.
1657         (current_function_cannot_inline): Remove.
1658         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1659         Simplify conditionals to ignore warn_return_type.
1660         * tree-optimize.c (tree_rest_of_compilation): Do not reset
1661         DECL_DEFER_OUTPUT.
1662         * objc/objc-act.c (build_module_descriptor, finish_method_def):
1663         Do not set current_function_cannot_inline.
1664
1665 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
1666
1667         * cfglayout.c (fixup_reorder_chain): Handle case where the
1668         destination of E_TAKEN is EXIT_BLOCK_PTR.
1669
1670 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
1671
1672         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1673
1674 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1675
1676         * fold-const.c (operand_equal_p): Update comment.
1677
1678 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1679
1680         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1681         (INCOMING_RETURN_ADDR_RTX): Define.
1682         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1683         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1684         __builtin_return_address(0).
1685         (m32r_return_addr): Added for __builtin_return_address(0).
1686         (m32r_reload_lr): Ditto.
1687
1688         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1689
1690 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
1691
1692         * doc/install.texi (Prerequisites): Update libbanshee,
1693         fastjar, libcpp, libjava/libltdl entries to
1694         automake 1.8.5.
1695
1696 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
1697             Olivier Hainque  <hainque@act-europe.fr>
1698
1699         * function.c (fixup_var_refs): Also adjust the start of sequence
1700         after fixing up the insns.
1701
1702 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1703
1704         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1705
1706 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
1707
1708         * doc/install.texi (Prerequisites): Update libstdc++ entry to
1709         automake 1.8.5.
1710
1711 2004-06-14  Eric Christopher  <echristo@redhat.com>
1712
1713         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1714         to -mtpf-trace (-mno-tpf-trace).
1715         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1716         documentation.
1717
1718 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1719
1720         * real.c: Fix bit count in head comment.
1721
1722 2004-06-14  Jeff Law  <law@redhat.com>
1723
1724         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1725         PHIs where the destination or an argument is marked with
1726         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1727
1728 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1729
1730         PR middle-end/15945
1731         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1732         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1733
1734 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1735
1736         * opts.sh (var_args): Fix regexp.
1737
1738 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
1739
1740         PR target/15178
1741         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1742
1743 2004-06-14  Paul Brook  <paul@codesourcery.com>
1744
1745         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1746
1747 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1748
1749         * Makefile.in (FLAGS_H): New.
1750         (flags.h): Replace by FLAGS_H.
1751         * c.opt: Document Var, VarExists, Init and Report attributes.
1752         * common.opt: Fill the values of the attributes.
1753         * diagnostic.c (flag_fatal_errors): Do not define.
1754         * except.c (flag_non_call_exceptions): Do not define.
1755         * flags.h: Include options.h.  Remove declarations conflicting with
1756         the automatically defined ones.
1757         * opts.c: Remove automatically defined variables.
1758         (handle_option): Perform default initialization.
1759         (common_handle_option): Do not handle options covered by the
1760         default initialization.
1761         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1762         fields.
1763         (CL_REPORT): New.
1764         * opts.sh: Generate variable declarations, handle CL_REPORT.
1765         * toplev.c: Remove automatically defined variables.
1766         (f_options): Removed.
1767         (print_switch_values): Use cl_options instead of f_options.
1768         * toplev.h (version_flag): Declaration removed.
1769
1770 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
1771
1772         * config/sparc/sparc.h: Correct comment about availability of
1773         little endian option.
1774
1775         * config.gcc: Remove sparc64-*-aout*.
1776         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1777         * config/sparc/sp64-aout.h: Remove.
1778         * config/sparc/aout.h: Remove.
1779
1780 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
1781
1782         * config/s390/s390.c: Include "tree-gimple.h".
1783         (s390_gimplify_va_arg): New function.
1784         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1785         (s390_va_arg): Remove.
1786         * config/s390/s390-protos.h (s390_va_arg): Remove.
1787         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1788
1789 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
1790
1791         * basic-block.h (could_fall_through): Declare.
1792         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1793         Fail if the source already has a fallthrough edge to the exit
1794         block pointer.
1795         (could_fall_through): New function.
1796         * cfgbuild.c (make_edges): Check if we already have a fallthrough
1797         edge to the exit block pointer.
1798         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1799         not called before reload has completed.
1800         Handle special case of first block having a fall-through exit edge.
1801         (cfg_layout_finalize): Don't call it before reload or if we have
1802         rtl epilogues.
1803         (fixup_reorder_chain): A fall through to the exit block does not
1804         require the block to come last.  Add sanity checks.
1805         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1806         edges to the exit block.
1807         * function.c (cfglayout.h): #include.
1808         (thread_prologue_and_epilogue_insns): If we have neither return nor
1809         epilogue, but a fall through to the exit block from mid-function,
1810         force a non-fall-through exit.
1811         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1812
1813 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
1814
1815         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1816         for power5 and rs64a.  Correct condition for default.  Correct power3,
1817         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
1818
1819 2004-06-13  Steven Bosscher <stevenb@suse.de>
1820
1821         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1822         Revert previous change, don't use CALL_P.
1823
1824 2004-06-13  Jason Merrill  <jason@redhat.com>
1825
1826         * tree.h: Move std_gimplify_va_arg_expr protoype here.
1827         * tree-gimple.h: From here.
1828
1829 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1830
1831         Fix PR tree-optimization/15979
1832         Fix PR tree-optimization/15981
1833         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1834         try to insert values undefined along some path.
1835
1836 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
1837
1838         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1839         are available everywhere too.
1840
1841 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
1842
1843         * fold-const.c (fold_checksum_tree <case 't'>): Only
1844         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1845         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1846         EXPR is an INTEGERAL_TYPE or a scalar float type.
1847
1848 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
1849
1850         * tree-sra.c (tree_sra): Update documentation.
1851
1852 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
1853
1854         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1855         function_types_compatible_p, type_lists_compatible_p): Remove
1856         flags parameter.
1857         * c-tree.h (comptypes): Likewise.
1858         (COMPARE_STRICT): Remove.
1859         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1860         callers changed.
1861
1862 2004-06-13  Eric Christopher  <echristo@redhat.com>
1863
1864         * c-decl.c (diagnose_mismatched_decls): Improve error message.
1865         Remove unused code.
1866         * c-typeck.c (comptypes): Add location in standard we're checking.
1867
1868 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1869
1870         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1871         version 3.3.4.
1872
1873 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1874
1875         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1876         index by machine mode.
1877         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1878         tables inside the loop over machine modes.
1879         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1880         expand_divmod): Index shift*_cost by the appropriate machine mode.
1881
1882 2004-06-12  Eric Christopher  <echristo@redhat.com>
1883
1884         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1885         * config/s390/s390.md: Ditto.
1886         * config/s390/s390.c: Ditto.
1887         (s390_frame_info): Conditionalize frame and setup info on
1888         TARGET_TPF_PROFILING.
1889         (s390_arg_frame_offset): Ditto.
1890
1891 2004-06-12  Roger Sayle  <roger@eyesopen.com>
1892
1893         * fold-const.c (omit_two_operands): New function.
1894         * tree.h (omit_two_operands): Prototype here.
1895         * builtins.c (fold_builtin_unordered_cmp): New function to lower
1896         C99 unordered comparison builtins to the appropriate tree nodes.
1897         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1898         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1899         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
1900         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1901         (simplify_builtin_memcmp, simplify_builtin_strncmp,
1902         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1903         omit_two_operands function to build the required COMPOUND_EXPRs.
1904
1905 2004-06-12  Steven Bosscher <stevenb@suse.de>,
1906             Andreas Jaeger  <aj@suse.de>
1907
1908         * gcse.c (record_set_info): Use predicates like REG_P.
1909         (mems_conflict_for_gcse_p): Likewise.
1910         (load_killed_in_block_p): Likewise.
1911         (hash_expr_1): Likewise.
1912         (insert_set_in_table): Likewise.
1913         (gcse_constant_p): Likewise.
1914         (hash_scan_set): Likewise.
1915         (hash_scan_insn): Likewise.
1916         (canon_list_insert): Likewise.
1917         (record_last_mem_set_info): Likewise.
1918         (record_last_set_info): Likewise.
1919         (compute_hash_table_work): Likewise.
1920         (mark_set): Likewise.
1921         (mark_clobber): Likewise.
1922         (mark_oprs_set): Likewise.
1923         (compute_transp): Likewise.
1924         (find_avail_set): Likewise.
1925         (cprop_insn): Likewise.
1926         (do_local_cprop): Likewise.
1927         (cprop): Likewise.
1928         (find_implicit_sets): Likewise.
1929         (find_bypass_set): Likewise.
1930         (bypass_conditional_jumps): Likewise.
1931         (insert_insn_end_bb): Likewise.
1932         (pre_insert_copy_insn): Likewise.
1933         (compute_transpout): Likewise.
1934         (next_ls_expr): Likewise.
1935         (invalidate_any_buried_refs): Likewise.
1936         (compute_ld_motion_mems): Likewise.
1937         (reg_set_info): Likewise.
1938         (reg_clear_last_set): Likewise.
1939         (find_moveable_store): Likewise.
1940         (compute_store_table): Likewise.
1941         (find_loads): Likewise.
1942         (store_killed_in_insn): Likewise.
1943         (insert_insn_start_bb): Likewise.
1944         (reg_set_between_after_reload_p): Likewise.
1945         (reg_used_between_after_reload_p): Likewise.
1946         (is_jump_table_basic_block): Likewise.
1947         (gcse_after_reload): Likewise.
1948         (hash_scan_set_after_reload): Likewise.
1949         (compute_hash_table_after_reload): Likewise.
1950
1951 2004-06-12  Steven Bosscher  <stevenb@suse.de>
1952
1953         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1954         (INSN_P): Don't look at the rtx code class, just explicitly
1955         check for one of the tree RTX_INSN codes.
1956
1957 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1958
1959         * c-typeck.c (default_function_array_conversion): Use
1960         build_pointer_type not TYPE_POINTER_TO.
1961
1962 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
1963
1964         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1965         * configure, config.in: Regenerate.
1966         * system.h: Unconditionally define bool as unsigned char,
1967         BOOL_BITFIELD as unsigned int.
1968         * domwalk.h: Use BOOL_BITFIELD.
1969
1970 2004-06-12  Andreas Jaeger  <aj@suse.de>
1971
1972         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1973         * libgcc-darwin.ver: Likewise.
1974
1975 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
1976
1977         * reload.c (find_reloads): Force reload for pseudo registers on big
1978         endian machines.
1979
1980 2004-06-11  Steven Bosscher <stevenb@suse.de>
1981
1982         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1983         Don't try to mark anything control dependent on the entry or
1984         exit blocks.
1985
1986 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
1987
1988         Fix Bug 15899
1989         Fix Bug 15460
1990         * tree.h (SSA_NAME_VALUE): New macro.
1991         (struct tree_ssa_name): Add value_handle member.
1992         * tree-ssa-pre.c: Replaced.
1993         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1994         (struct cst_ann_d): New.
1995         (struct expr_ann_d): New.
1996         (union tree_ann_d): Add cst_ann, expr_ann.
1997         * tree-dfa.c (create_cst_ann): New function.
1998         (create_expr_ann): Ditto.
1999         * tree-flow-inline.h (cst_ann): New function.
2000         (expr_ann): Ditto.
2001         (get_cst_ann): Ditto.
2002         (get_expr_ann): Ditto..
2003
2004 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2005
2006         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
2007         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
2008         _U_Qfcmp library function.
2009         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
2010         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
2011
2012         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
2013         unspec used for loading address from DLT.
2014         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
2015         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
2016         Don't use short code sequence when loading the address of a nonlocal
2017         label.
2018         (nonlocal_goto): New expander.
2019         (indirect_goto): New jump pattern for nonlocal gotos.
2020         (short_jump): Remove extra whitespace.
2021         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
2022         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
2023         pattern.
2024
2025 2004-06-11  Roger Sayle  <roger@eyesopen.com>
2026
2027         * expmed.c (synth_mult): Add an additional MODE argument for the
2028         machine mode of the multiplication.  Update recursive calls.  Use
2029         mode instead of word_mode for determining operation costs.
2030         (choose_mult_variant): Update calls to synth_mult with "mode".
2031
2032 2004-06-11  Richard Henderson  <rth@redhat.com>
2033
2034         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
2035         and makes_aliased_stores.
2036
2037 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
2038
2039         * doc/install.text (--enable-shared): Fix typo.
2040
2041 2004-06-11  Richard Henderson  <rth@redhat.com>
2042
2043         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
2044         argument.  Use internal post for call to gimplify_expr.  Tidy
2045         rounded type size computation.
2046         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
2047         get_initialized_tmp_var.
2048
2049 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
2050
2051         * doc/install.texi (--enable-shared): Update libobjc's shared library
2052         status.  Remove reference to libf2c.
2053
2054 2004-06-11  Jason Merrill  <jason@redhat.com>
2055
2056         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2057         * config/i386/i386.c (ix86_va_arg): Remove.
2058         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2059         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
2060         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2061         * config/alpha/alpha.c (alpha_va_arg): Remove.
2062         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2063         * config/sparc/sparc.c (sparc_va_arg): Remove.
2064
2065         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
2066         assignment might throw.
2067         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
2068         expressions.
2069
2070 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
2071
2072         PR 15886:
2073         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
2074
2075 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
2076
2077         * doc/install.texi (Prerequisites): Update documentation of
2078         required versions of autoconf and automake.  Remove mention of
2079         libf2c.
2080
2081 2004-06-11  Jason Merrill  <jason@redhat.com>
2082
2083         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
2084         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2085
2086 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
2087
2088         * typeclass.h: Add GPL plus exception license.  Add include
2089         guard.
2090
2091 2004-06-10  Jason Merrill  <jason@redhat.com>
2092
2093         * gimplify.c (gimplify_modify_expr): Don't force a temporary
2094         of an aggregate_value_p type.
2095
2096 2004-06-10  Jeff Law  <law@redhat.com>
2097
2098         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
2099         code when we are in gimple form.
2100
2101 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
2102
2103         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
2104         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
2105         (highest_ssa_version): Remove.
2106         * tree-outof-ssa.c (new_temp_expr_table): Replace
2107         highest_ssa_version with num_ssa_names.
2108         (dump_replaceable_exprs): Likewise.
2109         (rewrite_vars_out_of_ssa): Likewise.
2110         * tree-ssa-ccp.c (initialize): Likewise
2111         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
2112         * tree-ssa-dce.c (tree_dce_init): Likewise.
2113         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2114         * tree-ssa-live.c (create_ssa_var_map): Likewise.
2115         (dump_var_map): Likewise.
2116         * tree-ssa.c (verify_ssa): Likewise.
2117         (kill_redundant_phi_nodes): Likewise.
2118         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
2119         * tree-ssanames.c: Include tree-flow.h
2120         (ssa_names): New varray.
2121         (init_ssa_names): Initialize ssa_names.
2122         Reserve the first slot of the ssa_names table.
2123         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
2124         Assign version numbers using num_ssa_names.
2125
2126 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2127
2128         * doc/sourcebuild.texi (Front End): Add details of more
2129         installation documentation required.
2130
2131 2004-06-10  Brian Booth  <bbooth@redhat.com>
2132
2133         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
2134         of V_MAY_DEF and V_MUST_DEF.
2135         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
2136         num_vdefs to num_v_may_defs.
2137         (compute_immediate_uses_for_stmt): Rename occurences of vdef
2138         to v_may_def.
2139         (redirect_immediate_uses): Ditto.
2140         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
2141         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
2142         Also add code to sum up the number of v_must_defs.
2143         (vdefs_disappeared_p): Replace with...
2144         (v_may_defs_disappeared_p): This.
2145         (v_must_defs_disappeared_p): New function.
2146         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
2147         Also add code to mark new variables found in V_MUST_DEFs for
2148         renameing.
2149         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
2150         vdef_ops to v_may_def_ops.
2151         (get_vdef_ops): Replace with...
2152         (get_v_may_def_ops): This.
2153         * tree-flow-inline.h (get_vdef_ops): Replace with...
2154         (get_v_may_def_ops): This.
2155         (get_v_must_def_ops): New function.
2156         (get_vdef_result_ptr): Replace with...
2157         (get_v_may_def_result_ptr): This.
2158         (get_vdef_op_ptr): Ditto with...
2159         (get_v_may_def_op_ptr); This.
2160         (get_v_must_def_op_ptr): New function.
2161         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
2162         to v_may_def. Also add code to mark statements with
2163         V_MUST_DEFs as definition sites.
2164         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
2165         add code to register new V_MUST_DEFs made by the statement.
2166         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
2167         (check_replaceable): Rename occurences of vdef to v_may_def. Also
2168         add check for V_MUST_DEFs.
2169         (find_replaceable_in_bb): Ditto.
2170         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
2171         to v_may_def. Also add code to dump V_MUST_DEFs.
2172         * tree-sra.c (mark_all_vdefs): Replace with...
2173         (mark_all_v_may_defs): This.
2174         (mark_all_v_must_defs): New function.
2175         (create_scalar_copies): Replace call to mark_all_vdefs with
2176         calls to mark_all_v_may_defs and mark_all_v_must_defs.
2177         (scalarize_structures): Rename occurences of vdef to v_may_def.
2178         Also add a check for V_MUST_DEFs.
2179         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
2180         * tree-ssa-alias.c (global_var): Update comment.
2181         (compute_may_aliases): Ditto.
2182         (compute_points_to_and_addr_escape): Rename occurences of vdef
2183         to v_may_def. Also add code to mark variables in V_MUST_DEF
2184         operands as being written to.
2185         (group_aliases): Update comment.
2186         (maybe_create_global_var): Ditto.
2187         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
2188         Also add a check for V_MUST_DEFs on GIMPLE registers.
2189         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
2190         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
2191         to v_may_def. Also add code to mark all V_MUST_DEF operands
2192         VARYING.
2193         (initialize): Ditto.
2194         (set_rhs): Rename occurences of vdef to v_may_def. Also add
2195         code to update SSA_NAMEs in V_MUST_DEFs.
2196         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
2197         to v_may_def.
2198         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
2199         occurences of vdef to v_may_def. Also add code to mark statements
2200         with V_MUST_DEFs as necessary.
2201         (propagate_necessity): Rename occurences of vdef to v_may_def.
2202         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
2203         occurences of vdef to v_may_def. Also add code to mark operands
2204         in V_MUST_DEFs for renaming.
2205         (eliminate_redundant_computations): Rename occurences of vdef
2206         to v_may_def.
2207         (record_equivalences_from_stmt): Rename occurences of vdef
2208         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
2209         (optimize_stmt): Remove unnesessary variable vdefs. Update
2210         comment.
2211         (register_definitions_for_stmt): Rename occurences of vdef
2212         to v_may_def. Also add code to register definitions made with
2213         V_MUST_DEFs.
2214         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
2215         (fix_stmt_v_may_defs): This.
2216         (fix_phi_uses): Rename occurences of vdef to v_may_def.
2217         (dse_optimize_stmt): Ditto.
2218         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
2219         to v_may_def. Also add code to mark V_MUST_DEF operands as being
2220         used in virtual operators.
2221         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
2222         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
2223         renaming.
2224         * tree-ssa-operands.c (opf_kill_def): New flag for killing
2225         definitions.
2226         (build_vdefs): Renamed to...
2227         (build_v_may_defs): This.
2228         (build_v_must_defs): New variable.
2229         (voperands_d): Add v_must_def_ops and replace vdef_ops with
2230         v_may_def_ops.
2231         (append_vdef): Replace with...
2232         (append_v_may_def): This.
2233         (append_v_must_def): New function.
2234         (NUM_FREE): Increment for V_MUST_DEF
2235         (optype_freelist): Increment its size for V_MUST_DEF
2236         (allocate_vdef_optype): Replace with...
2237         (allocate_v_may_def_optype): This.
2238         (allocate_v_must_def_optype): New function.
2239         (free_vdefs): Replace with...
2240         (free_v_may_defs): This.
2241         (free_v_must_defs): New function.
2242         (remove_vdefs): Replace with...
2243         (remove_v_may_defs): This.
2244         (remove_v_must_defs): New function.
2245         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
2246         add code to initialize build_v_must_defs.
2247         (finalize_ssa_vdefs): Replace with...
2248         (finalize_ssa_v_may_defs): This.
2249         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
2250         (finalize_ssa_v_must_defs): New function.
2251         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
2252         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
2253         (verify_start_operands): Rename occurences of vdef to v_may_def.
2254         Also add check for build_v_must_defs.
2255         (get_stmt_operands): Rename occurences of vdef to v_may_def.
2256         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
2257         killing definitions.
2258         (get_expr_operands): Update comment and use opf_kill_def for
2259         killing definitions.
2260         (add_stmt_operand): Replace code that appends VDEFs with code
2261         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
2262         otherwise.
2263         (add_call_clobber_ops): Update comments.
2264         * tree-ssa-operands.h (vdef_optype_d): Replace with...
2265         (v_may_def_optype_d): This.
2266         (v_must_def_optype_d): New structure.
2267         (VDEF_OPS): Replace with...
2268         (V_MAY_DEF_OPS): This.
2269         (STMT_VDEF_OPS): Same with...
2270         (STMT_V_MAY_DEF_OPS): This.
2271         (NUM_VDEFS): And...
2272         (NUM_V_MAY_DEFS): This.
2273         (VDEF_RESULT_PTR): As well as...
2274         (V_MAY_DEF_RESULT_PTR): This.
2275         (VDEF_RESULT): Same goes for...
2276         (V_MAY_DEF_RESULT): This.
2277         (VDEF_OP_PTR): And...
2278         (V_MAY_DEF_OP_PTR): This.
2279         (VDEF_OP): And...
2280         (V_MAY_DEF_OP): This.
2281         (V_MUST_DEF_OPS): New macro.
2282         (STMT_V_MUST_DEF_OPS): Ditto.
2283         (NUM_V_MUST_DEFS): Ditto.
2284         (V_MUST_DEF_OP_PTR): Ditto.
2285         (V_MUST_DEF_OP): Ditto.
2286         (remove_vdefs): Replace signature with...
2287         (remove_v_may_defs): This.
2288         (remove_v_must_defs): New function signature.
2289         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
2290         with calls to remove_v_may_defs and remove_v_must_defs.
2291         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
2292         Also add code that marks left occurences of operands in V_MUST_DEFs.
2293         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
2294         to v_may_def. Also add check for V_MUST_DEFs.
2295         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
2296
2297 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
2298
2299         PR target/15653
2300         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
2301         insn.
2302
2303 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2304
2305         PR web/15263
2306         * doc/install.texi: Remove superfluous linebreak.
2307
2308 2004-06-10  Roger Sayle  <roger@eyesopen.com>
2309
2310         * builtins.c (expand_builtin): Fall back to library function call for
2311         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
2312         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
2313         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
2314         IMAGPART_EXPR respectively.
2315
2316 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
2317
2318         * sh.c (dump_table): New argument start.  Changed caller.
2319         (fixup_mova): New function.
2320         (find_barrier): Use it.
2321         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
2322         If the label a mova refers to is above the mova itself, change
2323         the mova into a load.
2324         * sh.md (*casesi_worker): Rename to:
2325         (casesi_worker_1).
2326         (casesi_worker_2): New insn.
2327
2328 2004-06-10  Jason Merrill  <jason@redhat.com>
2329
2330         * target.h (struct gcc_target): Change gimplify_va_arg_expr
2331         hook signature.
2332         * tree-gimple.h: Adjust.
2333         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
2334         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
2335         Use fold_convert.
2336         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
2337         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
2338         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
2339         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
2340         (gimplify_va_arg_expr): Return GS_ERROR in error case.
2341         Gimplify valist rather than calling stabilize_va_list.
2342
2343 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2344
2345         * Makefile.in (df.o): Remove fibheap dependency.
2346         * df.h: Do not include sbitmap.h.
2347         (struct ref): New field "data".
2348         (DF_REF_DATA): New accessor macro.
2349         (struct df): Field "dom" removed.
2350         (df_analyze_subcfg): New function.
2351         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
2352         (transfer_function): ... new type.
2353         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
2354         (iterative_dataflow): ... new function.
2355         (enum set_representation, struct dataflow): New.
2356         * df.c: Do not include fibheap.h.
2357
2358         (df_reg_def_chain_clean, df_reg_use_chain_clean,
2359         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
2360         prune_to_subcfg, df_bb_modify): New functions.
2361         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
2362         df_refs_update, df_reg_table_realloc, df_ref_create,
2363         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
2364         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
2365         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
2366
2367         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
2368         (df_rd_transfer_function, df_ru_transfer_function,
2369         df_lr_transfer_function): Type of bitmaps changed to void *.
2370         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
2371         (hybrid_search): ... new function.
2372         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
2373         (iterative_dataflow): ... new function. Avoid use of fibheaps for
2374         a worklist.  Do not process basic blocks unnecessarily.
2375
2376 2004-06-10  Roger Sayle  <roger@eyesopen.com>
2377
2378         * fold-const.c (fold_abs_const): Make extern.
2379         * tree.h (fold_abs_const): Prototype here.
2380         * builtins.c (fold_builtin_fabs): New function to transform
2381         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
2382         (fold_builtin_abs): New function to transform abs, labs, llabs
2383         and imaxabs builtins into ABS_EXPR tree nodes.
2384         (expand_builtin): Fall back to a function call for abs, labs,
2385         llabs and imaxabs builtins that survive constant folding.
2386         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
2387         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
2388
2389 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
2390
2391         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
2392         leaf function without unwind info at RP 0.
2393
2394 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
2395
2396         PR c++/14791
2397         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
2398         (fileptr_type_node): Define.
2399         * tree.c (build_common_tree_nodes_2): Initialize
2400         fileptr_type_node to ptr_type_node.
2401         * c-common.c (c_common_nodes_and_builtins): For C++, make
2402         fileptr_type_node a distinct type copy.
2403         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
2404         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
2405         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
2406         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
2407         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
2408         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
2409         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
2410         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
2411         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
2412         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
2413         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
2414         the above *FILEPTR* types instead of *PTR*.
2415
2416 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
2417
2418         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
2419         match.
2420
2421 2004-06-09  Roger Sayle  <roger@eyesopen.com>
2422
2423         * fold-const.c (fold_not_const): New function.
2424         (fold) <ABS_EXPR>: Don't bother testing wins.
2425         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
2426         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
2427
2428 2004-06-09  Richard Henderson  <rth@redhat.com>
2429
2430         PR middle-end/15228
2431         * function.c (assign_parms): Always set_mem_align with the computed
2432         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
2433
2434 2004-06-09  Richard Henderson  <rth@redhat.com>
2435
2436         PR opt/15108
2437         * tree-tailcall.c (find_tail_calls): Don't check early for
2438         tail_recursion failure.
2439
2440 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
2441
2442         Move SSA_NAME annotations into tree_ssa_name.
2443
2444         * tree-dfa.c (create_ssa_name_ann): Remove.
2445         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
2446         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
2447         (struct ssa_name_ann_d): Remove.
2448         (union tree_ann_d): Update.
2449         (ssa_name_ann_t): Remove.
2450         * tree-ssa-alias.c: (get_ptr_info): New local function.
2451         Replace references to ssa_name_ann_t with struct ptr_info_def.
2452         * tree-ssa-operands.c (get_expr_operands): Likewise.
2453         * tree.h (SSA_NAME_PTR_INFO): Define.
2454         (struct ptr_info_def): Declare.
2455         (struct tree_ssa_name): Add field 'ptr_info'.
2456
2457 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
2458
2459         * config/i386/winnt.c (i386_pe_output_labelref): Correct
2460         misplaced ')'.
2461
2462 2004-06-09  Steven Bosscher  <stevenb@suse.de>
2463
2464         * config/i386/k6.md: Rewrite using the DFA model.
2465         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
2466         cost of load-operation insns for the K6.
2467         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
2468         (ia32_multipass_dfa_lookahead): Likewise.
2469
2470 2004-06-09  Richard Henderson  <rth@redhat.com>
2471
2472         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
2473         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
2474
2475 2004-06-09  Richard Henderson  <rth@redhat.com>
2476
2477         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
2478
2479 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
2480
2481         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
2482         (CPP_ID_DATA_H): New.
2483         (gtype-desc.o): Update dependencies.
2484         (GTFILES): Use CPP_ID_DATA_H.
2485
2486 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
2487
2488         Revert:
2489         PR c++/15815
2490         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2491         * doc/extend.texi: Deprecate #pragma interface and #pragma
2492         implementation.
2493
2494 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
2495
2496         * config/sparc/sparc.h (MOVE_RATIO): New definition.
2497
2498 2004-06-09  Richard Henderson  <rth@redhat.com>
2499
2500         * basic-block.h (struct edge_def): Add goto_locus.
2501         * tree-cfg.c (make_goto_expr_edges): Set it.
2502         (disband_implicit_edges): Use it.
2503         * tree-pretty-print.c (dump_implicit_edges): Print it.
2504
2505 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2506
2507         * h8300.md (ldm_h8300s_4): Fix condition for expander.
2508
2509 2004-06-08  Jason Merrill  <jason@redhat.com>
2510
2511         Gimplify VA_ARG_EXPR into simpler forms.
2512         * target.h: Add gimplify_va_arg_expr hook.
2513         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2514         * fold-const.c (build_fold_addr_expr)
2515         (build_fold_addr_expr_with_type): Move from gimplify.c.
2516         * tree.h: Declare them.
2517         * gimplify.c (gimplify_and_add): New fn.
2518         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2519         (gimplify_array_ref_to_plus, gimplify_modify_expr)
2520         (gimplify_expr): Use build_fold_*.
2521         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2522         don't know how to gimplify it.
2523         * builtins.c (std_gimplify_va_arg_expr): New fn.
2524         (dummy_object): New static fn.
2525         (gimplify_va_arg_expr): New fn.
2526         (stabilize_va_list): Use build_fold_*.
2527         * tree-gimple.h: Declare new fns.
2528         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2529         (ix86_gimplify_va_arg): New fn.
2530         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2531         (ia64_gimplify_va_arg): New fn.
2532         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
2533         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2534         * alias.c (get_varargs_alias_set): Just return 0 for now.
2535
2536         * c-objc-common.c (c_tree_printer): Improve handling of %T.
2537
2538 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
2539
2540         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2541         of convert.
2542         * tree-inline.c (setup_one_parameter): Likewise.
2543         * tree-sra.c (csc_build_component_ref): Likewise.
2544         * tree-ssa-ccp.c (ccp_fold): Likewise.
2545         * tree-ssa-copy.c (cprop_operand): Likewise.
2546         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2547         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2548
2549 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
2550
2551         PR rtl-optimization/15521:
2552         * sched-int.h (in_post_call_group_p): Change type to enum.
2553         * sched-deps.c (sched_analyze_insn):
2554         (sched_analyze): When in_post_call_group_p is post_call_initial,
2555         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
2556         and also reset in_post_call_group_p to post_call.
2557         (sched_analyze): When the previous basic block ended in a CALL_INSN,
2558         initialize in_post_call_group_p as post_call_initial.
2559         (init_deps): initialize in_post_call_group_p to not_post_call.
2560
2561 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
2562
2563         PR ada/6637
2564         * doc/install.texi: List ada, libada as options to --enable-shared
2565
2566 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
2567
2568         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2569         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2570         config.in entries.
2571         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2572         if hard links are not available.
2573         * configure: Regenerate.
2574         * config.in: Regenerate.
2575
2576 2004-06-08  Per Bothner  <per@bothner.com>
2577
2578         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
2579
2580 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2581
2582         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2583         Correct formatting.
2584
2585 2004-06-08  James E Wilson  <wilson@specifixinc.com>
2586
2587         PR target/15790
2588         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2589
2590 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2591
2592         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2593         POINTER_TYPE and INTEGER_TYPE.
2594
2595 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
2596
2597         * modulo-sched.c: Compile only when INSN_SCHEDULING is
2598         defined.
2599
2600 2004-06-08  Jeff Law  <law@redhat.com>
2601
2602         * doc/contrib.texi: Add entries for Stefan Olsson and
2603         Ola Ronnerup.
2604
2605 2004-06-08  DJ Delorie  <dj@redhat.com>
2606
2607         * toplev.c (floor_log2_wide): Replace loop with faster bit
2608         operations.
2609         (exact_log2_wide): Define in terms of the above.
2610         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2611         available.
2612
2613 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2614
2615         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2616         Make sure that we are in INDIRECT mode when getting the
2617         stub name.
2618
2619 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2620
2621         * h8300.md (extendqisi2_h8300): Add constraints.
2622         (ldm_h8300s_4_normal): Fix typo.
2623
2624 2004-06-08  Richard Henderson  <rth@redhat.com>
2625
2626         * gimple-low.c (struct lower_data): Replace the_return_label and
2627         one_return_stmt with return_statements.
2628         (lower_function_body): Process the entire list of return_statements.
2629         (lower_return_expr): Check source value before unifying return_exprs.
2630         * gimplify.c (gimplify_return_expr): Force the use of a temporary
2631         for !aggregate_value_p.
2632         * tree-gimple.c: Update RETURN_EXPR grammer.
2633
2634 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
2635
2636         PR target/15598
2637         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2638
2639 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2640
2641         PR rtl-optimization/15717
2642         * config/i386/i386.c (legitimate_constant_p): Do not allow
2643         x - symbol_ref.
2644
2645 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
2646
2647         * gimplify.c (copy_if_shared_r): Revert:
2648         2004-05-21  Richard Henderson  <rth@redhat.com>
2649         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2650
2651 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2652
2653         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2654         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
2655         (init_expmed): Initialize these cost arrays as appropriate.
2656         (store_bit_field, extract_bit_field): Correct whitespace.
2657         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2658         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2659         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2660         word_mode or compute_mode as appropriate.
2661
2662 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2663
2664         PR target/15783
2665         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2666         parameter.  Enumerate the registers inside the PARALLEL.
2667         (function_arg): Adjust call to function_arg_union_value.
2668         (function_value): Likewise.
2669
2670         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2671
2672 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2673
2674         * real.c (real_copysign): New function to implement libm's copysign.
2675         * real.h (real_copysign): Prototype here.
2676         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2677         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
2678         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2679         fold_builtin_isdigit): Add function prototypes.
2680         (fold_builtin_copysign): New function to fold copysign, copysignf
2681         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
2682         constant arguments at compile-time using real_copysign.  Fold
2683         copysign(X,Y) as fabs(X) if Y is always non-negative.
2684         (fold_builtin_1): Correct minor whitespace/style issues.  Call
2685         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2686
2687 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
2688
2689         * tree.c (iterative_hash_expr): Use real_hash.
2690
2691 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
2692
2693         PR c/14765
2694         * c-parse.in (compstmt_primary_start): Set last_expr_type to
2695         NULL_TREE.
2696
2697 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2698
2699         PR c++/15815
2700         * doc/extend.texi: Deprecate #pragma interface and #pragma
2701         implementation.
2702
2703 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
2704
2705         PR middle-end/15666
2706         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2707         builtin decl as well.
2708
2709 2004-06-07  Roger Sayle  <roger@eyesopen.com>
2710
2711         PR c/14649
2712         * c-typeck.c (require_constant_value, require_constant_elements):
2713         Move declarations to the top of the file.
2714         (build_function_call): If we require a constant value, fold with
2715         fold_initializer.  If the result is a constant, and the function
2716         wasn't called using __builtin_foo, issue a pedantic warning.
2717         (build_unary_op): If we require a constant value, fold tree with
2718         fold_initializer.
2719         (build_binary_op): Use require_constant_value to determine whether
2720         to call fold or fold_initializer.
2721
2722 2004-06-07  Richard Henderson  <rth@redhat.com>
2723
2724         * gimple-low.c (struct lower_data): Add the_return_label and
2725         one_return_stmt.
2726         (lower_function_body): Initialize and use them.
2727         (lower_return_expr): New.
2728         (lower_stmt): Call it.
2729         * gimplify.c (gimplify_return_expr): Force the argument to be either
2730         null or a result_decl.
2731         * tree-gimple.c: Update gimple grammer to match.
2732         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2733         coalescing of result_decls.
2734
2735 2004-06-07  Richard Henderson  <rth@redhat.com>
2736
2737         PR rtl-opt/15193
2738         * expmed.c (extract_bit_field): Fix vector_extract return.
2739
2740         * config/i386/i386.md (negv4sf2): New pattern.
2741
2742 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2743
2744         PR c++/15337
2745         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2746         message.
2747
2748 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
2749
2750         * config.in: Regenerate.
2751
2752 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2753
2754         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2755         SWITCH_LABELS are always sorted.
2756
2757 2004-06-06  Steven Bosscher  <stevenb@suse.de>
2758
2759         * hooks.c (hook_int_void_1): New generic hook.
2760         * hooks.h (hook_int_void_1): Add prototype.
2761         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2762         Define to hook_int_void_1.
2763         * config/c4x/c4x.md: Replace dummies for the old pipeline model
2764         with dummies for the new one.
2765
2766 2004-06-06  Roger Sayle  <roger@eyesopen.com>
2767
2768         * tree.h (lvalue_or_else): Delete function prototype.
2769         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
2770
2771 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2772
2773         PR target/14542
2774         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2775         a live change of a register after peephole replacement.
2776
2777 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2778
2779         PR c/13519
2780         * c-typeck.c (composite_type, common_pointer_type): New functions.
2781         (common_type): Split parts into composite_type and
2782         common_pointer_type.  Ensure that arithmetic operations return
2783         unqualified types without attributes.  Don't make composite type
2784         of signed enum and compatible integer be unsigned.
2785         (build_conditional_expr, build_binary_op): Use
2786         common_pointer_type.
2787         * c-decl.c (merge_decls): Use composite_type.
2788         * c-tree.h (composite_type): Declare.
2789
2790 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
2791
2792         PR target/14457
2793         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2794         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2795         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2796         (inhibit_libc): Must define.
2797         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2798         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2799         ("xorhi3"): Likewise.
2800
2801 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2802
2803         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2804         always_inline pass.
2805
2806 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
2807
2808         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2809         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2810
2811 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
2812
2813         * regclass.c (init_reg_sets): Check for missing registers in target
2814         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2815
2816 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2817
2818         * Makefile.in (MKDEPS_H): New shorthand.
2819         (c-opts.o): Update dependencies.
2820         * c-opts.c: Include mkdeps.h.
2821         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2822         not cpp_add_dependency_target.
2823
2824 2004-06-05  Steven Bosscher  <stevenb@suse.de>
2825
2826         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2827         * config/v850/v850.md: Convert to DFA scheduler description.
2828
2829 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2830
2831         PR fortran/15478
2832         * doc/install.texi: Document GMP as prerequisite. Document
2833         --with-gmp and --with-gmp-dir configure options.
2834         * fortran/gfortran.texi: Remove section "Compiling and testing",
2835         remove TOC reference to it.
2836
2837 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
2838
2839         * combine.c(simplify_shift_const): Check shift amount is a
2840         CONST_INT.
2841
2842 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
2843
2844         * toplev.c (init_asm_output): Add explicit 'b' to mode when
2845         opening asm_out_file.
2846         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2847         reading asm_out_file. Replace fflush after reading asm_out_file
2848         with fseek.
2849         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2850         default and add to HOST_HOOKS_INITIALIZER.
2851         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2852         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2853         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2854         to set mmi.offset padding.
2855          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2856         $(srcdir)/config/i386/winnt.c.
2857         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2858         (i[34567]86-*-uwin*): Likewise.
2859         *i[34567]86-*-interix3*): Likewise.
2860         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2861         * config/i386/host-mingw32.c: New file.
2862         * config/i386/x-mingw32: Add rule for host-mingw32.o.
2863         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2864         (extern_head): Likewise.
2865         (struct export_list) Likewise.
2866         (export_head): Likewise.
2867         (i386_pe_record_external_function): Use ggc_alloc.
2868         (i386_pe_record_exported_symbol): Likewise.
2869         Include "gt-winnt.h" at end.
2870         * doc/hostconfig.texi: Document
2871         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2872
2873 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
2874
2875         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2876         Rename 68000 and 68k to m68k for consistency in comments.  Remove
2877         trailing whitespace before EOLs and before TABs.
2878         (MAX_CODE_ALIGN): Remove unused macro.
2879         (CALL_USED_REGISTERS): Reformat and add comments.
2880
2881 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2882
2883         * gcc.c (MFLIB_SPEC): Remove library references, to require users
2884         to enumerate -lmudflap* and dependencies when linking.
2885
2886 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
2887
2888         PR target/15822
2889         * dojump.c (do_jump): Fix uninitialized variable tcode1.
2890
2891 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
2892
2893         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2894         * genconditions.c (write_header): Back out removal of reload.h.
2895
2896 2004-06-04  Jan Hubicka  <jh@suse.cz>
2897
2898         Re-apply hopefully fixed patch:
2899         * i386.md (UNSPECV_EH_RETURN): Kill.
2900         (eh_return): Use jump_insn.
2901         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2902
2903 2004-06-04  Jeff Law  <law@redhat.com>
2904
2905         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2906
2907 2004-06-04  Steven Bosscher  <stevenb@suse.de>
2908
2909         * except.c (for_each_eh_region): New function.
2910         * except.h (for_each_eh_region): Add a prototype for it.
2911         * tree-cfg.c (update_eh_labels): New function, callback for
2912         for_each_eh_region.
2913         (label_for_bb): Make global static, unfortunately.
2914         (cleanup_dead_labels): Also update label references for
2915         exception regions.
2916
2917 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2918
2919         * config/mips/mips.c (struct irix_section_align_entry): Fix
2920         GTY marker.
2921
2922 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
2923
2924         * toplev.c (check_global_declarations): Don't ask for
2925         DECL_ASSEMBLER_NAME unless the function really is declared
2926         static and not defined.
2927
2928 2004-06-03  Matt Austern  <austern@apple.com>
2929
2930         PR c++/15428
2931         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2932         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2933         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2934         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2935         documentation to reflect the new macro name and to clarify its
2936         meaning.
2937
2938 2004-06-03  Steven Bosscher  <stevenb@suse.de>
2939
2940         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2941
2942 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2943
2944         * config/darwin.c (machopic_indirect_data_reference): Copy
2945         the SYMBOL_REF_DECL from the original RTX for the new
2946         non-lazy pointer RTX.
2947
2948 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
2949
2950         * tree.h: Remove include of version.h
2951         * c-cppbuiltin.c: Include version.h
2952         * diagnostic.c: Include version.h
2953         * dwarf2out.c: Include version.h
2954         * toplev.c: Include version.h
2955         * vmsdbgout.c: Include version.h
2956         * Makefile.in: Remove dependency on version.h from TREE_H, and
2957         add dependencies to required .o targets
2958
2959 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
2960
2961         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2962         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2963         (TARGET_H): Add insn-modes.h.
2964         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2965         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2966         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2967         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2968         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2969         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2970         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2971         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2972         CFGLAYOUT_H.
2973         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2974         Replace ra.h with RA_H.
2975         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2976         insn-recog.o): Replace resource.h with RESOURCE_H.
2977         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2978         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
2979         with SCHED_INT_H.
2980         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2981         ra-rewrite.o): Replace df.h with DF_H.
2982         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2983         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2984         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2985         (insn-conditions.o): Remove unused reload.h.
2986         * cfglayout.h: Add include guard.  Include basic-block.h.
2987         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
2988         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2989         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
2990         basic-block.h.
2991         * genconditions.c:  Remove reload.h.
2992         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
2993         hard-reg-set.h, insn-modes.h.
2994         * resource.h: Add include guard.  Include hard-reg-set.h.
2995         * sched-int.h:  Add include guard.  Include insn-attr.h,
2996         basic-block.h, rtl.h.
2997         * target.h: Add include guard.  Include insn-modes.h.
2998         * tree-ssa-live.h: Include partition.h.
2999
3000 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
3001                 Kenneth Zadeck <zadeck@naturalbridge.com>
3002
3003         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
3004         (add_var_to_ssa_edges_worklist): Add value argument.
3005         Update callers.
3006         Use new worklist.
3007         (process_ssa_edge_worklist): New function.
3008         (tree_ssa_ccp): Move worklist processing core to
3009         process_ssa_edge_worklist, and just call that for the two worklists.
3010
3011 2004-06-03  Steven Bosscher  <stevenb@suse.de>
3012
3013         * basic-block.c (tail_recursion_label_list): Don't declare.
3014         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
3015         accordingly.
3016         * cfgbuild.c (find_label_refs): Remove.
3017         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
3018         * cfgcleanup.c (tail_recursion_label_p): Remove.
3019         (merge_blocks_move): Do not check for tail recursion.
3020         (try_optimize_cfg): Likewise.
3021         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
3022         * cfgrtl.c (tail_recursion_label_list): Remove.
3023         * except.c (remove_unreachable_regions): Don't handle
3024         CALL_PLACEHOLDER insns.
3025         (convert_from_eh_region_ranges_1, can_throw_internal,
3026         can_throw_external): Likewise.
3027         * function.c (free_after_compilation): Don't clear
3028         x_tail_recursion_label.
3029         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
3030         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
3031         (reorder_blocks_1): Likewise.
3032         * function.h (struct function): Remove x_tail_recursion_label
3033         member.  Don't define tail_recursion_label.
3034         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
3035         * print-rtl.c (print_rtx): Likewise.
3036         * rtl.def (CALL_PLACEHOLDER): Remove.
3037         * rtl.h (sibcall_use_t): Remove enum.
3038         (optimize_sibling_and_tail_recursive_calls,
3039         replace_call_placeholder): Remove function prototypes.
3040         * stmt.c (tail_recursion_args): Remove.
3041         (optimize_tail_recursion): Remove.
3042         (expand_return): Don't check for possible tail recursion.
3043         * tree.h (optimize_tail_recursion): Remove prototype.
3044
3045 2004-06-02  Jan Hubicka  <jh@suse.cz>
3046
3047         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
3048         return_stmt.
3049
3050 2004-06-02  Jason Merrill  <jason@redhat.com>
3051
3052         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
3053         Do include c-parse.in.
3054
3055 2004-06-02  Eric Christopher  <echristo@redhat.com>
3056
3057         * c-typeck.c (common_type): Don't lose type qualifiers
3058         when creating new variants.
3059
3060 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
3061
3062         PR tree-optimization/14042
3063         PR tree-optimization/14729
3064         PR tree-optimization/14736
3065         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
3066         Check the type which the pointer points to
3067         instead of the pointer types.
3068
3069 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
3070
3071         PR tree-optimization/15738.
3072         * builtins.c (fold_builtin_strchr): Transform
3073         strrchr (s, '\0') to strchr (s, '\0').
3074
3075 2004-06-02  Steven Bosscher  <stevenb@suse.de>
3076
3077         * i386.c (ix86_adjust_cost): Don't increase the cost for
3078         load+operation for PROCESSOR_PENTIUMPRO, it is already
3079         modelled in the DFA description
3080
3081 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
3082
3083         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
3084         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
3085         (ALIAS_H, EMIT_RTL_H): New.
3086         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
3087         (cfgcleanup.o): Add EMIT_RTL_H.
3088         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
3089         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
3090         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
3091         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
3092         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
3093         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
3094         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
3095         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
3096         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
3097         set_mem_size): Move to emit-rtl.h.
3098         * emit-rtl.h: New.
3099         * alias.h: New.
3100
3101 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
3102
3103         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
3104         Call fixup_memory_subreg only if the MEM is equal to 'var'.
3105         Adjust recursive calls to self.
3106         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
3107
3108 2004-06-01  Richard Henderson  <rth@redhat.com>
3109             Andrew Pinski  <pinskia@physics.uc.edu>
3110
3111         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
3112         (primary): Handle offsetof.  Add error productions for faux functions.
3113         Move component_ref objc checking to build_component_ref.
3114         (reswords): Add offsetof.
3115         (rid_to_yy): Add offsetof.
3116         * c-tree.h (build_offsetof): Declare.
3117         * c-common.h (objc_is_public): Declare.
3118         * c-typeck.c (build_component_ref): Check objc_is_public.
3119         (build_offsetof): New.
3120         * stub-objc.c (objc_is_public): New.
3121         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
3122         from is_public.
3123         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
3124         * doc/extend.texi (Offsetof): Move from C++ section to C section
3125         and rewrite for __builtin_offsetof.
3126
3127 2004-06-01  Peter Barada  <peter@the-baradas.com>
3128             Peter Jakubek  <peter@laseranimation.com>
3129
3130         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
3131         a scratch to perform an add to memory.
3132
3133 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
3134
3135         PR target/14018
3136         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
3137         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
3138         m68k_align_funcs): Remove.
3139         (override_options): Remove code to handle -malign-* options.
3140         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
3141         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
3142         (m68k_align_loops_string, m68k_align_jumps_string,
3143         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
3144         m68k_align_funcs): Remove definitions.
3145
3146 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
3147
3148         PR target/15626
3149         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
3150         by the Sun linker in conjunction with the Sun assembler.
3151         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
3152
3153 2004-06-01  Jeff Law  <law@redhat.com>
3154
3155         * stmt.c (expand_decl): Be more selective about calling
3156         mark_reg_pointer.
3157
3158 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
3159
3160         PR objc/7993
3161         * objc-act.c (is_private): Do not emit the 'instance variable %s
3162         is declared private' error.
3163         (is_public): Emit the error after calling is_private.
3164         (lookup_objc_ivar): If the instance variable is private, return 0
3165         - the instance variable is invisible here.
3166
3167 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3168
3169         * doc/invoke.texi (-static-libgcc): Explicitly mention
3170         non-GNU linkers.
3171
3172 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
3173
3174         PR target/12968
3175         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
3176
3177 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
3178
3179         PR c/15749
3180         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
3181         misuses of structures with flexible array members if
3182         in_system_header.
3183
3184 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3185
3186         PR target/15693
3187         * config/sparc/sparc.c (compare_operand): New predicate.
3188         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
3189         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
3190         operand is a ZERO_EXTRACT and the second operand is not zero,
3191         force the former to a register.
3192         (cmpdi expander): Likewise.
3193
3194 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
3195
3196         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
3197         looks at.
3198         * alias.c (alias_invariant_size): Make alias_invariant_size
3199         static, fix GTY marker.
3200
3201 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
3202
3203         PR tree-optimization/15743.
3204         * builtins.c (fold_builtin_1): Fold index() and rindex().
3205
3206 2004-05-31  Roger Sayle  <roger@eyesopen.com>
3207
3208         PR middle-end/15069
3209         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
3210         into "X < 0" (where C is the signbit) if X's type is a full mode.
3211
3212 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3213
3214         * pa.md: Disable the peephole2 patterns that generate indexed
3215         floating-point stores when indexing is disabled.
3216
3217 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3218
3219         * c-pretty-print.c (pp_c_left_bracket): Make a function.
3220         (pp_c_right_bracket): Likewise.
3221         (pp_c_star): Likewise.
3222         (pp_c_ampersand): Define.
3223         * c-pretty-print.h (pp_c_left_bracket): Declare.
3224         (pp_c_right_bracket): Likewise.
3225         (pp_c_star): Likewise.
3226         (pp_c_ampersand): Likewise.
3227
3228 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3229
3230         * config/sol2.h (__enable_execute_stack): ANSIfy function
3231         definition.
3232
3233 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
3234
3235         * c-incpath.c (add_path): Canonicalize paths to use '/' if
3236         HAVE_DOS_BASED_FILESYSTEM.
3237
3238 2004-05-31  Steven Bosscher  <stevenb@suse.de>
3239
3240         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
3241         Only look at case labels if the immediate dominator is also
3242         the only predecessor.  Don't look for more case labels if the
3243         first seen is a case range.
3244
3245 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
3246
3247         * builtins.c: Add a prototype for fold_builtin_strchr().
3248
3249 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
3250
3251         Revert this patch:
3252         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
3253
3254         * combine.c (gen_binary): Remove.
3255         (known_cond, simplify_shift_const
3256         find_split_point, combine_simplify_rtx,
3257         simplify_if_then_else, simplify_set,
3258         simplify_logical, expand_field_assignment,
3259         extract_left_shift, force_to_mode,
3260         if_then_else_cond, apply_distributive_law,
3261         simplify_and_const_int, simplify_shift_const,
3262         gen_lowpart_for_combine, simplify_comparison,
3263         reversed_comparison): Replace with
3264         simplify_gen_binary, simplify_gen_relational or
3265         distribute_and_simplify_rtx.
3266         (distribute_and_simplify_rtx): New function.
3267
3268 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3269
3270         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
3271         when generating PIC code.
3272
3273 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
3274
3275         * c-decl.c (c_expand_body_1): Remove and fold back into ...
3276         (c_expand_body): here.
3277         (c_expand_decl): Move to ...
3278         * c-common.c (c_expand_decl): Here and remove check for nested
3279         functions.
3280         * c-common.h (c_expand_decl): Add prototype.
3281         * c-tree.h (c_expand_decl): Remove.
3282
3283 2004-05-30  Roger Sayle  <roger@eyesopen.com>
3284
3285         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
3286         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
3287         fold_mathfn_compare, fold_inf_compare, fold,
3288         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3289         Use constant_boolean_node where appropriate.  Don't bother using
3290         fold_convert on the second argument to omit_one_operand.
3291
3292 2004-05-30  Roger Sayle  <roger@eyesopen.com>
3293
3294         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
3295         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
3296         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
3297         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
3298         Add missing (but documented) tree nodes to the index.
3299
3300 2004-05-30  Steven Bosscher  <stevenb@suse.de>
3301
3302         PR tree-optimization/14819
3303         * builtins.c (fold_builtin_strchr): New.
3304         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
3305         with fold_builtin_strchr().
3306
3307 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3308
3309         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
3310         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
3311         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
3312         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
3313         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
3314         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
3315         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
3316         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
3317         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
3318         formatting.
3319
3320 2004-05-30  Steven Bosscher  <stevenb@suse.de>
3321
3322         * gimplify.c (sort_case_labels): New.  Split out from...
3323         (gimplify_switch_expr): ...here.  Use it.
3324         * tree-eh.c (lower_try_finally_switch): Sort the labels of
3325         the SWITCH_EXPR created here before leaving the function.
3326         * tree.c (sort_case_labels): Add prototype.
3327
3328 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
3329
3330         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
3331         of BOOLEAN_TYPE.
3332
3333 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3334
3335         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
3336         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
3337         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
3338         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
3339         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
3340         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
3341         comment typos.  Follow spelling conventions.
3342
3343 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
3344
3345         * gengtype-yacc.y: Add NESTED_PTR token.
3346         (option): Record `nested_ptr' option.
3347         * gengtype-lex.l: Handle `nested_ptr' keyword.
3348         * gengtype.c (walk_type): Process `nested_ptr' option.
3349         * gengtype.h (struct nested_ptr_data): New.
3350         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
3351         * stringpool.c (struct string_pool_data): Make 'entries' point to
3352         ht_identifier instead of tree.
3353         (gt_pch_save_stringpool): Don't adjust pointers.
3354         (gt_pch_restore_stringpool): Call ht_load.
3355
3356 2004-05-29  Jason Merrill  <jason@redhat.com>
3357
3358         * gimplify.c (gimplify_expr): Don't build a statement list
3359         if no gimplification was necessary.
3360
3361 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
3362
3363         * pretty-print.c (pp_base_format_text): Support %< instead of %`
3364         and %> as well as %'.
3365         * c-format.c: Use %< and %>.
3366         (gcc_diag_char_table, gcc_cdiag_char_table,
3367         gcc_cxxdiag_char_table): Update.
3368
3369 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
3370
3371         * c-typeck.c (common_type): Correct comment.
3372
3373 2004-05-29  Peter Barada  <peter@the-baradas.com>
3374
3375         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
3376         * config/m68k/m68k.c (const_method): Likewise.
3377         * config/m68k/m68k.c (const_int_cost): Likewise.