OSDN Git Service

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