OSDN Git Service

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