OSDN Git Service

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