OSDN Git Service

* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-25  Paul Brook  <paul@codesourcery.com>
2
3         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
4
5 2004-06-25  Richard Earnshaw  <rearnsha@arm.com>
6
7         * arm.c (arm_arch4t): New variable.
8         (arm_override_options): Initialize it.  If compiling for armv5 or
9         higher clear TARGET_INTERWORK.
10         (output_call): Abort if called for armv5.  Use BX if it's available.
11         (output_call_mem): Use BLX if available and ensure that all armv5
12         code is interworking safe.
13         (output_return_instruction): Always use BX in preference to MOV if
14         it's available.
15         (arm_output_epilogue): Likewise.
16         (arm_final_prescan_insn): Never conditionally call a subroutine
17         on armv5.
18         * arm.h (arm_arch4t): Declare.
19         * arm.md (call_reg_armv5, call_value_reg_armv5): New.
20         (call_reg_arm, call_value_reg_arm): Renamed from call_reg and 
21         call_value_reg respectively.
22         (call_reg_thumb_v5, call_value_reg_thumb_v5): New.
23         (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
24         and call_value_indirect respectively.
25
26 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
27
28         * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
29         in terms of const_float_1_operand.
30
31 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
32
33         PR target/16144
34         * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
35         is 1.0; force it into a register instead.
36
37 2004-06-25  Bernardo Innocenti  <bernie@develer.com>
38
39         * config/m68k/m68k.h: Restore valid comment removed by mistake with
40         the recent m68k comments cleanup.
41
42 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
43
44         * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
45         * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
46         (gimplify_loop_expr, gimplify_init_constructor): Likewise.
47         (gimplify_self_mod_expr, gimplify_cond_expr): Likewise.
48         
49         PR/16131
50         * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.
51
52         * gimplify.c: Remove unneeded forward declarations.
53
54         * gimplify.c (append_to_compound_expr): Deleted.
55         * tree-gimple.h (append_to_compound_expr): Deleted.
56
57         * fold-const.c (fold_addr_expr_with_type): Look through all
58         valid LHS modifiers to find a base to mark addressable.
59
60         * tree.h (debug_find_tree): Add declaration.
61         * tree-inline.c (debug_find_tree): Remove extern declaration.
62
63 2004-06-24  Eric Christopher  <echristo@redhat.com>
64
65         * config/rs6000/rs6000.md: Apply change mistakenly
66         deleted with 2004-06-22 patch.
67
68 2004-06-24  Richard Henderson  <rth@redhat.com>
69
70         * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
71         (c_break_label, c_cont_label): New.
72         (start_function): Update initializations.
73         (c_push_function_context): Update saves.
74         (c_pop_function_context): Update restores.
75         * c-parse.in: Update expected conflicts.
76         (stmt_count, compstmt_count): Remove.  Remove all updates.
77         (if_prefix, simple_if, do_stmt_start): Remove.
78         (lineno_labeled_stmt): Remove.
79         (lineno_labels): New.
80         (c99_block_lineno_labeled_stmt): Use it.
81         (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
82         annotate_with_locus.
83         (select_or_iter_stmt): Replace by ...
84         (condition, if_statement_1, if_statement_2, if_statement,
85         start_break, start_continue, while_statement, do_statement,
86         for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
87         (stmt): Split out ...
88         (stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
89         c_finish_goto_ptr.
90         * c-semantics.c (add_stmt): Don't add line numbers to labels.
91         * c-tree.h: Update prototypes.
92         (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
93         add x_break_label, x_cont_label, x_switch_stack.
94         (c_switch_stack): Declare.
95         * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
96         (c_finish_return): Return the statement.
97         (c_switch_stack): Rename from switch_stack; export.
98         (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
99         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
100         c_finish_else): Remove.
101         (c_finish_if_stmt): Rewrite to perform the entire operation.
102         (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
103         c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
104         c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
105         (c_finish_loop): New.
106         (c_finish_bc_stmt): New.
107         (c_finish_expr_stmt): Return the statement.  Split out...
108         (c_process_expr_stmt): ... this.  Don't add locus to error marks.
109         * gimplify.c (gimplify_cond_expr): Accept NULL type statements.
110         * tree-gimple.c (is_gimple_stmt): Likewise.
111         * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
112         (print_struct_decl): Delete empty compound statement.
113         * objc/objc-act.c (objc_build_throw_stmt): Return the statement.
114         * objc/objc-act.h: Update decl.
115
116 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
117
118         * tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
119         Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.
120
121 2004-06-24  Andrew Pinski  <apinski@apple.com>
122
123         * objc-act.c (build_objc_method_call): Save the lookup_object
124         so we do not call it twice.
125
126 2004-06-24  Richard Henderson  <rth@redhat.com>
127
128         * tree-ssa-dom.c (real_avail_expr_hash): New.
129         (tree_ssa_dominator_optimize): Use it in the htab.
130
131 2004-06-24  Frank Ch. Eigler  <fche@redhat.com>
132
133         * tree-mudflap.c (mx_register_decls): Add third (type) argument
134         to synthesized __mf_unregister call.
135
136 2004-06-24  Roger Sayle  <roger@eyesopen.com>
137
138         PR middle-end/15239
139         * expmed.c (expand_mult): Remove artificial restriction on the
140         maximum cost of a synthetic multiplication sequence.
141
142 2004-06-24  Eric Christopher  <echristo@redhat.com>
143
144         * combine.c (distribute_notes): Don't delete sets to
145         global register variables.
146
147 2004-06-24  Jakub Jelinek  <jakub@redhat.com>
148
149         * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
150         (ffs_rex64): New splitter.
151         (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
152
153 2004-06-24  Andrew Pinski  <apinski@apple.com>
154
155         * config/darwin7.h (MATH_LIBRARY): Remove.
156         (LIB_SPEC): Define.
157         * config/darwin.h (MATH_LIBRARY): Define always to empty.
158         (LIB_SPEC): Only define if not already defined.
159
160 2004-06-24  Revital Eres  <eres@il.ibm.com>
161
162         * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
163         shifts of induction variable.
164         (iv_shift): New function.
165
166 2004-06-24  Richard Henderson  <rth@redhat.com>
167
168         * gimplify.c (gimplify_body): Watch for body vanishing.
169
170 2004-06-24  Jeff Law  <law@redhat.com>
171
172         * tree-ssa-dom.c (record_dominating_conditions): New function.
173         (dom_opt_finalize_block, get_eq_expr_value): Use it.
174
175 2004-06-24  Richard Sandiford  <rsandifo@redhat.com>
176
177         * calls.c (shift_returned_value): Fix handling of non-integer
178         TYPE_MODEs.
179
180 2004-06-24  Ulrich Weigand  <uweigand@de.ibm.com>
181
182         * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
183         * system.h (DEFAULT_MAIN_RETURN): Poison.
184         * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
185
186 2004-06-24  Ben Elliston  <bje@au.ibm.com>
187
188         * doc/cfg.texi (Edges): Fix typo.
189
190 2004-06-24  Paul Brook  <paul@codesourcery.com>
191
192         * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
193
194 2004-06-23  Andrew Pinski  <apinski@apple.com>
195
196         PR middle-end/15988
197         * fold-const.c (fold_convert): Types which are compatible
198         can be converted with only a NOP_EXPR.
199
200 2004-06-24  Alan Modra  <amodra@bigpond.net.au>
201
202         * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
203         pass raw n_named_args to it.
204         * targhooks.c: Formatting.
205         (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
206
207 2004-06-23  Richard Henderson  <rth@redhat.com>
208
209         * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
210         non-constant size check.  Gimplify the type too.  Tidy building
211         BUILT_IN_STACK_ALLOC call.
212
213 2004-06-23  Roger Sayle  <roger@eyesopen.com>
214
215         * c-common.c (expand_unordered_cmp): Delete.
216         (expand_tree_builtin): Delete.
217         * c-common.h (expand_tree_builtin): Delete function prototype.
218         * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
219
220 2004-06-23  Richard Henderson  <rth@redhat.com>
221
222         * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
223         COMPONENT_REF variable fields unless they're non-constant.
224
225 2004-06-23  Robert Millan  <robertmh@gnu.org>
226
227         * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
228         * config/i386/linux.h: Allow overriding of LINK_EMULATION,
229           DYNAMIC_LINKER and register names in sc_ structure.
230         * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
231         * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
232         * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
233         * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
234
235         * config/kfreebsdgnu.h: Remove.
236         * config/t-kfreebsd-gnu: Likewise.
237         * config/i386/kfreebsdgnu.h: Likewise.
238
239 2004-06-23  Eric Christopher  <echristo@redhat.com>
240
241         * fold-const.c (make_range): Cleanup type checking through function.
242         Remove orig_type. Replace with checks to exp_type and arg0_type.
243         Clarify comment when converting from unsigned to signed.
244
245 2004-06-23  Eric Christopher  <echristo@redhat.com>
246
247         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
248         * config/mips/mips.md: Remove R3000 scheduling description.
249         * config/mips/3000.md: New file.
250
251 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
252
253         * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
254         (s390_emit_jump): Likewise.
255         * config/s390/s390.c (s390_emit_compare): New function.
256         (s390_emit_jump): Likewise.
257         * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
258         "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
259         "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
260         and s390_emit_jump.
261         ("cjump"): Remove, replace by ...
262         ("*cjump_64", "*cjump_31"): ... these insns.  Improve length default.
263         ("icjump", "*icjump_64", "*icjump_31"): Likewise.
264         ("trap"): Fix type attribute.
265         ("conditional_trap"): Use s390_emit_compare.
266         ("doloop_si"): Remove, replace by ...
267         ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
268         Merge existing splitter into insn_and_split.  Improve length default.
269         ("doloop_di"): Merge with existing splitter into insn_and_split.
270         ("doloop"): Adapt.
271         ("jump"): Convert to expander.  Use s390_emit_jump.
272         ("*jump_64", "*jump_31"): New insns.  Improve length default.
273
274 2004-06-23  Wu Yongwei  <adah@sh163.net>
275
276         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
277         (__gthr_i486_lock_cmp_xchg): New inline assembly function.
278         (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
279         suitable function for interlocked compare-and-exchange.
280         (__gthread_mutex_trylock): Use
281         __GTHR_W32_InterlockedCompareExchange.
282         (__gthread_mutex_init_function, __gthread_mutex_lock,
283         __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
284         initial counter value to work correctly under Windows 95.
285         * config/i386/gthr-win32.c: Adjust include order.
286         Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
287         gthr-win32.h.
288         (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
289         __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
290         to match inline versions in gthr-win32.h.
291
292 2004-06-23  David Edelsohn  <edelsohn@gnu.org>
293
294         * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
295         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
296         (insvdi_rshift_rlwimi_p): New function.
297         * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
298         (extendsfdf2): Convert to define_insn_and_split.
299         * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
300
301 2004-06-23  Andrew Pinski  <apinski@apple.com>
302
303         * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
304         type qualifiers at all.
305         If both of the type domains are null and the new element type is
306         the same as one of the, return the one which the element type.
307         matches.
308         Do not call qualify_type on the new type.
309
310 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
311
312         * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
313
314 2004-06-23  Roger Sayle  <roger@eyesopen.com>
315
316         * convert.c (strip_float_extension): Skip both NOP_EXPR and
317         CONVERT_EXPR floating point extensions.
318
319 2004-06-23  Diego Novillo  <dnovillo@redhat.com>
320
321         * Makefile.in (tree-vn.o): New.
322         (tree-ssa-pre.o): Don't depend on RTL_H.
323         * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
324         * tree-flow.h (struct var_ann_d): Remove field expr_set.
325         (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
326         vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
327         * tree-optimize.c (execute_init_datastructures): New local function.
328         (pass_init_datastructures): New local variable.
329         (init_tree_optimization_passes): Sequence pass_init_datastructures.
330         * tree-pretty-print.c (MASK_POINTER): Remove.
331         (dump_generic_node): Handle VALUE_HANDLE.
332         * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
333         Update callers to use new function names.
334         Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
335         variable annotations.
336         * tree-ssa.c (init_tree_ssa): Call vn_init.
337         (delete_tree_ssa): Call vn_delete.
338         * tree-vn.c: New file.
339         * tree.c (tree_size): Handle VALUE_HANDLE.
340         (tree_node_structure): Likewise.
341         (iterative_hash_expr): Likewise.
342         * tree.def (VALUE_HANDLE): New code.
343         * tree.h (struct tree_value_handle): New.
344         (VALUE_HANDLE_ID): Define.
345         (VALUE_HANDLE_EXPR_SET): Define.
346         (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
347         (union tree_node): Add struct tree_value_handle.
348
349 2004-06-23  Andrew Pinski  <apinski@apple.com>
350
351         * c-typeck.c (composite_type):
352         <case POINTER_TYPE>: Build a qualified type of
353         the new type.
354         <case ARRAY_TYPE>: Likewise.
355         <case FUNCTION_TYPE>: Likewise.
356
357 2004-06-23  Pat Haugen  <pthaugen@us.ibm.com>
358
359         PR optimization/15633
360         * value-prof.c (divmod_fixed_value_transform): Compute probability
361         of taking optimal path and pass along to gen_ routine.
362         (mod_pow2_value_transform): Same.
363         (mod_subtract_transform): Same.
364         (gen_divmod_fixed_value): Add new probability parameter.
365         Add probability to newly created jump.
366         (gen_mod_pow2): Same.
367         (gen_mod_subtract): Same.
368
369 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
370
371         * PR target/15948
372         * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
373         one and two.
374
375 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
376
377         PR target/15927
378         * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
379         reload if CLASS is BASE_REGS.
380
381 2004-06-23  Richard Sandiford  <rsandifo@redhat.com>
382
383         * gengtype-yacc.y (option): Avoid use of non-constant struct
384         initializer.
385
386 2004-06-23  Nathan Sidwell  <nathan@codesourcery.com>
387
388         * doc/extend.texi (Function Attributes): Alphabetize.
389
390 2004-06-23  Richard Henderson  <rth@redhat.com>
391
392         * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
393         Use gimplify_and_add.
394         * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
395         * gimplify.c (build_and_jump, gimplify_exit_expr,
396         gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
397         gimplify_stmt, gimplify_expr): Likewise.
398         (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
399         (gimplify_statement_list): Remove NULL entries.
400         (gimplify_to_stmt_list): Handle NULL results.
401         (gimplify_type_sizes): Add list_p argument.
402         (gimplify_one_sizepos): Don't use internal pre/post queue.
403         * tree-gimple.h (gimplify_type_sizes): Update.
404
405 2004-06-22  Eric Christopher  <echristo@redhat.com>
406
407         * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
408
409 2004-06-22  Pat Haugen  <pthaugen@us.ibm.com>
410
411         * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
412         when redirecting back edges.
413
414         * cfghooks.c (split_block): Call make_single_succ_edge so that edge
415         count/probability are set correctly.
416
417 2004-06-22  Richard Henderson  <rth@redhat.com>
418
419         * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
420         (c_finish_stmt_expr): Likewise.
421
422         * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
423         (ix86_return_in_memory): Move SSE vector return warning ...
424         (ix86_struct_value_rtx): ... here.  New.
425
426 2004-06-22  Richard Henderson  <rth@redhat.com>
427
428         * tree.def (VTABLE_REF): Remove.
429         (OBJ_TYPE_REF): New.
430         (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
431         * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
432         * fold-const.c (non_lvalue): Likewise.
433         * gimplify.c (gimplify_expr): Likewise.
434         (gimplify_call_expr): Use is_gimple_call_addr.
435         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
436         * langhooks.h (fold_obj_type_ref): New.
437         * tree-gimple.c (is_gimple_call_addr): New.
438         * tree-gimple.h (is_gimple_call_addr): Declare.
439         * tree-inline.c (inlinable_function_p): Fix merge error.
440         (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
441         * tree-pretty-print.c (dump_generic_node): Likewise.
442         (print_call_name): Handle OBJ_TYPE_REF.
443         * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
444         * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
445         * tree.h (OBJ_TYPE_REF_EXPR): New.
446         (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
447         * doc/c-tree.texi (VTABLE_REF): Remove.
448         * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
449
450 2004-06-22  Richard Henderson  <rth@redhat.com>
451
452         PR middle-end/16026
453         * function.c (assign_parms): Don't abort for overaligned PARALLEL.
454
455 2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>
456
457         * Makefile.in (distclean): Don't try to remove empty directories.
458
459 2004-06-22  Richard Sandiford  <rsandifo@redhat.com>
460
461         PR target/15869
462         * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
463
464 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
465
466         * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
467         operands.
468
469 2004-06-22  Dale Johannesen  <dalej@apple.com>
470
471         * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
472         global, rename rs6000_legitimate_offset_address_p.
473         (rs6000_legitimate_address_p): Adjust calls to it.
474         (lmw_operation): Ditto.
475         (stmw_operation): Ditto.
476         * config/rs6000/rs6000-protos.h: Declare it.
477         * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
478         instead of offsettable_memref_p.
479
480 2004-06-22  Dale Johannesen  <dalej@apple.com>
481
482         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
483         [reg+reg] mode for TFmode memory accesses.
484         (rs6000_eliminate_indexed_memrefs): New.
485         (rs6000_emit_move): Call preceding for TImode and TFmode.
486
487 2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
488
489         * tree-cfg.c (pass_warn_function_return): It needs
490         CFG, not SSA.
491
492 2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>
493
494         * doc/invoke.texi (Machine Dependent Options): Alphabetize.
495         (Submodel Options): Likewise.
496
497 2004-06-21  Andrew Pinski  <apinski@apple.com>
498
499         Radar #: 3701874
500         * c-decl.c (push_file_scope): Return early if we already
501         have a file scope.
502
503 2004-06-21  Geoffrey Keating  <geoffk@apple.com>
504
505         * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
506         * c-common.h (flag_pch_preprocess): Declare.
507         (c_common_pch_pragma): Likewise.
508         * c-common.c (flag_pch_preprocess): New.
509         * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
510         (c_common_pch_pragma): New.
511         * c-ppoutput.c (cb_read_pch): New.
512         (init_pp_output): Support -fpch-preprocess.
513         * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
514         * c.opt (fpch-preprocess): New.
515         * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
516         * doc/cppopts.texi: Document -fpch-preprocess.
517         * doc/invoke.texi (Precompiled Headers): Mention that
518         -fpreprocessed is safe for PCH.  Mention that if an option is
519         listed as safe that doesn't mean it does what you expect.
520
521 2004-06-22  Ben Elliston  <bje@au.ibm.com>
522
523         * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
524
525 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
526
527         * Makefile.in (gimplify.o): Add cgraph.h.
528         * alias.c (adjust_offset_for_component_ref): Use
529         component_ref_field_offset.
530         * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
531         * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
532         (gimplify_decl_stmt): Call gimplify_type_sizes for type.
533         For decl, call gimplify_one_sizepos and use statement list.
534         (gimplify_compound_literal_expr): New arg PRE_P.
535         Add statement to PRE_P list and return DECL.
536         (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
537         gimplify_compound_literal_expr.
538         * c-tree.h (getdecls): Deleted.
539         * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
540         (build_array_ref): Add two operands for ARRAY_REF.
541         (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
542         COMPOUND_LITERAL_EXPR.
543         * coverage.c (tree_coverage_counter_ref): Add new operands
544         for ARRAY_REF.
545         * emit-rtl.c (component_ref_for_mem_expr): Add new operand
546         for COMPONENT_REF.
547         (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
548         and array_ref_element_size.
549         (widen_memory_access):Use component_ref_field_offset.
550         * explow.c (update_nonlocal_goto_save_area): Add two operands
551         for ARRAY_REF.
552         * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
553         (component_ref_field_offset): Likewise.
554         (get_inner_reference): Use them.
555         (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
556         * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
557         (fold_read_from_constant_string): Use array_ref_low_bound.
558         Verify that result is a character type.
559         (build_fold_indirect_ref): Add two operands for ARRAY_REF.
560         * function.c (expand_function_start): Likewise.
561         * gimple-low.c (expand_var_p): Delete duplicated line.
562         * gimplify.c: Add static decls for local functions.
563         (cgraph.h): Now included.
564         (create_tmp_var): Remove check for ARRAY_TYPE.
565         (copy_if_shared_r): Look at bounds and sizes of types.
566         (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
567         (gimplify_exit_expr, shortcut_cond_expr): Likewise.
568         (gimplify_save_expr, gimple_push_cleanup): Likewise.
569         (gimplify_init_constructor): Likewise.
570         WANT_VALUE now bool.
571         If empty list with no result wanted, return GS_UNHANDLED.
572         Add additional operands for ARRAY_REF and COMPONENT_REF.
573         (canonicalize_component_ref): Convert to &array[L].
574         (gimplify_array_ref_to_plus): Use array_ref_element_size and
575         array_ref_lower_bound.
576         (build_addr_expr_with_type, build_addr_expr): New functions.
577         (gimplify_compound_lval): WANT_LVALUE now bool.
578         Major rework to allow handle_component_p and initialize and
579         gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
580         COMPONENT_REF.
581         (gimplify_array_ref): Deleted.
582         (gimplify_self_mod_expr): WANT_VALUE now bool.
583         (gimplify_modify_expr): Gimplify to_p and from_p later.
584         Factor out code into gimplify_modify_expr_rhs and call twice.
585         Move variable-size code earlier and handle PLACEHOLDER_EXPR.
586         (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
587         (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
588         (gimplify_expr, case ARRAY_REF): Delete special case.
589         Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
590         IMAGPART, and REALPART the same way.
591         (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
592         (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
593         Call alloc_stmt_list instead of build_empty_stmt.
594         Deal with _REF that's volatile.
595         (gimplify_type_sizes, gimplify_one_sizepos): New functions.
596         (unshare_body, unvisit_body): New functions.
597         (gimplify_body): Call them.
598         * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
599         * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
600         * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
601         * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
602         like ARRAY_REF.
603         (verify_expr, case ADDR_EXPR): Use handled_component_p.
604         * tree-dfa.c (get_virtual_var): Likewise.
605         * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
606         New cases to dump new operands; likewise for ARRAY_RANGE_REF.
607         * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
608         * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
609         and INDIRECT_REF.
610         (get_base_address): Use handled_component_p.
611         * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
612         * tree-inline.c (walk_tree): Walk more things for types and decls.
613         * tree-mudflap.c (mf_build_check_statement_for): Add new operands
614         for ARRAY_REF and COMPONENT_REF.
615         (mx_xform_derefs_1): Clean up usage of decl sizes.
616         * tree-nested.c (build_addr): Use handled_component_p.
617         (walk_stmts, case CATCH_EXPR): Add missing "break".
618         (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
619         (finalize_nesting_tree_1): Likewise.
620         (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
621         and process additional operands.
622         (convert_local_reference): Likewise.
623         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
624         ARRAY_RANGE_REF similarly to ARRAY_REF.
625         * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
626         like RECORD_TYPE.
627         (dump_generic_node, case COMPONENT_REF): Print offset operand.
628         (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
629         and print lower bound and element size for both.
630         (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
631         * tree-sra.c (csc_build_component_ref): Add new operand.
632         (scalarize_call_expr): Use get_base_address.
633         * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
634         (maybe_fold_offset_to_array_ref): Rework to handle input having an
635         ARRAY_REF, refine handling of lower bound, and add new operands
636         for ARRAY_REF.
637         (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
638         (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
639         (maybe_fold_stmt_addition): Only handle constant lower bound.
640         * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
641         Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
642         Look at new offset operand of COMPONENT_REF.
643         * tree-ssa.c (set_is_used): Use handled_component_p.
644         * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
645         (stabilize_reference, case COMPONENT_REF): Likewise.
646         (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
647         (recompute_tree_invariant_for_addr_expr): Completely rework to
648         be more precise.  Also set TREE_SIDE_EFFECTS.
649         (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
650         (build2_stat, build3_stat, build4_stat): For references,
651         propagate TREE_THIS_VOLATILE.
652         (get_unwidened): Add new operand for COMPONENT_REF.
653         (get_narrower): Likewise; use host_integerp for DECL_SIZE.
654         * tree.def (COMPONENT_REF): Add new operand.
655         (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
656         * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
657         (component_ref_field_offset): Likewise.
658         * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
659         (alpha_gimplify_va_arg): Likewise.
660         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
661         * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
662         * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
663         * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
664         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
665         Likewise.
666         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
667         * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
668         * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
669         Likewise.
670         (xstormy16_expand_builtin_va_arg): Likewise.
671         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
672         * objc/objc-act.c (generate_static_references): Likewise.
673         (generate_strings, build_method_prototype_list_template): Likewise.
674         (generate_protocol_list): Likewise.
675
676 2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
677
678         PR rtl-optimization/14782
679         * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
680         the address checks for secondary reloads for loads from and stores
681         to floating-point registers.
682         * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
683         in the address check.  Move work around for ELF32 targets to
684         GO_IF_LEGITIMATE_ADDRESS.
685         (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
686         correctly aligned for DImode loads and stores.  Don't allow long
687         SFmode displacements on ELF32.
688
689 2004-06-21  Richard Henderson  <rth@redhat.com>
690
691         PR rtl-opt/16114
692         * cse.c (merge_equiv_classes): Also rehash in response to
693         delete_reg_equiv changes.
694         (rehash_using_reg): Don't exclude REGs from rehashing.
695
696 2004-06-21  Richard Henderson  <rth@redhat.com>
697
698         * c-common.def (RETURN_STMT): Remove.
699         * c-common.h (RETURN_STMT_EXPR): Remove.
700         (c_expand_return, build_return_stmt): Remove.
701         (c_common_stmt_codes): Remove RETURN_STMT.
702         * c-dump.c (dump_next_stmt): Remove.
703         (c_dump_tree): Remove RETURN_STMT.
704         * c-decl.c (finish_function): Use c_finish_return.
705         * c-parse.in (stmt): Likewise.
706         * c-gimplify.c (gimplify_return_stmt): Remove.
707         (c_gimplify_expr): Remove RETURN_STMT.
708         * c-pretty-print.c (pp_c_statement): Likewise.
709         * c-semantics.c (build_return_stmt): Remove.
710         * c-tree.h (c_finish_return): Declare.
711         * c-typeck.c (c_finish_return): Rename from c_expand_return.
712         Return void.  Build RETURN_EXPR directly.
713         * tree-dump.h (dump_next_stmt): Remove.
714
715 2004-06-21  Zack Weinberg  <zack@codesourcery.com>
716
717         * c-decl.c (start_function): Don't call make_decl_rtl.  Don't
718         look at TREE_ADDRESSABLE of symbol name.
719
720 2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>
721
722         PR target/15551
723         * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
724         (allocate_stack_worker): Make unspec_volatile.
725         (allocate_stack_worker_rex64):  Likewise.
726         (allocate_stack_worker_postreload):  Likewise.
727         (allocate_stack_worker_rex64_postreload):  Likewise.
728
729 2004-06-21  Daniel Berlin  <dberlin@dberlin.org>
730
731         Fix PR optimization/15982
732         * tree-ssa-pre.c: Update a few comments and todos to
733         reflect constants change.
734         (get_value_handle): Constants now value number to themselves.
735         (lookup): Constants lookup to themselves.
736         (add_to_value): Adjust to always be on.
737         (set_contains_value): Adjust for constants change.
738         (find_leader): Ditto.
739         (phi_translate): 'r' nodes are never ANTIC right now.
740         (valid_in_set): Ditto.
741         (get_expr_set): New function.
742         (find_or_generate_expression): New function, broken out from
743         insert_aux.
744         (create_expression_by_pieces): Ditto, plus additional
745         machinery to handle complex values.
746         (compute_avail): Remove dead RETURN_EXPR handling.
747
748 2004-06-21  Steven Bosscher  <stevenb@suse.de>
749
750         * config/i386/i386.c: Include insn-codes.h
751         * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
752         define here.
753         * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
754         DIRFLAG_REG): New define_constants.  Use them everywhere.
755
756 2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>
757
758         * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
759
760 2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
761
762         * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define.
763         (SUPPORT_SH4_SINGLE): Likewise.
764         (TARGET_SWITCHES): Break out switches for cpu subtargets:
765         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
766         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
767         (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
768         (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
769         (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
770         (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
771         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
772         (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
773         (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
774         (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
775         (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
776         (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
777         (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
778         * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
779         (TARGET_DEFAULT): Likewise.
780         * config/sh/t-elf: Amend comment.
781         * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
782         * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
783         * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
784         * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
785         * config/sh/t-mlib-sh4-single: Likewise.
786         * config/sh/t-mlib-sh4-single-only: Likewise.
787         * config/sh/t-mlib-sh5-32media: Likewise.
788         * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
789         * config/sh/t-mlib-sh5-64media: Likewise.
790         * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
791         * config/sh/t-mlib-sh5-compact: Likewise.
792         * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
793         * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
794         (MULTILIB_CPUS): Define.
795         (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
796         (MULTILIB_MATCHES): Use some shell code to calculate it.
797         (MULTILIB_EXCEPTIONS): Change to ml/m1.
798         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
799         * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
800         (LINK_DEFAULT_CPU_EMUL): Don't redefine.
801         (NO_PROFILE_COUNTERS): Define to 1.
802         * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
803         (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
804         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
805         (MULTILIB_MATCHES): Don't zap.
806         (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
807         * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
808         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
809         (MULTILIB_RAW_DIRNAMES): Define.
810         (MULTILIB_DIRNAMES): Use it.
811         * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
812         (sh*linux configurations): Merge into:
813         (sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
814         --with-multilib-list options.  Support sh-superh-elf configuration.
815         (sh*-netbsd*): Use SELECT_SH* macros.
816         (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
817         Merge sh*-*-netbsd* configurations into sh-elf configurations.
818         * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
819         * config/sh/t-monolib: Likewise.
820
821 2004-06-21  Paul Brook  <paul@codesourcery.com>
822
823         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
824         not imply FPA.
825
826 2004-06-21  Roger Sayle  <roger@eyesopen.com>
827
828         * fold-const.c (operand_equal_p): Pass flags in recursive calls for
829         binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
830         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
831         * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
832         ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
833         and TRUTH_XOR_EXPR.
834
835 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
836
837         * rtlanal.c (may_trap_p): Mark LTGT as trapping.
838
839 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
840
841         * tree-alias-common.h (struct tree_alias_ops): Change ip and
842         ip_partial to unsigned int.
843
844 2004-06-21  Richard Henderson  <rth@redhat.com>
845
846         * c-common.c (verify_sequence_points): Export.
847         (c_expand_expr_stmt): Move to c-typeck.c.
848         * c-common.h (c_expand_expr_stmt): Remove.
849         (verify_sequence_points): Declare.
850         * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
851         * c-parse.in (for_init_stmt, stmt): Likewise.
852         * c-tree.h (c_finish_expr_stmt): Declare.
853         (c_tree_expr_nonnegative_p): Remove.
854         * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
855         (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
856         (emit_side_effect_warnings): New.
857         (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
858         (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
859         Use emit_side_effect_warnings.
860         (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
861         * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
862         * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
863         with void initializer.
864         (gimplify_target_expr): Handle void BIND_EXPR initializer.
865         * tree-inline.c (estimate_num_insns_1): Fix type lookup for
866         INIT_EXPR and MODIFY_EXPR.
867         * objc/objc-act.c (build_module_descriptor): Use add_stmt
868         instead of c_expand_expr_stmt.
869
870 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
871
872         * fold-const.c (fold_cond_expr_with_comparison):
873         New function, extracted from fold.
874         (fold): Extract code to fold A op B ? A : C, use
875         it to fold A op B ? C : A.  Really optimize
876         A & N ? N : 0 where N is a power of two.  Avoid
877         relying on canonicalization and recursion for
878         foldings of COND_EXPR to happen.
879
880 2004-06-20  David Ayers  <d.ayers@inode.at>
881
882         * objc/objc-act.h (get_object_reference): Rename to
883         get_protocol_reference.
884         (super_type): Rename to objc_super_type.
885         (selector_type): Rename to objc_selector_type.
886         (id_type): Rename to objc_id_type.
887         (instance_type): Rename to objc_instance_type.
888         (protocol_type): Rename to objc_protocol_type.
889         (IS_ID): Update reference to id_type.
890         * objc/objc-act.c (get_object_reference): Rename to
891         get_protocol_reference; add documentation; update references to
892         id_type.
893         (lookup_method_in_protocol_list): Rename class_meth to
894         is_class; add documentation.
895         (finish_message_expr): Rename is_class to class_tree.
896         (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
897         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
898         build_next_objc_exception_stuff, get_arg_type_list,
899         build_objc_method_call): Update references to id_type.
900         (synth_module_prologue, build_objc_symtab_template,
901         build_selector_reference_decl, build_selector,
902         build_selector_translation_table, build_typed_selector_reference,
903         get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
904         synth_self_and_ucmd_args): Update references to selector_type.
905         (build_private_template, build_ivar_reference): Update references
906         to instance_type.
907         (synth_module_prologue, build_protocol_reference,
908         build_protocol_expr, start_protocol): Update references to
909         protocol_type.
910         (synth_module_prologue, get_arg_type_list, build_objc_method_call):
911         Update references to super_type.
912         * c-parse.in: (typespec_nonreserved_nonattr): Update
913         references to get_object_reference.
914         * objc/objc-tree.def: Add C mode identifier sequence.
915
916 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
917
918         * loop-invariant.c: New file.
919         * Makefile.in (loop-invariant.o): New.
920         * cfgloop.h (global_cost_for_size, init_set_costs,
921         move_loop_invariants): Declare.
922         * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
923         functions.
924         (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
925         variables.
926         * common.opt (floop-optimize2, fmove-loop-invariants): New options.
927         * loop-init.c (loop_optimizer_init): Call init_set_costs.
928         * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
929         (rest_of_compilation): Check flag_loop_optimize2.
930         * toplev.c (process_options): Handle flag_loop_optimize2.
931         * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
932         * doc/passes.texi (loop-invariant.c): Document.
933
934 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
935
936         * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
937
938 2004-06-20  Richard Henderson  <rth@redhat.com>
939
940         * stmt.c (warn_if_unused_value): Add locus argument.
941         * tree.h (warn_if_unused_value): Update decl.
942         * c-typeck.c (internal_build_compound_expr): Update call.
943         * c-gimplify.c (gimplify_expr_stmt): Likewise.
944
945 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
946
947         PR middle-end/16089
948         * builtins.c (entry_of_function): Move to ...
949         * cfgrtl.c (entry_of_function): Here and make non-static.
950         * integrate.c (emit_initial_value_sets): Use entry_of_function.
951         * rtl.h (entry_of_function): Prototype.
952
953 2004-06-20  Roger Sayle  <roger@eyesopen.com>
954
955         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
956         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
957         TARGET_DECOMPOSE_LEA.
958
959 2004-06-20  Richard Henderson  <rth@redhat.com>
960
961         * c-common.h (add_decl_stmt): Move to cp-tree.h.
962         * c-decl.c (finish_decl): Don't use add_decl_stmt.
963         * c-parse.in: Likewise.
964         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
965         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
966         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
967
968 2004-06-20  Richard Henderson  <rth@redhat.com>
969
970         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
971         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
972         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
973         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
974         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
975         * c-pretty-print.c (pp_c_statement): Similarly.
976         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
977         gimplify_if_stmt): Move to cp-gimplify.c.
978         (c_genericize, c_gimplify_expr): Don't call them.
979         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
980         * c-typeck.c (push_cleanup): New.
981         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
982         c_finish_if_stmt): Use COND_EXPR.
983         * tree.h (CLEANUP_EH_ONLY): Update documentation.
984
985 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
986
987         * c-common.h (has_c_linkage): New interface.
988         * c-cppbuiltin.c: Include target.h.
989         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
990         __PRAGMA_EXTERN_PREFIX when appropriate.
991         * c-pragma.c: Include target.h.
992         Document clarified semantics of symbol-renaming #pragmas.
993         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
994         (maybe_apply_renaming_pragma): Rewrite according to clarified
995         semantics.  Always recognize, but do not necessarily execute.
996         (init_pragma): Unconditionally register symbol-renaming pragmas.
997         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
998         and HANDLE_PRAGMA_EXTERN_PREFIX.
999         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
1000         and handle_pragma_extern_prefix flags.
1001         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
1002         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
1003         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
1004         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
1005         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
1006         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
1007         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
1008         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
1009         not HANDLE_PRAGMA_EXTERN_PREFIX.
1010         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
1011         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
1012         into one section "Symbol-Renaming Pragmas"; clarify; document
1013         adjusted semantics.
1014
1015         * builtins.c (expand_builtin): Do not issue error for a builtin
1016         with no special case code and no DECL_ASSEMBLER_NAME; just do the
1017         library call.
1018         * c-decl.c (builtin_function): Don't call make_decl_rtl.
1019         * c-objc-common.c (has_c_linkage): Stub implementation.
1020         * cgraphunit.c (cgraph_expand_function)
1021         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
1022
1023 2004-06-19  Roger Sayle  <roger@eyesopen.com>
1024
1025         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
1026         instead of both an ARGLIST and a result TYPE.  Handle these C99
1027         comparison functions as "polymorphic" builtins.  Also handle
1028         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
1029         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
1030         Move handling of BUILT_IN_ISUNORDERED from here to there.
1031
1032 2004-06-19  Richard Henderson  <rth@redhat.com>
1033
1034         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
1035         * c-gimplify.c: Remove unnecessary prototypes.
1036         (c_gimplify_stmt): Merge into ...
1037         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
1038         * c-semantics.c (prep_stmt): Remove.
1039         * gimplify.c (annotate_one_with_locus): Break out from ...
1040         (annotate_all_with_locus): ... here.
1041         (gimplify_expr): Add locus to expressions even if pre/post queues
1042         are not present.
1043
1044 2004-06-19  Richard Henderson  <rth@redhat.com>
1045
1046         PR target/15941
1047         * function.c (assign_parms): If not padding upward or intentionally
1048         forcing upward padding, take offset_rtx into account when determining
1049         the alignment for stack_parm.
1050
1051 2004-06-19  Richard Henderson  <rth@redhat.com>
1052
1053         PR target/15550
1054         * ifcvt.c (noce_try_move): Recognize all generated instructions.
1055
1056 2004-06-19  Jan Hubicka  <jh@suse.cz>
1057
1058         * function.c (free_after_compilation): Do not free computed_goto_common*.
1059         * function.h (struct function): Kill computed_goto_common*.
1060         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
1061         * tree-cfg.c (disband_implicit_edges): Do not forward across the
1062         commonized computed goto.
1063
1064 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1065
1066         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
1067         in binutils.
1068
1069 2004-06-19  Andrew Pinski  <apinski@apple.com>
1070
1071         PR c++/15721
1072         * toplev.c (wrapup_global_declarations): Do not check
1073         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
1074         cgraph_varpool_node's needed field.
1075
1076 2004-06-19  Jan Hubicka  <jh@suse.cz>
1077             Steven Bosscher  <stevenb@suse.de>
1078
1079         CFG transparent RTL expansion:
1080         * Makefile.in (cfgexpand.o): New object file.
1081         (builtins.o): Add dependency on basic-block.h
1082         * builtins.c: Include basic-block.h
1083         (entry_of_function): New function.
1084         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
1085         * cfgexpand.c: New file.
1086         * expr.c (execute_expand, pass_expand): Kill.
1087         * pass.c (rest_of_compilation): Do not build CFG unless called from
1088         coverage code.
1089         * tree-cfg.c (delete_tree_cfg): Rename to..
1090         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
1091         * tree-flow.h (delete_tree_cfg_annotations): Declare.
1092         (dleete_tree_cfg): Kill.
1093         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
1094         (execute_del_cfg): Rename to...
1095         (execute_free_datastructures): This one...
1096         (pass_del_cfg): Rename to...
1097         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
1098         (init_tree_optimization_passes): Make cfg build and profiling to happen
1099         unconditionally.
1100
1101 2004-06-19  Steven Bosscher  <stevenb@suse.de>
1102
1103         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
1104         inserting the cache variables.
1105
1106         * tree-mudflap.c: Include headers to make basic_block available.
1107         Move functions around such that related functions are near each
1108         other.  Add prototypes for all static functions.  Add comments
1109         briefly explaining what IR the mudflap1 and mudflap2 work on and
1110         what they do.
1111         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
1112         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
1113         (pass_mudflap_1, pass_mudflap_2): Update.
1114         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
1115         function tree.
1116         (mf_build_check_statement_for): Make it work on the CFG.
1117         (mf_xform_derefs_1): Likewise.  Cleanup code style.
1118         (mf_xform_derefs): Likewise.
1119
1120 2004-06-19  Jan Hubicka  <jh@suse.cz>
1121
1122         * tree-cfg.c (label_to_block): Invent the label destination for
1123         undefined labels.
1124         (cleanup_dead_labels): Update table in the case label_to_block added
1125         new label.
1126
1127 2004-06-18  Richard Henderson  <rth@redhat.com>
1128
1129         PR c++/16036
1130         * gimple-low.c (lower_function_body): Generate return statement for
1131         fall off the end of the function here ...
1132         * tree-cfg.c (make_edges): ... instead of here.
1133         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
1134
1135 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1136
1137         * tree-ssa.c (raise_value): Removed.
1138         (get_eq_name, check_phi_redundancy): New functions.
1139         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
1140
1141 2004-06-18  Roger Sayle  <roger@eyesopen.com>
1142
1143         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
1144         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
1145         constant folding for unordered comparison tree nodes.  If both
1146         operands are real constants, call fold_relational_const.  If either
1147         operand is a NaN, evaluate the other for side-effects and return a
1148         constant.  Optimize (double)float1 CMP (double)float2 into the
1149         equivalent float1 CMP float2.
1150         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
1151         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
1152         LTGT_EXPR>: Call fold_relational_const for constant operands.
1153         (fold_relational_const): Add support for unordered comparison tree
1154         nodes.  Don't constant fold "ordered" floating point comparisons
1155         against NaN if when flag_trapping_math is set.
1156
1157 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
1158
1159         * fold-const.c (build_range_check): If !in_p and recursive call
1160         fails, exit immediately.  If high - low overflows and etype is
1161         a signed type, retry with unsigned etype.
1162         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
1163         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
1164
1165 2004-06-18  Richard Henderson  <rth@redhat.com>
1166
1167         * c-gimplify.c (gimplify_condition): Remove.
1168         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
1169         call it.
1170
1171 2004-06-18  Richard Henderson  <rth@redhat.com>
1172
1173         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
1174         switch estimates.
1175
1176 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
1177
1178         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
1179         (NORMAL_TEXT_SECTION_NAME): Define.
1180         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1181         (SECTION_FORMAT_STRING): Define.
1182
1183 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1184
1185         * config/xtensa/xtensa.c
1186         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
1187         * xtensa.md: Replace the old pipeline description with a DFA model.
1188
1189 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1190             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1191
1192         * config/s390/s390.md: Remove the generic pipeline description.
1193         * config/s390/2064.md: Make all insn reservations apply to
1194         the z900, g5 and g6.
1195         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
1196         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1197         Define to hook_int_void_1.
1198         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
1199         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
1200
1201 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
1202                         Diego Novillo  <dnovillo@redhat.com>
1203
1204         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
1205         (create_stmt_ann): Ditto.
1206         (create_tree_ann): New function.
1207         (create_cst_ann): Remove.
1208         (create_expr_ann): Ditto.
1209
1210         * tree-flow-inline.h (cst_ann): Remove.
1211         (get_cst_ann): Ditto.
1212         (get_expr_ann): Ditto.
1213         (expr_ann): Ditto.
1214         (get_tree_ann): New function.
1215         (tree_ann): Ditto.
1216         (ann_type): tree_ann -> tree_ann_t.
1217         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
1218         (struct cst_ann_d): Removed.
1219         (struct expr_ann_d): Ditto.
1220         (union tree_ann_d): Removed cst and expr.
1221         (tree_ann): Renamed to tree_ann_t.
1222         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
1223         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
1224         annotation.
1225         (set_value_handle): Ditto.
1226         (phi_translate): Ditto.
1227         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
1228
1229 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1230
1231         * config/sh/t-linux64: New file.
1232         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
1233
1234 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
1235
1236         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
1237         (unshare_all_rtl_again): Call unshare_all_rtl_1.
1238         (unshare_all_rtl): New.
1239         * function.c (instantiate_virtual_regs): Remove parameters.
1240         * function.h (instantiate_virtual_regs): Add prototype.
1241         * rtl.h (unshare_all_rtl): Add prototype.
1242         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
1243         prototype.
1244         * passes.c: Remove assertions on the parameters to
1245         rest_of_handle_* functions.  Remove the parameters to
1246         the functions, replacing decl with current_function_decl
1247         and insns with get_insns ().
1248
1249 2004-06-17  Roger Sayle  <roger@eyesopen.com>
1250
1251         * fold-const.c (constant_boolean_node): Handle boolean_type_node
1252         directly, return either boolean_true_node or boolean_false_node.
1253
1254 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
1255
1256         * opts.sh: Delete.  Break out generated code to next four files.
1257         * opt-gather.awk: New file.
1258         * optc-gen.awk: New file.
1259         * opth-gen.awk: New file.
1260         * opt-functions.awk: New common file.
1261         * Makefile.in: Update for above.
1262         * configure.ac: Update comment.
1263         * configure: Regenerate.
1264
1265 2004-06-17  Richard Henderson  <rth@redhat.com>
1266
1267         * c-common.c (flag_objc_sjlj_exceptions): New.
1268         * c-common.h (flag_objc_sjlj_exceptions): Declare.
1269         * c-opts.c (c_common_handle_option): Set it.
1270         (c_common_post_options): Handle interation of different
1271         objective-c exception and runtime switches.
1272         * c-decl.c (c_eh_initialized_p): New.
1273         (finish_decl): Use it instead of local eh_initialized_p.
1274         * c-parse.in (nested_function, notype_nested_function): Record
1275         the result of compstmt.
1276         (compstmt_or_error): Likewise.
1277         (compstmt): Don't add_stmt the result.
1278         (stmt): Don't return anything.  Rewrite objc try and sync rules.
1279         (objc_try_stmt, objc_catch_list): Remove.
1280         (objc_catch_block, objc_finally_block): Remove.
1281         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
1282         (objc_try_catch_clause, objc_finally_clause): New.
1283         (objc_try_catch_stmt): Rewrite.
1284         * c-tree.h (c_eh_initialized_p): Declare.
1285         * c-opt (fobjc-sjlj-exceptions): New.
1286         * except.c (output_function_exception_table): Don't call cgraph
1287         on non-decls.
1288         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
1289         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
1290         catch_count_stack, exc_binding_stack, if_nesting_count,
1291         blk_nesting_count, objc_enter_block, objc_exit_block,
1292         objc_declare_variable, val_stack_push, val_stack_pop,
1293         objc_build_try_enter_fragment, objc_build_extract_expr,
1294         objc_build_try_exit_fragment, objc_build_extract_fragment,
1295         objc_build_try_prologue, objc_build_try_epilogue,
1296         objc_build_catch_stmt, objc_build_catch_epilogue,
1297         objc_build_finally_prologue, objc_build_finally_epilogue,
1298         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
1299         objc_build_synchronized_epilogue): Remove.
1300         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
1301         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
1302         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
1303         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
1304         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
1305         objc_begin_catch_clause, objc_finish_catch_clause,
1306         objc_build_finally_clause, objc_finish_try_stmt,
1307         objc_build_synchronized): New.
1308         (objc_is_object_id, objc_is_class_id): New.
1309         (objc_comptypes): Use them.
1310         (build_next_objc_exception_stuff): Break NeXT sjlj out from
1311         build_objc_exception_stuff.
1312         (synth_module_prologue): Update to match.
1313         (objc_build_throw_stmt): Use cur_try_context to decide if
1314         we're in a @catch.
1315         * objc/objc-act.h: Update prototypes.
1316         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
1317
1318 2004-06-17  Andrew Pinski <apinski@apple.com>
1319
1320         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
1321         Use TYPE_FIELDS instead of TYPE_VALUES.
1322
1323 2004-06-17  Jason Merrill  <jason@redhat.com>
1324
1325         PR c++/16015
1326         * gimplify.c (gimplify_target_expr): Handle void initializer.
1327         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
1328         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
1329         and AGGR_INIT_EXPR.
1330
1331 2004-06-17  Roger Sayle  <roger@eyesopen.com>
1332
1333         * fold-const.c (fold_relational_const): Use constant_boolean_node.
1334
1335 2004-06-17  Jan Hubicka  <jh@suse.cz>
1336
1337         PR target/15433
1338         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
1339         operand numbering in the output template.
1340         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
1341
1342 2004-06-17  Jan Hubicka  <jh@suse.cz>
1343
1344         * except.c (can_throw_internal): Recognize RESX expresisons.
1345
1346 2004-06-17  Jan Hubicka  <jh@suse.cz>
1347
1348         * cfgbuild.c (make_edges): Do not use label_value_list.
1349         (find_basic_blocks_1): Do not collect label_value_list.
1350         (find_sub_basic_blocks): Update call of make_edges.
1351
1352 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
1353
1354         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
1355         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
1356         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
1357         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
1358         (get_v_may_def_result_ptr):  Return a def_operand_p.
1359         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
1360         (get_v_must_def_op_ptr):  Return a def_operand_p.
1361         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
1362         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
1363         (phi_element_for_edge):  Remove.
1364         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
1365         (propagate_tree_value):  Add new prototype.
1366         (phi_element_for_edge):  Remove prototype.
1367         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
1368         (prepare_operand_for_rename):  Split into two functions.
1369         (prepare_use_operand_for_rename):  Prepare use operands.
1370         (prepare_def_operand_for_rename):  Prepare def operands.
1371         (rewrite_stmt):  Use new operand types.
1372         (rewrite_operand):  Use new operand types, change parameter type.
1373         * tree-outof-ssa.c (replace_variable):  Split into two functions.
1374         (replace_use_variable):  Rewrite uses.
1375         (replace_def_variable):  Rewrite defs.
1376         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
1377         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
1378         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
1379         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
1380         (ccp_fold, replace_uses_in):  Use new operand types.
1381         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
1382         and no longer set the value, change parameter type.
1383         (replace_exp_1):  Use new operand types.
1384         (propagate_value):  Change parameter type, use new operand types.
1385         (propagate_tree_value):  Propagate_value without SSA operands.
1386         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
1387         (cprop_into_successor_phis):  Use new operand types.
1388         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
1389         (eliminate_redundant_computations):  Use new operand types.
1390         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
1391         (fix_stmt_v_may_defs):  Use new operand_types.
1392         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
1393         (build_tree_conflict_graph):  Use new operand_types.
1394         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
1395         * tree-ssa-operands.c (struct freelist_d):  Remove.
1396         (check_optype_freelist, add_optype_freelist):  Remove.
1397         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
1398         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
1399         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
1400         Call ggc_free instead of add_optype_freelist.
1401         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
1402         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
1403         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
1404         (struct use_optype_d):  Change underlying type.
1405         (def_operand_p, use_operand_p):  New types for pointers to operands.
1406         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
1407         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
1408         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
1409         pointer types.
1410         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
1411         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
1412         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
1413         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
1414         PHI result as an operand.
1415         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
1416         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
1417         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
1418         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
1419         PHI_ARG_DEF_FROM_EDGE.
1420         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
1421         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
1422
1423 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1424
1425         PR tree-optimization/15991
1426         * tree-cfg.c (tree_block_label): Export.
1427         * tree-flow-inline.h (bsi_after_labels): New function.
1428         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
1429         * tree-ssa.c (propagate_into_addr): New function.
1430         (replace_immediate_uses): Handle propagation of pointer constants.
1431         (raise_value): Do not restrict propagation of pointer constants.
1432         * tree-ssanames.c (duplicate_ssa_name): New function.
1433         * tree.h (duplicate_ssa_name): Declare.
1434
1435 2004-06-17  David Ayers  <d.ayers@inode.at>
1436
1437         * c-parse.in: Unify Objective-C token names.
1438
1439 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
1440
1441         Bug 14610
1442         * Makefile.in (min-insn-modes.o): Correct dependencies.
1443         * real.c (encode_ieee_extended, decode_ieee_extended): Always
1444         produce/consume 12-byte little-endian Intel format.
1445         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
1446         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
1447         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
1448         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
1449         New functions which convert between 12-byte little-endian Intel
1450         format and the desired format.
1451         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
1452         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
1453         Update.
1454
1455 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
1456
1457         * expmed.c (expand_mult_const): In sanity check, compare only
1458         the bits of val and val_so_far that are significant in the
1459         result mode.
1460
1461 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
1462
1463         * tree-ssa-pre.c:  Update comments.
1464         (val_expr_pair_eq): Factor code from here.
1465         (expr_pred_trans_eq): and here.
1466         (expressions_equal_p): To here.
1467         (print_value_set): Print value for expression.
1468         (phi_trans_lookup): Rename some variables.
1469         (lookup): Ditto.
1470         (value_exists_in_set_bitmap): Ditto.
1471         (value_remove_from_set_bitmap): Ditto.
1472         (value_insert_into_set_bitmap): Ditto.
1473
1474 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
1475
1476         * config/s390/s390-modes.def (CCL3mode): New machine mode.
1477         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
1478         (s390_alc_comparison, s390_slb_comparison): Likewise.
1479         (s390_branch_condition_mask): Likewise.
1480         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
1481         ("*subsi3_cc2", "*subsi3_cconly2"): New.
1482
1483         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
1484         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
1485         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
1486         Handle SIGN_EXTEND and ZERO_EXTEND.
1487
1488         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
1489         * config/s390/s390.c (s390_expand_addcc): New function.
1490         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
1491         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
1492         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
1493
1494 2004-06-17  Ben Elliston  <bje@au.ibm.com>
1495
1496         * tree-alias-common.c: Add whitespace.
1497         * tree-inline.c: Correct comment about this file's purpose.
1498         * tree-optimize.c: Likewise.
1499         * tree-tailcall.c: Likewise.
1500
1501         * tree-alias-ander.h: Add standard top-of-file comment.
1502         * tree-alias-common.h: Likewise.
1503         * tree-alias-type.h: Likewise.
1504
1505 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
1506
1507         * tree-ssa-pre.c (compute_avail): Value number uses as well.
1508         Strip useless type conversions.
1509         Casts have to be treated slightly different than normal unaries.
1510
1511 2004-06-16  Richard Henderson  <rth@redhat.com>
1512
1513         * c-common.def (COMPOUND_STMT): Remove.
1514         * c-common.c (finish_fname_decls): Don't look through it.
1515         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
1516         * c-common.h (COMPOUND_BODY): Remove.
1517         (c_common_stmt_codes): Remove COMPOUND_STMT.
1518         * c-dump.c (c_dump_tree): Likewise.
1519         * c-gimplify.c (c_gimplify_stmt): Likewise.
1520         * c-pretty-print.c (pp_c_statement): Likewise.
1521         * tree.h (DECL_SAVED_TREE): Update commentary.
1522         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
1523         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
1524         (GOTO_EXPR): Rename from GOTO_STMT.
1525         (GOTO_FAKE_P): Remove.
1526         (COMPOUND_STMT): Remove.
1527         (HANDLER): Update wrt COMPOUND_STMT.
1528         (STMT_EXPR): Likewise.
1529         (LABEL_EXPR): Rename from LABEL_STMT.
1530         (SCOPE_STMT): Remove.
1531         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
1532         through COMPOUND_STMT.
1533
1534 2004-06-16  Richard Henderson  <rth@redhat.com>
1535
1536         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
1537         c_finish_while_stmt_cond): Remove decls.
1538         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
1539         * c-typeck.c (c_begin_if_stmt): Return void.
1540         (c_begin_else): Tidy.  Save stmt_count.
1541         * c-tree.h (c_begin_if_stmt): Update decl.
1542
1543         * objc/objc-act.c (objc_build_try_enter_fragment,
1544         objc_build_extract_fragment, objc_build_try_epilogue,
1545         objc_build_catch_stmt, objc_build_catch_epilogue,
1546         objc_build_finally_prologue, objc_build_finally_epilogue): Update
1547         for if builder function changes.
1548
1549 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
1550
1551         * config/s390/s390.c (struct machine_function):  New member
1552         last_restore_gpr.
1553         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
1554         Do not modify machine->save_return_addr_p or regs_ever_live.
1555         Fill in machine->last_restore_gpr.
1556         (s390_optimize_prolog): Use s390_frame_info to compute registers
1557         to save/restore, remove duplicated code.
1558         (s390_arg_frame_offset): Use s390_frame_info to compute frame
1559         size, remove duplicated code.
1560         (s390_emit_prologue): Adapt s390_frame_info call.  Update
1561         machine->save_return_addr_p and regs_ever_live.
1562         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
1563         machine->last_save_gpr.
1564
1565 2004-06-16  Richard Henderson  <rth@redhat.com>
1566
1567         * c-parse.in (if_stmt_locus): Remove.
1568         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
1569         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
1570         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
1571         empty_locus.  Add stmt_count, saw_else.
1572         (c_begin_if_stmt): Push if_stack here.
1573         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
1574         (c_finish_then, c_finish_else): Record empty_locus.
1575         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
1576         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
1577         if or else body.
1578         * c-tree.h: Update prototypes.
1579
1580 2004-06-16  Steven Bosscher  <stevenb@suse.de>
1581
1582         * tree.h (PHI_CHAIN): New.
1583         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
1584         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
1585         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
1586         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1587         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
1588         when traversing a list of PHI_NODEs.
1589
1590 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
1591
1592         PR target/13292
1593         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
1594         on -msoft-float.
1595         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
1596         68040 and soft-float.
1597         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
1598         in the TARGET_68040_ONLY case.
1599
1600 2004-06-16 Peter Barada  <peter@the-baradas.com>
1601
1602         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
1603         (movsi_cf): Make named, don't match TARGET_CFV4.
1604         (pushexthisi_const): Use mov3q if possible.
1605         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
1606         to special case mvz.w for ColdFire V4.
1607         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
1608         to special case mvz.b for ColdFire V4.
1609         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
1610         divide.
1611         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
1612         * config/m68k/m68k.c(valid_mov3q_const):  New function.
1613         (const_method): SWAP is valid for ColdFire.
1614         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
1615         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
1616
1617 2004-06-16  Richard Henderson  <rth@redhat.com>
1618
1619         * c-common.def (CASE_LABEL): Remove.
1620         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
1621         (match_case_to_enum_1): Likewise.
1622         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
1623         * c-dump.c (c_dump_tree): Likewise.
1624         * c-gimplify.c (c_gimplify_stmt): Likewise.
1625         * c-pretty-print.c (pp_c_statement): Likewise.
1626         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
1627         * tree.h (CASE_LOW): Update commentary.
1628
1629 2004-06-16  Richard Henderson  <rth@redhat.com>
1630
1631         * c-common.def (ASM_STMT): Remove.
1632         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
1633         * c-dump.c (c_dump_tree): Likewise.
1634         * c-gimplify.c (c_gimplify_stmt): Likewise.
1635         * c-pretty-print.c (pp_c_statement): Likewise.
1636         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
1637         * tree.h: Fix commentary.
1638
1639 2004-06-16  Richard Henderson  <rth@redhat.com>
1640
1641         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
1642         * c-common.c (c_add_case_label): Use LABEL_EXPR.
1643         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
1644         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
1645         * c-dump.c (c_dump_tree): Likewise.
1646         * c-gimplify.c (c_gimplify_stmt): Likewise.
1647         * c-pretty-print.c (pp_c_statement): Likewise.
1648         * c-parse.in (stmt): Use GOTO_EXPR.
1649         (label): Use LABEL_EXPR.
1650         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
1651         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
1652
1653 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
1654
1655         * cfgcleanup.c (try_simplify_condjump): Update test to make
1656         sure we have a conditional branch around am unconditional branch.
1657
1658 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
1659
1660         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
1661
1662 2004-06-16  Dale Johannesen  <dalej@apple.com>
1663
1664         * loop.c (loop_givs_reduce): Avoid miscompilation of
1665         loops entered at bottom.
1666
1667 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
1668
1669         * cfglayout.c (fixup_reorder_chain): Handle case where the
1670         destination of E_FALL is EXIT_BLOCK_PTR.
1671
1672 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
1673
1674         PR target/15653
1675         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
1676         after shifts before asm.
1677
1678 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1679
1680         PR tree-optimization/15993
1681         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
1682         destination is unchanged.
1683
1684 2004-06-16  Andreas Jaeger  <aj@suse.de>
1685
1686         * doc/install.texi (Configuration): Update description for
1687         --enable-version-specific-runtime-libs.
1688
1689 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
1690
1691         * doc/install.texi: boehm-gc now uses automake 1.8.5.
1692
1693 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
1694
1695         * toplev.h (rest_of_compilation): Adjust prototype.
1696
1697 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
1698
1699         * coverage.c: Remove argument to rest_of_compilation.
1700         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
1701         * passes.c (rest_of_compilation): Remove argument.
1702         (pass_rest_of_compilation): New.
1703         (rest_of_handle_final, rest_of_handle_delay_slots,
1704         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
1705         rest_of_handle_machine_reorg, rest_of_handle_regrename
1706         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
1707         rest_of_handle_regmove, rest_of_handle_tracer
1708         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
1709         rest_of_handle_web, rest_of_handle_branch_prob
1710         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
1711         rest_of_handle_addressof, rest_of_handle_jump_bypass
1712         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
1713         Check that the two arguments are actually superfluous.
1714         * tree-optimize.c (register_dump_files): Add properties argument.
1715         Track validity of passes.  Only initialize dump files for
1716         tree-based passes.  Store the full set of provided passes in
1717         the pass.
1718         (init_tree_optimization_passes): Register pass_expand and
1719         pass_rest_of_compilation.
1720         (execute_one_pass): Do not track the presence of required properties
1721         here.  Set in_gimple_form.  Do not update current_properties.
1722         (current_properties): Remove.
1723         (set_save_expr_context): Remove.
1724         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
1725         expand to RTL here, and do not call rest_of_compilation.  Push
1726         GGC context even before gimplification.
1727         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
1728         (pass_expand, pass_rest_of_compilation): Declare.
1729
1730 2004-06-15  Jeff Law  <law@redhat.com>
1731
1732         * fold-const.c (swap_tree_comparison): No longer static.
1733         (tree_swap_operands_p): Similarly.  Return true if both operands
1734         are SSA_NAMEs and the first operand has a higher version number than
1735         the second operand.
1736         * tree.h (swap_tree_comparison): Prototype.
1737         (tree_swap_operands_p): Prototype.
1738         * tree-ssa-operands.c (get_expr_operands): For commutative
1739         operators and relational comparisons, canonicalize the
1740         order of the operands.
1741
1742 2004-06-15  Richard Henderson  <rth@redhat.com>
1743
1744         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
1745         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
1746         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
1747         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
1748         (finish_fname_decls, fname_decl): Use statement_lists.
1749         (c_expand_expr_stmt): Don't set last_expr_type.
1750         (c_type_hash): Fix indentation.
1751         (c_safe_from_p): Don't follow TREE_CHAIN.
1752         (c_tree_chain_matters_p): Remove.
1753         * c-common.def (SCOPE_STMT): Remove.
1754         (CLEANUP_STMT): Redefine to contain its own body.
1755         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
1756         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
1757         Add x_cur_stmt_list.
1758         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
1759         (cur_stmt_list): New.
1760         (STATEMENT_LIST_STMT_EXPR): New.
1761         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
1762         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
1763         (CLEANUP_BODY): New.
1764         (CLEANUP_DECL): Move to operand 2.
1765         (c_common_stmt_codes): Remove SCOPE_STMT.
1766         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
1767         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
1768         (c_push_function_context, c_pop_function_context): Don't save it.
1769         (finish_decl): Set TREE_USED on the decl for a cleanup.
1770         Use push_cleanup.
1771         (store_parm_decls): Use statement lists.
1772         (finish_function): Remove compstmt rule workaround.  Use statement
1773         lists.  Call finish_fname_decls after finalizing the body.
1774         (c_begin_compound_stmt): Move to c-typeck.c.
1775         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
1776         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
1777         (c_genericize): Invoke them.
1778         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
1779         (c_build_bind_expr): Export.
1780         (gimplify_block, gimplify_cleanup): Remove.
1781         (gimplify_condition): Use gimplify_stmt.
1782         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
1783         (gimplify_if_stmt): Remove recursion hack.
1784         (c_gimplify_expr): Remove STMT_EXPR handling.
1785         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
1786         (is_last_stmt_of_scope): Remove.
1787         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
1788         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
1789         c_end_compound_stmt.
1790         * c-objc-common.c (build_cdtor): Likewise.
1791         * c-parse.in (primary): Use c_finish_stmt_expr.
1792         (push_scope, pop_scope): Remove.
1793         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
1794         (c99_block_end, compstmt): Use c_end_compound_stmt.
1795         (c99_block_lineno_labeled_stmt): Likewise.
1796         (compstmt_primary_start): Use c_begin_stmt_expr.
1797         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
1798         (do_stmt_start): Fill in body directly.
1799         (lineno_stmt): Avoid setting lineno on constants.
1800         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
1801         Remove SCOPE_STMT.
1802         * c-semantics.c (begin_stmt_tree): Remove.
1803         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
1804         (add_stmt): Use statement lists.
1805         (add_scope_stmt, finish_stmt_tree): Remove.
1806         (push_cleanup): New.
1807         * c-tree.h: Move some decls from c-common.h.
1808         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
1809         (do_case, c_finish_case): Likewise.
1810         (c_finish_then): Take body for then as argument.
1811         (c_finish_else): Similarly.
1812         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
1813         c_finish_for_stmt_incr, c_finish_for_stmt): New.
1814         (c_begin_stmt_expr, c_finish_stmt_expr): New.
1815         (c_begin_compound_stmt): Do scope management.
1816         (c_end_compound_stmt): New.
1817         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
1818         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
1819         Look through exception handling constructs.
1820         (gimplify_bind_expr): Accept temporary argument.
1821         (gimplify_target_expr): Special case BIND_EXPR bodies.
1822         (gimplify_expr): Handle fallback == fb_none like a statement.
1823         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
1824         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
1825         * langhooks.h (tree_chain_matters_p): Remove.
1826         * stub-objc.c (objc_clear_super_receiver): New.
1827         * tree-gimple.h (voidify_wrapper_expr): Update decl.
1828         (append_to_statement_list, append_to_statement_list_force): Move
1829         to tree-iterator.h.
1830         * tree-inline.c (expand_call_inline): Update call.
1831         (clone_body): Use statement lists.
1832         (walk_tree): Don't check tree_chain_matters_p.
1833         (copy_tree_r): Likewise.
1834         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
1835         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
1836         * tree-iterator.h (append_to_statement_list,
1837         append_to_statement_list_force): Moved from tree-gimple.h.
1838         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
1839         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
1840         (objc_enter_block): Likewise.
1841         (objc_exit_block): Use c_end_compound_stmt.
1842         (objc_build_try_enter_fragment): Add #error and comment for
1843         rewriting for OBJCPLUS.
1844         (objc_build_extract_fragment, objc_build_try_epilogue,
1845         objc_build_catch_stmt, objc_build_finally_prologue,
1846         objc_build_finally_epilogue): Update for C statement builders.
1847         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
1848         Remove.
1849
1850 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1851
1852         * df.c (df_reg_clobber_gen): Removed.
1853         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
1854         Make more effective for hard regs.
1855         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
1856
1857 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
1858
1859         * c-pragma.h (c_lex_string_translate): Change type to int.
1860         * c-parse.in: Change all assignments of c_lex_string_translate
1861         to true and false to 1 and 0.
1862         * c-lex.c (c_lex_string_translate): Likewise.
1863         (lex_string): Convert string without translation in the -1
1864         case.
1865
1866 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
1867
1868         * convert.h: Add include guards
1869
1870 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
1871
1872         * tree-flow-inline.h: Document all functions.
1873
1874 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
1875
1876         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
1877         * tree-dfa.c (create_stmt_ann): Ditto.
1878         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
1879         * tree-inline.c (estimate_num_insns_1): Ditto.
1880         * tree.c (tree_size): Ditto.
1881         (make_node_stat): Ditto.
1882         (tree_node_structure): Ditto.
1883         (ephi_node_elt_check_failed): Remove.
1884         (is_essa_node): Ditto.
1885         * tree.def (EPHI_NODE): Ditto.
1886         (EEXIT_NODE): Ditto.
1887         (EUSE_NODE): Ditto.
1888         (EKILL_NODE): Ditto.
1889         * tree.h (EREF_NODE_CHECK): Remove.
1890         (EPHI_NODE_ELT_CHECK): Ditto.
1891         (struct tree_eref_common): Ditto.
1892         (struct tree_euse_node): Ditto.
1893         (struct ephi_arg_d): Ditto.
1894         (struct tree_ephi_node): Ditto.
1895         (ephi_node_elt_check_failed): Remove prototype.
1896         (is_essa_node): Ditto.
1897         (enum tree_node_structure_enum): Remove TS_E*_NODE.
1898         (union tree_node): Remove E*_NODE uses.
1899
1900 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
1901
1902         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
1903         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
1904         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
1905         Likewise.
1906         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
1907         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
1908         expand_builtin_strcmp, expand_builtin_strncmp,
1909         expand_builtin_frame_address): Likewise.
1910         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
1911         insert_one_insn): Likewise.
1912         * calls.c (prepare_call_address, precompute_register_parameters,
1913         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
1914         * cfganal.c (flow_active_insn_p): Likewise.
1915         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
1916         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
1917         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
1918         make_extraction, recog_for_combine, gen_lowpart_for_combine,
1919         simplify_comparison, record_dead_and_set_regs_1,
1920         record_dead_and_set_regs, record_promoted_value,
1921         check_promoted_subreg, get_last_value_validate, get_last_value,
1922         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
1923         unmentioned_reg_p_1): Likewise.
1924         * conflict.c (mark_reg): Likewise.
1925         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
1926         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
1927         merge_equiv_classes, flush_hash_table, invalidate,
1928         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
1929         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
1930         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
1931         record_jump_cond, cse_insn, addr_affects_sp_p,
1932         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
1933         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
1934         cse_cc_succs, cse_condition_code_reg): Likewise.
1935         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
1936         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
1937         cselib_record_set, cselib_record_sets): Likewise.
1938         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
1939         dbxout_block): Likewise.
1940         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
1941         * dojump.c (do_jump): Likewise.
1942         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
1943         is_based_loc, rtl_for_decl_location): Likewise.
1944         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
1945         set_decl_incoming_rtl, mark_user_reg): Likewise.
1946         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
1947         copy_to_suggested_reg, allocate_dynamic_stack_space,
1948         probe_stack_range, hard_function_value): Likewise.
1949         * expmed.c (store_bit_field, store_fixed_bit_field,
1950         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
1951         extract_split_bit_field, expand_divmod, emit_store_flag_force):
1952         Likewise.
1953         * expr.c (convert_move, convert_modes,
1954         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1955         use_group_regs, emit_move_insn, emit_move_insn_1,
1956         compress_float_constant, push_block, emit_single_push_insn,
1957         emit_push_insn, get_subtarget, expand_assignment, store_expr,
1958         store_constructor, store_field, force_operand, safe_from_p,
1959         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1960         Likewise.
1961         * final.c (profile_function, final_scan_insn, alter_subreg,
1962         get_mem_expr_from_op, output_asm_operand_names, output_operand,
1963         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1964         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1965         find_regno_partial, propagate_one_insn, init_propagate_block_info,
1966         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1967         attempt_auto_inc, find_auto_inc, mark_used_regs,
1968         count_or_remove_death_notes_bb): Likewise.
1969         * function.c (find_temp_slot_from_address, update_temp_slot_address,
1970         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1971         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1972         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1973         purge_single_hard_subreg_set, instantiate_decl,
1974         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1975         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1976         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1977         expand_function_start, diddle_return_value, clobber_return_register,
1978         expand_function_end, keep_stack_depressed, handle_epilogue_set,
1979         update_epilogue_consts): Likewise.
1980         * genemit.c (gen_exp, gen_insn): Likewise.
1981         * genrecog.c (make_insn_sequence): Likewise.
1982         * global.c (global_conflicts, expand_preferences, mark_reg_store,
1983         mark_reg_conflicts, set_preference, reg_becomes_live,
1984         build_insn_chain, mark_reg_change): Likewise.
1985         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1986         Likewise.
1987         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1988         Likewise.
1989         * integrate.c (copy_rtx_and_substitute, try_constants,
1990         subst_constants, mark_stores, allocate_initial_values): Likewise.
1991         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1992         delete_computation, rtx_renumbered_equal_p, true_regnum,
1993         reg_or_subregno): Likewise.
1994         * lcm.c (reg_dies, reg_becomes_live): Likewise.
1995         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1996         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1997         wipe_dead_reg, no_conflict_p): Likewise.
1998         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1999         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
2000         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
2001         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
2002         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
2003         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
2004         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
2005         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
2006         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
2007         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
2008         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
2009         try_swap_copy_prop): Likewise.
2010         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
2011         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
2012         Likewise.
2013         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
2014         reload_cse_simplify_operands, reload_combine,
2015         reload_combine_note_store, reload_combine_note_use,
2016         reload_cse_move2add, move2add_note_store): Likewise.
2017         * print-rtl.c (print_rtx): Likewise.
2018         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
2019         contains_pseudo, handle_asm_insn): Likewise.
2020         * ra-debug.c (ra_print_rtx_object, dump_constraints,
2021         dump_static_insn_cost): Likewise.
2022         * ra-rewrite.c (slots_overlap_p, emit_colors,
2023         remove_suspicious_death_notes): Likewise.
2024         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
2025         register_operand, scratch_operand, nonmemory_operand,
2026         constrain_operands): Likewise.
2027         * reg-stack (check_asm_stack_operands, remove_regno_note,
2028         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
2029         subst_asm_stack_regs): Likewise.
2030         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
2031         record_address_regs, reg_scan_mark_refs): Likewise.
2032         * regmove.c (discover_flags_reg, replacement_quality,
2033         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
2034         fixup_match_1): Likewise.
2035         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
2036         kill_set_value, copyprop_hardreg_forward_1): Likewise.
2037         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
2038         reload_inner_reg_of_subreg, can_reload_into, push_reload,
2039         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
2040         operands_match_p, decompose, find_reloads, find_reloads_toplev,
2041         find_reloads_address, subst_indexed_address, find_reloads_address_1,
2042         find_reloads_subreg_address, find_replacement,
2043         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
2044         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
2045         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
2046         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
2047         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
2048         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
2049         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
2050         do_output_reload, emit_reload_insns, gen_reload,
2051         delete_address_reloads_1, inc_for_reload): Likewise.
2052         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
2053         update_reg_unused_notes, fill_slots_from_thread): Likewise.
2054         * resource.c (update_live_status, mark_referenced_resources,
2055         mark_set_resources, mark_target_live_regs): Likewise.
2056         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
2057         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
2058         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
2059         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
2060         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
2061         parms_set, find_first_parameter_load, keep_with_call_p,
2062         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
2063         num_sign_bit_copies1): Likewise.
2064         * rtlhooks.c (gen_lowpart_general): Likewise.
2065         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
2066         sched_analyze): Likewise.
2067         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
2068         Likewise.
2069         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
2070         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
2071         simplify_binary_operation, simplify_const_relational_operation,
2072         simplify_subreg): Likewise.
2073         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
2074         expand_end_stmt_expr, expand_return, expand_decl,
2075         expand_anon_union_decl): Likewise.
2076         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
2077         find_splittable_regs, find_splittable_givs, find_common_reg_term,
2078         loop_iterations): Likewise.
2079         * var-tracking.c (variable_union, variable_part_different_p,
2080         variable_different_p, count_uses, add_uses, add_stores,
2081         compute_bb_dataflow, set_variable_part, delete_variable_part,
2082         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
2083         Likewise.
2084         * varasm.c (assemble_variable): Likewise.
2085
2086 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
2087
2088         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2089         definition.
2090         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2091         #undef and #if 0'd definition.
2092
2093 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2094
2095         * combine.c (distribute_notes): Comment typo fix.
2096
2097 2004-06-15  Roger Sayle  <roger@eyesopen.com>
2098
2099         * expmed.c (synth_mult): Mask bits of the multiplier to the
2100         machine mode of the multiplication.  Don't consider shifts
2101         by more than (or equal to) the width of the operation's mode.
2102
2103 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2104
2105         * doc/install.texi: Yet another update for autoconf
2106         and automake versions.
2107
2108 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2109
2110         * function.h (struct function): Remove cannot_inline field.
2111         (current_function_cannot_inline): Remove.
2112         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
2113         Simplify conditionals to ignore warn_return_type.
2114         * tree-optimize.c (tree_rest_of_compilation): Do not reset
2115         DECL_DEFER_OUTPUT.
2116         * objc/objc-act.c (build_module_descriptor, finish_method_def):
2117         Do not set current_function_cannot_inline.
2118
2119 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2120
2121         * cfglayout.c (fixup_reorder_chain): Handle case where the
2122         destination of E_TAKEN is EXIT_BLOCK_PTR.
2123
2124 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
2125
2126         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
2127
2128 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2129
2130         * fold-const.c (operand_equal_p): Update comment.
2131
2132 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2133
2134         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
2135         (INCOMING_RETURN_ADDR_RTX): Define.
2136         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
2137         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
2138         __builtin_return_address(0).
2139         (m32r_return_addr): Added for __builtin_return_address(0).
2140         (m32r_reload_lr): Ditto.
2141
2142         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
2143
2144 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2145
2146         * doc/install.texi (Prerequisites): Update libbanshee,
2147         fastjar, libcpp, libjava/libltdl entries to
2148         automake 1.8.5.
2149
2150 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2151             Olivier Hainque  <hainque@act-europe.fr>
2152
2153         * function.c (fixup_var_refs): Also adjust the start of sequence
2154         after fixing up the insns.
2155
2156 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2157
2158         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
2159
2160 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
2161
2162         * doc/install.texi (Prerequisites): Update libstdc++ entry to
2163         automake 1.8.5.
2164
2165 2004-06-14  Eric Christopher  <echristo@redhat.com>
2166
2167         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
2168         to -mtpf-trace (-mno-tpf-trace).
2169         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
2170         documentation.
2171
2172 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2173
2174         * real.c: Fix bit count in head comment.
2175
2176 2004-06-14  Jeff Law  <law@redhat.com>
2177
2178         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
2179         PHIs where the destination or an argument is marked with
2180         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2181
2182 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2183
2184         PR middle-end/15945
2185         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
2186         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
2187
2188 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2189
2190         * opts.sh (var_args): Fix regexp.
2191
2192 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2193
2194         PR target/15178
2195         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2196
2197 2004-06-14  Paul Brook  <paul@codesourcery.com>
2198
2199         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
2200
2201 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2202
2203         * Makefile.in (FLAGS_H): New.
2204         (flags.h): Replace by FLAGS_H.
2205         * c.opt: Document Var, VarExists, Init and Report attributes.
2206         * common.opt: Fill the values of the attributes.
2207         * diagnostic.c (flag_fatal_errors): Do not define.
2208         * except.c (flag_non_call_exceptions): Do not define.
2209         * flags.h: Include options.h.  Remove declarations conflicting with
2210         the automatically defined ones.
2211         * opts.c: Remove automatically defined variables.
2212         (handle_option): Perform default initialization.
2213         (common_handle_option): Do not handle options covered by the
2214         default initialization.
2215         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
2216         fields.
2217         (CL_REPORT): New.
2218         * opts.sh: Generate variable declarations, handle CL_REPORT.
2219         * toplev.c: Remove automatically defined variables.
2220         (f_options): Removed.
2221         (print_switch_values): Use cl_options instead of f_options.
2222         * toplev.h (version_flag): Declaration removed.
2223
2224 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
2225
2226         * config/sparc/sparc.h: Correct comment about availability of
2227         little endian option.
2228
2229         * config.gcc: Remove sparc64-*-aout*.
2230         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
2231         * config/sparc/sp64-aout.h: Remove.
2232         * config/sparc/aout.h: Remove.
2233
2234 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
2235
2236         * config/s390/s390.c: Include "tree-gimple.h".
2237         (s390_gimplify_va_arg): New function.
2238         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2239         (s390_va_arg): Remove.
2240         * config/s390/s390-protos.h (s390_va_arg): Remove.
2241         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
2242
2243 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
2244
2245         * basic-block.h (could_fall_through): Declare.
2246         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
2247         Fail if the source already has a fallthrough edge to the exit
2248         block pointer.
2249         (could_fall_through): New function.
2250         * cfgbuild.c (make_edges): Check if we already have a fallthrough
2251         edge to the exit block pointer.
2252         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
2253         not called before reload has completed.
2254         Handle special case of first block having a fall-through exit edge.
2255         (cfg_layout_finalize): Don't call it before reload or if we have
2256         rtl epilogues.
2257         (fixup_reorder_chain): A fall through to the exit block does not
2258         require the block to come last.  Add sanity checks.
2259         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
2260         edges to the exit block.
2261         * function.c (cfglayout.h): #include.
2262         (thread_prologue_and_epilogue_insns): If we have neither return nor
2263         epilogue, but a fall through to the exit block from mid-function,
2264         force a non-fall-through exit.
2265         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
2266
2267 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
2268
2269         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
2270         for power5 and rs64a.  Correct condition for default.  Correct power3,
2271         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
2272
2273 2004-06-13  Steven Bosscher <stevenb@suse.de>
2274
2275         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
2276         Revert previous change, don't use CALL_P.
2277
2278 2004-06-13  Jason Merrill  <jason@redhat.com>
2279
2280         * tree.h: Move std_gimplify_va_arg_expr protoype here.
2281         * tree-gimple.h: From here.
2282
2283 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
2284
2285         Fix PR tree-optimization/15979
2286         Fix PR tree-optimization/15981
2287         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
2288         try to insert values undefined along some path.
2289
2290 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
2291
2292         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
2293         are available everywhere too.
2294
2295 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
2296
2297         * fold-const.c (fold_checksum_tree <case 't'>): Only
2298         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
2299         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
2300         EXPR is an INTEGERAL_TYPE or a scalar float type.
2301
2302 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
2303
2304         * tree-sra.c (tree_sra): Update documentation.
2305
2306 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
2307
2308         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
2309         function_types_compatible_p, type_lists_compatible_p): Remove
2310         flags parameter.
2311         * c-tree.h (comptypes): Likewise.
2312         (COMPARE_STRICT): Remove.
2313         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
2314         callers changed.
2315
2316 2004-06-13  Eric Christopher  <echristo@redhat.com>
2317
2318         * c-decl.c (diagnose_mismatched_decls): Improve error message.
2319         Remove unused code.
2320         * c-typeck.c (comptypes): Add location in standard we're checking.
2321
2322 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2323
2324         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
2325         version 3.3.4.
2326
2327 2004-06-12  Roger Sayle  <roger@eyesopen.com>
2328
2329         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
2330         index by machine mode.
2331         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
2332         tables inside the loop over machine modes.
2333         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
2334         expand_divmod): Index shift*_cost by the appropriate machine mode.
2335
2336 2004-06-12  Eric Christopher  <echristo@redhat.com>
2337
2338         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
2339         * config/s390/s390.md: Ditto.
2340         * config/s390/s390.c: Ditto.
2341         (s390_frame_info): Conditionalize frame and setup info on
2342         TARGET_TPF_PROFILING.
2343         (s390_arg_frame_offset): Ditto.
2344
2345 2004-06-12  Roger Sayle  <roger@eyesopen.com>
2346
2347         * fold-const.c (omit_two_operands): New function.
2348         * tree.h (omit_two_operands): Prototype here.
2349         * builtins.c (fold_builtin_unordered_cmp): New function to lower
2350         C99 unordered comparison builtins to the appropriate tree nodes.
2351         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
2352         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
2353         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
2354         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
2355         (simplify_builtin_memcmp, simplify_builtin_strncmp,
2356         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
2357         omit_two_operands function to build the required COMPOUND_EXPRs.
2358
2359 2004-06-12  Steven Bosscher <stevenb@suse.de>,
2360             Andreas Jaeger  <aj@suse.de>
2361
2362         * gcse.c (record_set_info): Use predicates like REG_P.
2363         (mems_conflict_for_gcse_p): Likewise.
2364         (load_killed_in_block_p): Likewise.
2365         (hash_expr_1): Likewise.
2366         (insert_set_in_table): Likewise.
2367         (gcse_constant_p): Likewise.
2368         (hash_scan_set): Likewise.
2369         (hash_scan_insn): Likewise.
2370         (canon_list_insert): Likewise.
2371         (record_last_mem_set_info): Likewise.
2372         (record_last_set_info): Likewise.
2373         (compute_hash_table_work): Likewise.
2374         (mark_set): Likewise.
2375         (mark_clobber): Likewise.
2376         (mark_oprs_set): Likewise.
2377         (compute_transp): Likewise.
2378         (find_avail_set): Likewise.
2379         (cprop_insn): Likewise.
2380         (do_local_cprop): Likewise.
2381         (cprop): Likewise.
2382         (find_implicit_sets): Likewise.
2383         (find_bypass_set): Likewise.
2384         (bypass_conditional_jumps): Likewise.
2385         (insert_insn_end_bb): Likewise.
2386         (pre_insert_copy_insn): Likewise.
2387         (compute_transpout): Likewise.
2388         (next_ls_expr): Likewise.
2389         (invalidate_any_buried_refs): Likewise.
2390         (compute_ld_motion_mems): Likewise.
2391         (reg_set_info): Likewise.
2392         (reg_clear_last_set): Likewise.
2393         (find_moveable_store): Likewise.
2394         (compute_store_table): Likewise.
2395         (find_loads): Likewise.
2396         (store_killed_in_insn): Likewise.
2397         (insert_insn_start_bb): Likewise.
2398         (reg_set_between_after_reload_p): Likewise.
2399         (reg_used_between_after_reload_p): Likewise.
2400         (is_jump_table_basic_block): Likewise.
2401         (gcse_after_reload): Likewise.
2402         (hash_scan_set_after_reload): Likewise.
2403         (compute_hash_table_after_reload): Likewise.
2404
2405 2004-06-12  Steven Bosscher  <stevenb@suse.de>
2406
2407         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
2408         (INSN_P): Don't look at the rtx code class, just explicitly
2409         check for one of the tree RTX_INSN codes.
2410
2411 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
2412
2413         * c-typeck.c (default_function_array_conversion): Use
2414         build_pointer_type not TYPE_POINTER_TO.
2415
2416 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
2417
2418         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
2419         * configure, config.in: Regenerate.
2420         * system.h: Unconditionally define bool as unsigned char,
2421         BOOL_BITFIELD as unsigned int.
2422         * domwalk.h: Use BOOL_BITFIELD.
2423
2424 2004-06-12  Andreas Jaeger  <aj@suse.de>
2425
2426         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
2427         * libgcc-darwin.ver: Likewise.
2428
2429 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
2430
2431         * reload.c (find_reloads): Force reload for pseudo registers on big
2432         endian machines.
2433
2434 2004-06-11  Steven Bosscher <stevenb@suse.de>
2435
2436         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
2437         Don't try to mark anything control dependent on the entry or
2438         exit blocks.
2439
2440 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
2441
2442         Fix Bug 15899
2443         Fix Bug 15460
2444         * tree.h (SSA_NAME_VALUE): New macro.
2445         (struct tree_ssa_name): Add value_handle member.
2446         * tree-ssa-pre.c: Replaced.
2447         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
2448         (struct cst_ann_d): New.
2449         (struct expr_ann_d): New.
2450         (union tree_ann_d): Add cst_ann, expr_ann.
2451         * tree-dfa.c (create_cst_ann): New function.
2452         (create_expr_ann): Ditto.
2453         * tree-flow-inline.h (cst_ann): New function.
2454         (expr_ann): Ditto.
2455         (get_cst_ann): Ditto.
2456         (get_expr_ann): Ditto..
2457
2458 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2459
2460         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
2461         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
2462         _U_Qfcmp library function.
2463         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
2464         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
2465
2466         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
2467         unspec used for loading address from DLT.
2468         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
2469         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
2470         Don't use short code sequence when loading the address of a nonlocal
2471         label.
2472         (nonlocal_goto): New expander.
2473         (indirect_goto): New jump pattern for nonlocal gotos.
2474         (short_jump): Remove extra whitespace.
2475         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
2476         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
2477         pattern.
2478
2479 2004-06-11  Roger Sayle  <roger@eyesopen.com>
2480
2481         * expmed.c (synth_mult): Add an additional MODE argument for the
2482         machine mode of the multiplication.  Update recursive calls.  Use
2483         mode instead of word_mode for determining operation costs.
2484         (choose_mult_variant): Update calls to synth_mult with "mode".
2485
2486 2004-06-11  Richard Henderson  <rth@redhat.com>
2487
2488         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
2489         and makes_aliased_stores.
2490
2491 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
2492
2493         * doc/install.text (--enable-shared): Fix typo.
2494
2495 2004-06-11  Richard Henderson  <rth@redhat.com>
2496
2497         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
2498         argument.  Use internal post for call to gimplify_expr.  Tidy
2499         rounded type size computation.
2500         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
2501         get_initialized_tmp_var.
2502
2503 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
2504
2505         * doc/install.texi (--enable-shared): Update libobjc's shared library
2506         status.  Remove reference to libf2c.
2507
2508 2004-06-11  Jason Merrill  <jason@redhat.com>
2509
2510         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2511         * config/i386/i386.c (ix86_va_arg): Remove.
2512         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2513         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
2514         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2515         * config/alpha/alpha.c (alpha_va_arg): Remove.
2516         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2517         * config/sparc/sparc.c (sparc_va_arg): Remove.
2518
2519         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
2520         assignment might throw.
2521         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
2522         expressions.
2523
2524 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
2525
2526         PR 15886:
2527         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
2528
2529 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
2530
2531         * doc/install.texi (Prerequisites): Update documentation of
2532         required versions of autoconf and automake.  Remove mention of
2533         libf2c.
2534
2535 2004-06-11  Jason Merrill  <jason@redhat.com>
2536
2537         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
2538         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2539
2540 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
2541
2542         * typeclass.h: Add GPL plus exception license.  Add include
2543         guard.
2544
2545 2004-06-10  Jason Merrill  <jason@redhat.com>
2546
2547         * gimplify.c (gimplify_modify_expr): Don't force a temporary
2548         of an aggregate_value_p type.
2549
2550 2004-06-10  Jeff Law  <law@redhat.com>
2551
2552         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
2553         code when we are in gimple form.
2554
2555 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
2556
2557         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
2558         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
2559         (highest_ssa_version): Remove.
2560         * tree-outof-ssa.c (new_temp_expr_table): Replace
2561         highest_ssa_version with num_ssa_names.
2562         (dump_replaceable_exprs): Likewise.
2563         (rewrite_vars_out_of_ssa): Likewise.
2564         * tree-ssa-ccp.c (initialize): Likewise
2565         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
2566         * tree-ssa-dce.c (tree_dce_init): Likewise.
2567         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2568         * tree-ssa-live.c (create_ssa_var_map): Likewise.
2569         (dump_var_map): Likewise.
2570         * tree-ssa.c (verify_ssa): Likewise.
2571         (kill_redundant_phi_nodes): Likewise.
2572         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
2573         * tree-ssanames.c: Include tree-flow.h
2574         (ssa_names): New varray.
2575         (init_ssa_names): Initialize ssa_names.
2576         Reserve the first slot of the ssa_names table.
2577         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
2578         Assign version numbers using num_ssa_names.
2579
2580 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2581
2582         * doc/sourcebuild.texi (Front End): Add details of more
2583         installation documentation required.
2584
2585 2004-06-10  Brian Booth  <bbooth@redhat.com>
2586
2587         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
2588         of V_MAY_DEF and V_MUST_DEF.
2589         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
2590         num_vdefs to num_v_may_defs.
2591         (compute_immediate_uses_for_stmt): Rename occurences of vdef
2592         to v_may_def.
2593         (redirect_immediate_uses): Ditto.
2594         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
2595         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
2596         Also add code to sum up the number of v_must_defs.
2597         (vdefs_disappeared_p): Replace with...
2598         (v_may_defs_disappeared_p): This.
2599         (v_must_defs_disappeared_p): New function.
2600         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
2601         Also add code to mark new variables found in V_MUST_DEFs for
2602         renameing.
2603         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
2604         vdef_ops to v_may_def_ops.
2605         (get_vdef_ops): Replace with...
2606         (get_v_may_def_ops): This.
2607         * tree-flow-inline.h (get_vdef_ops): Replace with...
2608         (get_v_may_def_ops): This.
2609         (get_v_must_def_ops): New function.
2610         (get_vdef_result_ptr): Replace with...
2611         (get_v_may_def_result_ptr): This.
2612         (get_vdef_op_ptr): Ditto with...
2613         (get_v_may_def_op_ptr); This.
2614         (get_v_must_def_op_ptr): New function.
2615         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
2616         to v_may_def. Also add code to mark statements with
2617         V_MUST_DEFs as definition sites.
2618         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
2619         add code to register new V_MUST_DEFs made by the statement.
2620         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
2621         (check_replaceable): Rename occurences of vdef to v_may_def. Also
2622         add check for V_MUST_DEFs.
2623         (find_replaceable_in_bb): Ditto.
2624         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
2625         to v_may_def. Also add code to dump V_MUST_DEFs.
2626         * tree-sra.c (mark_all_vdefs): Replace with...
2627         (mark_all_v_may_defs): This.
2628         (mark_all_v_must_defs): New function.
2629         (create_scalar_copies): Replace call to mark_all_vdefs with
2630         calls to mark_all_v_may_defs and mark_all_v_must_defs.
2631         (scalarize_structures): Rename occurences of vdef to v_may_def.
2632         Also add a check for V_MUST_DEFs.
2633         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
2634         * tree-ssa-alias.c (global_var): Update comment.
2635         (compute_may_aliases): Ditto.
2636         (compute_points_to_and_addr_escape): Rename occurences of vdef
2637         to v_may_def. Also add code to mark variables in V_MUST_DEF
2638         operands as being written to.
2639         (group_aliases): Update comment.
2640         (maybe_create_global_var): Ditto.
2641         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
2642         Also add a check for V_MUST_DEFs on GIMPLE registers.
2643         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
2644         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
2645         to v_may_def. Also add code to mark all V_MUST_DEF operands
2646         VARYING.
2647         (initialize): Ditto.
2648         (set_rhs): Rename occurences of vdef to v_may_def. Also add
2649         code to update SSA_NAMEs in V_MUST_DEFs.
2650         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
2651         to v_may_def.
2652         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
2653         occurences of vdef to v_may_def. Also add code to mark statements
2654         with V_MUST_DEFs as necessary.
2655         (propagate_necessity): Rename occurences of vdef to v_may_def.
2656         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
2657         occurences of vdef to v_may_def. Also add code to mark operands
2658         in V_MUST_DEFs for renaming.
2659         (eliminate_redundant_computations): Rename occurences of vdef
2660         to v_may_def.
2661         (record_equivalences_from_stmt): Rename occurences of vdef
2662         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
2663         (optimize_stmt): Remove unnesessary variable vdefs. Update
2664         comment.
2665         (register_definitions_for_stmt): Rename occurences of vdef
2666         to v_may_def. Also add code to register definitions made with
2667         V_MUST_DEFs.
2668         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
2669         (fix_stmt_v_may_defs): This.
2670         (fix_phi_uses): Rename occurences of vdef to v_may_def.
2671         (dse_optimize_stmt): Ditto.
2672         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
2673         to v_may_def. Also add code to mark V_MUST_DEF operands as being
2674         used in virtual operators.
2675         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
2676         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
2677         renaming.
2678         * tree-ssa-operands.c (opf_kill_def): New flag for killing
2679         definitions.
2680         (build_vdefs): Renamed to...
2681         (build_v_may_defs): This.
2682         (build_v_must_defs): New variable.
2683         (voperands_d): Add v_must_def_ops and replace vdef_ops with
2684         v_may_def_ops.
2685         (append_vdef): Replace with...
2686         (append_v_may_def): This.
2687         (append_v_must_def): New function.
2688         (NUM_FREE): Increment for V_MUST_DEF
2689         (optype_freelist): Increment its size for V_MUST_DEF
2690         (allocate_vdef_optype): Replace with...
2691         (allocate_v_may_def_optype): This.
2692         (allocate_v_must_def_optype): New function.
2693         (free_vdefs): Replace with...
2694         (free_v_may_defs): This.
2695         (free_v_must_defs): New function.
2696         (remove_vdefs): Replace with...
2697         (remove_v_may_defs): This.
2698         (remove_v_must_defs): New function.
2699         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
2700         add code to initialize build_v_must_defs.
2701         (finalize_ssa_vdefs): Replace with...
2702         (finalize_ssa_v_may_defs): This.
2703         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
2704         (finalize_ssa_v_must_defs): New function.
2705         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
2706         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
2707         (verify_start_operands): Rename occurences of vdef to v_may_def.
2708         Also add check for build_v_must_defs.
2709         (get_stmt_operands): Rename occurences of vdef to v_may_def.
2710         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
2711         killing definitions.
2712         (get_expr_operands): Update comment and use opf_kill_def for
2713         killing definitions.
2714         (add_stmt_operand): Replace code that appends VDEFs with code
2715         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
2716         otherwise.
2717         (add_call_clobber_ops): Update comments.
2718         * tree-ssa-operands.h (vdef_optype_d): Replace with...
2719         (v_may_def_optype_d): This.
2720         (v_must_def_optype_d): New structure.
2721         (VDEF_OPS): Replace with...
2722         (V_MAY_DEF_OPS): This.
2723         (STMT_VDEF_OPS): Same with...
2724         (STMT_V_MAY_DEF_OPS): This.
2725         (NUM_VDEFS): And...
2726         (NUM_V_MAY_DEFS): This.
2727         (VDEF_RESULT_PTR): As well as...
2728         (V_MAY_DEF_RESULT_PTR): This.
2729         (VDEF_RESULT): Same goes for...
2730         (V_MAY_DEF_RESULT): This.
2731         (VDEF_OP_PTR): And...
2732         (V_MAY_DEF_OP_PTR): This.
2733         (VDEF_OP): And...
2734         (V_MAY_DEF_OP): This.
2735         (V_MUST_DEF_OPS): New macro.
2736         (STMT_V_MUST_DEF_OPS): Ditto.
2737         (NUM_V_MUST_DEFS): Ditto.
2738         (V_MUST_DEF_OP_PTR): Ditto.
2739         (V_MUST_DEF_OP): Ditto.
2740         (remove_vdefs): Replace signature with...
2741         (remove_v_may_defs): This.
2742         (remove_v_must_defs): New function signature.
2743         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
2744         with calls to remove_v_may_defs and remove_v_must_defs.
2745         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
2746         Also add code that marks left occurences of operands in V_MUST_DEFs.
2747         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
2748         to v_may_def. Also add check for V_MUST_DEFs.
2749         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
2750
2751 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
2752
2753         PR target/15653
2754         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
2755         insn.
2756
2757 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2758
2759         PR web/15263
2760         * doc/install.texi: Remove superfluous linebreak.
2761
2762 2004-06-10  Roger Sayle  <roger@eyesopen.com>
2763
2764         * builtins.c (expand_builtin): Fall back to library function call for
2765         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
2766         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
2767         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
2768         IMAGPART_EXPR respectively.
2769
2770 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
2771
2772         * sh.c (dump_table): New argument start.  Changed caller.
2773         (fixup_mova): New function.
2774         (find_barrier): Use it.
2775         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
2776         If the label a mova refers to is above the mova itself, change
2777         the mova into a load.
2778         * sh.md (*casesi_worker): Rename to:
2779         (casesi_worker_1).
2780         (casesi_worker_2): New insn.
2781
2782 2004-06-10  Jason Merrill  <jason@redhat.com>
2783
2784         * target.h (struct gcc_target): Change gimplify_va_arg_expr
2785         hook signature.
2786         * tree-gimple.h: Adjust.
2787         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
2788         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
2789         Use fold_convert.
2790         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
2791         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
2792         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
2793         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
2794         (gimplify_va_arg_expr): Return GS_ERROR in error case.
2795         Gimplify valist rather than calling stabilize_va_list.
2796
2797 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2798
2799         * Makefile.in (df.o): Remove fibheap dependency.
2800         * df.h: Do not include sbitmap.h.
2801         (struct ref): New field "data".
2802         (DF_REF_DATA): New accessor macro.
2803         (struct df): Field "dom" removed.
2804         (df_analyze_subcfg): New function.
2805         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
2806         (transfer_function): ... new type.
2807         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
2808         (iterative_dataflow): ... new function.
2809         (enum set_representation, struct dataflow): New.
2810         * df.c: Do not include fibheap.h.
2811
2812         (df_reg_def_chain_clean, df_reg_use_chain_clean,
2813         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
2814         prune_to_subcfg, df_bb_modify): New functions.
2815         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
2816         df_refs_update, df_reg_table_realloc, df_ref_create,
2817         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
2818         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
2819         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
2820
2821         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
2822         (df_rd_transfer_function, df_ru_transfer_function,
2823         df_lr_transfer_function): Type of bitmaps changed to void *.
2824         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
2825         (hybrid_search): ... new function.
2826         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
2827         (iterative_dataflow): ... new function. Avoid use of fibheaps for
2828         a worklist.  Do not process basic blocks unnecessarily.
2829
2830 2004-06-10  Roger Sayle  <roger@eyesopen.com>
2831
2832         * fold-const.c (fold_abs_const): Make extern.
2833         * tree.h (fold_abs_const): Prototype here.
2834         * builtins.c (fold_builtin_fabs): New function to transform
2835         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
2836         (fold_builtin_abs): New function to transform abs, labs, llabs
2837         and imaxabs builtins into ABS_EXPR tree nodes.
2838         (expand_builtin): Fall back to a function call for abs, labs,
2839         llabs and imaxabs builtins that survive constant folding.
2840         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
2841         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
2842
2843 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
2844
2845         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
2846         leaf function without unwind info at RP 0.
2847
2848 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
2849
2850         PR c++/14791
2851         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
2852         (fileptr_type_node): Define.
2853         * tree.c (build_common_tree_nodes_2): Initialize
2854         fileptr_type_node to ptr_type_node.
2855         * c-common.c (c_common_nodes_and_builtins): For C++, make
2856         fileptr_type_node a distinct type copy.
2857         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
2858         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
2859         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
2860         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
2861         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
2862         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
2863         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
2864         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
2865         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
2866         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
2867         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
2868         the above *FILEPTR* types instead of *PTR*.
2869
2870 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
2871
2872         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
2873         match.
2874
2875 2004-06-09  Roger Sayle  <roger@eyesopen.com>
2876
2877         * fold-const.c (fold_not_const): New function.
2878         (fold) <ABS_EXPR>: Don't bother testing wins.
2879         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
2880         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
2881
2882 2004-06-09  Richard Henderson  <rth@redhat.com>
2883
2884         PR middle-end/15228
2885         * function.c (assign_parms): Always set_mem_align with the computed
2886         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
2887
2888 2004-06-09  Richard Henderson  <rth@redhat.com>
2889
2890         PR opt/15108
2891         * tree-tailcall.c (find_tail_calls): Don't check early for
2892         tail_recursion failure.
2893
2894 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
2895
2896         Move SSA_NAME annotations into tree_ssa_name.
2897
2898         * tree-dfa.c (create_ssa_name_ann): Remove.
2899         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
2900         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
2901         (struct ssa_name_ann_d): Remove.
2902         (union tree_ann_d): Update.
2903         (ssa_name_ann_t): Remove.
2904         * tree-ssa-alias.c: (get_ptr_info): New local function.
2905         Replace references to ssa_name_ann_t with struct ptr_info_def.
2906         * tree-ssa-operands.c (get_expr_operands): Likewise.
2907         * tree.h (SSA_NAME_PTR_INFO): Define.
2908         (struct ptr_info_def): Declare.
2909         (struct tree_ssa_name): Add field 'ptr_info'.
2910
2911 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
2912
2913         * config/i386/winnt.c (i386_pe_output_labelref): Correct
2914         misplaced ')'.
2915
2916 2004-06-09  Steven Bosscher  <stevenb@suse.de>
2917
2918         * config/i386/k6.md: Rewrite using the DFA model.
2919         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
2920         cost of load-operation insns for the K6.
2921         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
2922         (ia32_multipass_dfa_lookahead): Likewise.
2923
2924 2004-06-09  Richard Henderson  <rth@redhat.com>
2925
2926         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
2927         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
2928
2929 2004-06-09  Richard Henderson  <rth@redhat.com>
2930
2931         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
2932
2933 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
2934
2935         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
2936         (CPP_ID_DATA_H): New.
2937         (gtype-desc.o): Update dependencies.
2938         (GTFILES): Use CPP_ID_DATA_H.
2939
2940 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
2941
2942         Revert:
2943         PR c++/15815
2944         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
2945         * doc/extend.texi: Deprecate #pragma interface and #pragma
2946         implementation.
2947
2948 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
2949
2950         * config/sparc/sparc.h (MOVE_RATIO): New definition.
2951
2952 2004-06-09  Richard Henderson  <rth@redhat.com>
2953
2954         * basic-block.h (struct edge_def): Add goto_locus.
2955         * tree-cfg.c (make_goto_expr_edges): Set it.
2956         (disband_implicit_edges): Use it.
2957         * tree-pretty-print.c (dump_implicit_edges): Print it.
2958
2959 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
2960
2961         * h8300.md (ldm_h8300s_4): Fix condition for expander.
2962
2963 2004-06-08  Jason Merrill  <jason@redhat.com>
2964
2965         Gimplify VA_ARG_EXPR into simpler forms.
2966         * target.h: Add gimplify_va_arg_expr hook.
2967         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2968         * fold-const.c (build_fold_addr_expr)
2969         (build_fold_addr_expr_with_type): Move from gimplify.c.
2970         * tree.h: Declare them.
2971         * gimplify.c (gimplify_and_add): New fn.
2972         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2973         (gimplify_array_ref_to_plus, gimplify_modify_expr)
2974         (gimplify_expr): Use build_fold_*.
2975         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2976         don't know how to gimplify it.
2977         * builtins.c (std_gimplify_va_arg_expr): New fn.
2978         (dummy_object): New static fn.
2979         (gimplify_va_arg_expr): New fn.
2980         (stabilize_va_list): Use build_fold_*.
2981         * tree-gimple.h: Declare new fns.
2982         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2983         (ix86_gimplify_va_arg): New fn.
2984         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2985         (ia64_gimplify_va_arg): New fn.
2986         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
2987         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2988         * alias.c (get_varargs_alias_set): Just return 0 for now.
2989
2990         * c-objc-common.c (c_tree_printer): Improve handling of %T.
2991
2992 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
2993
2994         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2995         of convert.
2996         * tree-inline.c (setup_one_parameter): Likewise.
2997         * tree-sra.c (csc_build_component_ref): Likewise.
2998         * tree-ssa-ccp.c (ccp_fold): Likewise.
2999         * tree-ssa-copy.c (cprop_operand): Likewise.
3000         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3001         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3002
3003 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
3004
3005         PR rtl-optimization/15521:
3006         * sched-int.h (in_post_call_group_p): Change type to enum.
3007         * sched-deps.c (sched_analyze_insn):
3008         (sched_analyze): When in_post_call_group_p is post_call_initial,
3009         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
3010         and also reset in_post_call_group_p to post_call.
3011         (sched_analyze): When the previous basic block ended in a CALL_INSN,
3012         initialize in_post_call_group_p as post_call_initial.
3013         (init_deps): initialize in_post_call_group_p to not_post_call.
3014
3015 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
3016
3017         PR ada/6637
3018         * doc/install.texi: List ada, libada as options to --enable-shared
3019
3020 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
3021
3022         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
3023         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
3024         config.in entries.
3025         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
3026         if hard links are not available.
3027         * configure: Regenerate.
3028         * config.in: Regenerate.
3029
3030 2004-06-08  Per Bothner  <per@bothner.com>
3031
3032         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
3033
3034 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3035
3036         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
3037         Correct formatting.
3038
3039 2004-06-08  James E Wilson  <wilson@specifixinc.com>
3040
3041         PR target/15790
3042         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
3043
3044 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3045
3046         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
3047         POINTER_TYPE and INTEGER_TYPE.
3048
3049 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
3050
3051         * modulo-sched.c: Compile only when INSN_SCHEDULING is
3052         defined.
3053
3054 2004-06-08  Jeff Law  <law@redhat.com>
3055
3056         * doc/contrib.texi: Add entries for Stefan Olsson and
3057         Ola Ronnerup.
3058
3059 2004-06-08  DJ Delorie  <dj@redhat.com>
3060
3061         * toplev.c (floor_log2_wide): Replace loop with faster bit
3062         operations.
3063         (exact_log2_wide): Define in terms of the above.
3064         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
3065         available.
3066
3067 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3068
3069         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
3070         Make sure that we are in INDIRECT mode when getting the
3071         stub name.
3072
3073 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3074
3075         * h8300.md (extendqisi2_h8300): Add constraints.
3076         (ldm_h8300s_4_normal): Fix typo.
3077
3078 2004-06-08  Richard Henderson  <rth@redhat.com>
3079
3080         * gimple-low.c (struct lower_data): Replace the_return_label and
3081         one_return_stmt with return_statements.
3082         (lower_function_body): Process the entire list of return_statements.
3083         (lower_return_expr): Check source value before unifying return_exprs.
3084         * gimplify.c (gimplify_return_expr): Force the use of a temporary
3085         for !aggregate_value_p.
3086         * tree-gimple.c: Update RETURN_EXPR grammer.
3087
3088 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
3089
3090         PR target/15598
3091         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
3092
3093 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3094
3095         PR rtl-optimization/15717
3096         * config/i386/i386.c (legitimate_constant_p): Do not allow
3097         x - symbol_ref.
3098
3099 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
3100
3101         * gimplify.c (copy_if_shared_r): Revert:
3102         2004-05-21  Richard Henderson  <rth@redhat.com>
3103         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
3104
3105 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3106
3107         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
3108         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
3109         (init_expmed): Initialize these cost arrays as appropriate.
3110         (store_bit_field, extract_bit_field): Correct whitespace.
3111         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
3112         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
3113         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
3114         word_mode or compute_mode as appropriate.
3115
3116 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3117
3118         PR target/15783
3119         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
3120         parameter.  Enumerate the registers inside the PARALLEL.
3121         (function_arg): Adjust call to function_arg_union_value.
3122         (function_value): Likewise.
3123
3124         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
3125
3126 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3127
3128         * real.c (real_copysign): New function to implement libm's copysign.
3129         * real.h (real_copysign): Prototype here.
3130         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
3131         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
3132         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
3133         fold_builtin_isdigit): Add function prototypes.
3134         (fold_builtin_copysign): New function to fold copysign, copysignf
3135         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
3136         constant arguments at compile-time using real_copysign.  Fold
3137         copysign(X,Y) as fabs(X) if Y is always non-negative.
3138         (fold_builtin_1): Correct minor whitespace/style issues.  Call
3139         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
3140
3141 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
3142
3143         * tree.c (iterative_hash_expr): Use real_hash.
3144
3145 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
3146
3147         PR c/14765
3148         * c-parse.in (compstmt_primary_start): Set last_expr_type to
3149         NULL_TREE.
3150
3151 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3152
3153         PR c++/15815
3154         * doc/extend.texi: Deprecate #pragma interface and #pragma
3155         implementation.
3156
3157 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
3158
3159         PR middle-end/15666
3160         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
3161         builtin decl as well.
3162
3163 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3164
3165         PR c/14649
3166         * c-typeck.c (require_constant_value, require_constant_elements):
3167         Move declarations to the top of the file.
3168         (build_function_call): If we require a constant value, fold with
3169         fold_initializer.  If the result is a constant, and the function
3170         wasn't called using __builtin_foo, issue a pedantic warning.
3171         (build_unary_op): If we require a constant value, fold tree with
3172         fold_initializer.
3173         (build_binary_op): Use require_constant_value to determine whether
3174         to call fold or fold_initializer.
3175
3176 2004-06-07  Richard Henderson  <rth@redhat.com>
3177
3178         * gimple-low.c (struct lower_data): Add the_return_label and
3179         one_return_stmt.
3180         (lower_function_body): Initialize and use them.
3181         (lower_return_expr): New.
3182         (lower_stmt): Call it.
3183         * gimplify.c (gimplify_return_expr): Force the argument to be either
3184         null or a result_decl.
3185         * tree-gimple.c: Update gimple grammer to match.
3186         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
3187         coalescing of result_decls.
3188
3189 2004-06-07  Richard Henderson  <rth@redhat.com>
3190
3191         PR rtl-opt/15193
3192         * expmed.c (extract_bit_field): Fix vector_extract return.
3193
3194         * config/i386/i386.md (negv4sf2): New pattern.
3195
3196 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3197
3198         PR c++/15337
3199         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
3200         message.
3201
3202 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
3203
3204         * config.in: Regenerate.
3205
3206 2004-06-06  Steven Bosscher  <stevenb@suse.de>
3207
3208         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
3209         SWITCH_LABELS are always sorted.
3210
3211 2004-06-06  Steven Bosscher  <stevenb@suse.de>
3212
3213         * hooks.c (hook_int_void_1): New generic hook.
3214         * hooks.h (hook_int_void_1): Add prototype.
3215         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
3216         Define to hook_int_void_1.
3217         * config/c4x/c4x.md: Replace dummies for the old pipeline model
3218         with dummies for the new one.
3219
3220 2004-06-06  Roger Sayle  <roger@eyesopen.com>
3221
3222         * tree.h (lvalue_or_else): Delete function prototype.
3223         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
3224
3225 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
3226
3227         PR target/14542
3228         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
3229         a live change of a register after peephole replacement.
3230
3231 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
3232
3233         PR c/13519
3234         * c-typeck.c (composite_type, common_pointer_type): New functions.
3235         (common_type): Split parts into composite_type and
3236         common_pointer_type.  Ensure that arithmetic operations return
3237         unqualified types without attributes.  Don't make composite type
3238         of signed enum and compatible integer be unsigned.
3239         (build_conditional_expr, build_binary_op): Use
3240         common_pointer_type.
3241         * c-decl.c (merge_decls): Use composite_type.
3242         * c-tree.h (composite_type): Declare.
3243
3244 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
3245
3246         PR target/14457
3247         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
3248         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
3249         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
3250         (inhibit_libc): Must define.
3251         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
3252         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
3253         ("xorhi3"): Likewise.
3254
3255 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3256
3257         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
3258         always_inline pass.
3259
3260 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
3261
3262         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
3263         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
3264
3265 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
3266
3267         * regclass.c (init_reg_sets): Check for missing registers in target
3268         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
3269
3270 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
3271
3272         * Makefile.in (MKDEPS_H): New shorthand.
3273         (c-opts.o): Update dependencies.
3274         * c-opts.c: Include mkdeps.h.
3275         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
3276         not cpp_add_dependency_target.
3277
3278 2004-06-05  Steven Bosscher  <stevenb@suse.de>
3279
3280         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
3281         * config/v850/v850.md: Convert to DFA scheduler description.
3282
3283 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3284
3285         PR fortran/15478
3286         * doc/install.texi: Document GMP as prerequisite. Document
3287         --with-gmp and --with-gmp-dir configure options.
3288         * fortran/gfortran.texi: Remove section "Compiling and testing",
3289         remove TOC reference to it.
3290
3291 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
3292
3293         * combine.c(simplify_shift_const): Check shift amount is a
3294         CONST_INT.
3295
3296 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
3297
3298         * toplev.c (init_asm_output): Add explicit 'b' to mode when
3299         opening asm_out_file.
3300         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
3301         reading asm_out_file. Replace fflush after reading asm_out_file
3302         with fseek.
3303         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
3304         default and add to HOST_HOOKS_INITIALIZER.
3305         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
3306         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
3307         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
3308         to set mmi.offset padding.
3309          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
3310         $(srcdir)/config/i386/winnt.c.
3311         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
3312         (i[34567]86-*-uwin*): Likewise.
3313         *i[34567]86-*-interix3*): Likewise.
3314         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
3315         * config/i386/host-mingw32.c: New file.
3316         * config/i386/x-mingw32: Add rule for host-mingw32.o.
3317         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
3318         (extern_head): Likewise.
3319         (struct export_list) Likewise.
3320         (export_head): Likewise.
3321         (i386_pe_record_external_function): Use ggc_alloc.
3322         (i386_pe_record_exported_symbol): Likewise.
3323         Include "gt-winnt.h" at end.
3324         * doc/hostconfig.texi: Document
3325         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
3326
3327 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
3328
3329         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
3330         Rename 68000 and 68k to m68k for consistency in comments.  Remove
3331         trailing whitespace before EOLs and before TABs.
3332         (MAX_CODE_ALIGN): Remove unused macro.
3333         (CALL_USED_REGISTERS): Reformat and add comments.
3334
3335 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
3336
3337         * gcc.c (MFLIB_SPEC): Remove library references, to require users
3338         to enumerate -lmudflap* and dependencies when linking.
3339
3340 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
3341
3342         PR target/15822
3343         * dojump.c (do_jump): Fix uninitialized variable tcode1.
3344
3345 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
3346
3347         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
3348         * genconditions.c (write_header): Back out removal of reload.h.
3349
3350 2004-06-04  Jan Hubicka  <jh@suse.cz>
3351
3352         Re-apply hopefully fixed patch:
3353         * i386.md (UNSPECV_EH_RETURN): Kill.
3354         (eh_return): Use jump_insn.
3355         (eh_return_si, eh_return_di): Change pattern to jump instruction.
3356
3357 2004-06-04  Jeff Law  <law@redhat.com>
3358
3359         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
3360
3361 2004-06-04  Steven Bosscher  <stevenb@suse.de>
3362
3363         * except.c (for_each_eh_region): New function.
3364         * except.h (for_each_eh_region): Add a prototype for it.
3365         * tree-cfg.c (update_eh_labels): New function, callback for
3366         for_each_eh_region.
3367         (label_for_bb): Make global static, unfortunately.
3368         (cleanup_dead_labels): Also update label references for
3369         exception regions.
3370
3371 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
3372
3373         * config/mips/mips.c (struct irix_section_align_entry): Fix
3374         GTY marker.
3375
3376 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
3377
3378         * toplev.c (check_global_declarations): Don't ask for
3379         DECL_ASSEMBLER_NAME unless the function really is declared
3380         static and not defined.
3381
3382 2004-06-03  Matt Austern  <austern@apple.com>
3383
3384         PR c++/15428
3385         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
3386         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
3387         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
3388         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
3389         documentation to reflect the new macro name and to clarify its
3390         meaning.
3391
3392 2004-06-03  Steven Bosscher  <stevenb@suse.de>
3393
3394         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
3395
3396 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
3397
3398         * config/darwin.c (machopic_indirect_data_reference): Copy
3399         the SYMBOL_REF_DECL from the original RTX for the new
3400         non-lazy pointer RTX.
3401
3402 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
3403
3404         * tree.h: Remove include of version.h
3405         * c-cppbuiltin.c: Include version.h
3406         * diagnostic.c: Include version.h
3407         * dwarf2out.c: Include version.h
3408         * toplev.c: Include version.h
3409         * vmsdbgout.c: Include version.h
3410         * Makefile.in: Remove dependency on version.h from TREE_H, and
3411         add dependencies to required .o targets
3412
3413 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
3414
3415         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
3416         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
3417         (TARGET_H): Add insn-modes.h.
3418         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
3419         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
3420         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
3421         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
3422         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
3423         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
3424         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
3425         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
3426         CFGLAYOUT_H.
3427         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
3428         Replace ra.h with RA_H.
3429         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
3430         insn-recog.o): Replace resource.h with RESOURCE_H.
3431         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
3432         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
3433         with SCHED_INT_H.
3434         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
3435         ra-rewrite.o): Replace df.h with DF_H.
3436         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
3437         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
3438         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
3439         (insn-conditions.o): Remove unused reload.h.
3440         * cfglayout.h: Add include guard.  Include basic-block.h.
3441         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
3442         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
3443         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
3444         basic-block.h.
3445         * genconditions.c:  Remove reload.h.
3446         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
3447         hard-reg-set.h, insn-modes.h.
3448         * resource.h: Add include guard.  Include hard-reg-set.h.
3449         * sched-int.h:  Add include guard.  Include insn-attr.h,
3450         basic-block.h, rtl.h.
3451         * target.h: Add include guard.  Include insn-modes.h.
3452         * tree-ssa-live.h: Include partition.h.
3453
3454 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
3455                 Kenneth Zadeck <zadeck@naturalbridge.com>
3456
3457         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
3458         (add_var_to_ssa_edges_worklist): Add value argument.
3459         Update callers.
3460         Use new worklist.
3461         (process_ssa_edge_worklist): New function.
3462         (tree_ssa_ccp): Move worklist processing core to
3463         process_ssa_edge_worklist, and just call that for the two worklists.
3464
3465 2004-06-03  Steven Bosscher  <stevenb@suse.de>
3466
3467         * basic-block.c (tail_recursion_label_list): Don't declare.
3468         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
3469         accordingly.
3470         * cfgbuild.c (find_label_refs): Remove.
3471         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
3472         * cfgcleanup.c (tail_recursion_label_p): Remove.
3473         (merge_blocks_move): Do not check for tail recursion.
3474         (try_optimize_cfg): Likewise.
3475         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
3476         * cfgrtl.c (tail_recursion_label_list): Remove.
3477         * except.c (remove_unreachable_regions): Don't handle
3478         CALL_PLACEHOLDER insns.
3479         (convert_from_eh_region_ranges_1, can_throw_internal,
3480         can_throw_external): Likewise.
3481         * function.c (free_after_compilation): Don't clear
3482         x_tail_recursion_label.
3483         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
3484         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
3485         (reorder_blocks_1): Likewise.
3486         * function.h (struct function): Remove x_tail_recursion_label
3487         member.  Don't define tail_recursion_label.
3488         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
3489         * print-rtl.c (print_rtx): Likewise.
3490         * rtl.def (CALL_PLACEHOLDER): Remove.
3491         * rtl.h (sibcall_use_t): Remove enum.
3492         (optimize_sibling_and_tail_recursive_calls,
3493         replace_call_placeholder): Remove function prototypes.
3494         * stmt.c (tail_recursion_args): Remove.
3495         (optimize_tail_recursion): Remove.
3496         (expand_return): Don't check for possible tail recursion.
3497         * tree.h (optimize_tail_recursion): Remove prototype.
3498
3499 2004-06-02  Jan Hubicka  <jh@suse.cz>
3500
3501         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
3502         return_stmt.
3503
3504 2004-06-02  Jason Merrill  <jason@redhat.com>
3505
3506         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
3507         Do include c-parse.in.
3508
3509 2004-06-02  Eric Christopher  <echristo@redhat.com>
3510
3511         * c-typeck.c (common_type): Don't lose type qualifiers
3512         when creating new variants.
3513
3514 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
3515
3516         PR tree-optimization/14042
3517         PR tree-optimization/14729
3518         PR tree-optimization/14736
3519         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
3520         Check the type which the pointer points to
3521         instead of the pointer types.
3522
3523 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
3524
3525         PR tree-optimization/15738.
3526         * builtins.c (fold_builtin_strchr): Transform
3527         strrchr (s, '\0') to strchr (s, '\0').
3528
3529 2004-06-02  Steven Bosscher  <stevenb@suse.de>
3530
3531         * i386.c (ix86_adjust_cost): Don't increase the cost for
3532         load+operation for PROCESSOR_PENTIUMPRO, it is already
3533         modelled in the DFA description
3534
3535 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
3536
3537         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
3538         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
3539         (ALIAS_H, EMIT_RTL_H): New.
3540         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
3541         (cfgcleanup.o): Add EMIT_RTL_H.
3542         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
3543         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
3544         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
3545         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
3546         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
3547         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
3548         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
3549         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
3550         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
3551         set_mem_size): Move to emit-rtl.h.
3552         * emit-rtl.h: New.
3553         * alias.h: New.
3554
3555 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
3556
3557         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
3558         Call fixup_memory_subreg only if the MEM is equal to 'var'.
3559         Adjust recursive calls to self.
3560         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
3561
3562 2004-06-01  Richard Henderson  <rth@redhat.com>
3563             Andrew Pinski  <pinskia@physics.uc.edu>
3564
3565         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
3566         (primary): Handle offsetof.  Add error productions for faux functions.
3567         Move component_ref objc checking to build_component_ref.
3568         (reswords): Add offsetof.
3569         (rid_to_yy): Add offsetof.
3570         * c-tree.h (build_offsetof): Declare.
3571         * c-common.h (objc_is_public): Declare.
3572         * c-typeck.c (build_component_ref): Check objc_is_public.
3573         (build_offsetof): New.
3574         * stub-objc.c (objc_is_public): New.
3575         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
3576         from is_public.
3577         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
3578         * doc/extend.texi (Offsetof): Move from C++ section to C section
3579         and rewrite for __builtin_offsetof.
3580
3581 2004-06-01  Peter Barada  <peter@the-baradas.com>
3582             Peter Jakubek  <peter@laseranimation.com>
3583
3584         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
3585         a scratch to perform an add to memory.
3586
3587 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
3588
3589         PR target/14018
3590         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
3591         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
3592         m68k_align_funcs): Remove.
3593         (override_options): Remove code to handle -malign-* options.
3594         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
3595         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
3596         (m68k_align_loops_string, m68k_align_jumps_string,
3597         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
3598         m68k_align_funcs): Remove definitions.
3599
3600 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
3601
3602         PR target/15626
3603         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
3604         by the Sun linker in conjunction with the Sun assembler.
3605         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
3606
3607 2004-06-01  Jeff Law  <law@redhat.com>
3608
3609         * stmt.c (expand_decl): Be more selective about calling
3610         mark_reg_pointer.
3611
3612 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
3613
3614         PR objc/7993
3615         * objc-act.c (is_private): Do not emit the 'instance variable %s
3616         is declared private' error.
3617         (is_public): Emit the error after calling is_private.
3618         (lookup_objc_ivar): If the instance variable is private, return 0
3619         - the instance variable is invisible here.
3620
3621 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3622
3623         * doc/invoke.texi (-static-libgcc): Explicitly mention
3624         non-GNU linkers.
3625
3626 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
3627
3628         PR target/12968
3629         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
3630
3631 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
3632
3633         PR c/15749
3634         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
3635         misuses of structures with flexible array members if
3636         in_system_header.
3637
3638 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3639
3640         PR target/15693
3641         * config/sparc/sparc.c (compare_operand): New predicate.
3642         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
3643         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
3644         operand is a ZERO_EXTRACT and the second operand is not zero,
3645         force the former to a register.
3646         (cmpdi expander): Likewise.
3647
3648 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
3649
3650         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
3651         looks at.
3652         * alias.c (alias_invariant_size): Make alias_invariant_size
3653         static, fix GTY marker.
3654
3655 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
3656
3657         PR tree-optimization/15743.
3658         * builtins.c (fold_builtin_1): Fold index() and rindex().
3659
3660 2004-05-31  Roger Sayle  <roger@eyesopen.com>
3661
3662         PR middle-end/15069
3663         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
3664         into "X < 0" (where C is the signbit) if X's type is a full mode.
3665
3666 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3667
3668         * pa.md: Disable the peephole2 patterns that generate indexed
3669         floating-point stores when indexing is disabled.
3670
3671 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3672
3673         * c-pretty-print.c (pp_c_left_bracket): Make a function.
3674         (pp_c_right_bracket): Likewise.
3675         (pp_c_star): Likewise.
3676         (pp_c_ampersand): Define.
3677         * c-pretty-print.h (pp_c_left_bracket): Declare.
3678         (pp_c_right_bracket): Likewise.
3679         (pp_c_star): Likewise.
3680         (pp_c_ampersand): Likewise.
3681
3682 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3683
3684         * config/sol2.h (__enable_execute_stack): ANSIfy function
3685         definition.
3686
3687 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
3688
3689         * c-incpath.c (add_path): Canonicalize paths to use '/' if
3690         HAVE_DOS_BASED_FILESYSTEM.
3691
3692 2004-05-31  Steven Bosscher  <stevenb@suse.de>
3693
3694         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
3695         Only look at case labels if the immediate dominator is also
3696         the only predecessor.  Don't look for more case labels if the
3697         first seen is a case range.
3698
3699 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
3700
3701         * builtins.c: Add a prototype for fold_builtin_strchr().
3702
3703 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
3704
3705         Revert this patch:
3706         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
3707
3708         * combine.c (gen_binary): Remove.
3709         (known_cond, simplify_shift_const
3710         find_split_point, combine_simplify_rtx,
3711         simplify_if_then_else, simplify_set,
3712         simplify_logical, expand_field_assignment,
3713         extract_left_shift, force_to_mode,
3714         if_then_else_cond, apply_distributive_law,
3715         simplify_and_const_int, simplify_shift_const,
3716         gen_lowpart_for_combine, simplify_comparison,
3717         reversed_comparison): Replace with
3718         simplify_gen_binary, simplify_gen_relational or
3719         distribute_and_simplify_rtx.
3720         (distribute_and_simplify_rtx): New function.
3721
3722 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3723
3724         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
3725         when generating PIC code.
3726
3727 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
3728
3729         * c-decl.c (c_expand_body_1): Remove and fold back into ...
3730         (c_expand_body): here.
3731         (c_expand_decl): Move to ...
3732         * c-common.c (c_expand_decl): Here and remove check for nested
3733         functions.
3734         * c-common.h (c_expand_decl): Add prototype.
3735         * c-tree.h (c_expand_decl): Remove.
3736
3737 2004-05-30  Roger Sayle  <roger@eyesopen.com>
3738
3739         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
3740         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
3741         fold_mathfn_compare, fold_inf_compare, fold,
3742         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3743         Use constant_boolean_node where appropriate.  Don't bother using
3744         fold_convert on the second argument to omit_one_operand.
3745
3746 2004-05-30  Roger Sayle  <roger@eyesopen.com>
3747
3748         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
3749         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
3750         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
3751         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
3752         Add missing (but documented) tree nodes to the index.
3753
3754 2004-05-30  Steven Bosscher  <stevenb@suse.de>
3755
3756         PR tree-optimization/14819
3757         * builtins.c (fold_builtin_strchr): New.
3758         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
3759         with fold_builtin_strchr().
3760
3761 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3762
3763         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
3764         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
3765         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
3766         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
3767         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
3768         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
3769         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
3770         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
3771         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
3772         formatting.
3773
3774 2004-05-30  Steven Bosscher  <stevenb@suse.de>
3775
3776         * gimplify.c (sort_case_labels): New.  Split out from...
3777         (gimplify_switch_expr): ...here.  Use it.
3778         * tree-eh.c (lower_try_finally_switch): Sort the labels of
3779         the SWITCH_EXPR created here before leaving the function.
3780         * tree.c (sort_case_labels): Add prototype.
3781
3782 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
3783
3784         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
3785         of BOOLEAN_TYPE.
3786
3787 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3788
3789         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
3790         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
3791         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
3792         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
3793         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
3794         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
3795         comment typos.  Follow spelling conventions.
3796
3797 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
3798
3799         * gengtype-yacc.y: Add NESTED_PTR token.
3800         (option): Record `nested_ptr' option.
3801         * gengtype-lex.l: Handle `nested_ptr' keyword.
3802         * gengtype.c (walk_type): Process `nested_ptr' option.
3803         * gengtype.h (struct nested_ptr_data): New.
3804         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
3805         * stringpool.c (struct string_pool_data): Make 'entries' point to
3806         ht_identifier instead of tree.
3807         (gt_pch_save_stringpool): Don't adjust pointers.
3808         (gt_pch_restore_stringpool): Call ht_load.
3809
3810 2004-05-29  Jason Merrill  <jason@redhat.com>
3811
3812         * gimplify.c (gimplify_expr): Don't build a statement list
3813         if no gimplification was necessary.
3814
3815 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
3816
3817         * pretty-print.c (pp_base_format_text): Support %< instead of %`
3818         and %> as well as %'.
3819         * c-format.c: Use %< and %>.
3820         (gcc_diag_char_table, gcc_cdiag_char_table,
3821         gcc_cxxdiag_char_table): Update.
3822
3823 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
3824
3825         * c-typeck.c (common_type): Correct comment.
3826
3827 2004-05-29  Peter Barada  <peter@the-baradas.com>
3828
3829         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
3830         * config/m68k/m68k.c (const_method): Likewise.
3831         * config/m68k/m68k.c (const_int_cost): Likewise.
3832         * config/m68k/m68k.c (const_int_cost): Likewise.
3833         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
3834
3835 2004-05-29  Peter Barada  <peter@the-baradas.com>
3836
3837         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
3838         addressing.
3839         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
3840         movsi,movhi,movqi insn patterns.
3841
3842 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
3843
3844         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
3845
3846         PR target/15720
3847         * config/darwin.c (machopic_indirect_call_target): Copy
3848         the SYMBOL_REF_DECL from the original RTX for the new
3849         stub RTX.
3850
3851 2004-05-28  DJ Delorie  <dj@redhat.com>
3852
3853         * stor-layout.c (place_field): Revert erroneous commit.
3854
3855 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
3856
3857         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
3858         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
3859         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
3860         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
3861         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
3862         vec_ste): Remove type checks for integral parameters and literals
3863         from '..._args_eq' macros.
3864
3865 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
3866
3867         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
3868
3869 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
3870
3871         * testsuite/g++.dg/charset/function.cc: New.
3872
3873         * testsuite/gcc.dg/charset/function.c: New.
3874
3875         * c-decl.c (c_make_fname_decl): Free return value from
3876         fname_as_string.
3877
3878         * cp/decl.c (cp_make_fname_decl): Free return value from
3879         fname_as_string.
3880
3881         * c-common.c (fname_as_string): Translate if necessary.
3882
3883 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
3884
3885         * stringpool.c: Add comments to PCH saving/restoring routines.
3886
3887 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
3888
3889         * c-common.c (c_estimate_num_insns_1): Kill.
3890         (c_estimate_num_insns): Kill.
3891         * c-common.h (c_estimate_num_insns): Kill.
3892
3893         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
3894         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
3895         Remove comment about not checking for
3896         _POSIX_PRIORITY_SCHEDULING.
3897         * gthr-posix.c: Likewise.
3898
3899 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
3900             Roger Sayle  <roger@eyesopen.com>
3901
3902         PR rtl-optimization/15649
3903         Add LTGT_EXPR and improve pretty-printing of unordered
3904         comparisons.
3905         * c-common.c (c_common_truthvalue_conversion):
3906         Handle LTGT_EXPR.
3907         * c-typeck.c (build_binary_op): Likewise.
3908         * dojump.c (do_jump): Likewise.
3909         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
3910         * predict.c (tree_predict_by_opcode): Likewise.
3911         * real.c (real_compare): Likewise.
3912         * tree-cfg.c (verify_expr): Likewise.
3913         * tree-inline.c (estimate_num_insns_1): Likewise.
3914         * tree-pretty-print.c (dump_generic_node): Likewise.
3915         Handle ORDERED_EXPR, UNORDERED_EXPR.
3916         (op_symbol): Print unordered comparisons differently
3917         than ordered ones.
3918         * tree.def (LTGT_EXPR): New '<' tree code.
3919         * doc/c-tree.texi (Expressions): Document floating-point
3920         comparison nodes.
3921
3922         Fold comparisons between floating point values.
3923         * fold-const.c (enum comparison_code): New, from
3924         #define'd constants.  Define compcodes for unordered
3925         comparisons and for invalid transformations.
3926         (invert_tree_comparison): Add "honor_nans" parameter.
3927         (fold_truthop): Revamp to work on floating-point types too.
3928         (comparison_to_compcode): Support unordered comparisons.
3929         Use new enum comparison_code.
3930         (compcode_to_comparison): Likewise.
3931         (combine_compcodes): New function.
3932         (invert_truthvalue): Let invert_tree_comparison decide
3933         whether it is valid to fold the comparison.  Fold ORDERED
3934         and UNORDERED even if flag_unsafe_math_optimizations is off,
3935         and the remaining even if flag_unsafe_math_optimizations
3936         is off but we are under -fno-trapping-math.
3937         (fold_relational_const): Integer modes do not honor NaNs.
3938
3939 2004-05-28  Paul Brook  <paul@codesourcery.com>
3940
3941         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
3942
3943 2004-05-28  Paul Brook  <paul@codesourcery.com>
3944
3945         * config/arm/arm.c (thumb_force_lr_save): New function.
3946         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
3947         thumb_output_function_prologue): Use it.
3948         (thumb_expand_prologue): Set lr_save_eliminated.
3949
3950 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
3951
3952         * config/mips/mips.md (extendsidi2): Tie the source and destination
3953         of the register alternative.  Split it into nothing.
3954
3955 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
3956
3957         * rtl.h (skip_consecutive_labels): Declare.
3958         * emit-rtl.c (skip_consecutive_labels): New function.
3959         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
3960         * jump.c (follow_jumps): Say what null return values mean.
3961
3962 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3963
3964         PR target/13250
3965         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
3966
3967 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3968
3969         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
3970         libgcc-std.ver.
3971         * config/sh/libgcc-std.ver: New file.
3972
3973 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
3974
3975         * except.c: Revert change of 2004-05-26.
3976         * config/i386/i386.md: Revert change of 2004-05-27.
3977
3978 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
3979
3980         * configure.ac: Remove --enable-tree-browser option.
3981         Define TREEBROWSER when ac_tree_checking is defined.
3982         * configure: Rebuilt.
3983
3984 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
3985
3986         * expr.c (store_constructor): Restore sanity check on
3987         the size of the type before clearing.
3988
3989 2004-05-27  Jan Hubicka  <jh@suse.cz>
3990
3991         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
3992
3993 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
3994
3995         * combine.c (gen_binary): Remove.
3996         (known_cond, simplify_shift_const
3997         find_split_point, combine_simplify_rtx,
3998         simplify_if_then_else, simplify_set,
3999         simplify_logical, expand_field_assignment,
4000         extract_left_shift, force_to_mode,
4001         if_then_else_cond, apply_distributive_law,
4002         simplify_and_const_int, simplify_shift_const,
4003         gen_lowpart_for_combine, simplify_comparison,
4004         reversed_comparison): Replace with
4005         simplify_gen_binary, simplify_gen_relational or
4006         distribute_and_simplify_rtx.
4007         (distribute_and_simplify_rtx): New function.
4008         * simplify-rtx.c (simplify_binary_operation):
4009         Use nonzero_bits to simplify ANDs where we are
4010         turning off bits already known to be off in OP0.
4011
4012 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
4013
4014         PR target/14478
4015         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
4016
4017 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
4018
4019         PR middle-end/14084
4020         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
4021         to size of decl.
4022
4023 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
4024
4025         PR/14924
4026         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
4027
4028 2004-05-26  Roger Sayle  <roger@eyesopen.com>
4029
4030         * tree.h: Fix comment typo.
4031
4032 2004-05-27  Steven Bosscher  <stevenb@suse.de>
4033
4034         * gimplify.c (compare_case_labels): New function.
4035         (gimplify_switch_expr): Sort case labels, and make sure the
4036         last label in the label vector is the default case.
4037         * tree-cfg.c (group_case_labels): New function.
4038         (build_tree_cfg): Cleanup redundant labels and group case labels
4039         before creating edges.
4040         (cleanup_dead_labels): Handle GOTO_EXPRs.
4041         (find_case_label_for_value): Use a binary search to find the
4042         case label for the given value.
4043         * tree-gimple.c: Mention that labels are sorted, and that the
4044         last label must be the default.
4045
4046 2004-05-27  Jan Hubicka  <jh@suse.cz>
4047
4048         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
4049
4050 2004-05-27  Jan Hubicka  <jh@suse.cz>
4051
4052         * i386.md (UNSPECV_EH_RETURN): Kill.
4053         (eh_return): Use jump_insn.
4054         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4055
4056 2004-05-26  Jan Hubicka  <jh@suse.cz>
4057
4058         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
4059         not loop optimizing.
4060
4061 2004-05-26  Jan Hubicka  <jh@suse.cz>
4062
4063         * except.c (can_throw_internal):  Notice RESX instructions.
4064
4065 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4066
4067         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
4068         of the two sizes to assemble_integer.
4069
4070 2004-05-25  Paul Brook  <paul@codesourcery.com>
4071
4072         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
4073         pointless #ifdef.
4074
4075 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
4076
4077         * Makefile.in (top_builddir): Define to .
4078
4079 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
4080
4081         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
4082         top-level detects, except when in-tree ld is being cross-built.
4083         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
4084         then AS only if target is host.
4085         * configure: Rebuilt.
4086
4087 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
4088
4089         * global.c (global_alloc): Call make_accurate_live_analysis.
4090         (record_one_conflict): Remove dead code.
4091         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
4092         (bb_info): New structure.
4093         (BB_INFO, BB_INFO_BY_INDEX): New macros.
4094         (allocate_bb_info, free_bb_info, mark_reg_change,
4095         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
4096         modify_bb_reg_pav, calculate_reg_pav,
4097         make_accurate_live_analysis): New functions.
4098
4099 2004-05-25  Devang Patel  <dpatel@apple.com>
4100
4101         * alias.c (init_alias_analysis): Use ggc_calloc instead of
4102         xrealloc.
4103         (end_alias_analysis): Use ggc_free instead fo free.
4104
4105 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
4106
4107         PR target/15546
4108         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
4109         as needed to be outputted.
4110
4111 2004-05-25  Jan Hubicka  <jh@suse.cz>
4112
4113         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
4114
4115 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
4116         Mostafa Hagog  <mustafa@il.ibm.com>
4117
4118         * Makefile.in (modulo-sched.o, ddg.o): New.
4119         * ddg.h, ddg.c, modulo-sched.c: New files.
4120         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
4121         internals to "dupicate_insn".
4122         (duplicate_insn): New function.
4123         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
4124         declarations.
4125         * common.opt (fmodulo-sched): New flag.
4126         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
4127         Remove static and forward declaration.
4128         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
4129         functions.
4130         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
4131         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
4132         declarations.
4133         * flags.h (flag_modulo_sched): New flag.
4134         * opts.c (common_handle_option): Handle modulo-sched flag.
4135         * params.def (max-sms-loop-number, sms-max-ii-factor,
4136         sms-dfa-history, sms-loop-average-count-threshold): New
4137         parameters.
4138         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
4139         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
4140         parameters.
4141         * passes.c ("sms", "sms-vcg"): New dumps.
4142         (rest_of_handle_sched): Call sms_schedule.
4143         * rtl.h (sms_schedule): New declaration.
4144         * timevar.def (TV_SMS): New.
4145         * toplev.c (flag_modulo_sched): Initialize.
4146         (f_options): Handle -fmodulo-sched option.
4147         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
4148         * docs/passes.texi: Document new SMS pass.
4149
4150 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
4151
4152         * Makefile.in (OBJS): Add rtlhooks.o.
4153         (rtlanal.o): Depend on function.h.
4154         (cse.o): Depend on rtlhooks-def.h.
4155         (combine.o): Depend on rtlhooks-def.h.
4156         (rtlhooks.o): New rule.
4157         * combine.c: Include rtlhooks-def.h.
4158         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
4159         num_sign_bit_copies, cached_num_sign_bit_copies,
4160         num_sign_bit_copies1): Move most of the code to rtlanal.c.
4161         (reg_nonzero_bits_for_combine,
4162         reg_num_sign_bit_copies_for_combine): New functions holding
4163         the remnants of the above.
4164         (combine_rtl_hooks): New.
4165         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
4166         * cse.c: Include rtlhooks-def.h.
4167         (cse_rtl_hooks): New.
4168         (cse_main): Set rtl_hooks instead of gen_lowpart.
4169         * emit-rtl.c (gen_lowpart): Remove.
4170         (gen_lowpart_general): Move to rtlhooks.c.
4171         * rtl.h (nonzero_bits, num_sign_bit_copies,
4172         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
4173         (gen_lowpart_general): Remove.
4174         (gen_lowpart): Temporarily redefine as a macro.
4175         * rtlanal.c: Include function.h.
4176         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
4177         num_sign_bit_copies, cached_num_sign_bit_copies,
4178         num_sign_bit_copies1): New, from combine.c.
4179         * rtlhooks.c: New file.
4180         * rtlhooks-def.h: New file.
4181
4182 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
4183
4184         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
4185         to support 32-bit -mint8 mode.
4186
4187         * doc/invoke.texi (-mint8): Added documentation for the -mint8
4188         option in the AVR architecture.
4189
4190 2004-05-24  Mike Stump  <mrs@apple.com>
4191
4192         * doc/install.texi: Document that dejagnu 1.4.4 is required.
4193
4194 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4195
4196         * intl.h (open_quote, close_quote): New.
4197         * intl.c (open_quote, close_quote): New.
4198         (gcc_init_libintl): Set them.
4199         * pretty-print.c: Include "intl.h".
4200         (pp_base_format_text): Support 'q' format flag and %` and %'
4201         formats.  Use ' instead of ` in comments.
4202         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
4203         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
4204         foramt_types_orig): Describe these new formats.
4205         (decode_format_attr, check_function_format,
4206         check_format_info_main): Use these new formats.
4207         (status_warning): Use ATTRIBUTE_GCC_DIAG.
4208         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
4209         check these formats to 3.5.
4210
4211 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4212
4213         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
4214         (BACKEND): Reflect this.
4215         (LIBDEPS): Move CPPLIB before LIBIBERTY.
4216         (LIBS): Likewise.
4217
4218 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
4219
4220         PR tree-optimization/14197
4221         * builtins.c: Include "tree-gimple.h"
4222         (readonly_data_expr): Use get_base_address.  Make sure to call
4223         decl_readonly_section only on trees it can handle.
4224         * tree-gimple.c (get_base_address): Accept STRING_CST and
4225         CONSTRUCTOR expressions.
4226         * Makefile.in: Update dependencies.
4227
4228 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
4229
4230         Move libcpp to the toplevel.
4231         * Makefile.in: Remove references to libcpp files,
4232         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
4233         and change hashtable.h to that.
4234         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
4235         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
4236         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
4237         * configure: Regenerate.
4238         * config.in: Regenerate.
4239         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
4240         * cppcharset.c: Removed.
4241         * cpperror.c: Removed.
4242         * cppexp.c: Removed.
4243         * cppfiles.c: Removed.
4244         * cpphash.c: Removed.
4245         * cpphash.h: Removed.
4246         * cppinit.c: Removed.
4247         * cpplex.c: Removed.
4248         * cpplib.c: Removed.
4249         * cpplib.h: Removed.
4250         * cppmacro.c: Removed.
4251         * cpppch.c: Removed.
4252         * cpptrad.c: Removed.
4253         * cppucnid.h: Removed.
4254         * cppucnid.pl: Removed.
4255         * cppucnid.tab: Removed.
4256         * hashtable.c: Removed.
4257         * hashtable.h: Removed.
4258         * line-map.c: Removed.
4259         * line-map.h: Removed.
4260         * mkdeps.c: Removed.
4261         * mkdeps.h: Removed.
4262         * stringpool.h: Include symtab.h instead of hashtable.h.
4263         * tree.h: Include symtab.h instead of hashtable.h.
4264         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
4265
4266 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
4267
4268         * gcc.c (struct prefix_list): Add forward declaration.
4269         (do_spec_path): New function, extracted from...
4270         (do_spec_1) <'D'>: ... here.  Drop support for
4271         SPACE_AFTER_L_OPTION.
4272         (do_spec_1) <'I'>: Use do_spec_path.
4273         (process_command): Do not store the 'include' suffix
4274         in include_prefixes.
4275         * system.h: Poison SPACE_AFTER_L_OPTION.
4276
4277 2002-05-23  Roger Sayle  <roger@eyesopen.com>
4278
4279         * fold-const.c (non_lvalue): Explicitly list the tree codes that
4280         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
4281
4282 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
4283
4284         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
4285         Update based on printed manual.  Enable setting of offsets for
4286         FSFPRINT and move it to gcc-common.texi.
4287         * doc/gcc.texi: Update FSF printing details.
4288         * doc/gccint.texi: Remove FSF printing details.
4289
4290 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
4291
4292         * config/rs6000/t-rs6000: Remove the disabling -Werror.
4293
4294 2004-05-22  Roger Sayle  <roger@eyesopen.com>
4295
4296         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4297         expand_builtin_strrchr, expand_builtin_strpbrk,
4298         expand_builtin_mempcpy, expand_builtin_memcmp,
4299         expand_builtin_strcmp, expand_builtin_strncmp,
4300         expand_builtin_strcat, std_expand_builtin_va_start,
4301         std_expand_builtin_va_arg, expand_builtin_va_copy,
4302         expand_builtin_signbit, fold_builtin_cabs,
4303         fold_builtin_logarithm, fold_builtin_mempcpy,
4304         fold_builtin_signbit, fold_builtin_isascii,
4305         fold_builtin_toascii, fold_builtin_isdigit,
4306         fold_builtin_1, build_function_call_expr,
4307         simplify_builtin_strchr, simplify_builtin_strrchr,
4308         simplify_builtin_strpbrk, simplify_builtin_strncpy,
4309         simplify_builtin_memcmp, simplify_builtin_strcmp,
4310         simplify_builtin_strncmp, simplify_builtin_strncat,
4311         simplify_builtin_strspn, simplify_builtin_strcspn,
4312         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
4313         to build with calls to build2, build3 or omit_one_operand.
4314
4315 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
4316
4317         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
4318         section when generating EABI code.
4319
4320 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
4321
4322         PR 15546
4323         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
4324         Call mark_decl_referenced on the SYMBOL_REF_DECL.
4325
4326 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
4327
4328         * c-common.c (c_common_truthvalue_conversion): Handle
4329         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
4330         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
4331         i.e. set the type to truthvalue_type_node and return.
4332
4333 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
4334
4335        * tree.h (struct tree_decl): Add possibly_inlined bit.
4336         (DECL_POSSIBLY_INLINED): New accessor macro.
4337         * cgraph.h: Remove declaration of cgraph_inline_hash.
4338         * cgraph.c: Remove definition of cgraph_inline_hash.
4339         (hash_node): Revert to hashing DECL_UID.
4340         (eq_node): Take two pointers to cgraph_node structures.
4341         Compare DECL_UIDs.
4342         (cgraph_remove_node): Pass the node directly to htab_find_slot.
4343         (cgraph_varpool_hash_node): Rename hash_varpool_node;
4344         hash on DECL_UID.
4345         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
4346         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
4347         (cgraph_node): Allocate a temporary node on the stack, fill in
4348         its DECL field, and pass that to htab_find_slot.
4349         (cgraph_varpool_node): Likewise.
4350         (cgraph_function_possibly_inlined_p): If global info is ready,
4351         return the DECL_POSSIBLY_INLINED bit.
4352         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
4353         instead of mucking with cgraph_inline_hash.
4354
4355 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
4356
4357         * doc/contrib.texi: Add g77 contributors.
4358
4359 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
4360
4361         * calls.c (initialize_argument_information): Forbid sibcalls if a
4362         callee-copied argument is stored in the current function's frame.
4363
4364 2004-05-22  Eric Christopher  <echristo@redhat.com>
4365
4366         * fix-header.c (read_scan_file): Update for add_path change.
4367
4368 2004-05-22  Ben Elliston  <bje@au.ibm.com>
4369
4370         * c.opt (Wmissing-include-dirs): New.
4371         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
4372         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
4373         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
4374         * c-incpath.h (add_path): Add fourth (bool) argument.
4375         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
4376         (add_standard_paths): Likewise.
4377         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
4378         is used and the directory was user-supplied via -I.
4379         (add_path): Set p->user_supplied_p.  Remove duplicated code by
4380         using add_cpp_dir_path ().
4381         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
4382         (struct cpp_dir): Add user_supplied_p.
4383         * doc/invoke.texi (Warning Options): Document new option.
4384
4385 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
4386
4387         * fold-const.c (fold_read_from_constant_string): Convert result to
4388         requested type.
4389
4390 2004-05-21  Richard Henderson  <rth@redhat.com>
4391
4392         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
4393         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
4394         Don't mark VA_ARG_EXPRs volatile here.
4395         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
4396
4397 2004-05-21  Richard Henderson  <rth@redhat.com>
4398
4399         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
4400         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
4401
4402 2004-05-21  Roger Sayle  <roger@eyesopen.com>
4403
4404         * fold-const.c (fold, fold_relational_hi_lo,
4405         nondestructive_fold_binary_to_constant,
4406         fold_read_from_constant_string): Use fold_convert instead of convert.
4407         * builtins.c (simplify_builtin, simplify_builtin_strstr,
4408         simplify_builtin_strchr, simplify_builtin_strrchr,
4409         simplify_builtin_strpbrk): Use fold_convert instead of convert.
4410
4411 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
4412
4413         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
4414         is NULL.
4415
4416 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
4417
4418         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
4419         override sparc.h definition.
4420
4421 2004-05-20  Roger Sayle  <roger@eyesopen.com>
4422
4423         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
4424         get_unwidened, get_narrower): Replace build with build2.
4425         * fold-const.c (negate_expr, associate_trees, size_binop,
4426         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
4427         pedantic_omit_one_operand, distribute_bit_expr,
4428         make_bit_field_ref, optimize_bit_field_compare,
4429         decode_field_reference, range_binop, make_range,
4430         build_range_check, fold_range_test, fold_truthop,
4431         optimize_minmax_comparison, extract_muldiv_1,
4432         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
4433         fold_inf_compare, fold_single_bit_test, fold,
4434         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
4435         Likewise replace build with either build2 or build3.
4436
4437 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
4438
4439         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
4440         * calls.c (prepare_call_address): Don't test
4441         NO_RECURSIVE_FUNCTION_CSE.
4442         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
4443         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4444         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4445         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4446         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4447         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4448         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4449         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4450         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4451         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4452         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4453         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
4454         Likewise.
4455         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4456         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
4457         * doc/tm.texi (Costs): Remove documentation for
4458         NO_RECURSIVE_FUNCTION_CSE.
4459
4460 2004-05-20  Paul Brook  <paul@codesourcery.com>
4461
4462         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
4463         * unwind-dw2.c (extract_cie_info): Ditto.
4464         (_Unwind_FrameState): Change retaddr_column to word type.
4465
4466 2004-05-20  Roger Sayle  <roger@eyesopen.com>
4467
4468         PR middle-end/3074
4469         * fold-const.c (strip_compound_expr): Delete function.
4470         (count_cond): Delete function.
4471         (fold_binary_op_with_conditional_arg): Only perform transformations
4472         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
4473         when a is constant.  This greatly simplifies this routine.
4474
4475         * tree.c (saved_expr_p): Delete function.
4476         * tree.h (saved_expr_p): Delete function prototype.
4477
4478 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
4479
4480         * common.opt (ftree-loop-optimize): Remove.
4481
4482 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
4483
4484         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
4485         (NM_FOR_TARGET): Use := and $(shell).
4486         (mainversion): Remove unused variable.
4487
4488 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4489
4490         * reorg.c (delete_from_delay_slot): If we have a barrier after the
4491         sequence containing the insn to be deleted, always reemit it.
4492
4493 2004-05-20  Richard Henderson  <rth@redhat.com>
4494
4495         PR 15454
4496         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
4497         * function.c (expand_function_start): Expand static_chain_decl by hand.
4498         * gimplify.c (create_tmp_var_name): Export.
4499         * tree-gimple.h (create_tmp_var_name): Declare.
4500
4501 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
4502
4503         * rs6000.c (print_operand) <case 'z'>: Call
4504         mark_decl_referenced before assemble_name.
4505
4506 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
4507
4508         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
4509         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
4510         (cgraph_varpool_node): Hash on the pointer to the decl, not
4511         the DECL_UID.  Fixes 64-bit bootstrap failure.
4512
4513 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
4514
4515         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
4516         we don't earlyclobber operands used in the second insn.
4517
4518 2004-05-20  Steven Bosscher  <stevenb@suse.de>
4519
4520         * tree-mudflap.c: Formatting fixes.
4521
4522 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
4523
4524         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
4525         * gengtype.c (open_base_files): Include reload.h in ifiles.
4526         * reload.h (reg_equiv_memory_loc_varray): Declare.
4527         * reload1.c (reg_equiv_memory_loc_varray): New variable.
4528         (init_reload): Initialize it.
4529         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
4530         reg_equiv_memory_loc_varray to size 0.
4531         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
4532         growing reg_equiv_memory_loc_varray to the desired size.
4533         * passes.c (rest_of_handle_old_regalloc): Likewise.
4534         * reload.c: Amend comment on calling init_reload.
4535
4536 2004-05-20  Nick Clifton  <nickc@redhat.com>
4537
4538         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
4539         with 'TRAMP' in the body of the macro definition.
4540
4541 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
4542
4543         PR target/15383
4544         * config/ia64/ia64.c (ia64_expand_compare): Don't check
4545         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
4546         cmptf_libfunc isn't set.
4547         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
4548         conventions.
4549         (ia64_sysv4_init_libfuncs): New.
4550
4551         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
4552         ia64_sysv4_init_libfuncs.
4553
4554 2004-05-20  Falk Hueffner  <falk@debian.org>
4555
4556         PR other/15526
4557         * libgcc2.c (__mulvsi3): Fix overflow test.
4558
4559 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
4560
4561         PR c/14171
4562         * reg-stack.c (nan): Rename to ...
4563         (not_a_num): Here.
4564         (reg_to_stack): Rename nan to not_a_num.
4565         (subst_stack_regs_pat): Likewise.
4566         (convert_regs_entry): Likewise.
4567         (convert_regs_1): Likewise.
4568
4569         * tree-cfg.c (find_case_label_for_value): Replace call to
4570         simple_cst_equal with tree_int_cst_equal.
4571
4572 2004-05-19  Jeff Law <law@redhat.com>
4573
4574         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
4575         If the operand is for a use, then strip away the SSA_NAME, do not
4576         strip away the SSA_NAME for a set.  Never call release_ssa_name.
4577         (mark_def_sites): Appropriately pass additional argument to
4578         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
4579         then set the VDEF_RESULT to the VDEF_OP.
4580         (set_def_block): Strip away any SSA_NAME to get to the real
4581         underlying variable.
4582
4583         * tree-ssa-phiopt.c (value_replacement): Handle the case where
4584         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
4585         BB directly.
4586
4587 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4588
4589         PR c++/15463
4590         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
4591         result of inverse.
4592
4593         PR rtl-optimization/15274
4594         * loop-iv.c (determine_max_iter, shorten_into_mode,
4595         iv_number_of_iterations): Handle constants correctly.
4596         * rtl.h (get_mode_bounds): Declaration changed.
4597         * stor-layout.c (get_mode_bounds): Return a constant suitable for
4598         the target mode.
4599
4600         PR rtl-optimization/14692
4601         * loop-unswitch.c (may_unswitch_on): Try folding the result.
4602         (unswitch_single_loop): Work correctly when may_unswitch_on
4603         returns a folded constant.
4604
4605         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
4606         * simplify-rtx.c (simplify_const_relational_operation): Optimize
4607         comparisons with mode bounds.
4608
4609         * function.c (struct temp_slot): Add new field prev.
4610         (free_after_compilation, init_temp_slots): Free new fields.
4611         (cut_slot_from_list, insert_slot_to_list,
4612         temp_slots_at_level, max_slot_level, move_slot_to_level,
4613         make_slot_available): New functions.
4614         (assign_stack_temp_for_type, combine_temp_slots,
4615         find_temp_slot_from_address, preserve_temp_slots,
4616         preserve_rtl_expr_result, free_temp_slots,
4617         free_temps_for_rtl_expr, pop_temp_slots): Work with
4618         the new structure of lists.
4619         (mark_all_temps_used): Removed.
4620         * function.h (struct function): Field x_temp_slots
4621         replaced by x_used_temp_slots and x_avail_temp_slots.
4622         (temp_slots): Replaced by ...
4623         (used_temp_slots, avail_temp_slots): New.
4624         * tree.h (mark_all_temps_used): Declaration removed.
4625
4626         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
4627         simplify_using_assignment): Take the expression out of
4628         the expr_list wrapper.
4629
4630         * loop-iv.c (iv_number_of_iterations): Improve clasification of
4631         infinite loops.
4632
4633 2004-05-19  Roger Sayle  <roger@eyesopen.com>
4634
4635         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
4636         costs should be based on code size when optimizing for size.
4637
4638 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
4639
4640         * fold-const.c: Remove non-printable character 160.
4641
4642 2004-05-19  Nick Clifton  <nickc@redhat.com>
4643
4644         * doc/invoke.texi (ARM Options): Fix typo.
4645         Remove descrption of -mshort-load-bytes and
4646         -mno-short-load-bytes.
4647
4648         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
4649         missing parenthesis.
4650         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
4651         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
4652
4653 2004-05-19  Steven Bosscher  <stevenb@suse.de>
4654
4655         * expr.c (store_constructor): Build loop start and end by hand
4656         instead of via loop functions from stmt.c.
4657         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
4658         Remove the code to expand them.
4659
4660         * stmt.c (loop_stack): Remove this and everything related.
4661         (struct nesting, enum nesting_desc): Update.
4662         (expand_fixup): Likewise.
4663         (expand_loop_start, expand_start_loop_continue_elsewhere,
4664         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
4665         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
4666         expand_exit_loop_if_false, expand_exit_loop_top_cond,
4667         expand_exit_something): Remove.
4668         * tree.h: Remove prototypes.
4669
4670 2004-05-18  Mike Stump  <mrs@apple.com>
4671             Devang Patel  <dpatel@apple.com>
4672
4673         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
4674         if this label is for eh.
4675         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
4676         * config/darwin.c (darwin_emit_unwind_label): Likewise.
4677         * dwarf2out.c (output_call_frame_info): Likewise.
4678         * output.h (default_emit_unwind_label): Likewise.
4679         * target.h (unwind_label): Likewise.
4680         * varasm.c (default_emit_unwind_label): Likewise.
4681
4682         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
4683         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
4684         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
4685         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
4686         DEBUG_RANGES_SECTION): Define.
4687
4688 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
4689
4690         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
4691         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
4692         (cgraph_varpool_node):
4693         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
4694         (cgraph_function_possibly_inlined_p): Use the decl itself for
4695         the key, not DECL_ASSEMBLER_NAME.
4696         (change_decl_assembler_name): No need to muck with the hash tables.
4697         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
4698         Delete.
4699         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
4700         for the key, not DECL_ASSEMBLER_NAME.
4701         * cgraph.h: Remove prototypes of deleted functions.
4702         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
4703         (mark_decl_referenced): New function.
4704         * tree.h: Prototype mark_decl_referenced.
4705         * final.c (output_addr_const) <case SYMBOL_REF>: Call
4706         mark_decl_referenced before assemble_name.
4707         * c-decl.c (finish_decl): Use mark_decl_referenced.
4708
4709 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
4710             Jeff Law <law@redhat.com>
4711
4712         * tree-ssa-phiopt.c (abs_replacement): New function.
4713         (empty_block_p): New function extracted from...
4714         (candidate_bb_for_phi_optimization): Break out empty block test.
4715         (conditional_replacement): Use empty_block_p.
4716         (value_replacement): Similarly.
4717
4718         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
4719         * tree-ssa-phiopt.c: Include flags.h.
4720         (conditional_replacement): Remove argument names from prototype.
4721         Minor formatting and comment fixes.
4722         (tree_ssa_phiopt): If conditional_replacement returns false, then
4723         call value_replacement.
4724         (value_replacement): New function.
4725
4726 2004-05-18  Jeff Law  <law@redhat.com>
4727
4728         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
4729         from conditional_replacement.
4730         (candidate_bb_for_phi_optimization): Similarly.
4731         (conditional_replacement): Use replace_phi_with_stmt and
4732         candidate_bb_for_phi_optimization.
4733
4734         * tree-ssa-phiopt.c: Fix various formatting issues.
4735
4736 2004-05-18  Steven Bosscher  <stevenb@suse.de>
4737
4738         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
4739         s390_expand_cmpmem): Do not use expand_start_loop and
4740         expand_end_loop, instead build the loop manually.
4741
4742 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
4743
4744         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
4745         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
4746
4747 2004-05-17  Jeff Law  <law@redhat.com>
4748
4749         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
4750         * flags.h (flag_delete_null_pointer_checks): Here.
4751         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
4752         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
4753         (add_phi_arg, remove_phi_arg_num): Similarly.
4754         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
4755         property into PHI nodes.
4756         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
4757         (record_equivalences_from_phis): If all PHI arguments are known to be
4758         nonzero, then the result must be nonzero as well.
4759         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
4760         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
4761         appropriately.  Walk the USE-DEF chains and propagate nonzero property
4762         as appropriate.
4763         * tree.h (PHI_ARG_NONZERO): Define.
4764         (phi_arg_d): Add nonzero flag.
4765
4766 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
4767
4768         * f: Entire directory removed
4769
4770         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
4771         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
4772         (g77_integer_type_node, g77_uinteger_type_node)
4773         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
4774         * c-common.c (c_common_nodes_and_builtins): Do not initialize
4775         the above set of variables.
4776
4777         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
4778         * doc/invoke.texi, doc/standards.texi: Remove cross-references
4779         to g77 manual.
4780
4781 2004-05-17  Steven Bosscher  <stevenb@suse.de>
4782
4783         PR tree-optimization/15438
4784         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
4785         attributed functions as pure or const.
4786
4787 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
4788
4789         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
4790         from source code with errors.
4791
4792 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
4793
4794         Enable tree browser for all front ends.
4795         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
4796         (BACKEND): ...to here.
4797
4798 2004-05-17  Jan Hubicka  <jh@suse.cz>
4799
4800         * i386.c (construct_container): Do not produce BLKmode registers.
4801         (classify_argument): Properly compute alignment of complex types.
4802
4803 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
4804
4805         PR target/15084
4806         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
4807         and renamed to movdi_insv_1_rex64.
4808         (insv): Support SImode for 32bit and DImode for 64bit.
4809
4810 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
4811
4812         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
4813         (TARGET_SWITCHES): Remove debugg.
4814         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
4815         TARGET_64BIT.
4816         (subdi3): Replace the define_expand with a define_insn, the latter
4817         renamed from subdi3_internal_3.
4818         (negdi2): Likewise negdi2_internal_2.
4819         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
4820         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
4821         and associated define_splits.
4822         (adddi3_internal): Renamed from adddi3_internal_3.
4823         (ashldi3_internal): Likewise ashldi3_internal4.
4824         (ashrdi3_internal): Likewise ashrdi3_internal4.
4825         (lshrdi3_internal): Likewise lshrdi3_internal4.
4826
4827 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
4828
4829         * optabs.c (expand_unop): Try implementing negation using subtraction
4830         from zero.
4831
4832 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4833
4834         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
4835         SAR register.
4836
4837 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
4838
4839         PR target/10982
4840         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
4841         (ne_zeroextractsi_shifted): New pattern.
4842         (ite_ne_zeroextractsi): New pattern.
4843         (ite_ne_zeroextractsi_shifted): New pattern.
4844
4845 2004-05-15  Steven Bosscher  <stevenb@suse.de>
4846
4847         * c-gimplify.c (c_genericize):
4848         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
4849         * c-parse.in <expr_no_commas>: Likewise.
4850         <if_prefix>: Likewise.
4851         <select_or_iter_stmt>: Likewise.
4852         * expr.c (expand_var, expand_expr_real_1): Likewise.
4853         * expr.h (expand_expr): Make it a static inline function.
4854         Move prototype for expand_expr_real up before this.
4855         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
4856         Likewise.
4857         * gimplify.c (gimple_boolify, gimplify_addr_expr,
4858         gimplify_asm_expr, gimplify_expr): Likewise.
4859         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
4860         dump_function_to_file): Likewise.
4861         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
4862         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
4863         * tree-into-ssa.c (dump_tree_ssa): Likewise.
4864         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
4865         Likewise.
4866         * tree-optimize.c (execute_one_pass): Likewise.
4867         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
4868         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
4869
4870         * objc/objc-act.c (objc_build_try_enter_fragment,
4871         objc_build_try_epilogue, objc_build_catch_stmt,
4872         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
4873         with lang_hooks.foo ().
4874
4875 2004-05-15  Roger Sayle  <roger@eyesopen.com>
4876
4877         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
4878         that simplify_builtin doesn't destructively modify its argument.
4879
4880 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
4881
4882         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
4883         implementations for ARM and Thumb.
4884         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
4885
4886 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
4887
4888         * prefix.c (update_path): Replace PREFIX with KEY only
4889         when it matches a full directory name in PATH.
4890
4891 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
4892
4893         * arm.h (TARGET_APCS_32): Delete.
4894         (TARGET_MMU_TRAPS): Delete.
4895         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
4896         define __APCS_26__.
4897         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
4898         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
4899         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
4900         (prog_mode_type): Delete.
4901         (PROMOTE_MODE): Always promote unsigned for HImode.
4902         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
4903         (MASK_RETURN_ADDR): Simplify.
4904         * arm.c (arm_prgmode): Delete.
4905         (arm_override_options, arm_gen_rotated_half_load): Simplify.
4906         (print_multi_reg, output_return_instruction): Simplify.
4907         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
4908         (arm_return_addr): Simplify.
4909         * arm.md (prog_mode): Delete.
4910         (conds): Simplify.
4911         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
4912         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
4913         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
4914         (loadhi_shiftpredec): Delete.
4915         (peephole for post-increment on HImode load): Delete.
4916         * arm/crtn.asm: (FUNC_END): Simplify.
4917         * arm/lib1funcs.asm: Remove APCS-26 return macros.
4918         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
4919         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
4920         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
4921         MULTILIB_DEFAULTS as required.
4922         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
4923         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
4924         variables as required.
4925         * doc/invoke.texi (ARM Options): Remove obsolete flags.
4926
4927 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
4928
4929         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
4930         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
4931         count to 8 to handle n_reg > 2.
4932
4933 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
4934
4935         * doc/extend.texi: Update WG14 URL.
4936
4937 2004-05-15  Steven Bosscher  <stevenb@suse.de>
4938
4939         * basic-block.h (life_analysis, delete_noop_moves):
4940         Update prototypes.
4941         * bt-load.c (branch_target_load_optimize): Don't take the
4942         insns stream as an argument.  Update the life_analysis calls.
4943         * combine.c (combine_instructions): Update delete_noop_moves
4944         calls.
4945         * flow.c (notice_stack_pointer_modification): Don't take the
4946         insns stream as an argument.  Work on the flow graph.
4947         (life_analysis): Likewise.
4948         (delete_noop_moves): Likewise.
4949         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
4950         (rest_of_handle_life): Update life_analysis call.
4951         (rest_of_compilation): Likewise, and also update
4952         branch_target_load_optimize call.
4953         * ra.c (reg_alloc): Update life_analysis call.
4954         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
4955         the insns stream as an argument.
4956         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
4957         call.
4958         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
4959         prototypes.
4960         * value-profile.c (branch_prob): Update life_analysis call.
4961         * web.c (web_main): Work on the CFG, not on the insns stream.
4962
4963         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
4964         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
4965         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4966
4967 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
4968
4969         PR c/15444
4970         * c-format.c (avoid_dollar_number): New function.
4971         (check_format_info_main): Call avoid_dollar_number when operand
4972         numbers might occur but has_operand_number == 0.
4973
4974 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
4975
4976         * arm.md (all peephole2 patterns): Use predicates that validate
4977         register classes as appropriate.
4978
4979 2004-05-14  Steven Bosscher  <stevenb@suse.de>
4980
4981         PR opt/14472
4982         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
4983         ignore type conversions that do not inhibit tail calling.
4984         (find_tail_calls): Likewise.
4985
4986 2004-05-14  Jeff Law  <law@redhat.com>
4987
4988         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
4989         bother marking bypassed virtuals for out-of-ssa.  Instead merge
4990         bypassed virtuals into vars_to_rename just before into-ssa pass.
4991
4992         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
4993         so that it picks up more opportunities to eliminate ABS expressions
4994         or turn them into negations.
4995
4996 2004-05-14  Steven Bosscher  <stevenb@suse.de>
4997
4998         * passes.c (rest_of_handle_null_pointer): Remove.
4999         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
5000         (rest_of_compilation): Likewise.
5001         * rtl.h (delete_null_pointer_checks): Remove prototype.
5002         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
5003         Remove declarations.
5004         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
5005         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
5006         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
5007         expr_reaches_here_p, computing_insn, def_reaches_here_p,
5008         can_disregard_other_sets, handle_avail_expr, classic_gcse,
5009         one_classic_gcse_pass, invalidate_nonnull_info,
5010         delete_null_pointer_checks_1, delete_null_pointer_checks,
5011         expr_reached_here_p_work): Remove.
5012         (gcse_main): Do not perform classic GCSE when optimizing for size.
5013         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
5014         are never used.
5015
5016 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
5017
5018         PR optimization/14466
5019         * tree-complex.c (make_temp): Remove.
5020         (gimplify_val): Replace make_temp with make_rename_temp
5021         and add NULL as the second argument.
5022         (expand_complex_div_wide): Likewise.
5023         * tree-dfa.c (make_rename_temp): New function.
5024         * tree-flow.h (make_rename_temp): Declare.
5025         * tree-sra.c (make_temp): Remove.
5026         (lookup_scalar): Replace make_temp with make_rename_temp.
5027         (create_scalar_copies): Likewise.
5028         * tree-ssa-phiopt.c (conditional_replacement): When we
5029         get non gimple create a temporary variable to hold the
5030         casted expression.
5031
5032 2004-05-14  Paul Brook  <paul@codesourcery.com>
5033
5034         * stor-layout.c (update_alignment_for_field): Use
5035         targetm.align_anon_bitfield.
5036         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
5037         (TARGET_INITIALIZER): Use it.
5038         * target.h (struct gcc_target): Add align_anon_bitfield.
5039         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
5040         (TARGET_ALIGN_ANON_BITFIELD): Define.
5041         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
5042
5043 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
5044
5045         * tree.def (documentation): Remove mention of class 'b'.
5046         (BLOCK): Now in class 'x'.
5047         * c-common.c (verify_tree): Remove case 'b'.
5048         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
5049         * calls.c (calls_function_1): Control cannot get past the switch
5050         when exp is a BLOCK.
5051         * print-tree.c (print_node): Move code for class 'b' to the class
5052         'c'/'x' switch, as case BLOCK.
5053         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
5054         (unsafe_for_reeval, substitute_placeholder_in_expr)
5055         (stabilize_reference_1): Remove case 'b'.
5056         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
5057         of something being 'b' to tests for TREE_CODE of something being
5058         BLOCK.
5059         * tree-ssa-operands.c (get_expr_operands): Likewise.
5060
5061 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5062
5063         * tree-gimple.c: Rename from tree-simple.c.
5064         * tree-gimple.h: Rename from tree-simple.h.
5065         * c-gimplify.c: Rename from c-simplify.c
5066         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
5067         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
5068         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
5069         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
5070         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
5071         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
5072         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
5073         Update.
5074
5075 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
5076
5077         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
5078
5079 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5080
5081         * tree-ssa.c (delete_tree_ssa): XFREE
5082         bitmaps allocated with BITMAP_XMALLOC.
5083
5084         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
5085         idfs_cache at the end of the function.
5086
5087         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
5088         at the end of the function.
5089
5090         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
5091         el at the end of the function.
5092
5093         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
5094         bitmaps allocated with BITMAP_XMALLOC.
5095
5096         * loop-unswitch.c (unswitch_single_loop): Free bbs at
5097         the end.
5098
5099         * final.c (shorten_branches): Free uid_shuid before
5100         reallocating it.
5101
5102         * bb-reoder.c (connect_traces): Free cold_traces at the end.
5103
5104 2004-05-13  Jeff Law  <law@redhat.com>
5105
5106         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
5107         variables.  Simplify slightly by using USE_OP/DEF_OP instead
5108         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
5109
5110         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
5111         rather than iterating through the blocks testing each bit in
5112         livein to initialize the worklist.
5113         (mark_def_sites): Remove useless checks of KILLS for virtual
5114         operands.
5115
5116         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
5117         new parameters for the statement and variable worklist as well
5118         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
5119         worklist recording interesting variables in the variable worklist
5120         and bitmap.  Handle casts between integral and boolean types.
5121         (substitute_single_use_vars): Accept new parameters for the statement
5122         and variable worklist.  When a substitution is made add a new
5123         entry to the statement worklist.  Handle casts between integral
5124         and boolean types.
5125         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
5126         worklists to children.  Iterate until the statement worklist
5127         is empty.
5128
5129 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5130
5131         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
5132         the end of the block.
5133
5134         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
5135         with BITMAP_XMALLOC.
5136
5137         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
5138         with BITMAP_XMALLOC.
5139
5140         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
5141         Free nonzero_vars at the end of the function.
5142
5143         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
5144         need to generate code instead of a NOP_EXPR.
5145
5146 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
5147
5148         * gcc.c (default_compilers): Fill out initializers for new Fortran
5149         entries.
5150
5151 2004-05-13  Paul Brook  <paul@codesourcery.com>
5152
5153         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
5154
5155 2004-05-13  Paul Brook  <paul@codesourcery.com>
5156
5157         * config/arm/arm.c (arm_default_short_enums): New function.
5158         (TARGET_DEFAULT_SHORT_ENUMS): Define.
5159
5160 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5161
5162         Merge from tree-ssa-20020619-branch.
5163
5164         * Makefile.in (reload1.o-warn): Add.
5165         (tree-alias-ander.o-warn): Add.
5166         (GMPLIBS): Define.
5167         (GMPINC): Define.
5168         (BANSHEELIB): Define.
5169         (BANSHEEINC): Define.
5170         (TREE_DUMP_H): Define.
5171         (TREE_SIMPLE_H): Define.
5172         (TREE_FLOW_H): Define.
5173         (LIBDEPS): Add BANSHEELIB.
5174         (INCLUDES): Add BANSHEEINC and GMPINC.
5175         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
5176         c-mudflap.o and c-pretty-print.o.
5177         (C_OBJS): Remove c-pretty-print.o.
5178         (OBJS-common): Remove sibcall.o.
5179         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
5180         tree-ssa.o, tree-optimize.o, tree-simple.o,
5181         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
5182         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
5183         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
5184         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
5185         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
5186         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
5187         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
5188         tree-tailcall.o, gimple-low.o, tree-iterator.o,
5189         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
5190         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
5191         tree-profile.o.
5192         (OBJC-archive): Add tree-nomudflap.o.
5193         (cc1): Add dependency on @TREEBROWSER@.
5194         (c-decl.o): Add dependency on TREE_DUMP_H.
5195         (c-dump.o): Likewise.
5196         (c-common.o): Add dependency on tree-iterator.h
5197         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
5198         (gtype-desc.o): Add dependency on TREE_FLOW_H.
5199         (tree.o): Add dependency on tree-iterator.h,
5200         BASIC_BLOCK_H and TREE_FLOW_H.
5201         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
5202         (langhooks.o): Add dependency on TREE_SIMPLE_H.
5203         (tree-alias-type.o, tree-alias-ander.o,
5204         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
5205         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
5206         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
5207         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
5208         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
5209         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
5210         tree-nested.o, tree-iterator.o, tree-dfa.o,
5211         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
5212         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
5213         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
5214         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
5215         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
5216         tree-sra.o, tree-complex.o, tree-profile.o,
5217         rtl-profile.o): New rules.
5218         (function.o): Add dependency on basic-block.h
5219         (expr.o): Add dependency on tree-iterator.h.
5220         (sibcall.o): Remove.
5221         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
5222         (cfg.o): Add dependency on TIMEVAR_H.
5223         (cfghooks.o): Add dependency on TREE_FLOW_H.
5224         (reg-stack.o): Add dependency on basic-block.h.
5225         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
5226         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
5227         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
5228         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
5229         tree-alias-type.h, tree-alias-common.h,
5230         tree-alias-type.c, tree-alias-common.c,
5231         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
5232         rtl-profile.c and tree-nested.c.
5233         (gt-tree-alias-common.h, gt-tree-mudflap.h,
5234         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
5235         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
5236         gt-tree-cfg.h, gt-tree-nested.h): New rules.
5237         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
5238         * basic-block.h: Include predict.h
5239         (struct edge_def): Add GTY marker.
5240         Change field 'insns' to be a union of tree and rtx.
5241         (EDGE_TRUE_VALUE): Define.
5242         (EDGE_FALSE_VALUE): Define.
5243         (EDGE_EXECUTABLE): Define.
5244         (struct bb_ann_d): Forward declare.
5245         (struct basic_block_def): Add GTY marker.
5246         Remove fields head_tree and end_tree.
5247         Add fields stmt_list, rbi and tree_annotations.
5248         (struct reorder_block_def): Define.
5249         (basic_block_info): Add GTY marker.
5250         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
5251         variables instead of macros.
5252         (flow_call_edges_add): Remove declaration.
5253         (make_eh_edge): Remove declaration.
5254         (brief_dump_cfg, find_edge, tree_predicted_by_p,
5255         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
5256         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
5257         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
5258         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
5259         (try_redirect_by_replacing_jump): Modfiy return type to
5260         edge instead of bool.
5261         * bb-reorder.c (copy_bb): Call duplicate_block
5262         instead of cfg_layout_duplicate_bb.
5263         (copy_bb_p): Call can_duplicate_block_p instead of
5264         cfg_layout_can_duplicate_bb_p.
5265         * bitmap.c (bitmap_first_set_bit): Abort if word
5266         wasn't found.
5267         (bitmap_last_set_bit): Likewise.
5268         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
5269         (DEF_FUNCTION_TYPE_3): Add.
5270         * builtins.c (c_strlen): Make extern.
5271         (builtin_save_expr): New.
5272         (expand_builtin_nonlocal_goto): New.
5273         (expand_builtin_constant_p): Remove.
5274         (expand_builtin_mathfn): Call builtin_save_expr instead
5275         of save_expr.
5276         (expand_builtin_mathfn_2): Likewise.
5277         (expand_builtin_strcmp): Likewise.
5278         (expand_builtin_strncmp): Likewise.
5279         (expand_builtin_strcat): Likewise.
5280         (fold_builtin_cabs): Likewise.
5281         (expand_builtin_alloca): Don't trigger if -fmudflap is
5282         given.
5283         (build_string_literal): Set TREE_INVARIANT on new node.
5284         (expand_builtin_profile_fun): New.
5285         (round_trampoline_addr): New.
5286         (expand_builtin_init_trampoline): New.
5287         (expand_builtin_adjust_trampoline): New.
5288         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
5289         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
5290         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
5291         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
5292         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
5293         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
5294         Handle.
5295         (fold_builtin_expect): New.
5296         (fold_builtin_isascii): Don't return non-constant results
5297         in GIMPLE form.
5298         (fold_builtin_isdigit): Likewise.
5299         (fold_builtin_1): New.
5300         (fold_builtin): Call it.
5301         (build_function_call_expr): Update call to build a new
5302         CALL_EXPR.
5303         (purge_builtin_constant_p): Remove.
5304         (simplify_builtin, simplify_builtin_memcmp,
5305         simplify_builtin_strcmp, simplify_builtin_strncmp,
5306         simplify_builtin_strpbrk, simplify_builtin_strstr,
5307         simplify_builtin_strchr, simplify_builtin_strrchr,
5308         simplify_builtin_strcat, simplify_builtin_strncat,
5309         simplify_builtin_strspn, simplify_builtin_strcspn,
5310         simplify_builtin_next_arg, simplify_builtin_va_start,
5311         simplify_builtin_sprintf): New.
5312         * builtins.def (BUILT_IN_STACK_ALLOC,
5313         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
5314         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
5315         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
5316         BUILT_IN_PROFILE_FUNC_EXIT): Define.
5317         * c-common.c: Include tree-iterator.h and hashtab.h.
5318         (lang_statement_code_p): Declare.
5319         (lang_gimplify_stmt): Declare.
5320         (fix_string_type): Set TREE_INVARIANT for value.
5321         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
5322         (c_type_hash): New.
5323         (c_common_get_alias_set): Handle multiple type nodes
5324         referring to "the same" type, currently for C90 only.
5325         (c_add_case_label): Use create_artificial_label.
5326         (finish_label_address_expr): Don't set TREE_CONSTANT on
5327         result.
5328         (c_expand_expr): Don't handle STMT_EXPR.
5329         (handle_alias_attribute): Marke aliased variables to be
5330         TREE_STATIC.
5331         (handle_nonnull_attribute): Initialize arg_num.
5332         (check_function_nonnull): Likewise.
5333         (c_walk_subtrees): New.
5334         (c_estimate_num_insns_1): Don't handle
5335         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
5336         (c_decl_uninit_1): Remove.
5337         (c_decl_uninit): Remove.
5338         (c_warn_unused_result): New.
5339         * c-common.def (ASM_STMT): Change number of operands
5340         to 4.
5341         (FILE_STMT): Remove.
5342         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
5343         Remove.
5344         (lang_gimplify_stmt): Add.
5345         (expand_stmt): Remove.
5346         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
5347         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
5348         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
5349         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
5350         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
5351         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
5352         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
5353         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
5354         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
5355         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
5356         genrtl_compound_stmt, genrtl_asm_stmt,
5357         genrtl_cleanup_stmt, c_decl_uninit): Remove.
5358         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
5359         c_tree_chain_matters_p, c_warn_unused_result,
5360         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
5361         Declare.
5362         * c-convert.c (convert): Make convert work when
5363         converting to compatible types across translation unit.
5364         * c-decl.c: Include langhooks.h, tree-mudflap.h,
5365         tree-simple.h, diagnostic.h and tree-dump.h
5366         (merge_decls): Initialize oldtype to NULL.
5367         (finish_decl): Use DECL_HARD_REGISTER instead of
5368         DECL_C_HARD_REGISTER.
5369         (check_bitfield_type_and_width): Check for null
5370         lang_type_specific when check the precision of an enum.
5371         (grokdeclarator): Immediately layout an ARRAY_TYPE used
5372         in a pointer-to-array declarator.
5373         (finish_struct): Clear allocated struct lang_type.
5374         (finish_enum): Set enum_min and enum_max.  Set
5375         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
5376         not to the enumerators.
5377         (set_decl_nonlocal): New.
5378         (store_parm_decls): Use it via walk_tree.
5379         (c_finalize): New.
5380         (finish_function): When !targetm.have_ctors_dtors,
5381         record static constructors and destructors here...
5382         (c_expand_body_1): ... not here.
5383         (c_expand_decl): Rename from c_expand_decl_stmt.
5384         Handle all C-specific expansion semantics.
5385         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
5386         STMT_LINENO.
5387         * c-format.c (handle_format_arg_attribute): Initialize
5388         format_num.
5389         * c-lang.c: Include tree-inline.h
5390         (LANG_HOOKS_EXPAND_DECL,
5391         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5392         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
5393         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
5394         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
5395         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
5396         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
5397         (c_types_compatible_p): New.
5398         * c-mudflap.c: New file.
5399         * c-objc-common.c: Include tree-mudflap.h
5400         (start_cdtor, finish_cdtor): Collapse
5401         together into
5402         (build_cdtor): ...here.  Update to construct a complete tree
5403         for the function.  No need to call push_scope, pop_scope, or
5404         clear_last_expr, or set current_function_cannot_inline.
5405         (c_missing_noreturn_ok_p): Change prototype to return
5406         bool.
5407         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
5408         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
5409         opts.c.
5410         (c_common_post_options): Don't ever use rtl inlining.
5411         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
5412         * c-pragma.c (handle_pragma_redefine_extname): Define
5413         always.
5414         (init_pragma): Activate #pragma redefine_extname for mudflap.
5415         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
5416         (pp_c_initializer): Accept any type CONSTRUCTOR.
5417         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
5418         COMPLEX_TYPE.
5419         (decl_name_str): New local function.
5420         (pp_c_direct_declarator): Call it.
5421         (pp_c_primary_expression): Call it.
5422         (pp_c_id_expression): Call it.
5423         (pp_c_statement): Call it.
5424         (print_c_tree): Create new pp object.
5425         * c-pretty-print.h (pp_c_tree_decl_identifier,
5426         print_c_tree): Declare.
5427         * c-semantics.c: Include langhooks.h
5428         (lang_expand_stmt, lang_expand_decl_stmt,
5429         find_reachable_label_1, find_reachable_label,
5430         expand_unreachable_if_stmt, expand_unreachable_stmt,
5431         genrtl_do_stmt_1): Remove.
5432         (begin_stmt_tree): Don't check for changed filename.
5433         Call annotate_with_locus.
5434         (finish_stmt_tree): Don't set line for end of function.
5435         (build_stmt): Don't check type nodes for
5436         side effects.
5437         (build_stmt): Set TREE_SIDE_EFFECTS.
5438         Set EXPR_LOCUS instead of STMT_LINENO.
5439         (lang_expand_stmt, lang_expand_decl_stmt,
5440         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
5441         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
5442         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
5443         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
5444         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
5445         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
5446         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
5447         find_reachable_label_1, expand_unreachable_if_stmt,
5448         expand_unreachable_stmt): Remove.
5449         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
5450         * c-simplify.c: New file.
5451         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
5452         (struct lang_type): Add fields enum_min and enum_max.
5453         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
5454         (c_expand_decl, c_missing_noreturn_ok_p,
5455         c_types_compatible_p): Declare.
5456         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
5457         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
5458         (default_function_array_conversion): Rely on build to
5459         set TREE_CONSTANT.
5460         (parser_build_binary_op, pointer_diff): Likewise.
5461         (build_unary_op, build_binary_op): Likewise.
5462         (build_array_ref):
5463         (build_external_ref): Set TREE_INVARIANT.
5464         (build_c_cast, pop_init_level): Likewise.
5465         (process_init_element): Use ASM_VOLATILE_P.
5466         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
5467         (c_finish_case): Call c_do_switch_warnings.
5468         * c.opt (fdump-): Remove.
5469         * calls.c (try_to_integrate): Remove.
5470         (prepare_call_address): Replace fndecl arg with a
5471         precomputed static chain value.
5472         (emit_call_1): New argument for full call expr.
5473         (flags_from_decl_or_type): Call special_function_p.
5474         (initialize_argument_information): Add argument
5475         may_tailcall.
5476         (purge_reg_equiv_notes): New.
5477         (expand_call): Do not try to expand calls inline.
5478         (fixup_tail_calls): New.
5479         * cfg.c: Include timevar.h and ggc.h.
5480         (bb_pool, edge_pool): Remove.
5481         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
5482         (entry_exit_blocks): Remove.
5483         (rbi_pool): Declare.
5484         (init_flow): Do not create pools.
5485         Allocate entry/exit block.
5486         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
5487         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
5488         (unlink_block): Clear b->prev_bb and b->next_bb.
5489         (compact_blocks): Clear all slots of BASIC_BLOCK array.
5490         (dump_flow_info): Work on trees too.
5491         (dump_cfg_bb_info): New.
5492         (brief_dump_cfg): New.
5493         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
5494         (find_edge): New.
5495         * cfgbuild.c (rtl_make_eh_edge): Rename from
5496         make_eh_edge.  Update all users.
5497         (find_basic_blocks): Don't call VARRAY_FREE on
5498         basic_block_info.
5499         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
5500         and newpos2.
5501         (delete_unreachable_blocks): Return changed status.
5502         (merge_seq_blocks): New.
5503         * cfghooks.c: Include tree-flow.h
5504         (tree_register_cfg_hooks, ir_type): New.
5505         (redirect_edge_and_branch): Change return type to edge.
5506         (predict_edge, predicted_by_p, can_duplicate_block_p,
5507         duplicate_block, block_ends_with_call_p,
5508         block_ends_with_condjump_p, flow_call_edges_add): New.
5509         * cfghooks.h (redirect_edge_and_branch): Change return
5510         type to edge.
5511         (predict_edge, predicted_by_p, can_duplicate_block_p,
5512         duplicate_block, block_ends_with_call_p,
5513         block_ends_with_condjump_p, flow_call_edges_add): Declare.
5514         (redirect_edge_and_branch): Change return type to edge.
5515         (struct cfg_hooks): Add fields block_ends_with_call_p,
5516         block_ends_with_condjump_p, flow_call_edges_add,
5517         predict_edge, predicted_by_p, can_duplicate_block_p and
5518         duplicate_block.
5519         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
5520         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
5521         (fixup_reorder_chain): Use initialize_bb_rbi.
5522         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
5523         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
5524         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
5525         (insn_locators_initialize): Use new info about blocks.
5526         * cfglayout.h (typedef struct reorder_block_def): Moved to
5527         basic_block.h.
5528         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
5529         removed.
5530         * cfgloop.c: Include tree.h and tree-flow.h.
5531         * cfgloop.h (create_loop_notes): Declare.
5532         * cfgloopmanip.c (create_loop_notes): New.
5533         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
5534         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
5535         and duplicate_block fields.
5536         (create_basic_block_structure): Don't look at
5537         RTX_INTEGRATED_P.
5538         (rtl_block_ends_with_call_p): New.
5539         (rtl_block_ends_with_condjump_p): New.
5540         (need_fake_edge_p): Moved from cfganal.c.
5541         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
5542         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
5543         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
5544         (cfg_layout_rtl_cfg_hooks): Ditto.
5545         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
5546         functions to be reachable.
5547         * cgraphunit.c (decide_is_function_needed):
5548         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
5549         inline functions don't need to be output.
5550         (cgraph_assemble_pending_functions): Don't do anything
5551         special for nested functions.
5552         (cgraph_mark_functions_to_output): Likewise.
5553         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
5554         (cgraph_analyze_function): Use estimate_num_insns.
5555         (cgraph_mark_functions_to_output): Likewise.
5556         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
5557         (cgraph_expand_function): Allow functions to not be
5558         emitted.
5559         (cgraph_remove_unreachable_nodes):
5560         (cgraph_recursive_inlining_p): Simplify.
5561         (lookup_recursive_calls,
5562         cgraph_decide_recursive_inlining): New.
5563         (cgraph_decide_inlining_*): Update calls of
5564         cgraph_mark_inline.
5565         * combine.c (get_pos_from_mask): Always set *plen.
5566         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
5567         ftree-based-profiling, ftree-ccp, ftree-ch,
5568         ftree-combine-temps, ftree-copyrename, ftree-dce,
5569         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
5570         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
5571         ftree-lrs): Add.
5572         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
5573         Undefine.
5574         * configure.ac: Add --enable-tree-browser option.
5575         Add --with-libbanshee option.
5576         Add GMPLIBS and GMPINC.
5577         * configure: Regenerate.
5578         * coverage.c (tree_ctr_tables): New.
5579         (coverage_counter_alloc): Use it.
5580         (build_ctr_info_value): Ditto.
5581         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
5582         (tree_coverage_counter_ref): New.
5583         * coverage.h (coverage_counter_ref): Remove declaration.
5584         (rtl_coverage_counter_ref): Declare.
5585         (tree_coverage_counter_ref): Declare.
5586         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
5587         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
5588         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
5589         (struct cse_basic_block_data): Rename enum values to not
5590         conflict with profile.h; update all uses.
5591         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
5592         in comments.
5593         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
5594         * diagnostic.h (debug_output_buffer, dump_generic_node,
5595         print_generic_stmt, print_generic_stmt_indented,
5596         print_generic_expr, print_generic_decl,
5597         debug_generic_expr, debug_generic_stmt, debug_c_tree):
5598         Declare.
5599         * dominance.c: Cache immediate dominators.
5600         * domwalk.c: New file.
5601         * domwalk.h: New file.
5602         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
5603         (gen_subprogram_die): Generate a DIE for a named
5604         return value.
5605         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
5606         (add_location_or_const_value_attribute): Likewise.
5607         (add_bound_info): Likewise.
5608         (gen_decl_die): Likewise.
5609         * emit-rtl.c (maybe_set_first_label_num): New.
5610         (copy_most_rtx): Don't copy the integrated flag.
5611         Copy the new return_val flag.
5612         * et-forest.c (MAX_NODES): Define.
5613         (record_path_before_1): Abort if len is greater than
5614         MAX_NODES.
5615         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
5616         gen_eh_region_catch, gen_eh_region_allowed,
5617         gen_eh_region_must_not_throw, get_eh_region_number,
5618         get_eh_region_may_contain_throw, get_eh_region_tree_label,
5619         set_eh_region_tree_label, expand_resx_expr): New.
5620         (expand_eh_region_start, expand_start_catch): Use them.
5621         (expand_end_catch): Tidy.
5622         (note_eh_region_may_contain_throw): Take region argument.
5623         (note_current_region_may_contain_throw): New.
5624         (get_exception_filter): Export.
5625         (collect_eh_region_array): Export.
5626         (remove_unreachable_regions): Check ERT_TRY based on reachability
5627         of catches, not reachability of continue_label.  Never remove
5628         ERT_MUST_NOT_THROW regions.
5629         (collect_rtl_labels_from_trees): New.
5630         (convert_from_eh_region_ranges): Use it.
5631         (connect_post_landing_pads): Handle dying cleanups.
5632         (struct reachable_info): Add callback data.
5633         (add_reachable_handler): Invoke the callback.
5634         (foreach_reachable_handler): New.
5635         (reachable_handlers): Use it.
5636         (arh_to_landing_pad, arh_to_label): New.
5637         (can_throw_internal_1): Split out from can_throw_internal.
5638         (can_throw_external_1): Similarly.
5639         * except.h: Update.
5640         * explow.c (emit_stack_save): Remove savearea mode check.
5641         (update_nonlocal_goto_save_area): New.
5642         (allocate_dynamic_stack_space): Use it.
5643         (probe_stack_range): Never emit loop notes.
5644         * expmed.c (extract_fixed_bit_field): Always propagate the
5645         target for the shift if it is a REG.
5646         * expr.c: Include tree-iterator.h
5647         (is_zeros_p): Remove.
5648         (categorize_ctor_elements_1, categorize_ctor_elements): New.
5649         (count_type_elements): New.
5650         (mostly_zeros_p): Use them.
5651         (expr_wfl_stack): Remove.
5652         (convert_move): Do nothing if to and from are the same.
5653         (emit_block_move_via_loop): Don't emit LOOP notes.
5654         (emit_move_insn): Don't handle CONSTANT_P_RTX.
5655         (emit_move_insn_1): Don't generate inline warnings.
5656         (expand_vars, expand_var): Split from ...
5657         (expand_expr_1): ... here.
5658         (expand_expr_real, expand_expr_real_1):  Use new macros
5659         EXPR_LOCATION and EXPR_HAS_LOCATION.
5660         * expr.h (simplify_builtin_fputs,
5661         simplify_builtin_strcpy, simplify_builtin_strncpy,
5662         expand_var, fixup_tail_calls,
5663         update_nonlocal_goto_save_area): Declare.
5664         (lookup_static_chain, expand_inline_function,
5665         mark_seen_cases): Remove.
5666         (prepare_call_address): Change type of 2nd argument to
5667         rtx.
5668         * final.c (profile_function): Update static chain test.
5669         (final): Don't look at RTX_INTEGRATED_P.
5670         * flags.h (flag_mudflap, flag_mudflap_threads,
5671         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
5672         flag_tree_dce, flag_tree_combine_temps,
5673         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
5674         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
5675         flag_tree_points_to): Declare.
5676         (enum pta_type): Declare.
5677         * flow.c (lang_missing_noreturn_ok_p): Remove.
5678         (check_function_return_warnings): Remove.
5679         (update_life_info): Update comments.
5680         (free_basic_block_vars): Don't call VARRAY_FREE for
5681         basic_block_info.
5682         (regno_uninitialized): Remove.
5683         * fold-const.c (int_const_binop): Make extern.
5684         (non_lvalue): Rely on build to set TREE_CONSTANT.
5685         (operand_equal_p): Replace only_const argument with
5686         flags.  Allow pure functions if OEP_PURE_SAME.
5687         (fold): Use OEP_ONLY_CONST.
5688         (invert_truthvalue) <NOP_EXPR> Break if argument is of
5689         boolean type.
5690         (fold_relational_hi_lo,
5691         nondestructive_fold_binary_to_constant,
5692         nondestructive_fold_unary_to_constant,
5693         fold_read_from_constant_string): New.
5694         * function.c (struct function): Remove calls_constant_p.
5695         (current_function_calls_constant_p): Remove.
5696         (inline_function_decl): Remove.
5697         (put_var_into_stack): Don't use it.
5698         (fix_lexical_addr): Likewise.
5699         (inline_function_decl): Remove extern declaration.
5700         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
5701         (trampolines_created): Move to varasm.c.
5702         (free_after_compilation): Update for removed fields.
5703         (allocate_struct_function): Likewise.
5704         (delete_handlers, lookup_static_chain): Remove.
5705         (fix_lexical_addr): Don't consider non-local variable refs.
5706         (trampoline_address): Remove.
5707         (round_trampoline_addr): Move to builtins.c.
5708         (adjust_trampoline_addr): Remove.
5709         (expand_function_start): Update for changes to static chain
5710         and nonlocal goto handling.
5711         (initial_trampoline): Move to varasm.c.
5712         (expand_function_end): Don't build trampolines or kill
5713         unreferenced nonlocal goto labels.
5714         (free_after_compilation): Don't set it.
5715         (expand_function_end): Likewise.
5716         (setjmp_vars_warning): Rename from
5717         uninitialized_vars_warning, remove uninitialized vars warning.
5718         (uninitialized_vars_warning): Remove old comment
5719         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
5720         and do not call the langhook.
5721         (expand_function_start, expand_function_end): Don't do
5722         function instrumentation here.
5723         (clear_block_marks): Rename from reorder_blocks_0, export.
5724         (blocks_nreverse): Export.
5725         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
5726         of rtl.
5727         (reset_block_changes, record_block_change, finalize_block_changes,
5728         check_block_change, free_block_changes): New functions.
5729         (assign_parms): Setting of current_function_stdarg
5730         moved ...
5731         (allocate_struct_function): ... here.
5732         * function.h (struct function): Remove x_nonlocal_labels,
5733         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
5734         x_context_display, x_trampoline_list, needs_context.
5735         Add static_chain_decl, nonlocal_goto_save_area.
5736         (struct function): Remove x_clobber_return_insn.
5737         Add tail_call_emit field, last_label_uid,
5738         unexpanded_var_list, dont_emit_block_notes,
5739         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
5740         (clear_block_marks): Declare.
5741         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
5742         (mfwrap_spec, mflib_spec): Declare.
5743         (cpp_unique_options, cc1_options): Ditto.
5744         (default_compilers): Add .F and .f90.
5745         (static_specs): Add mfwrap and mflib.
5746         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
5747         CONSTANT_RTX_P.
5748         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
5749         Update to match insns field in struct edge_def.
5750         * gdbinit.in (pgs, pge): Define.
5751         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
5752         instead of the integrated flag.
5753         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
5754         * gengtype-yacc.y (bitfieldlen): Add empty action.
5755         (struct_fields): Accept unnamed bitfields.
5756         (bitfieldlen): Split from ...
5757         (bitfieldopt): ... here.
5758         * gengtype.c (ifiles): Add tree-alias-type.h and
5759         tree-flow.h.
5760         * genrecog.c (validate_pattern): Do not handle
5761         CONSTANT_P_RTX.
5762         * gimple-low.c: New file.
5763         * gimplify.c: New file.
5764         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
5765         (restore_line_notes): Do not set RTX_INTEGRATED_P.
5766         * ifcvt.c (dead_or_predicable): Initialize local variable
5767         'earliest'.
5768         * input.h (expr_wfl_stack): Remove.
5769         * integrate.c (INTEGRATE_THRESHOLD): Remove.
5770         (setup_initial_hard_reg_value_integration): Likewise.
5771         (initialize_for_inline): Likewise.
5772         (note_modified_parmregs): Likewise.
5773         (integrate_parm_decls): Likewise.
5774         (process_reg_param): Likewise.
5775         (save_parm_insns): Likewise.
5776         (copy_insn_list): Likewise.
5777         (copy_insn_notes): Likewise.
5778         (compare_blocks): Likewise.
5779         (find_block): Likewise.
5780         (inlining): Likewise.
5781         (function_cannot_inline_p): Likewise.
5782         (parmdecl_map): Likewise.
5783         (in_nonparam_insns): Likewise.
5784         (save_for_inline): Likewise.
5785         (FIXED_BASE_PLUS): Likewise.
5786         (expand_inline_function): Likewise.
5787         (copy_rtx_and_substitute): Don't look at map->integrating,
5788         map->inline_target, and inlining, since we are never copying
5789         for integrating.
5790         Don't abort on RTX_INTEGRATED_P.
5791         (old_fun): Remove.
5792         (output_inline_function): Remove.
5793         * integrate.h (struct inline_map): Remove fields integrating,
5794         block_map, leaf_reg_map, inline_target, and local_return_label.
5795         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
5796         copy_loop_headers, never_reached_warning): Removed.
5797         (any_uncondjump_p): Reject nonlocal goto.
5798         * langhooks-def.h (lhd_types_compatible_p,
5799         lhd_expand_decl, lhd_gimplify_expr): Declare.
5800         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
5801         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5802         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
5803         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5804         LANG_HOOKS_GIMPLIFY_EXPR,
5805         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
5806         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
5807         LANG_HOOKS_GIMPLIFY_EXPR,
5808         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
5809         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
5810         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
5811         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
5812         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
5813         LANG_HOOKS_DECL_UNINIT,
5814         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
5815         * langhooks.c: Include tree-simple.h.
5816         (lhd_expand_decl): New.
5817         (lhd_types_compatible_p): New.
5818         (lhd_decl_uninit): Remove.
5819         (lhd_gimplify_expr): New.
5820         * langhooks.h (struct lang_hooks_for_rtl_expansion):
5821         Remove.
5822         (struct lang_hooks_for_functions): Add field
5823         missing_noreturn_ok_p.
5824         (struct lang_hooks): Add field expand_decl,
5825         types_compatible_p, gimplify_expr and
5826         gimple_before_inlining.
5827         Remove fields decl_uninit and rtl_expand
5828         * opts.c (decode_options): Set flag_tree_ccp,
5829         flag_tree_dce, flag_tree_dom, flag_tree_dse,
5830         flag_tree_pre, flag_tree_ter,
5831         flag_tree_live_range_split, flag_tree_sra,
5832         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
5833         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
5834         OPT_fmudflapth, OPT_fmudflapir,
5835         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
5836         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
5837         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
5838         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
5839         OPT_ftree_points_to_ and OPT_ftree_pre.
5840         * output.h (regno_uninitialized, find_basic_blocks,
5841         cleanup_cfg, delete_unreachable_blocks,
5842         check_function_return_warnings): Remove.
5843         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
5844         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
5845         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
5846         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
5847         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
5848         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
5849         Define.
5850         * passes.c (rest_of_decl_compilation):
5851         (rest_of_handle_sibling_calls): Remove.
5852         (rest_of_handle_inlining): Remove.
5853         (rest_of_handle_gcse): Do not run
5854         purge_builtin_constant_p.
5855         (rest_of_compilation): Update.
5856         Do not call copy_loop_headers.
5857         Do rtl-based profiling only when
5858         !flag_tree_based_profiling.  Register rtl-based profiling
5859         hooks.
5860         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
5861         (predicted_by_p): Rename to ...
5862         (rtl_predicted_by_p): .. this one; make global
5863         (tree_predicted_by_p): New.
5864         (dump_prediction): Add FILE argument.
5865         (predict_edge): Rename to ...
5866         (rtl_predict_edge): .. this one.
5867         (tree_predict_edge): New.
5868         (combine_predictions_for_insn): Update calls of predict_edge.
5869         (predict_loops): Break out from ...
5870         (estimate_probability): ... here; update comments; move updating
5871         of unknown probabilities from ...
5872         (estimate_bb_frequencies): ... here.
5873         (combine_predictions_for_bb): New.
5874         (tree_predict_by_opcode): New.
5875         (tree_estimate_probability): New.
5876         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
5877         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
5878         * predict.h: Add include guard.
5879         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
5880         * pretty-print.c (pp_write_text_to_stream): Make extern.
5881         * pretty-print.h (pp_write_text_to_stream): Declare.
5882         * print-rtl.c (print_rtx): Don't print the integrated flag.
5883         Print the return_val flag.
5884         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
5885         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
5886         Remove support for EXPR_WITH_FILE_LOCATION nodes.
5887         (print_node): Print TREE_INVARIANT and TREE_VISITED.
5888         * profile.c: Include cfghooks.h, tree-flow.h.
5889         (profile_hooks): New.
5890         (profile_dump_file): New.
5891         (instrument_edges): Use hooks instead of RTL-specific code.
5892         (instrument_values): Ditto.
5893         (get_exec_counts): Ditto.
5894         (compute_branch_probabilities): Ditto.
5895         (compute_value_histograms): Ditto.
5896         (branch_prob): Ditto.
5897         (find_spanning_tree): Ditto.
5898         (end_branch_prob): Ditto.
5899         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
5900         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
5901         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
5902         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
5903         (tree_register_profile_hooks): New.
5904         (rtl_register_profile_hooks): New.
5905         * ra-rewrite.c (rewrite_program): Clear variable info.
5906         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
5907         * regs.h: Add include guards.
5908         * reload.c (decompose): Clear val using memset.
5909         * rtl.def (CONSTANT_P_RTX): Remove.
5910         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
5911         (copy_loop_headers): Remove.
5912         (struct rtx_def): Replace the integrated flag with the
5913         return_val flag.
5914         (maybe_set_first_label_num): Declare.
5915         (init_branch_prob): Move declaration to value-prof.h.
5916         (end_branch_prob): Ditto.
5917         (branch_prob): Ditto.
5918         (never_reached_warning): Don't declare it.
5919         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
5920         (hoist_insn_to_edge): Update to match field insns in
5921         struct edge_def.
5922         * sbitmap.c (sbitmap_realloc): New.
5923         * sbitmap.h (sbitmap_realloc): Declare.
5924         * sibcall.c: Remove file.
5925         * simplify-rtx.c (simplify_rtx): Do not handle
5926         CONSTANT_P_RTX.
5927         * stmt.c (parse_output_constraint): Don't warn for read-write
5928         memory operand.
5929         (tail_recursion_args): Use types_compatible_p langhook.
5930         (force_label_rtx): Don't look at inline_function_decl.
5931         (label_rtx): Set LABEL_PRESERVE_P appropriately.
5932         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
5933         (declare_nonlocal_label): Remove.
5934         (expand_goto): Don't handle nonlocal gotos.
5935         (expand_nl_handler_label): Remove.
5936         (expand_nl_goto_receivers): Remove.
5937         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
5938         update_nonlocal_goto_save_area.
5939         (expand_expr_stmt_value): Check TREE_NO_WARNING.
5940         (warn_if_unused_value): Likewise.
5941         (expand_start_loop, expand_loop_continue_here,
5942         expand_end_loop): Don't create loop notes.
5943         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
5944         mark_seen_cases, check_for_full_enumeration_handling): Remove.
5945         (expand_end_case_type): Don't do warn_switch handling.
5946         (pushcase, pushcase_range) Update add_case_node calls.
5947         (add_case_node): Add dont_expand_label argument.
5948         (same_case_target_p): Don't search rtl.
5949         (expand_start_bindings_and_block, expand_end_bindings):
5950         Don't emit block notes when dont_emit_block_notes.
5951         (using_eh_for_cleanups_p): Export.
5952         (expand_return): Allow any typed rhs.
5953         (expand_stack_alloc): New.
5954         (expand_stack_save, expand_stack_restore): New.
5955         (containing_blocks_have_cleanups_or_stack_level): New
5956         function.
5957         (asm_op_is_mem_input): New fn.
5958         (expand_asm_expr): New fn.
5959         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
5960         nodes.
5961         * stor-layout.c (layout_type): Just return if type is
5962         error_mark_node.
5963         (update_alignment_for_field): Export.
5964         (variable_size): We don't care about global_bindings_p if
5965         the frontend doesn't want a list of the expressions.
5966         * system.h: Poison INTEGRATE_THRESHOLD.
5967         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
5968         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
5969         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
5970         TV_TREE_SSA_OTHER, TV_TREE_OPS,
5971         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
5972         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
5973         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
5974         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
5975         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
5976         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
5977         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
5978         TV_CONTROL_DEPENDENCES): Define.
5979         * toplev.c: Include tree-alias-common.h
5980         (current_file_decl, flag_mudflap, flag_mudflap_threads,
5981         flag_mudflap_ignore_reads, flag_tree_based_profiling,
5982         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
5983         flag_tree_dce, flag_tree_ch, flag_tree_sra,
5984         flag_tree_combine_temps, flag_tree_ter,
5985         flag_tree_live_range_split, flag_tree_dom,
5986         flag_tree_copyrename, flag_tree_dse): Declare.
5987         (f_options): Add tree-based-profiling, tree-gvn,
5988         tree-pre, tree-ccp, tree-dce,
5989         tree-dominator-opts, tree-copyrename, tree-dse,
5990         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
5991         (wrapup_global_declarations): Don't output nested inlined functions.
5992         (general_init): Call init_tree_optimization_passes.
5993         (process_options): Sorry for -ftree-based-profiling plus
5994         -ftest-coverage or -fprofile-values.
5995         * toplev.h (init_tree_optimization_passes,
5996         flag_tree_based_profiling): Declare.
5997         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
5998         * tree-alias-ander.c: New file.
5999         * tree-alias-ander.h: New file.
6000         * tree-alias-common.c: New file.
6001         * tree-alias-common.h: New file.
6002         * tree-alias-type.c: New file.
6003         * tree-alias-type.h: New file.
6004         * tree-browser.c: New file.
6005         * tree-browser.def: New file.
6006         * tree-cfg.c: New file.
6007         * tree-complex.c: New file.
6008         * tree-dfa.c: New file.
6009         * tree-dump.c (dump_enable_all): New.
6010         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
6011         (dump_node): Remove const from field suffix and swtch.
6012         (dump_files): Add null entry, .generic, .nested, .vcg,
6013         .xml and a match-all entry.
6014         (extra_dump_files, extra_dump_files_in_use,
6015         extra_dump_files_alloced): Declare
6016         (dump_option_value_info): Add raw, details, stats,
6017         blocks, vops, lineno, uid and all.
6018         (dump_register): New.
6019         (get_dump_file_info): New.
6020         (dump_begin): Call it.
6021         Do nothing for TDI_none.
6022         (dump_begin): Include phase number in dump filename.
6023         (dump_enable_all): New.
6024         (dump_switch_p_1): Split out from dump_switch_p.
6025         (dump_switch_p): Handle extra_dump_files.
6026         Start our scan at TDI_none + 1.
6027         If -fdump-tree-all was given, call dump_enable_all.
6028         * tree-dump.h: Include splay-tree.h.
6029         (dump_function, dump_function_to_file, dump_register):
6030         Declare.
6031         * tree-eh.c: New file.
6032         * tree-flow-inline.h: New file.
6033         * tree-flow.h: New file.
6034         * tree-inline.c: Re-write to handle inlining on GIMPLE.
6035         * tree-inline.h (walk_tree,
6036         walk_tree_without_duplicates): Move to tree.h.
6037         (estimate_num_insns): Declare.
6038         * tree-into-ssa.c: New file.
6039         * tree-iterator.c: New file.
6040         * tree-iterator.h: New file.
6041         * tree-mudflap.c: New file.
6042         * tree-mudflap.h: New file.
6043         * tree-nested.c: New file.
6044         * tree-nomudflap.c: New file.
6045         * tree-nrv.c: New file.
6046         * tree-optimize.c (dump_flags, vars_to_rename,
6047         in_gimple_form, all_passes, pass_gimple,
6048         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
6049         (execute_gimple, execute_rebuild_bind,
6050         gate_all_optimizations, execute_del_cfg,
6051         register_one_dump_file, register_dump_files, dup_pass_1,
6052         init_tree_optimization_passes, execute_todo,
6053         execute_one_pass, execute_pass_list): New.
6054         (clear_decl_rtl): Remove.
6055         (tree_rest_of_compilation): Update to use tree
6056         optimizers.
6057         * tree-outof-ssa.c: New file.
6058         * tree-pass.h: New file.
6059         * tree-phinodes.c: New file.
6060         * tree-pretty-print.c: New file.
6061         * tree-profile.c: New file.
6062         * tree-simple.c: New file.
6063         * tree-simple.h: New file.
6064         * tree-sra.c: New file.
6065         * tree-ssa-alias.c: New file.
6066         * tree-ssa-ccp.c: New file.
6067         * tree-ssa-copy.c: New file.
6068         * tree-ssa-copyrename.c: New file.
6069         * tree-ssa-dce.c: New file.
6070         * tree-ssa-dom.c: New file.
6071         * tree-ssa-dse.c: New file.
6072         * tree-ssa-forwprop.c: New file.
6073         * tree-ssa-live.c: New file.
6074         * tree-ssa-live.h: New file.
6075         * tree-ssa-loop.c: New file.
6076         * tree-ssa-operands.c: New file.
6077         * tree-ssa-operands.h: New file.
6078         * tree-ssa-phiopt.c: New file.
6079         * tree-ssa-pre.c: New file.
6080         * tree-ssa.c: New file.
6081         * tree-ssanames.c: New file.
6082         * tree-tailcall.c: New file.
6083         * tree.c: Include tree-iterator.h, basic-block.h and
6084         tree-flow.h.
6085         (tree_node_kind): Add phi_nodes and ssa names.
6086         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
6087         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
6088         (make_node_stat): Handle PHI_NODE and SSA_NAME.
6089         <'c'> Set TREE_INVARIANT.
6090         (copy_node_stat): Abort if trying to copy a
6091         STATEMENT_LIST.
6092         Clear TREE_VISITED.
6093         Clear annotation field.
6094         (build_constructor): Copy TREE_INVARIANT from vals.
6095         Don't clear TREE_CONSTANT.
6096         (expr_first, expr_last, expr_length): Remove.
6097         (staticp): Pass unknown component references to the language.
6098         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
6099         (skip_simple_arithmetic): Likewise.
6100         (stabilize_reference_1): Likewise.
6101         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
6102         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
6103         STATEMENT_LIST.
6104         (lhd_unsave_expr_now): Remove.
6105         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
6106         (recompute_tree_invarant_for_addr_expr): New.
6107         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
6108         Call recompute_tree_invarant_for_addr_expr.
6109         Set TREE_INVARIANT accordingly.
6110         (build2_stat): Don't handle CALL_EXPR.
6111         (build3_stat): Don't call build2_stat for CALL_EXPRs.
6112         (build_expr_wfl): Remove.
6113         (annotate_with_file_line, annotate_with_locus): New.
6114         (simple_cst_equal): Call simple_cst_list_equal to compare
6115         CONSTRUCTOR_ELTS pointers.
6116         (iterative_hash_expr): Don't hash types associated
6117         with conversions.  Instead hash on the signedness of the
6118         toplevel object and the operand of the conversion.
6119         (dump_tree_statistics): Call ssanames_print_statistics
6120         and phinodes_print_statistics.
6121         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
6122         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
6123         needs_to_live_in_memory): New.
6124         (initializer_zerop): Handle VECTOR_CST.  Don't check
6125         AGGREGATE_TYPE_P for CONSTRUCTOR.
6126         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
6127         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
6128         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
6129         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
6130         (CALL_EXPR): Add another operand.
6131         (EXPR_WITH_FILE_LOCATION): Remove.
6132         (SWITCH_EXPR): Add another operand.
6133         * tree.h: Update various comments.
6134         (union tree_ann_d): Forward declare.
6135         (struct tree_common): Add fields nowarning_flag,
6136         invariant_flag and visited.
6137         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
6138         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
6139         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
6140         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
6141         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
6142         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
6143         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
6144         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
6145         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
6146         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
6147         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
6148         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
6149         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
6150         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
6151         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
6152         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
6153         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
6154         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
6155         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
6156         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
6157         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
6158         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
6159         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
6160         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
6161         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
6162         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
6163         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
6164         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
6165         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
6166         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
6167         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
6168         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
6169         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
6170         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
6171         TDF_UID,): Define.
6172         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
6173         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
6174         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
6175         EXPR_WFL_SET_LINECOL): Remove.
6176         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
6177         make_phi_node, init_phinodes, fini_phinodes,
6178         release_phi_node, phinodes_print_statistics,
6179         init_ssanames, fini_ssanames, make_ssa_name,
6180         release_ssa_name, ssanames_print_statistics,
6181         annotate_with_file_line, build_empty_stmt,
6182         annotate_with_locus, expr_only, categorize_ctor_elements,
6183         count_type_elements, add_var_to_bind_expr, is_essa_node,
6184         expand_stack_alloc, expand_stack_save,
6185         expand_stack_restore, add_case_node, operand_equal_p,
6186         nondestructive_fold_unary_to_constant,
6187         nondestructive_fold_binary_to_constant,
6188         fold_read_from_constant_string, int_const_binop,
6189         strip_float_extensions, simplify_builtin, c_strlen,
6190         recompute_tree_invarant_for_addr_expr,
6191         needs_to_live_in_memory, make_vector,
6192         setjmp_vars_warning, update_alignment_for_field,
6193         expand_asm_expr, asm_op_is_mem_input,
6194         containing_blocks_have_cleanups_or_stack_level,
6195         create_artificial_label, gimplify_function_tree,
6196         get_name, unshare_expr, walk_tree,
6197         walk_tree_without_duplicates, in_gimple_form): Declare.
6198         (struct tree_exp): Add fields locus and block.
6199         (struct tree_ssa_name, struct edge_def, struct
6200         tree_phi_node, struct tree_eref_common, struct
6201         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
6202         union alias_var_def, struct tree_statement_list_node,
6203         struct tree_statement_list, enum operand_equal_flag): Declare.
6204         (enum tree_node_structure_enum): Add TS_SSA_NAME,
6205         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
6206         TS_STATEMENT_LIST.
6207         (union tree_node): Add fields ssa_name, phi, eref, ephi,
6208         euse and stmt_list.
6209         (function_cannot_inline_p, uninitialized_vars_warning,
6210         save_for_inline, output_inline_function, all_cases_count,
6211         check_for_full_enumeration_handling,
6212         declare_nonlocal_label): Remove.
6213         (enum tree_dump_index): Add TDI_none, TDI_tu,
6214         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
6215         * unroll.c (unroll_loop): Don't clear map->inline_target.
6216         * unwind-sjlj.c (uw_install_context): Make a proper static inline
6217         function.
6218         * value-prof.c (value_prof_hooks): New.
6219         (find_values_to_profile): Rename to rtl_find_values_to_profile.
6220         Move rtl-specific bits in from branch_prob.
6221         (value_profile_transformations): Rename to
6222         rtl_value_profile_transformations.
6223         (struct value_prof_hooks): New.
6224         (rtl_value_prof_hooks): New.
6225         (rtl_register_value_prof_hooks): New.
6226         (tree_find_values_to_profile): New stub.
6227         (tree_value_profile_transformations): New stub.
6228         (tree_value_prof_hooks): New stub.
6229         (tree_register_value_prof_hooks): New stub.
6230         (find_values_to_profile): New.
6231         (value_profile_transformations): New.
6232         * value-prof.h: Add multiple inclusion guard.
6233         (struct histogram_value): Change rtx fields to void *.
6234         (rtl_register_value_prof_hooks): New declaration.
6235         (tree_register_value_prof_hooks): New declaration.
6236         (find_values_to_profile): New declaration.
6237         (free_profiled_values): New declaration.
6238         (value_profile_transformations): New declaration.
6239         (struct profile_hooks): New declaration.
6240         (init_branch_prob): Declaration moved from rtl.h.
6241         (branch_prob): Declaration moved from rtl.h.
6242         (end_branch_prob): Declaration mooved from rtl.h.
6243         (tree_register_profile_hooks): New declaration.
6244         (rtl_register_profile_hooks): New declaration.
6245         (tree_profile_hooks): New declaration.
6246         (rtl_profile_hooks): New declaration.
6247         * varasm.c: Include tree-mudflap.h.
6248         (TRAMPOLINE_ALIGNMENT): Remove.
6249         (make_decl_rtl): Call mudflap_enqueue_decl.
6250         (assemble_static_space):
6251         (assemble_trampoline_template): Set and return
6252         TRAMPOLINE_ALIGNMENT.
6253         * varray.c (element): Add GENERIC_PTR_NOGC entry.
6254         Add entry for 'tree *'.
6255         Add entry for struct edge_def *.
6256         (varray_copy): New.
6257         * varray.h (enum varray_data_enum): Add
6258         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
6259         VARRAY_DATA_TREE_PTR.
6260         (union varray_data_tag): Corresponding changes.
6261         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
6262         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
6263         VARRAY_EDGE, VARRAY_TREE_PTR,
6264         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
6265         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
6266         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
6267
6268         * config/*/*: Various updates for changed macros, tree
6269         codes, etc.  Check ChangeLog.tree-ssa.
6270
6271         * doc/cfg.texi: New file.
6272         * doc/tree-ssa.texi: New file.
6273         * doc/c-tree.texi: Document new codes.
6274         * doc/gccint.texi: Include new files.
6275         * doc/install.texi: Document new features.
6276         * doc/invoke.texi: Document new switches.
6277         * doc/passes.texi: Document new passes.
6278         * doc/rtl.texi: Update changed RTL codes.
6279         * doc/sourcebuild.texi: Update build instructions.
6280         * doc/standards.texi: Document Fortran changes.
6281         * doc/tm.texi: Update.
6282
6283 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
6284
6285         Replace several arrays with a struct of arrays.
6286         * combine.c (struct reg_stat): New.
6287         (init_reg_last_arrays): Renamed to...
6288         (init_reg_last): ...this.  Callers adjusted.
6289         (reg_stat): New.
6290         (combine_instructions): Allocate it and use it.
6291         (reg_last_death, reg_last_set, reg_last_set_value,
6292         reg_last_set_label, reg_last_set_table_tick,
6293         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
6294         reg_last_set_mode, reg_last_set_nonzero_bits,
6295         reg_last_set_sign_bit_copies): Replace throughout
6296         with items of reg_stat.
6297
6298 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6299
6300         PR optimization/15100
6301         * combine.c (distribute_notes): Don't create a dangling
6302         REG_LIBCALL/REG_RETVAL note.
6303
6304 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
6305
6306         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
6307
6308         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
6309         negv2si2.
6310
6311 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
6312
6313         * doc/md.texi (Standard Names): Fix typo in vec_init description.
6314
6315 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
6316
6317         * doc/gty.texi (GTY Options): Clarify example.
6318
6319 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
6320
6321         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
6322         Add const qualifier to altivec vector type if one is needed.
6323
6324 2004-05-11  Paul Brook  <paul@codesourcery.com>
6325
6326         * flags.h (flag_short_enums): Update comment.
6327         * opts.c (decode_options): Set flag_short_enums to 2.
6328         * toplev.c (flag_short_enums): Update comment.
6329         (process_options): Call default_short_enums target hook.
6330
6331 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
6332
6333         PR target/14063
6334         * config/rs6000/altivec.md (altivec_dssall):
6335         Change to unspec_volatile.
6336         (altivec_dss): Likewise.
6337
6338 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
6339
6340         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
6341         vnor.
6342         ("one_cmplv8hi2"): Same.
6343         ("one_cmplv4si2"): Same.
6344
6345 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6346
6347         PR target/15130
6348         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
6349         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
6350         into account.  Compute the correct number of general registers
6351         for the return value.  Generate a special push/pop sequence when
6352         failing to get a temporary register for non SHmedia epilogue.
6353         (sh_expand_epilogue): Add an argument to show whether it's for
6354         sibcall or not.  Set the 3rd argument of output_stack_adjust to
6355         -1 if needed.
6356         (sh_need_epilogue): Call sh_expand_epilogue with 0.
6357         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
6358         with 1.
6359         (epilogue): Call sh_expand_epilogue with 0.
6360
6361 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
6362
6363         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
6364         goto a cleanup label.  After the cleanup, free the allocated memory.
6365
6366 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
6367
6368         * config/rs6000/altivec.h (vec_sld): Add overloads for
6369         argument/return types of 'vector bool int', 'vector bool short'
6370         and 'vector bool char'.
6371
6372 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
6373
6374         * c-decl.c (store_parm_decls_newstyle): Correct test for a
6375         nested function.
6376
6377 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
6378
6379         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
6380         treating missing ones as "".
6381         * config/mips/mips.md: Remove constraints from match_operands and
6382         match_scratches if they appear in define_expands (except reload*),
6383         define_peephole2s, define_splits or attribute specifications.
6384         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
6385         constraint strings.
6386
6387 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
6388
6389         * config/rs6000/rs6000.c (function_arg_boundary): Always align
6390         AltiVec vectors.
6391         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
6392         vectors by refererence.  Align the same for TARGET_64BIT to a 16
6393         byte boundary.  Remove useless code.  Add function comment.
6394         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
6395         call to where it belongs.
6396         (function_arg_partial_nregs): Return true for all TARGET_32BIT
6397         -mabi=no-altivec AltiVec vectors.  Fix debug output.
6398         (rs6000_va_arg): Adjust for AltiVec change.
6399
6400 2004-05-10  Paul Brook  <paul@codesourcery.com>
6401
6402         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
6403         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
6404         (TARGET_DOUBLEWORD_ALIGN): Use it.
6405         (WCHAR_TYPE): Define.
6406         (WCHAR_SIZE_TYPE): Define.
6407         (SIZE_TYPE): Define.
6408
6409 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
6410
6411         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
6412         when size is 8 bytes.
6413         (function_arg_advance): Account for stack space used by AltiVec
6414         args when -mabi=altivec.  Simplify alignment calculations.  For
6415         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
6416         (function_arg): Similarly.
6417         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
6418         not AltiVec ABI.
6419         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
6420         Correct alignment, and align before testing reg count.  Remove
6421         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
6422         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
6423         TARGET_FPRS here..
6424         (rs6000_function_value): .. not here before call.
6425
6426 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
6427
6428         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
6429
6430 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
6431
6432         PR 15007
6433         * c-decl.c (current_file_decl): Rename to all_translation_units,
6434         adjust comment.
6435         (pop_scope): If popping file_scope, construct a
6436         TRANSLATION_UNIT_DECL and make it the context of all the
6437         symbols in the scope.
6438         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
6439         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
6440         anything to current_file_decl.
6441         (pushdecl_top_level): Likewise.
6442         (store_parm_decls_newstyle): Adjust check for nested function.
6443         (c_write_global_declarations): Update for renamed variable.
6444
6445 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
6446
6447         * config/rs6000/rs6000-protos.h
6448         (rs6000_conditional_register_usage): Protoize.
6449
6450         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
6451
6452         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
6453         function.
6454
6455 2004-05-08  Roger Sayle  <roger@eyesopen.com>
6456
6457         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
6458         where op is a comparison operator and C1 and C2 are integer constants
6459         into a range check.
6460         (fold): Call fold_div_compare.
6461
6462 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6463
6464         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
6465         problems with earlier versions of the GNU compiler.
6466
6467 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
6468
6469         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
6470         Declare.
6471
6472         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
6473         (rs6000_hard_regno_mode_ok): New.
6474         (rs6000_init_hard_regno_mode_ok): New.
6475         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
6476
6477         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
6478         result.
6479
6480 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
6481
6482         * config/rs6000/altivec.h (vector, pixel, bool): Do not
6483         define as macros #ifdef __APPLE_ALTIVEC__.
6484
6485 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
6486
6487         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
6488         Generate appropriate parallels for vector arguments
6489         passed to vararg functions. (function_arg): make the call
6490         to rs6000_mixed_function_arg for vector args as needed.
6491
6492 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
6493
6494         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
6495         EABI_FLOAT_VARARGS_P.
6496
6497 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
6498
6499         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
6500         * config/mips/mips.c (override_options): Disable branch likely
6501         instructions if TUNE_MIPS5500.
6502
6503 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
6504
6505         * config/mips/mips.c (override_options): Allow the hi and lo registers
6506         to store any integral mode, not just MODE_INTs.
6507
6508 2004-05-07  Paul Brook  <paul@codesourcery.com>
6509
6510         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
6511         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
6512         (TARGET_DOUBLEWORD_ALIGN): Use it.
6513         (WCHAR_TYPE): Define.
6514         (WCHAR_SIZE_TYPE): Define.
6515         (SIZE_TYPE): Define.
6516
6517 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
6518
6519         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
6520         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
6521
6522 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
6523
6524         * loop-doloop.c (doloop_valid_p): Make sure that body
6525         gets freed.
6526
6527 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
6528
6529         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
6530         declaration.
6531         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
6532         (sparc_skip_caller_unimp): New global variable.
6533         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
6534         Use it instead of SKIP_CALLERS_UNIMP_P.
6535         * config/sparc/sparc.md (call expander): Add sanity check.
6536         (call_address_struct_value_sp32): Re-sync with expander.
6537         (call_symbolic_struct_value_sp32): Likewise.
6538         (return peepholes): Use 'sparc_skip_caller_unimp' instead
6539         of custom predicate.
6540
6541 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
6542
6543         PR c++/14962
6544         * c-pragma.c (handle_pragma_redefine_extname): Only change
6545         the assembler name of FUNCTION_DECLs and VAR_DECLs.
6546
6547 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
6548
6549         * optabs.h (enum optab_index): Add new OTI_log1p.
6550         (log1p_optab): Define corresponding macro.
6551         * optabs.c (init_optabs): Initialize log1p_optab.
6552         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
6553         patterns.
6554         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
6555         using log1p_optab.
6556         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
6557         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6558
6559         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
6560
6561         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
6562         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
6563         Prototype here.
6564         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
6565         x87's fyl2xp1 instruction.
6566         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
6567         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
6568         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
6569         log1p  and log1pl built-ins as inline x87 intrinsics.
6570
6571 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
6572
6573         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
6574         * config/arm/freebsd.h: Likewise.
6575         * config/ia64/freebsd.h: Likewise.
6576         * config/sparc/freebsd.h: Likewise.
6577
6578 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
6579
6580         PR optimization/15296
6581         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
6582         getting last consecutive label at a branch.
6583         (relax_delay_slots): Similar, near top of loop.
6584
6585 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6586
6587         PR target/15202
6588         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
6589         register to general register.
6590
6591 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
6592
6593         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
6594         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
6595         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
6596         (STACK_BOUNDARY): Delete.
6597
6598 2004-05-06  Stuart Hastings  <stuart@apple.com>
6599
6600         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
6601         mistakenly clobbered by 1.423.
6602
6603 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
6604
6605         * doc/invoke.texi: Document -mvr4130-align.
6606         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
6607         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
6608         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
6609         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
6610         * config/mips/mips.md: Include sched-int.h.
6611         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
6612         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
6613         (override_options): Enable -mvr4130-align at -O3 and above.
6614         (mips_sim_insn): New variable.
6615         (mips_sim): New structure.
6616         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
6617         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
6618         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
6619         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
6620         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
6621         (mips_reorg): Call vr4130_align_insns.
6622         (vr4130_last_insn): New variable.
6623         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
6624         (vr4130_swap_insns_p, vr4130_reorder): New functions.
6625         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
6626         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
6627         (mips_use_dfa_pipeline_interface): Return true for the same.
6628         * config/mips/4130.md: New file.
6629         * config/mips/mips.md: Include it.  Add a peephole2 to convert
6630         "mult;mflo" into "mtlo;macc".
6631         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
6632         target of maccs.
6633         (*msac_using_macc): New pattern.
6634
6635 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
6636
6637         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
6638         (ir_vr55_hilo): Split into...
6639         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
6640         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
6641         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
6642         Add various multiplication bypasses.
6643         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
6644         multiplication.
6645
6646 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
6647
6648         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
6649         attribute to "XF".
6650
6651 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
6652
6653         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
6654         (fmod_optab, drem_optab): Define corresponding macros.
6655         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
6656         * genopinit.c (optabs): Implement fmod_optab and drem_optab
6657         using fmod?f3 and drem?f3 patterns.
6658         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
6659         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
6660         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
6661         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
6662         flag_unsafe_math_optimizations is set.
6663
6664         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
6665         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
6666
6667         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
6668         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
6669         Prototype here.
6670         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
6671         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
6672         fprem and fprem1 instructions.
6673         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
6674         Rename insn definition to x86_fnstsw_1.
6675         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
6676         x87 instructions.
6677         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
6678         and fmodl built-ins as inline x87 intrinsics.
6679         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
6680         and dreml built-ins as inline x87 intrinsics.
6681
6682 2004-05-05  Roger Sayle  <roger@eyesopen.com>
6683
6684         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
6685
6686 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
6687
6688         PR driver/9822
6689         * doc/invoke.texi (Spec Files): Remove documentation of %c.
6690
6691 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
6692
6693         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
6694         representation.
6695
6696 2004-05-06  Paul Brook  <paul@codesourcery.com>
6697
6698         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
6699         (arm_coproc_mem_operand): ... To this.
6700         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
6701         (arm_legitimate_index_p): Ditto.
6702         (vfp_mem_operand): Rename ...
6703         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
6704         (vfp_secondary_reload_class): Use it.
6705         (output_move_double): Use doubleword load/store instructions.
6706         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
6707         * config/arm/arm.h (TARGET_LDRD): Define.
6708         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
6709         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
6710         New splitter for invalid doubleword loads.
6711         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
6712         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
6713         * doc/md.texi: Document Uy constraint.
6714
6715 2004-05-05  Jan Hubicka  <jh@suse.cz>
6716
6717         PR opt/14980
6718         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
6719         inline clones.
6720
6721 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
6722
6723         PR target/15290
6724         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
6725         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
6726
6727 2004-05-05  Mike Stump  <mrs@apple.com>
6728
6729         * config/darwin-c.c (add_framework): Copy the directory name as it
6730         can be freed later.  Also, ensure we always allocate enough room
6731         for the cached framework information.
6732         (find_subframework_header): Keep track of the directory where the
6733         subframework header was found.
6734         (framework_construct_pathname): Speed up by not trying to re-add a
6735         framework.
6736         * cppfiles.c (search_path_exhausted): Arrange for the missing
6737         header callback to be able to set the directory where the header
6738         was found.
6739         (cpp_get_dir): Add.
6740         * cpplib.h (missing_header_cb): Add a parameter.
6741         (cpp_get_dir): Add.
6742
6743 2004-05-03  Mike Stump  <mrs@apple.com>
6744
6745         * doc/invoke.texi (Directory Options): Document -iquote.
6746         * doc/cpp.texi: Likewise.
6747         * doc/cppopts.texi: Likewise.
6748         * c-opts.c (c_common_missing_argument): Add -iquote processing.
6749         (c_common_handle_option): Likewise.
6750         * c.opt (iquote): Add.
6751         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
6752         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
6753
6754         * c-opts.c (case OPT_I): Deprecate -I- support.
6755         * doc/invoke.texi: Likewise.
6756         * doc/cpp.texi: Likewise.
6757         * doc/cppopts.texi: Likewise.
6758
6759 2004-05-05  Steven Bosscher  <stevenb@suse.de>
6760
6761         * basic-block.h (free_basic_block_vars): Update prototype.
6762         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
6763         argument.
6764         (life_analysis): Update call.
6765         * ifcvt.c (if_convert): Likewise.
6766         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
6767         * passes.c (rest_of_handle_final): Likewise.
6768         (rest_of_compilation): Likewise.
6769         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
6770
6771         * emit-rtl.c (next_real_insn): Use INSN_P.
6772         (prev_real_insn): Likewise.
6773
6774 2004-05-05  Eric Christopher  <echristo@redhat.com>
6775
6776         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
6777         representation.
6778
6779 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
6780
6781         * config/rs6000/rs6000.c (build_opaque_vector_type):
6782         New function.
6783         (rs6000_init_builtins): Use it.
6784
6785 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
6786
6787         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
6788         (func_table): Change type from char ** to vms_func_ref.
6789         (write_rtnbeg):  Update to reflect func_table change.  Use
6790         fde->funcdef_number instead of rtnnum in output.
6791         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
6792
6793 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
6794             Richard Henderson  <rth@redhat.com>
6795
6796         PR target/14899
6797
6798         * c-common.c (vector_types_convertible_p): New function.
6799         * c-typeck.c (comptypes): Recurse on vector types.
6800         (convert_for_assignment): Use vector_types_convertible_p.
6801         (digest_init): Use vector_types_convertible_p to check
6802         validness of constant vector initializers; otherwise treat
6803         them as scalars.
6804         * tree.c (make_or_reuse_type): New.
6805         (build_common_tree_nodes): Use it.
6806         * cp/call.c (standard_conversion): Likewise.
6807         * cp/typeck.c (comptypes): Recurse on vector types.
6808         (convert_for_assignment): Use vector_types_convertible_p.
6809
6810 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
6811
6812         * config/mips/mips.c (override_options): Default to no
6813         generation of branch-likely operations when tuning for
6814         CPUs where they tend to have a negative performance impact
6815         (e.g., SB-1).
6816
6817 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6818
6819         * expr.c (store_constructor_field): Don't call store_constructor
6820         if bitsize is not a multiple of a byte.
6821
6822 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
6823
6824         * reload1.c (inherit_piecemeal_p): New function.
6825         (emit_reload_insns): When reloading a group of hard registers, use
6826         inherit_piecemeal_p to decide whether the values of individual hard
6827         registers can be inherited.
6828
6829 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
6830
6831         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
6832         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
6833         * config/t-linux (LIB2ADDEHDEP): Likewise.
6834
6835 2004-05-04  Paul Brook  <paul@codesourcery.com>
6836
6837         * config/arm/crti.asm: Push an even number of registers.
6838         * config/arm/crtn.asm: And restore them.  Load via sp.
6839
6840 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
6841
6842         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
6843         Collect overhead information.
6844         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
6845         parameter and pass it through.
6846         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
6847         MEM_STAT_DECL parameter and pass it through.
6848         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
6849         MEM_STAT_DECL parameter and pass it through.
6850
6851 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
6852
6853         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
6854
6855         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
6856
6857         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
6858         rs6000_hard_regno_nregs.
6859
6860 2004-05-03  Eric Christopher  <echristo@redhat.com>
6861
6862         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
6863         prologue insn instead of setting up call.
6864         (s390_emit_epilogue): Ditto.
6865         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
6866         (define_constants): Add numbers for above patterns.
6867
6868 2004-05-03  Eric Christopher  <echristo@redhat.com>
6869
6870         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
6871         * config/s390/s390.c (s390_conditional_register_usage): ...here.
6872         * config/s390/s390-protos.h: Prototype.
6873
6874 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
6875
6876         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
6877         assignment.
6878
6879 2004-05-03  Eric Christopher  <echristo@redhat.com>
6880
6881         * config/mips/mips.md: Fix branch length attribute definition.
6882
6883 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
6884
6885         * config.gcc: Remove --enable-altivec support.
6886
6887         * config/rs6000/altivec-defs.h: Remove.
6888
6889 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6890
6891         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
6892         * fixinc/fixincl.x: Regenerate.
6893
6894 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
6895
6896         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
6897         definition.
6898         (log?f2, log10?f2, log2?f2): Reimplement expanders with
6899         float_truncate insn.
6900         (*fxtractsf3, *fxtractdf3): Remove insn definition.
6901         (logb?f2): Reimplement expanders with float_truncate insn.
6902
6903 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
6904
6905         PR 14718
6906         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
6907         force_type_die for CONST_DECL.
6908
6909 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6910             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6911
6912         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
6913         tm-dwarf2.h to tm_file.
6914         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
6915         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
6916         (ASM_DEBUG_SPEC): Delete.
6917
6918 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
6919
6920         * optabs.h (enum optab_index): Add new OTI_expm1.
6921         (expm1_optab): Define corresponding macro.
6922         * optabs.c (init_optabs): Initialize expm1_optab.
6923         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
6924         patterns.
6925         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
6926         using expm1_optab.
6927         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
6928         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6929
6930         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
6931         to implement expm1, expm1f and expm1l built-ins as inline x87
6932         intrinsics.
6933
6934 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
6935
6936         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
6937         * config/frv/frv.md (*return_true, *return_false): New patterns.
6938
6939 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
6940
6941         * rtl.h (PHI_NODE_P): Remove.
6942
6943 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
6944
6945         PR middle-end/14988
6946         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
6947         when passed -2 as 'align'.
6948         (put_var_into_stack): Use 'bool' as the type for the three local
6949         predicates.  Adjust calls to put_reg_into_stack.
6950         When passed a CONCAT, instruct put_reg_into_stack to use
6951         a consecutive stack slot for the second part.
6952         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
6953         'consecutive_p' parameter.  Turn the three predicates into 'bool'
6954         parameters.  Retrieve the register mode from 'reg'.
6955         When consecutive_p is true, instruct assign_stack_local_1 to use
6956         BITS_PER_UNIT alignment.
6957         (put_addressof_into_stack): Use 'bool' as the type for the two
6958         local predicates. Adjust call to put_reg_into_stack.
6959
6960 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6961
6962         * fold-const.c (fold_convert_const, fold): Add missing
6963         FIX_ROUND_EXPR case.
6964
6965 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
6966
6967         * configure.ac (FLEX, BISON): Only use tools from the build tree
6968         if build equals host.
6969         * configure: Rebuilt.
6970
6971         * config/frv/frv-protos.h (frv_expand_epilogue,
6972         frv_expand_fdpic_call): Add bool argument.
6973         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
6974         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
6975         (frv_expand_epilogue): Use new argument to decide whether to emit
6976         return instruction or copy the return address to LR.
6977         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
6978         sibcalls.
6979         (sibcall_operand): New.
6980         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
6981         PLUS nor LABEL_REF.  Add sibcall_operand.
6982         * config/frv/frv.md (call, call_value): Pass false to
6983         frv_expand_fdpic_call.
6984         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
6985         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
6986         sibcall_value_internal, sibcall_value_fdpicdi): New.
6987         (return_unsigned_true, return_unsigned_false): New.
6988         (epilogue): Adjust call to frv_expand_epilogue.
6989         (sibcall_epilogue): New.
6990
6991         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
6992         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
6993         before redefining them.
6994
6995 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6996
6997         * builtins.c (fold_fixed_mathfn): New function.
6998         (fold_builtin_lround, fold_builtin): Use it.
6999
7000 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
7001
7002         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
7003         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
7004
7005 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
7006
7007         * config/cris/cris.h: Revert my "fix comment typos" patch.
7008
7009 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
7010
7011         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
7012
7013 2004-05-01  Falk Hueffner  <falk@debian.org>
7014
7015         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
7016         builtin_insll): Disallow 0 as first input operand.
7017
7018 2004-05-01  Falk Hueffner  <falk@debian.org>
7019
7020         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
7021
7022 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
7023
7024         PR middle-end/15054
7025         * expr.c (expand_expr_real): Do not call preserve_temp_slots
7026         on a TARGET_EXPR temp.
7027         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
7028         TARGET_EXPR temp slots.
7029
7030 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
7031
7032         * simplify-rtx.c (simplify_ternary_operation): When
7033         converting an IF_THEN_ELSE to a relational op, return
7034         correct mode.
7035
7036 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7037
7038         * builtins.c (fold_builtin_round): Fix comment typo.
7039         (fold_builtin_lround): New function.
7040         (fold_builtin): Use it.
7041
7042 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
7043
7044         PR target/11608
7045         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
7046         more like the one in config/dbxelf.h.
7047
7048 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
7049
7050         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
7051         and adjust definition accordingly.
7052         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
7053         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
7054         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
7055         VECTOR_TYPE.
7056
7057 2004-04-30  Jason Merrill  <jason@redhat.com>
7058
7059         PR c++/14587
7060         * config/i386/winnt.c (associated_type): Look for attributes on
7061         the TYPE_MAIN_VARIANT of *this.
7062         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
7063         apply the attributes to the variants.
7064
7065 2004-04-30  Paul Brook  <paul@codesourcery.com>
7066
7067         * config.gcc: Simplify arm --with-{cpu,tune} test.
7068         * config/arm/arm-cores.def: Document whitespace restrictions.
7069
7070 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7071
7072         PR other/1963
7073         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
7074
7075 2004-04-30  Brian Ford  <ford@vss.fsi.com>
7076             DJ Delorie  <dj@redhat.com>
7077
7078         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7079         (DWARF2_DEBUGGING_INFO): Define to enable.
7080         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
7081         DWARF2.
7082         * configure.ac (Target-specific assembler checks)
7083         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
7084         relocs.
7085         * configure: Regenerate.
7086         * config.in: Likewise.
7087
7088         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7089         (ASM_OUPUT_DWARF_OFFSET): Define.
7090
7091 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
7092
7093         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
7094         (s390_emit_call): New function prototype added.
7095         (s390_tls_get_offset): Function removed.
7096         * config/s390/s390.c (s390_function_ok_for_sibcall,
7097         s390_call_saved_register_used_p): New functions.
7098         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
7099         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
7100         (s390_emit_tls_call_insn): New function.
7101         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
7102         emit_call_insn.
7103         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
7104         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
7105         added.
7106         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
7107         register number used to hold the target address for sibcalls.
7108         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
7109         New expanders.
7110         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
7111         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
7112         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
7113         Expanders removed.
7114         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
7115         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
7116         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
7117         ("epilogue"): Changed the call to s390_emit_epilogue to use the
7118         new parameter.
7119
7120 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
7121
7122         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
7123         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
7124         reg-stack.c, varasm.c, config/alpha/ev4.md,
7125         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
7126         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
7127         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
7128         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
7129         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
7130         config/ia64/itanium2.md, config/ip2k/ip2k.c,
7131         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
7132         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
7133         comment typos.
7134
7135 2004-04-30  Paul Brook  <paul@codesourcery.com>
7136
7137         * config.gcc: Default ep9312 to hard-float.
7138         * config/arm/arm-cores.def: Add ARCH field.
7139         * config/arm/arm.c (FL_FOR_ARCH*): Define.
7140         (arm_arch_cirrus): New variable.
7141         (all_cores): Set and use arch.
7142         (all_architectures): Ditto.
7143         (arm_arch_name): New variable.
7144         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
7145         Set and use arm_arch_cirrus.
7146         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
7147         (enum processor_type): Update ARM_CORE define.
7148         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
7149         (CPP_SPEC): Remove %(cpp_cpu_arch).
7150         (CPP_ARCH_DEFAULT_SPEC): Remove.
7151         (CPP_CPU_ARCH_SPEC): Remove.
7152         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
7153         (FPUTYPE_DEFAULT): Don't define here.
7154
7155 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
7156
7157         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
7158         updates too.
7159
7160 2004-04-30  Paul Brook  <paul@codesourcery.com>
7161
7162         * arm.c (arm_needs_doubleword_align): Use mode alignment.
7163
7164 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
7165
7166         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
7167         vec_sububs.
7168         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
7169         duplicates.
7170
7171 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
7172
7173         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
7174         atan2?f3 expanders.
7175
7176 2004-04-29  Nick Clifton  <nickc@redhat.com>
7177
7178         Bug 14093
7179         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
7180         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
7181         Delete static from definition.
7182         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
7183
7184 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
7185
7186         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
7187         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
7188         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
7189         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
7190
7191 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
7192
7193         * commom.opt (Wfatal-errors): Add it.
7194         * diagnostic.c (flag_fatal_errors): Define it.
7195         (diagnostic_action_after_output): Check for flag_fatal_errors.
7196         * flags.h (flag_fatal_errors): Declare it.
7197         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
7198         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
7199
7200 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
7201
7202         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
7203         blocks which have kill flag set.
7204
7205 2004-04-29  Ben Elliston  <bje@au.ibm.com>
7206
7207         * configure.ac (--with-as): Abort if user-supplied assembler
7208         cannot be executed.
7209         (--with-ld): Likewise for the linker.
7210         * configure: Regenerate.
7211
7212 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7213
7214         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
7215         isn't NULL before using it.
7216
7217 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
7218
7219         PR target/15189
7220         * config/mips/mips.md (load_df_low): Use default length.
7221         (load_df_high, store_df_high): Likewise.
7222
7223 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
7224
7225         * config/mips/mips.md, config/mips/sb1.md,
7226         config/rs6000/rs6000.c: Fix comment typos.
7227
7228 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
7229
7230         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
7231         Fix comment typos.
7232
7233 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
7234
7235         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
7236         (delete_if_ordinary): Use above macro.
7237         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
7238         Update copyright.
7239         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
7240
7241 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
7242
7243         * c-decl.c (get_parm_info): Use the correct tag keywords when
7244         warning about type declarations in prototypes.
7245
7246 2004-04-29  Paul Brook  <paul@codesourcery.com>
7247
7248         * config.gcc: Pull list of cores from arm-cores.def.
7249
7250 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
7251
7252         * combine.c (combine_simplify_rtx): Adjust call to use
7253         simplify_relational_operation.  Do not use SELECT_CC_MODE
7254         when a comparison already has a MODE_CC mode.
7255
7256 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
7257
7258         (simplify_set): simplify_relational_operation may now
7259         return another relational expression.
7260         * cse.c (fold_rtx): simplify_relational_operation now
7261         takes of computing the comparison mode.
7262         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
7263         remove dead code.
7264         (do_compare_rtx_and_jump): Likewise.
7265         * integrate.c (subst_constants): simplify_relational_operation
7266         may now return another relational expression.
7267         * simplify-rtx.c (simplify_gen_relational): Move most code to
7268         the new simplify_relational_operation and
7269         simplify_relational_operation_1 functions.
7270         (simplify_relational_operation): Rewritten.
7271         (simplify_relational_operation_1): New function.
7272         (simplify_ternary_operation): simplify_relational_operation
7273         may now return another relational expression.
7274         (simplify_rtx): Remove unnecessary temp variable.
7275
7276 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
7277
7278         * reg-stack.c (swap_to_top): New function.
7279         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
7280         swap_to_top().
7281         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
7282         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
7283         UNSPEC_FSCALE_EXP.
7284
7285         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
7286         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
7287         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
7288         x87's fscale insn.
7289         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
7290         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
7291         patterns.
7292
7293 2004-04-28  Serge Belyshev  <1319@bot.ru>
7294
7295         PR 14944
7296         * coverage.c (read_counts_file): Fix usage of warning () call.
7297         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
7298
7299 2004-04-28  Ben Elliston  <bje@au.ibm.com>
7300
7301         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
7302         options with "-" in the option index.
7303         (SPARC Options): Likewise.
7304         (M32R/D Options): Likewise.
7305
7306 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7307
7308         * convert.c (convert_to_integer): Convert (long)round -> lround,
7309         etc.
7310
7311 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
7312
7313         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
7314         Return false if we do not have fp register.
7315         (addrs_ok_for_quad_peep): Rename to ...
7316         (mems_ok_for_quad_peep): this.
7317         Add check for volatile memory.
7318         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
7319         Rename to ...
7320         (mems_ok_for_quad_peep): this.
7321         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
7322         to peephole2's.
7323         (lfq_power2): New instruction.
7324         (stfq_power2): Likewise.
7325
7326 2004-04-28  Jan Hubicka  <jh@suse.cz>
7327
7328         PR c/15004
7329         * function.c (do_warn_unused_parameter): Break out form ...
7330         (expand_function_end): ... here; warn only when not using cgraphunit.
7331         * function.h (do_warn_unused_parameter): Declare.
7332         * cgraphunit.c: Include function.h.
7333         (cgraph_finalize_function): Do unused parameter warning.
7334         * Makefile.in (cgraphunit.o): Depend on function.h
7335
7336 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7337
7338         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
7339         calling install-info on $(DESTDIR)$(infodir)/dir already being
7340         present.
7341
7342 2004-04-28  Paul Brook  <paul@codesourcery.com>
7343
7344         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
7345
7346 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
7347
7348         * gcse.c (find_moveable_store): Do not accept store insns with
7349         REG_EH_REGION note.
7350
7351 2004-04-28  Paul Brook  <paul@codesourcery.com>
7352
7353         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
7354         * function.c (assign_temp): Ditto.
7355         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
7356
7357 2004-04-28  Paul Brook  <paul@codesourcery.com>
7358
7359         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
7360
7361 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
7362
7363         * var-tracking.c (variable_different_p): Add a parameter
7364         compare_current_location, compare current location of variable parts
7365         if it is true.
7366         (dataflow_set_different_1): Pass compare_current_location == false.
7367         (dataflow_set_different_2): Pass compare_current_location == false.
7368         (emit_notes_for_differences_1): Pass compare_current_location == true.
7369
7370 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
7371
7372         * config/s390/s390.md ("casesi"): Mark jump table access as
7373         non-trapping and unchanging.
7374
7375 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7376
7377         PR debug/14829
7378         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
7379         callers.
7380         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
7381         number for indexing hard_regno_nregs array.
7382
7383 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
7384
7385         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
7386         * config/darwin-crt2.c: Only have contents on __ppc__.
7387
7388 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
7389
7390         * config/xtensa/xtensa.c (call_insn_operand): Check
7391         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
7392         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
7393         * config/xtensa/xtensa.md (call, call_value): Likewise.
7394
7395 2004-04-27  Wu Yongwei  <adah@sh163.net>
7396
7397         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
7398         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
7399         (__gthread_mutex_init_function): Replace CreateMutex with
7400         initialization of custom mutex using CreateSemaphore.
7401         (__gthread_mutex_lock): Use InterlockedIncrement.
7402         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
7403         (__gthread_mutex_unlock): Use InterlockedDecrement and
7404         ReleaseSemaphore to unlock
7405         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
7406         __gthread_mutex_lock, __gthread_mutex_trylock,
7407         __gthread_mutex_unlock): Adjust to match inline versions in
7408         gthr-win32.h.
7409
7410 2004-04-27  Paul Brook  <paul@codesourcery.com>
7411
7412         * config/arm/arm.c (arm_promote_prototypes): New function.
7413         (TARGET_PROMOTE_PROTOTYPES): Use it.
7414
7415 2004-04-27  Paul Brook  <paul@codesourcery.com>
7416
7417         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
7418
7419 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
7420
7421         * config/alpha.c (alpha_end_function): For OpenVMS gas,
7422         correctly output .pdesc directive before .end.
7423
7424 2004-04-26  James E Wilson  <wilson@specifixinc.com>
7425
7426         Bug 14927
7427         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
7428         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
7429
7430 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
7431
7432         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
7433         * config/pa/pa-hpux10.h: Likewise.
7434         * config/pa/pa-hpux11.h: Likewise.
7435
7436 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
7437
7438         * doc/invoke.texi (Overall Options): Document default for -o
7439         for PCH files.
7440
7441 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7442
7443         * builtins.c (expand_builtin_update_setjmp_buf): New function.
7444         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
7445         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
7446
7447 2004-04-26  Paul Brook  <paul@codesourcery.com>
7448
7449         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
7450
7451 2004-04-26  Paul Brook  <paul@codesourcery.com>
7452
7453         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
7454
7455 2004-04-25  Roger Sayle  <roger@eyesopen.com>
7456
7457         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
7458         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
7459         X % -1 as 0.
7460
7461 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
7462
7463         PR bootstrap/15141
7464         * except.c (connect_post_landing_pads): Delete insns after the
7465         barrier when generating a unwind_resume_libfunc call.
7466
7467 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7468
7469         PR/c++ 15119
7470         * tree.c (substitute_placeholder_in_expr, case 4): New case,
7471         for TARGET_EXPR.
7472
7473 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7474
7475         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
7476         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
7477         inhibit_libc is defined.
7478
7479 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
7480
7481         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
7482         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
7483         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
7484         (TARGET_SCHED_VARIABLE_ISSUE): Define.
7485         (mips_adjust_cost): Move later in file, next to other sched hooks.
7486         (mips_macc_chains_last_hilo): New variable.
7487         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
7488         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
7489         * config/mips/mips.md (may_clobber_hilo): New attribute.
7490
7491 2004-04-24  Roger Sayle  <roger@eyesopen.com>
7492             Bruce Korb  <bkorb@gnu.org>
7493
7494         * fixinc/inclhack.def (aix_syswait_2): New fix.
7495         * fixinc/fixincl.x: Regenerate.
7496         * fixinc/tests/base/sys/wait.h: Update for new test.
7497
7498 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
7499
7500         PR target/14960
7501         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
7502         to non_fixed_size, and leave out fixed_size from the sum.
7503         (generate_set_vrsave): Correct clobbers.
7504         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
7505         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
7506         (rs6000_libcall_value): Likewise.
7507         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
7508         (FUNCTION_ARG_REGNO_P): Likewise.
7509
7510 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
7511
7512         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
7513         is a CONST_INT.
7514         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
7515         with NARROW_OP1 instead of OP1.
7516
7517 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
7518
7519         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
7520         and __s390x__ hosts.
7521
7522 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7523
7524         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
7525         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
7526         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
7527         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
7528         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
7529         * builtins.c (expand_builtin_fork_or_exec): New.
7530         (expand_builtin): Call it.
7531         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
7532         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
7533         * c-common.c (PID_TYPE): New macro.
7534         (c_common_nodes_and_builtins): Initialize pid_type_node.
7535         * calls.c (special_function_p): Do not handle fork and exec.
7536         (expand_call): Do not handle ECF_FORK_OR_EXEC.
7537         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
7538         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
7539         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
7540         __gcov_execv, __gcov_execvp, __gcov_execve): New.
7541         * tree.h (enum tree_index): Add TI_PID_TYPE.
7542         (pid_type_node): New macro.
7543         (ECF_FORK_OR_EXEC): Removed.
7544
7545 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
7546
7547         PR optimization/13985
7548         * cfgloopmanip.c (fix_loop_placements): New prototype.
7549         Call fix_bb_placements on the preheader of loops that have
7550         been reparented.
7551         (remove_path): Adjust call to fix_loop_placements.
7552
7553 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
7554
7555         * config/darwin7.h: New file.
7556         * config.gcc (*-*-darwin*): Add darwin7.h if the
7557         version is greater than 6.
7558         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
7559         (MATH_LIBRARY): Wrap in ifdefs.
7560
7561 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
7562
7563         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
7564         loading iWMMXt registers with a frame pointer.  Use post-increment
7565         without a frame pointer.
7566         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
7567
7568 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
7569
7570         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
7571         mode" rather than "-funit-at-a-time" since -O2 enables it
7572         without requiring -f* options.  Refer to -fprofile-generate and
7573         -fprofile-use correctly.  Move -funit-at-a-time among options
7574         enabled by -O.  Add information about unit-at-a-time caveats.
7575
7576 2004-04-22  Per Bothner  <per@bothner.com>
7577
7578         * line-map.h (struct line_maps):  New field highest_line.
7579         (linemap_position_for_column):  Make non-inline function.
7580         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
7581         * line-map.c (linemap_init):  Clear highest_line field.
7582         (linemap_add):  Set highest_line field.
7583         (linemap_line_start):  Minor optimization - use highest_line field.
7584         Reduce maximum column hint to 10000.  Update highest_line field.
7585         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
7586         * cpphash.h (struct cpp_reader):  Remove line field - instead use
7587         line_table->highest_line.
7588         (saved_line):  Remove unused field.
7589         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
7590         Use  line_table's highest_line field instead of cpp_reader's line.
7591         * cpplib.c (start_directive):  Likewise use highest_line field.
7592         (do_line, do_linemarker):  Likewise just use newest map.
7593         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
7594         * cpperror.c (cpp_error):  Likewise use highest_line field.
7595         * cppfiles.c (open_file_failed:  Likewise.
7596         (cpp_make_system_header):  Likewise use newest map and highest_line.
7597         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
7598         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
7599         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
7600         _cpp_lex_direct):  Likewise use highest_line.
7601         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
7602         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
7603         and use newest map.
7604         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
7605         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
7606         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
7607
7608 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
7609
7610         PR bootstrap/14992
7611         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
7612         * config/linux.h (USE_LD_AS_NEEDED): Define.
7613         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
7614         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
7615         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
7616         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
7617         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
7618         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
7619         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
7620
7621 2004-04-22  Per Bothner  <per@bothner.com>
7622
7623         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
7624         Fixes PR preprocessor/15067.
7625
7626 2004-04-23  Andreas Schwab  <schwab@suse.de>
7627
7628         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
7629         avoid aliasing warning.
7630
7631 2004-04-22  Jan Hubicka  <jh@suse.cz>
7632             Mostafa Hagog <mustafa@il.ibm.com>
7633
7634       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
7635       * cfgloopanal.c (expected_loop_iterations): Change the return value
7636
7637 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
7638
7639         * cselib.h (struct elt_loc_list): Remove canon_loc field.
7640         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
7641         (cselib_invalidate_mem): Remove all canon_loc and canon_x
7642         traces.
7643
7644 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
7645
7646         Revert
7647         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
7648
7649                 * var-tracking.c (variable_part_different_p): Variable parts
7650                 differ when the most recent locations differ.
7651
7652 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
7653
7654         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
7655         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
7656         (embedded_pic_offset): Delete.
7657         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
7658         MASK_* constants.
7659         (TARGET_EMBEDDED_PIC): Delete.
7660         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
7661         (ASM_SPEC): Remove -membedded-pic.
7662         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
7663         (ASM_OUTPUT_CASE_LABEL): Likewise.
7664         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
7665         * config/mips/windiss.h (ASM_SPEC): Likewise.
7666         * config/mips/mips.c (struct machine_function): Remove
7667         embedded_pic_fnaddr_rtx.
7668         (TARGET_ENCODE_SECTION_INFO): Remove override.
7669         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
7670         (override_options): Remove -membedded-pic handling.
7671         (print_operand): Remove handling of '%S'.
7672         (mips_select_section: Remove -membedded-pic handling.
7673         (mips_encode_section_info): Delete.
7674         (mips_output_conditional_branch): Remove mention of -membedded-pic.
7675         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
7676         -membedded-pic handling.
7677         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
7678
7679 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
7680
7681         * var-tracking.c (frame_base_decl): Remove useless GTY.
7682
7683 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
7684
7685         * config/rs6000/rs6000.c (rs6000_override_options): Error when
7686         user wants altivec and e500 instructions.
7687
7688 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
7689
7690         PR target/14813
7691         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
7692         in .init_array section to ...
7693         * config/ia64/crtbegin.asm: Here.
7694
7695         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
7696         and hidden if HAVE_INITFINI_ARRAY is defined.
7697
7698 2004-04-21  James E Wilson  <wilson@specifixinc.com>
7699
7700         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
7701         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
7702         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
7703         (fp_register_operand, lo_operand): New.
7704         (mips_rtx_costs): Add TUNE_SB1 support.
7705         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
7706         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
7707         (mips_multipass_dfa_lookahead): New.
7708         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
7709         TUNE_SB1): New.
7710         (TARGET_SWITCHES): Add -mfp-exceptions support.
7711         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
7712         (BRANCH_COST): Fix whitespace.
7713         * config/mips/mips.md: Include sb1.md.
7714         * config/mips/sb1.md: New file.
7715         * doc/invoke.texi: Document -mfp-exceptions.
7716
7717         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
7718         comment.
7719         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
7720         (fixincl.o-warn): Delete.
7721
7722 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
7723
7724         * config/rs6000/rs6000 (print_operand) ['z']:
7725         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
7726
7727 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
7728
7729         * config.gcc: Support --with-arch=iwmmxt for ARM.
7730
7731 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7732
7733         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
7734         in two more places; remove unneeded force_reg
7735
7736 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
7737
7738         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
7739         for TARGET_MACHO.
7740         (print_operand): For TARGET_MACHO check to see if we need a stub
7741         and output one if we need it.
7742
7743         PR debug/15033
7744         * dwarf2out.c (rtl_for_decl_location): Check for NULL
7745         rtl.
7746
7747 2004-04-20  James E Wilson  <wilson@specifixinc.com>
7748
7749         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
7750         (vall_value_gp): Likewise.
7751
7752 2004-04-20  DJ Delorie  <dj@redhat.com>
7753
7754         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
7755         variables stored in word registers, then in memory.
7756
7757 2004-04-20  Eric Christopher  <echristo@redhat.com>
7758
7759         * cp/parser.c (cp_parser_declaration): Move translate
7760         up before tokens are lexed.
7761
7762 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
7763
7764         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
7765         (asin_optab, acos_optab): Define corresponding macros.
7766         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
7767         * genopinit.c (optabs): Implement asin_optab and acos_optab
7768         using asin?f2 and acos?f2 patterns.
7769         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
7770         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
7771         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
7772         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7773
7774         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
7775         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
7776         acos, acosf and acosl built-ins as inline x87 intrinsics.
7777
7778 2004-04-20  Paul Brook  <paul@codesourcery.com>
7779
7780         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
7781
7782 2004-04-20  Paul Brook  <paul@codesourcery.com>
7783
7784         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
7785
7786 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
7787
7788         Revert part of 2004-04-17 change that moved -frename-registers
7789         to -O1.  -frename-registers is buggy.
7790
7791         * toplev.c (flag_rename_registers): Initialize to 0.
7792         * doc/invoke.texi (Optimize options): Move -frename-registers
7793         to "Not triggered by any -O level" section.  Adjust commentary
7794         accordingly.
7795
7796 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
7797
7798         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
7799
7800 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
7801
7802         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
7803         for mflo and mfhi instructions.
7804         (mips_output_move): Remove mflo and mfhi handling.
7805         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
7806         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
7807         Likewise various define_peephole2s.
7808         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
7809         alternatives.
7810         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
7811         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
7812         (mfhilo_di, mfhilo_si): New patterns.
7813
7814 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
7815
7816         * function.c (assign_parms): Force
7817         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
7818
7819 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
7820
7821         * var-tracking.c (variable_part_different_p): Variable parts differ
7822         when the most recent locations differ.
7823
7824 2004-04-19  James E Wilson  <wilson@specifixinc.com>
7825
7826         * rtl.h (reg_set_last): Delete declaration.
7827         * rtlanal.c (reg_set_last): Delete.
7828
7829 2004-04-19  Roger Sayle  <roger@eyesopen.com>
7830
7831         * fold-const.c (fold_convert): Make function extern/public.
7832         * tree.h (fold_convert): Prototype here.
7833         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
7834         expand_builtin_strrchr, expand_builtin_strpbrk,
7835         expand_builtin_mempcpy, expand_builtin_bcopy,
7836         expand_builtin_bzero, expand_builtin_memcmp,
7837         expand_builtin_strcmp, expand_builtin_strncmp,
7838         stabilize_va_list, expand_builtin_sprintf,
7839         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
7840         fold_builtin_exponent, fold_builtin_mempcpy,
7841         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
7842         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
7843         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
7844
7845 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
7846
7847         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
7848         (move_from_CR_gt_bit): New.
7849         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
7850         E500.
7851         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
7852         E500.
7853
7854         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
7855         (tstsfeq_gpr): Same.
7856         (cmpsfgt_gpr): Same.
7857         (tstsfgt_gpr): Same.
7858         (cmpsflt_gpr): Same.
7859         (tstsflt_gpr): Same.
7860         (e500_cceq_ior_compare): New.
7861         (e500_flip_gt_bit): New.
7862
7863         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
7864         (print_operand): Add 'c' and 'D'.
7865         (rs6000_generate_compare): Rewrite to generate correct rtl.
7866         (rs6000_emit_sCOND): Handle E500.
7867         (output_cbranch): Adjust for changes in rs6000_generate_compare.
7868         (output_e500_flip_gt_bit): New.
7869
7870         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
7871         Protoize.
7872
7873 2004-04-19  Eric Christopher  <echristo@redhat.com>
7874
7875         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
7876
7877 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
7878
7879         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
7880         fix information.
7881
7882 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7883
7884         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
7885         download URL.
7886
7887 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
7888
7889         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
7890         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
7891
7892 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
7893
7894         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
7895         (fold_builtin): Update caller to match.
7896
7897         PR bootstrap/15009
7898         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
7899
7900         PR bootstrap/14999
7901         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
7902
7903 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7904
7905         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
7906
7907         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
7908         (expand_mult_highpart_optab): Likewise.
7909         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
7910
7911 2004-04-19  Paul Brook  <paul@codesourcery.com>
7912
7913         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
7914         floatunssisf2, floatunssidf2): New patterns.
7915
7916 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
7917
7918         PR other/14918
7919         * doc/invoke.texi (-fprofile-generate): Document requirement to
7920         use -fprofile-generate when linking.
7921
7922         * doc/extend.texi (Strong Using): Warn users against using this
7923         feature.
7924
7925 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
7926
7927         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
7928         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
7929         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
7930         * config/mips/mips.c (struct mips16_constant): Renamed from struct
7931         constant.  Propogate change throughout file.
7932         (struct machine_function): Remove insns_len.
7933         (mips_string_length, mips16_strings, string_constants): Delete.
7934         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
7935         when generating mips16 code.  Remove special mips16 treatment of
7936         string constants.
7937         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
7938         to have the form LABEL+CONSTANT.
7939         (mips_symbolic_address_p): Fix comment.
7940         (m16_usym8_4, m16_usym5_4): Delete.
7941         (mips_output_function_epilogue): Remove mips16 string handling.
7942         (mips_output_mi_thunk): Call mips16_lay_out_constants.
7943         (mips_select_section, mips_encode_section_info): Remove mips16
7944         string handling.
7945         (struct mips16_constant_pool): New.
7946         (add_constant): Take a mips16_constant_pool structure.  Keep pool
7947         sorted into order of ascending mode size.  Keep track of the highest
7948         possible start address, taking padding and the masking of the base PC
7949         value into account.
7950         (dump_constants_1): New function, split out from dump_constants.
7951         Handle vector constants.  Use gen_consttable_{int,float} rather than
7952         separate functions for each mode.
7953         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
7954         rather than separate functions for each alignment.
7955         (mips_find_symbol): Delete.
7956         (mips16_insn_length): New function, split out from
7957         mips16_lay_out_constants.
7958         (mips16_rewrite_pool_refs): New function.
7959         (mips16_lay_out_constants): Rework. Remove string handling.
7960         Always create an inline constant pool.
7961         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
7962         (UNSPEC_ALIGN): New constants.
7963         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
7964         (UNSPEC_ALIGN_[248]): Delete.
7965         (consttable_int, consttable_float, align): New patterns.
7966         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
7967
7968 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
7969
7970         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
7971         __unn_args_eq.
7972
7973 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
7974
7975         PR target/14715
7976         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
7977         with STARTING_FRAME_OFFSET.
7978
7979 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
7980
7981         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
7982         * config/mips/mips.c (macc_msac_operand): New function.
7983         * config/mips/mips.md (*msac): Move after *macc.
7984         (*msac2): New.  Generalize macc-related peepholes so that they apply
7985         to msac too.
7986
7987 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
7988
7989         * opts.c (decode_options): Do not enable flag_rename_registers
7990         and flag_web at -O3.
7991         * toplev.c (flag_rename_registers): Initialize
7992         flag_rename_registers and flag_web to
7993         AUTODETECT_FLAG_VAR_TRACKING.
7994         (default_debug_hooks): New global.
7995         (process_options): Initialize default_debug_hooks.  Warn if
7996         -fvar-tracking specified but not supported by the current
7997         debug format.  Do not run var tracking at -O0 or if not
7998         supported by the current debug format, even if
7999         -fvar-tracking was given.  If -fno-rename-registers
8000         is not specified, always run register renaming if var
8001         tracking is supported by the default debugging information
8002         format for the target, and we are at -O1 or higher; similarly
8003         for -fweb, but only at -O2 or higher.
8004         * doc/invoke.texi (Optimize Options): Document this.
8005
8006 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8007
8008         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
8009         * configure: Regenerate.
8010
8011 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8012
8013         * gcc.c (used_arg): Check whether an option has been removed.
8014
8015 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8016
8017         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
8018         debugging on Solaris 7 and up.
8019
8020 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8021
8022         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
8023         IRIX 5 port.
8024         Remove -save-temps workaround, handled automatically.
8025         Require GNU binutils 2.15 for debugging.
8026         Remove SGI make warnings since GNU make is now required.
8027         (Specific, mips-sgi-irix6): Some markup fixes.
8028         Describe MIPSpro C problems and workarounds.
8029         Mention working O32 ABI support.
8030         Recommend GNU as 2.15 for O32 with debugging.
8031         Remove description of fixed structure pass/return bug.
8032
8033 2004-04-16  DJ Delorie  <dj@redhat.com>
8034
8035         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
8036         TYPE_FIELDS.
8037         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
8038
8039 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8040
8041         * pa.md: Remove unnecessary declarations for asm_out_file.
8042
8043         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
8044         SAR register.  Fix comment.
8045         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
8046         (%cr11).
8047
8048         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
8049
8050 2004-04-16  Nick Clifton  <nickc@redhat.com>
8051
8052         * config/arm/arm.c (arm_override_options): Revert previous patch.
8053         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
8054         be safely built.
8055
8056 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8057
8058         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
8059         bug.
8060         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
8061         TARGET_DEFAULT): Changed. Ditto.
8062         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
8063         TARGET_ENDIAN_DEFAULT): Added. Ditto.
8064         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
8065         (TARGET_ENDIAN_DEFAULT): Added.
8066
8067 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8068
8069         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
8070         ATTR_CONST_NOTHROW_LIST.
8071
8072 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8073
8074         PR/middle-end 14915
8075         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
8076         BITS_BIG_ENDIAN.
8077
8078 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
8079
8080         * ra-debug.c (ra_print_rtx): Add break's to case legs.
8081
8082 2004-04-14  James E Wilson  <wilson@specifixinc.com>
8083
8084         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
8085
8086 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
8087
8088         * libada-mk.in: New file.
8089         * configure.ac: Create libada-mk from libada-mk.in.
8090         * configure: Regenerate.
8091
8092 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
8093
8094         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
8095         (logb_optab, ilogb_optab): Define corresponding macros.
8096         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
8097         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
8098         using logb?f2 and ilogb?i2 patterns.
8099         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
8100         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
8101         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
8102         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8103
8104         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
8105         and UNSPEC_XTRACT_EXP.
8106
8107         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
8108         patterns to implement fxtract x87 instruction.
8109         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
8110         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
8111         intrinsics.
8112         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
8113         x87's fxtract insn.
8114
8115 2004-04-14  Eric Christopher  <echristo@redhat.com>
8116
8117         * config/mips/t-elf: Enable multilibs by default.
8118
8119 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
8120
8121         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
8122         previous fix to check HAVE_return at runtime too.
8123
8124 2004-04-14  Nick Clifton  <nickc@redhat.com>
8125
8126         * config/arm/arm.c (arm_override_options): If the user has not
8127         specified an ABI, then default to AAPCS for the iWMMXt processor.
8128         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
8129         * config/arm/t-xscale-coff: Likewise.
8130
8131 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8132
8133         * builtins.c (fold_builtin_isdigit): New.
8134         (fold_builtin): Handle BUILT_IN_ISDIGIT.
8135         * defaults.h: Add TARGET_DIGIT0 and sort.
8136         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
8137
8138 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8139
8140         * builtins.c (fold_builtin_cabs, fold_builtin): Use
8141         `mathfn_built_in' to determine the new builtin.
8142         * fold-const.c (fold): Likewise.
8143
8144 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
8145
8146         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
8147         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
8148         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
8149         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
8150         (ASM_SPEC): Update accordingly.
8151         * config/mips/mips.c: Update after above renaming.
8152         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
8153         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
8154
8155 2004-04-13  James E Wilson  <wilson@specifixinc.com>
8156
8157         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
8158         increment errorcount and return false instead of true.
8159
8160 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
8161
8162         * optabs.c (expand_twoval_unop): Reorder function arguments.
8163         * builtins.c (expand_builtin_mathfn_3): Update calls to
8164         expand_twoval_unop.
8165
8166         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
8167         and UNSPEC_TAN_TAN. Add missing comment.
8168
8169         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
8170         patterns to implement fptan x87 instruction.
8171         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
8172         and tanl built-ins as inline x87 intrinsics. Define corresponding
8173         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
8174         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
8175         x87's fptan insn.
8176
8177 2004-03-13  Richard Henderson  <rth@redhat.com>
8178
8179         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
8180         for LABEL_REFs.
8181
8182         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
8183         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
8184         * doc/invoke.texi: Update to match.
8185
8186         * varasm.c (unlikely_text_section): Use assemble_align instead of
8187         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
8188         correct alignment argument.
8189
8190 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
8191
8192         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
8193         after setting reg_last_reload_reg for optional output reloads.
8194
8195 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
8196
8197         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
8198         Definition of these two macros are corrected by adding
8199         matchine right paren.
8200
8201 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
8202
8203         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
8204
8205 2004-04-12  Roger Sayle  <roger@eyesopen.com>
8206
8207         * config/i386/i386.c (output_387_reg_move): New function.
8208         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
8209         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
8210         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
8211         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
8212         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
8213
8214 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8215
8216         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
8217         TYPE_DECL.
8218         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
8219         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
8220         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
8221         Use skip_simple_arithmetic to find SAVE_EXPR.
8222         (force_type_save_exprs, force_type_save_exprs_1): New functions.
8223         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
8224         Properly chain multiple pointers.
8225         (copy_tree_r): Copy a TYPE_DECL.
8226         * tree.c (variably_modified_type_p): Add some missing tests and
8227         make some other minor changes.
8228         * tree.h (force_type_save_exprs): New declaration.
8229
8230 2004-04-12  Roger Sayle  <roger@eyesopen.com>
8231
8232         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
8233         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
8234         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
8235         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
8236         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
8237         x%-1 into 0 (or x&0 if x has side-effects).
8238
8239 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
8240
8241         * config/rs6000/rs6000.md: Document why a pattern is not
8242         available.
8243
8244         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
8245         of floats on the E500.
8246         (branch_positive_comparison_operator): Do not allow NE even on the
8247         E500.
8248
8249 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
8250
8251         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
8252         in_text_unlikely_section to in_unlikely_text_section.
8253
8254 2004-04-11  Roger Sayle  <roger@eyesopen.com>
8255
8256         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
8257         calling convention to allow a NULL_TREE to be returned.  Factor
8258         sanity checks from callers, return NULL_TREE when appropriate.
8259         (fold): Handle COMPOUND_EXPR operands of binary expressions
8260         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
8261         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
8262         calls to fold_binary_op_with_conditional_arg.
8263
8264 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8265
8266         * config/mips/iris5.h (current_section_flags):  Add
8267         in_unlikely_executed_text and default case.
8268
8269 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
8270
8271         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
8272         failure on solaris. Place ifdef HAVE_return around gen_ret call.
8273         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
8274         HAVE_return and place it around the place where it is needed.
8275
8276 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
8277
8278         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
8279         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
8280         and NORMAL_TEXT_SECTION_NAME.
8281         (unlikely_text_section): Check targetm.have_named_sections
8282         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
8283         instead of SECTION_FORMAT_STRING.
8284         * config/mips/iris5.h (current_section_name): Add
8285         in_unlikely_executed_text case and move the abort into the switch.
8286         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
8287         (NORMAL_TEXT_SECTION_NAME): Remove.
8288         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
8289         (SECTION_FORMAT_STRING): Remove.
8290         * defaults.h (SECTION_FORMAT_STRING): Remove.
8291         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
8292         (SECTION_FORMAT_STRING): Remove.
8293
8294 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
8295
8296         * c-typeck.c (common_type): Prefer long long to long when same
8297         precision.
8298
8299 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
8300
8301         PR 14887
8302         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
8303         mode argument.
8304         * config/ia64/ia64.c (ia64_hpux_file_end): Check
8305         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
8306
8307 2004-04-09  Roger Sayle  <roger@eyesopen.com>
8308
8309         * simplify-rtx.c (mode_signbit_p): New function to check whether
8310         an RTX is an immediate constant that represents the most significant
8311         bit of a given machine mode.
8312         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
8313         C is the sign bit.
8314         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
8315         when C2 is the sign bit.
8316         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
8317         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
8318         sign bit.
8319
8320 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8321
8322         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
8323         TYPE_MODE.
8324
8325 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
8326
8327         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
8328         of TREE_READONLY for types.
8329
8330 2004-04-09  Caroline Tice  <ctice@apple.com>
8331
8332         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
8333         (struct basic_block_def):  Add new field, partition.
8334         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
8335         definitions.
8336         (partition_hot_cold_basic_blocks): Add extern function
8337         declaration.
8338         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
8339         include statements.
8340         (N_ROUNDS): Increase the maximum number of rounds by 1.
8341         (branch_threshold): Add array value for new round.
8342         (exec_threshold): Add array value for new round.
8343         (push_to_next_round_p): New function.
8344         (add_unlikely_executed_notes): New function.
8345         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
8346         (mark_bb_for_unlikely_executed_section): New function.
8347         (add_labels_and_missing_jumps): New function.
8348         (add_reg_crossing_jump_notes): New function.
8349         (fix_up_fall_thru_edges): New function.
8350         (find_jump_block): New function.
8351         (fix_crossing_conditional_branches): New function.
8352         (fix_crossing_unconditional_branches): New function.
8353         (fix_edges_for_rarely_executed_code): New function.
8354         (partition_hot_cold_basic_blocks): New function.
8355         (find_traces):  Add an extra round for partitioning hot/cold
8356         basic blocks.
8357         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
8358         and only cold blocks, into the last (extra) round of collecting traces.
8359         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
8360         over crossing edges.
8361         (bb_to_key):  Add code to correctly identify cold blocks when
8362         doing partitioning.
8363         (connect_traces): Modify to connect all the non-cold traces first, then
8364         go back and connect up all the cold traces.
8365         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
8366         * cfg.c (entry_exit_blocks): Add initialization for partition field in
8367         entry and exit blocks.
8368         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
8369         if we are doing hot/cold partitioning.
8370         * cfgcleanup.c (cfglayout.h): Add new include statement.
8371         (try_simplify_condjump): Modify to not attempt on blocks with jumps
8372         that cross section boundaries.
8373         (try_forward_edges): Likewise.
8374         (merge_blocks_move_predecessor_nojumps): Likewise.
8375         (merge_blocks_move_successor_nojumps): Likewise.
8376         (merge_blocks_move): Likewise.
8377         (try_crossjump_to_edge): Modify to not attempt after we have done
8378         the block partitioning.
8379         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
8380         cross section boundaries.
8381         (try_optimize_cfg): Likewise.
8382         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
8383         jumps that cross section boundaries.
8384         * cfglayout.c (flags.h): Add new include statement.
8385         (update_unlikely_executed_notes):  New function.
8386         (fixup_reorder_chain):  Add code so when a new jumping basic block is
8387         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
8388         updated appropriately.
8389         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
8390         introduced by this optimization.
8391         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
8392         extern function declaration.
8393         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
8394         list of notes that can be deleted.
8395         (create_basic_block_structure):  Add initialization for partition field.
8396         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
8397         section boundaries.
8398         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
8399         cross section boundaries.
8400         (commit_one_edge_insertion): Add code so newly created basic block
8401         ends up in correct (hot or cold) section.  Modify to disallow
8402         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
8403         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
8404         crosses section boundaries.
8405         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
8406         cross section boundaries.
8407         (force_nonfallthru_and_redirect): Modify to make sure new basic block
8408         ends up in correct section, with correct notes attached.
8409         * common.opt (freorder-blocks-and-partition):  Add new flag for this
8410         optimization.
8411         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
8412         the end of functions are written into the correct (hot or cold)
8413         section.
8414         (dbx_source_file): Add code so writing debug file information
8415         doesn't incorrectly change sections.
8416         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
8417         in partitioning hot/cold basic blocks into separate sections.
8418         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
8419         section partitioning.
8420         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
8421         conditional branches can span all of memory.
8422         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
8423         unconditional branches can span all of memory.
8424         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
8425         (final_scan_insn):  Add code to check for NOTE instruction indicating
8426         whether basic block belongs in hot or cold section, and to make sure
8427         the current basic block is being written to the appropriate section.
8428         Also added code to ensure that jump table basic blocks end up in the
8429         correct section.
8430         * flags.h (flag_reorder_blocks_and_partition):  New flag.
8431         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
8432         one of the branches has a jump that crosses between sections.
8433         (find_if_case_2): Likewise.
8434         (ifcvt): Modify to not attempt to mark loop exit edges after
8435         hot/cold partitioning has occurred.
8436         * opts.c (decode_options): Code to handle new flag,
8437         flag_reorder_blocks_and_partition; also to turn it off if
8438         flag_exceptions is on.
8439         (common_handle_option): Code to handle new flag,
8440         flag_reorder_blocks_and_partition.
8441         * output.h (unlikely_text_section): New extern function declaration.
8442         (in_unlikely_text_section): New extern function declaration.
8443         * passes.c (rest_of_handle_stack_regs):  Add
8444         flag_reorder_blocks_and_partition as an 'or' condition for calling
8445         reorder_basic_blocks.
8446         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
8447         as an 'or' condition for calling reorder_basic_blocks.
8448         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
8449         * print-rtl.c (print_rtx): Add code for handling new note,
8450         NOTE_INSN_UNLIKELY_EXECUTED_CODE
8451         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
8452         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
8453         cross between section boundaries.
8454         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
8455         indicating the basic block containing it belongs in the cold section.
8456         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
8457         between hot and cold sections.
8458         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
8459         initialize this flag, and to tie it to the command-line option
8460         freorder-blocks-and-partition.
8461         * varasm.c (cfglayout.h):  Add new include statement.
8462         (unlikely_section_label_printed):  New global variable, used for
8463         determining when to output section name labels for cold sections.
8464         (in_section):  Add in_unlikely_executed_text to enum data structure.
8465         (text_section):  Modify code to use SECTION_FORMAT_STRING and
8466         NORMAL_TEXT_SECTION_NAME macros.
8467         (unlikely_text_section):  New function.
8468         (in_unlikely_text_section):  New function.
8469         (function_section):  Add code to make sure beginning of function is
8470         written into correct section (hot or cold).
8471         (assemble_start_function):  Add code to make sure stuff is written to
8472         the correct section.
8473         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
8474         to an if statement that was checking 'in_text_section'.
8475         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
8476         condition to an if statement that was checking 'in_text_section'.
8477         (default_section_type_flags_1):  Add check: if in cold section
8478         flags = SECTION_CODE.
8479         * config/darwin.c (darwin_asm_named_section):  Modify to use
8480         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
8481         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
8482         specifically for the i386.
8483         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
8484         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
8485         text string to something more informative.
8486         (NORMAL_TEXT_SECTION_NAME): Add new definition.
8487         (SECTION_FORMAT_STRING):  Add new definition.
8488         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
8489         '!in_unlikely_text_section' as an 'and' condition to an if statement
8490         that was already checking '!in_text_section'.
8491         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
8492         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
8493         sure these are properly defined for linux on ppc.
8494         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
8495         for this new flag.
8496         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
8497         reg_note.
8498         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
8499         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
8500         these new macros.
8501
8502 2004-04-08  Roger Sayle  <roger@eyesopen.com>
8503
8504         * function.c (gen_mem_addressof): When changing the RTX from a REG
8505         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
8506
8507 2004-04-08  Roger Sayle  <roger@eyesopen.com>
8508
8509         PR target/14888
8510         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
8511         truncxfdf2_noop): Provide dummy "fmov" implementations.
8512
8513 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
8514
8515         * gcc.c (default_compilers): Add missing initializers.
8516
8517         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8518         Return 1 if file was successfully mapped.
8519
8520 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
8521
8522         PR pch/13419
8523         PR pch/14137
8524         Radar #: 3315288
8525         * doc/invoke.texi (Precompiled Headers): Suggest -o
8526         to put an output file in a particular place.  Be more detailed
8527         about which options affect PCH validity and which options
8528         might not work.
8529         * c-pch.c (pch_matching): New.
8530         (MATCH_SIZE): New.
8531         (struct c_pch_validity): New field 'match'.
8532         (pch_init): Handle pch_matching.
8533         (c_common_valid_pch): Check pch_matching.
8534
8535         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
8536
8537 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
8538
8539         * doc/invoke.texi (Precompiled Headers): Warn about known
8540         problems.
8541
8542 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
8543
8544         PR c++/14808
8545         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
8546         to 1 if ASM_OUTPUT_DEF is defined.
8547         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
8548         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
8549         Set to non-zero iff not a one_only decl.
8550
8551 2004-04-08  Paul Brook  <paul@codesourcery.com>
8552
8553         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
8554
8555 2004-04-08  Paul Brook  <paul@codesourcery.com>
8556
8557         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
8558         PROMOTE_FOR_CALL_ONLY.
8559         * config/arm/arm-protos.h (arm_function_value): Declare.
8560         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
8561         (TARGET_PROMOTE_PROTOTYPES): Return false.
8562         (arm_function_value): New function.
8563         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
8564         (FUNCTION_VALUE): Call arm_function_value.
8565         * config/cris/cris.h (PROMOTE_MODE): Rename ...
8566         (PROMOTE_FUNCTION_MODE): ... to this.
8567         (PROMOTE_FOR_CALL_ONLY): Remove.
8568         * config/mmix/mmix.h: Likewise.
8569         * config/s390/s390.h: Likewise.
8570         * config/sparc/sparc.h: Likewise.
8571         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
8572         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
8573         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
8574         (PROMOTE_FOR_CALL_ONLY): Remove.
8575
8576 2004-04-08  Joel Sherrill <joel@oarcorp.com>
8577
8578         PR ada/14538
8579         * ada/5rosinte.adb: Remove fake mprotect() body.
8580         * ada/5rosinte.ads: Add SA_SIGINFO.
8581         * ada/5rtpopsp.adb: Rewrite to use new interface.
8582         * ada/init.c: Reorder so the simple single OS conditional __rtems__
8583         is tested before more complex ones which mix UNIX and embedded
8584         systems in the conditional.
8585
8586 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
8587
8588         PR ada/14665
8589         * ada/osint.adb (Find_Program_Name): Rework to properly handle
8590         filenames which end in .exe or have versioning suffixes like VMS.
8591
8592 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
8593
8594         PR target/10129
8595         * config/darwin.c (darwin_encode_section_info): When the decl has
8596         a DECL_INITIAL, it is only defined also when it is not a common.
8597
8598 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8599
8600         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
8601         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
8602
8603 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
8604
8605         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
8606         global register variables.
8607
8608 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
8609
8610         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
8611         rpc_xdr_lvalue_cast_b): New fixes.
8612         * fixinc/fixincl.x: Regenerate.
8613         * fixinc/tests/base/rpc/xdr.h: Add new tests.
8614
8615 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
8616
8617         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
8618         to power4 and power5 entries.
8619
8620 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
8621
8622         * c-common.h (pending_lang_change): Mark for PCH.
8623
8624 2004-04-07  Caroline Tice  <ctice@apple.com>
8625
8626         * gcc.c (main): Move 'break' in main loops (on an error)
8627         to wait until error processing has occurred.
8628
8629 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
8630
8631         * config.gcc: Stop changing enable_threads midstream.
8632         Replace uses of enable_threads_flag with enable_threads.
8633         * configure.ac: Replace uses of enable_threads_flag with
8634         enable_threads.  Improve autoconf quotation in one place.
8635         * configure: Regenerate.
8636
8637 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
8638
8639         * builtins.c: Implement support for sincos function.
8640         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
8641         BUILT_IN_COS{,F,L}.
8642         (expand_builtin_mathfn_3): New function.
8643         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
8644         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
8645         flag_unsafe_math_optimization is set.
8646
8647         * optabs.h (enum optab_index): Add new OTI_sincos.
8648         (sincos_optab): Define corresponding macro.
8649
8650         * optabs.c (init_optabs): Initialize sincos_optab.
8651         (expand_twoval_unop): New function.
8652
8653         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
8654         patterns.
8655
8656         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
8657         and UNSPEC_SINCOS_SIN.
8658
8659         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
8660         sincosxf3): New patterns to implement sincos, sincosf and sincosl
8661         built-ins as inline x87 intrinsics. Define splits for
8662         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
8663         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
8664         sincos patterns.
8665         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
8666         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
8667
8668         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
8669         x87's fsincos insn.
8670
8671 2004-04-06  Devang Patel  <dpatel@apple.com>
8672
8673         PR 14467
8674         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
8675
8676 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8677
8678         * doc/install.texi: Update HP-UX 11 installation procedure.
8679
8680 2004-04-06  Paul Brook  <paul@codesourcery.com>
8681
8682         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
8683
8684 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
8685
8686         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
8687         when the TLS address is generated by a function call.
8688         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
8689         (tls_local_dynamic): Likewise.
8690
8691 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
8692
8693         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
8694         and TYPE_VOLATILE.
8695
8696 2004-04-05  Caroline Tice  <ctice@apple.com>
8697
8698         * gcc.c (combine_flag): New global variable, for new driver option.
8699         (struct compiler): Add two new fields, to be used when
8700         combining multiple input files in a single pass (IMA).
8701         (default_compilers):  Add values for the new fields to all
8702         compiler entries. Modify the "@c" compiler entry for doing IMA
8703         properly with "-save-temps" and the "combine" flag.
8704         (option_map):  Add new driver option, "--combine", to tell driver
8705         to pass multiple input files to compiler at one time.
8706         (have_o_argbuf_index): New global variable.
8707         (store_arg): Modify to assign value to have_o_argbuf_index.
8708         (struct infile):  Add three new fields, to help with IMA.
8709         (display_help): Add help for new "combine" option.
8710         (process_command): Remove local variable have_o; add code to check
8711         for new "combine" option; remove assignment to combine_inputs.
8712         (do_spec_1):  Modify to deal with IMA better.
8713         (main): Make variable 'lang_n_infiles' local to entire function
8714         rather than to a single block.  Use flag combine_flag to
8715         determine whether to do IMA or not; Modify loop initializing
8716         infiles to deal properly with linker files.
8717         Add code for doing preprocessing in presence of
8718         IMA with "-save-temps" flag.  Modify "main" loop to handle
8719         multiple input files, in multiple languages, with or without
8720         preprocessing,  gracefully.
8721         * toplev.c (set_src_pwd): Modify to not complain if attempting to
8722         re-set it to same directory it's previously been set to (avoid
8723         irritating, meaningless warning messages when doing IMA with
8724         save-temps).
8725         * doc/invoke.texi: Add "-combine" to list of Overall Options;
8726         remove documentation about IMA that is no longer accurate; Add
8727         documentation explaining what "-combine" does.
8728         * ada/lang-specs.h: Add initialization values for new fields in
8729         "struct compiler".
8730         * cp/lang-specs.h: Likewise.
8731         * f/lang-specs.h: Likewise.
8732         * java/lang-specs.h: Likewise.
8733         * objc/lang-specs.h: Likewise.
8734         * treelang/lang-specs.h: Likewise.
8735
8736 2004-04-05  David Edelsohn
8737
8738         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
8739         symbol handling.
8740
8741 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
8742             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8743
8744         PR optimization/13424 (hppa), bootstrap/14462, c/14828
8745         * pa.md: Use replace_equiv_address to retain the attributes of the
8746         memory operands used in the split and peephole2 patterns for optimizing
8747         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
8748
8749 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8750
8751         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
8752         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
8753         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
8754         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
8755         PARM_DECL.
8756         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
8757         for a type.
8758         * print-tree.c (print_node): Properly handle side-effects, readonly,
8759         and constant flags.
8760         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
8761         and TREE_CONSTANT if not a type.
8762         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
8763         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
8764         (NON_TYPE_CHECK): New macro.
8765         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
8766
8767 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
8768
8769         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
8770         to DWARF2_DEBUG unconditionally.
8771         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
8772
8773 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
8774             Nathanael Nerode  <neroden@gcc.gnu.org>
8775
8776         PR target/14548
8777         * config.host: Set the shell variable host_can_use_collect2.
8778         Set it to yes by default, and to no for alpha*-dec-*vms*,
8779         i[34567]86-*-mingw32*, and powerpc-*-beos*.
8780         * configure.ac: Set and substitute the shell variable collect2.
8781         Give an error if use_collect2 is yes and host_can_use_collect2 is
8782         no.
8783         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
8784         uses.  Initialize to @collect2@.
8785         (STAGESTUFF): Remove $(USE_COLLECT2).
8786         * config/alpha/x-vms (USE_COLLECT2): Don't set.
8787         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
8788         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
8789         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
8790         * configure: Regenerate.
8791
8792 2004-04-04  Roger Sayle  <roger@eyesopen.com>
8793
8794         * simplify-rtx.c (simplify_binary_operation): Constant fold
8795         DIV, MOD, UDIV and UMOD using div_and_round_double.
8796
8797 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
8798
8799         PR c++/14804
8800         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
8801         RECORD_TYPEs.
8802
8803 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
8804
8805         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
8806         documentation.
8807
8808 2004-04-04  Roger Sayle  <roger@eyesopen.com>
8809
8810         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
8811         updating the REG_EQUAL note on an insn's libcall_insn.
8812
8813 2004-04-04  Roger Sayle  <roger@eyesopen.com>
8814
8815         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
8816
8817 2004-04-03  Roger Sayle  <roger@eyesopen.com>
8818
8819         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
8820         with reorder_operands_p.
8821
8822 2004-04-03  Jan Hubicka  <jh@suse.cz>
8823
8824         * md.texi (vec_set, vec_extract, vec_init): Document.
8825
8826 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
8827
8828        * opts.c (decode_options): Do function inlining with very small
8829        max-inline-insns-* parameters when optimizing for size.
8830
8831 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
8832
8833         * config/i386/i386.h (TARGET_NOCONA): New macro.
8834         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
8835         (processor_type): Add PROCESSOR_NOCONA.
8836
8837         * config/i386/i386.md (cpu): Add nocona to the attribute values.
8838
8839         * config/i386/i386.c (nocona_cost): New variable.
8840         (m_NOCONA): New macro.
8841         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
8842         x86_branch_hints, x86_use_sahf, x86_single_stringop,
8843         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
8844         x86_integer_DFmode_moves, x86_partial_reg_dependency,
8845         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
8846         x86_decompose_lea, x86_arch_always_fancy_math_387,
8847         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
8848         x86_ext_80387_constants, x86_four_jump_limit):
8849         (override_options): Add nocona_cost to processor_target_table.
8850         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
8851         (incdec_operand): Prevent inc/dec generation for Nocona too.
8852         (ix86_issue_rate): Add PROCESSOR_NOCONA.
8853
8854 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
8855
8856         * rtlanal.c (find_reg_note): Manually
8857         unswitch the loop.
8858
8859 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
8860
8861         * genemit.c (gen_split): Change prototype of generated code.
8862         * genrecog.c (write_action): Adjust prototype for and calls to
8863         gen_split_*.
8864         * gensupport.c (struct queue_elem): Add split field.
8865         (queue_pattern): Return a value.  Clear the split field.
8866         (process_rtx): Maintain an association between an insn and the
8867         split generated from it for a define_insn_and_split.
8868         (process_one_cond_exec): Generate a new split for a
8869         define_insn_and_split.
8870         * config/arm/arm-protos.h (arm_split_constant): Add insn
8871         parameter.
8872         (emit_constant_insn): New function.
8873         (arm_gen_constant): Use it.
8874         * config/arm/arm.md: Adjust calls to arm_split_constant.
8875
8876 2004-04-02  Jan Hubicka  <jh@suse.cz>
8877
8878         * cgraph.c: Add overall comment.
8879         (cgraph_inline_hash): New global variable.
8880         (cgraph_create_node): Break out from ...
8881         (cgraph_node): ... here.
8882         (cgraph_edge): New function.
8883         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
8884         (cgraph_remove_edge): Accept edge, intead of source and destination.
8885         (cgraph_redirect_edge_callee): New.
8886         (cgraph_remove_node): Update all new datastructures.
8887         (cgraph_record_call, cgraph_remove_call): Kill.
8888         (dump_cgraph_node): Break out from ... ; dump new datastructures.
8889         (dump_cgraph): ... here.
8890         (cgraph_function_possibly_inlined_p): Use new hashtable.
8891         (cgraph_clone_edge, cgraph_clone_node): New.
8892         * cgraph.h: Include hashtab.h
8893         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
8894         fields, add inlined_to pointer.
8895         (cgraph_node): Add pointer to next_clone.
8896         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
8897         (cgraph_remove_call, cgraph_record_call): Kill.
8898         (cgraph_inline_hash): Declare.
8899         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
8900         cgraph_redirect_edge_callee): Declare.
8901         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
8902         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
8903         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
8904         * cgraphunit.c: Add overall comment.
8905         (cgraph_optimize_function): Kill.
8906         (cgraph_assemble_pending_functions): Do not assemble inline clones.
8907         (cgraph_finalize_function): Update call of cgraph_remove_node
8908         (record_call_1): Record call sites.
8909         (cgraph_create_edges): Accept node instead of decl argument.
8910         (error_found): New static variable.
8911         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
8912         (cgraph_analyze_function): Update for new datastructures.
8913         (cgraph_finalize_compilation_unit): Plug memory leak.
8914         (cgraph_optimize_function): Kill.
8915         (cgraph_expand_function): Do not use cgraph_optimize_function.
8916         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
8917         cgraph_inlined_callees): Kill.
8918         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
8919         clones.
8920         (estimate_growth): Simplify.
8921         (cgraph_clone_inlined_nodes): New function.
8922         (cgraph_mark_inline_edge): Re-implement.
8923         (cgraph_mark_inline): Likewise.
8924         (cgraph_check_inline_limits): Simplify.
8925         (cgraph_recursive_inlining_p): New.
8926         (update_callee_keys): Break out from ...
8927         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
8928         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
8929         Likewise.
8930         (cgraph_expand_all_functions):  Remove inline clones from the ordered
8931         list.
8932         (cgraph_preserve_function_body_p): New predicate.
8933         (cgraph_optimize): Verify cgraph.
8934         * function.h (struct function): Add fields saved_tree/saved_args.
8935         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
8936         * toplev.c (rest_of_compilation): Do not free cfun.
8937         * tree-inline.c: Include function.h
8938         (struct inline_data): Add saving_p field; replace decl/current_decl by
8939         node/current_node.
8940         (insert_decl_map): New function.
8941         (copy_body_r): Handle saving; update cgraph datastructure.
8942         (copy_body): Handle recursive inlining.
8943         (initialize_inlined_parameters): Likewise.
8944         (expand_call_inline): Propagate node attributes; update cgraph.
8945         (optimize_inline_calls): Verify that datastructure still match.
8946         (save_body): New function.
8947         * tree-inline.h (save_body): New.
8948         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
8949         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
8950         * langhooks.c (lang_hooks): Add update_decl_after_saving.
8951
8952 2004-04-01  Serge Belyshev  <1319@bot.ru>
8953
8954         PR target/14702
8955         * config/i386/i386.md: fix source operand constraints in
8956         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
8957
8958 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8959
8960         * fold-const.c (folda): Preserve types of comparisons.
8961
8962 2004-04-01  Richard Henderson  <rth@redhat.com>
8963
8964         * toplev.c (backend_init): Move init_optimization_passes call ...
8965         (lang_dependent_init): ... here.
8966
8967 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
8968             Jakub Jelinek  <jakub@redhat.com>
8969
8970         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
8971         -lgcc --as-needed -lgcc_s --no-as-needed by default.
8972         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
8973         * configure: Rebuilt.
8974         * config.in: Rebuilt.
8975         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
8976         (stage2-start, stage3-start, stage4-start): Likewise.
8977         (stageprofile-start, stagefeedback-start): Likewise.
8978
8979 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
8980
8981         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
8982         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8983         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8984         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8985         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
8986         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
8987         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
8988         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
8989         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
8990         * config/sparc/t-linux: Removed.
8991
8992 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
8993
8994         PR c++/14755
8995         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
8996         "bitfld++ == const" to "++bitfld == const + incr" transformations.
8997
8998 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8999
9000         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
9001         * stor-layout.c (layout_decl): Likewise.
9002         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
9003         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
9004         * print-tree.c (print_node): Handle various used of unsigned_flag.
9005         * tree.def (BIT_FIELD_REF): Update comment.
9006         * tree.h (TREE_UNSIGNED): Deleted.
9007         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
9008
9009 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9010
9011         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
9012         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
9013         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
9014         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
9015         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
9016         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
9017         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
9018         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
9019         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
9020         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
9021         REAL_TYPE, not INTEGER_TYPE.
9022         (layout_type, case VECTOR_TYPE): Simplify code.
9023         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
9024         * tree.h: Update comments.
9025         (STRIP_NOPS): Use TYPE_UNSIGNED.
9026         (TYPE_UNSIGNED): New macro.
9027         (TYPE_TRAP_SIGNED): Remove now redundant check.
9028         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
9029
9030 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9031
9032         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
9033
9034 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
9035
9036         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
9037         Add darwin-fpsave.asm, darwin-vecsave.asm,
9038         and darwin-world.asm.
9039         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
9040         as the asm files contain altivec instructions.
9041         * config/rs6000/darwin-fpsave.asm: New file.
9042         * config/rs6000/darwin-vecsave.asm: New file.
9043         * config/rs6000/darwin-world.asm: New file.
9044
9045 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
9046
9047         * gengtype-yacc.y (option, stringseq): Add missing
9048         terminating semicolon.
9049
9050 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
9051
9052         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
9053         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
9054         tls_dtprel_ha_32, tls_dtprel_ha_64,
9055         tls_dtprel_lo_32, tls_dtprel_lo_64,
9056         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
9057         tls_tprel_ha_32, tls_tprel_ha_64,
9058         tls_tprel_lo_32, tls_tprel_lo_64,
9059         tls_got_tprel_32, tls_got_tprel_64,
9060         tls_tls_32, tls_tls_64): Replace register_operand with
9061         gpc_reg_operand.
9062
9063 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
9064
9065         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
9066         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
9067         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
9068         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
9069         *ctrdi_internal6): Replace register_operand with
9070         nonimmediate_operand.
9071
9072 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
9073
9074         * fold-const.c (fold): Reassociate multiply expression
9075         with an adjacent non-multiply expression to use
9076         architecture's multiply-add instruction.
9077
9078 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
9079
9080         * gengtype.c (create_option): New function.
9081         * gengtype.h: Prototype it.
9082         * gengtype-yacc.y (stringseq): New rule.
9083         (option): Use create_option.  Add new bare ID production.  Use
9084         stringseq, not STRING directly.
9085
9086         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
9087         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
9088         * varray.h, config/alpha/alpha.c:
9089         Use new shorter form of GTY markers.
9090
9091         * doc/gty.texi: Rewrite.
9092
9093 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
9094
9095         * config/darwin.c (machopic_function_base_name):
9096         Remove current_name and getting the name of the
9097         current function.
9098
9099 2004-03-30  Nick Clifton  <nickc@redhat.com>
9100
9101         * config/arm/arm.md (thumb_jump): Reduce the backward branch
9102         range, and increase the forward branch range, to allow for
9103         the fact that the PC will be off by 4.
9104
9105 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
9106
9107         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
9108
9109 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9110
9111         * config/rs6000/rs6000.c (output_vec_const_move):
9112         Find all cases of EASY_VECTOR_15_ADD_SELF.
9113         (easy_vector_constant_add_self): Accept
9114         all vector constant loadable by vsplt* and vadd*.
9115         (easy_vector_same): Use easy_vector_splat_const.
9116         (easy_vector_const): Use easy_vector_splat_const.
9117         (easy_vector_splat_const): New function.
9118         (gen_easy_vector_constant_add_self): New function.
9119
9120         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
9121         New prototype.
9122
9123         * config/rs6000/altivec.md (movv4si splitter): Change to
9124         emit move insn with halfed vector constant.
9125         (*movv8hi splitter): Likewise.
9126         (*movv16qi splitter): Likewise.
9127
9128 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9129
9130         PR 11591
9131         * config/rs6000/rs6000.c (rs6000_legitimate_address):
9132         Allow any offset to argument pointer in no-strict case.
9133
9134 2004-03-30  Jan Hubicka  <jh@suse.cz>
9135
9136         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
9137         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
9138         dump file in non-unit-at-a-time mode.
9139
9140 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
9141
9142         * config/cris/cris.h: Correct #ifdef to test for
9143         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
9144         HAVE_AS_MUL_BUG_ABORT_OPTION.
9145
9146 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9147
9148         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
9149         the address inside the old RTL.
9150
9151 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
9152
9153         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
9154         (struct c_binding, struct c_scope): Add chain_next
9155         attributes to GTY markers.
9156         (struct lang_identifier, struct lang_tree_node): Define
9157         here...
9158         * c-tree.h: ... not here.  No longer need to declare struct
9159         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
9160         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
9161         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
9162
9163         PR 14734, 11944
9164         * c-decl.c (get_parm_info): If error_mark_node is encountered
9165         in the bindings chain, unbind and discard it; don't abort.
9166
9167 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
9168             Dorit Naishlos <dorit@il.ibm.com>
9169
9170         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
9171         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
9172
9173 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
9174
9175         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
9176
9177         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
9178         (m68hc11_attribute_table): New attribute "page0" to mark a global
9179         variable as being allocated from within page0 section.
9180         (m68hc11_encode_label): New function.
9181         (m68hc11_strip_name_encoding): New function.
9182         (m68hc11_page0_symbol_p): New function.
9183         (m68hc11_indirect_p): Accept global variables marked in page0.
9184         (m68hc11_encode_section_info): Lookup "page0" attribute.
9185
9186         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
9187         represents access to page0 variables.
9188
9189         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
9190         ("*logicalsi3_silshl16_zext"): Likewise.
9191         ("*ashldi3_const32"): Likewise.
9192         (peephole2 ashift): Likewise.
9193
9194 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
9195
9196         * c-tree.h (C_DECL_REGISTER): New.
9197         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
9198         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
9199         (build_array_ref, c_mark_addressable): Set and use it.
9200         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
9201         Allow structures with volatile fields to be declared register.
9202         Don't check TREE_ADDRESSABLE before warning about taking address
9203         of register.
9204         * c-decl.c (finish_decl): Don't allow structures with volatile
9205         fields to be placed in named register.
9206         * doc/trouble.texi: Remove reference to structures with volatile
9207         fields in registers.
9208
9209 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
9210
9211         * function.c (thread_prologue_and_epilogue): Move
9212         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
9213         before the epilogue.
9214
9215 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
9216
9217         * expr.c (store_constructor): Use gen_int_mode to correctly
9218         sign-extend CONST_INT value.
9219
9220 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9221
9222         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
9223         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
9224         * doc/extend.texi: Likewise.
9225
9226 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
9227
9228         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
9229           with TYPE_ORIG_SIZE_TYPE.
9230
9231 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
9232
9233         PR 14219
9234         * c-typeck.c (build_binary_op): Do not allow comparisons of
9235         vectors.
9236
9237 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
9238
9239         * config.gcc: Remove sparc-tti-*.
9240         * config/sparc/pbd.h: Delete.
9241
9242         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
9243         * config/sparc/aout.h: Likewise.
9244
9245         * config/sparc/sparc.h: Remove if 0'd code.
9246         * config/sparc/sparc.md (call): Remove if 0'd code.
9247         (call_value): Likewise.
9248         (nonlocal_goto): Likewise.
9249         (unimp_insn): Delete.
9250
9251 2004-03-25  Roger Sayle  <roger@eyesopen.com>
9252
9253         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
9254         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
9255
9256 2004-03-25  Richard Henderson  <rth@redhat.com>
9257
9258         PR 11527
9259         * c-typeck.c (pop_init_level): Emit pending init elements earlier
9260         rather than later.
9261
9262 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9263
9264         * builtins.c (fold_builtin): Fix error in last change.
9265
9266 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
9267
9268         * config/mips/mips.h: Formatting fix.
9269
9270 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9271
9272         * builtins.def: Add ctype builtins.
9273         * doc/extend.texi: Likewise.
9274
9275 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9276
9277         * builtins.c (fold_builtin): Add new builtin optimizations for
9278         sqrt and/or cbrt.
9279         * fold-const.c (fold): Likewise.
9280
9281 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
9282
9283         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
9284         (rs6000_sched_groups): New variable.
9285         (processor_target_table): Add power5.
9286         (rs6000_override_options): Set rs6000_sched_insert_nops,
9287         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
9288         from rs6000_sched_groups.
9289         (output_cbranch): Use rs6000_always_hint.
9290         (rs6000_variable_issue): Use rs6000_sched_groups.
9291         (rs6000_adjust_cost): Add CPU_POWER5.
9292         (is_microcoded_insn): Use rs6000_sched_groups.
9293         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
9294         Return 2 for POWER5 cracked instructions.
9295         (is_cracked_insn): Use rs6000_sched_groups.
9296         (is_branch_slot_insn): Use rs6000_sched_groups.
9297         (rs6000_issue_rate): Add CPU_POWER5.
9298         (rs6000_sched_finish): Use rs6000_sched_groups.
9299         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
9300         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
9301         (DEFAULT_SCHED_COSTLY_DEP): Delete.
9302         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
9303         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
9304         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
9305         * config/rs6000/power5.md: New file.
9306         * doc/invoke.texi: Add power5 option.
9307
9308 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
9309
9310         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
9311         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
9312         * doc/invoke.texi: Fix a typo.
9313
9314 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
9315
9316         PR optimization/9707.
9317         * stmt.c (emit_case_nodes): Emit equality comparisons instead
9318         of recursing if both children are single-valued cases with no
9319         children.
9320
9321 2004-03-25  Paul Brook  <paul@codesourcery.com>
9322
9323         * config/arm/arm.c (vfp_print_multi): Remove.
9324         (arm_output_fldmx): New function.
9325         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
9326         (arm_expand_prologue): Update to match.
9327         (arm_get_vfp_saved_size): New Function.
9328         (arm_get_frame_offsets): Use it.
9329         (arm_output_epilogue): Use new functions.
9330
9331 2004-03-24  Richard Henderson  <rth@redhat.com>
9332
9333         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
9334         (reg_known_value, reg_known_value_size): Likewise; make static.
9335         (reg_known_equiv_p): Make static.
9336         (clear_reg_alias_info): Update for new indexing.
9337         (get_reg_known_value, set_reg_known_value): New.
9338         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
9339         (canon_rtx): Use them.
9340         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
9341         Don't play queer offsetting games with reg_known_value and
9342         reg_known_equiv_p.
9343         (end_alias_analysis): Free reg_known_value with gc.
9344         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
9345         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
9346         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
9347         functions instead.
9348
9349 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
9350
9351         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
9352         config/i386/mmintrin.h: Update copyright.
9353
9354 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
9355
9356         * configure.ac: Add --enable-werror-always (for top level bootstrap
9357         support).
9358         * configure: Regenerate.
9359
9360 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
9361
9362         * objc/objc-act.c (objc_comptypes): Treat comparisons
9363         between 'Class' and '<class> *' as explicitly invalid.
9364
9365 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
9366
9367         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
9368         (-fprofile-values): Add enabled with profile-{generate,use}.
9369         (-fvpt): Same.
9370         (-ftracer): Add enabled with profile-use.
9371         (-funit-at-a-time): Add enabled at -O2,-O3.
9372         (-funroll-loops): Add enabled with profile-use.
9373         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
9374         (max-gcse-passes): Mention default.
9375         (max-cse-path-length): Mention default.
9376
9377 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
9378
9379         * Makefile.in (STRICT2_WARN): Reorder.
9380         * configure.ac: Check for -Wold-style-definition, and use it
9381         in strict1_warn if it's available.
9382         * configure: Regnerate.
9383
9384 2004-03-24  Paul Brook  <paul@nowt.org>
9385
9386         * config.gcc <arm>: Add --with-abi=
9387         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
9388         thumb_far_jump_used): Remove prototypes.
9389         (arm_needs_doubleword_align): Add prototype.
9390         (thumb_compute_initial_elimination_offset): Ditto.
9391         * config/arm/arm.c (arm_get_frame_offsets): New function.
9392         (use_return_insn, output_return_instruction, arm_output_epilogue,
9393         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
9394         arm_expand_prologue, thumb_expand_epilogue): Use it.
9395         (arm_abi, target_abi_name, all_arm_abis): New variables.
9396         (arm_override_options): Set them.  Set structure padding for AAPCS.
9397         (arm_return_in_memory): Update ABI check.
9398         (arm_init_cumulative_args): Initialize can_split.
9399         (arm_needs_doubleword_align): New function.
9400         (arm_function_arg): Don't split args after pushing to stack. Handle
9401         doubleword/even reg alignment.
9402         (arm_va_arg): Handle all doubleword aligned args.
9403         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
9404         on ABI, not CPU.
9405         (arm_compute_save_reg0_reg12_mask): Fix comment.
9406         (thumb_get_frame_size, thumb_get_frame_size): Remove.
9407         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
9408         value for alignment.
9409         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
9410         to match.
9411         (thumb_compute_initial_elimination_offset): New function.
9412         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
9413         unneccessary rounding.
9414         * config/arm/arm.h (target_abi_name): Declare.
9415         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
9416         arm_abi_type, ARM_DEFAULT_ABI): Define.
9417         (ARM_FLAG_ATPCS): Remove.
9418         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
9419         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
9420         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
9421         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
9422         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
9423         Contitionalize on ABI, not CPU.
9424         (struct arm_stack_offsets): Define.
9425         (struct machine_function): Add stack_offsets.  Remove frame_size.
9426         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
9427         pushed.
9428         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
9429         doubleword alignment.
9430         (THUMB_INITIAL_ELIMINATION_OFFSET,
9431         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
9432         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
9433         * config/arm/arm.md (align_8): Enable for all targets.
9434         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
9435         (ARM_DEFAULT_ABI): Define.
9436         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
9437         -mstructure-size-boundary.
9438
9439 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
9440
9441         * configure.ac: Check for -Wno-variadic-macros; don't use
9442         -pedantic (in stage 1 or a simple 'make all') unless it's available,
9443         and if it's available, use it.  Also, clean up check for
9444         -Wno-long-long.
9445         * configure: Regenerate.
9446
9447 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
9448
9449         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
9450         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
9451         (MULTILIB_DEFAULTS): Use it.
9452         (MIPS_CPU_STRING_DEFAULT): Remove.
9453         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
9454         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
9455         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
9456         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
9457         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
9458         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
9459         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
9460         accordingly.
9461
9462 2004-03-24  DJ Delorie  <dj@redhat.com>
9463             Richard Sandiford  <rsandifo@redhat.com>
9464
9465         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
9466         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
9467         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
9468         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
9469         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
9470         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
9471         if TARGET_FIX_VR4122.
9472         * config/mips/mips.md (define_attr length): Account for nops inserted
9473         after macc and dmult when using -mfix-vr4122-bugs.
9474         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
9475         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
9476         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
9477         * config/mips/vr4122-div.S: New file.
9478         * doc/invoke.texi: Document -mfix-vr4122-bugs.
9479
9480 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
9481
9482         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
9483         (TARGET_MIPS4130): New macro.
9484         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
9485         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
9486         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
9487         with PROCESSOR_R4130.
9488         * config/mips/mips.md (define_attr cpu): Add r4130.
9489         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
9490
9491 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9492             Richard Sandiford  <rsandifo@redhat.com>
9493
9494         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
9495
9496 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
9497
9498         PR preprocessor/14438
9499         * cpplib.c (do_pragma): Remove line_change call after pragma
9500         handler.
9501
9502 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
9503
9504         * doc/extend.texi (ARM Built-in Functions): Replace with correct
9505         declarations.
9506
9507 2004-03-23  Roger Sayle  <roger@eyesopen.com>
9508
9509         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
9510         if flag_unsafe_math_optimizations.
9511         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
9512         and TARGET_80387 expand using truncdfsf2_noop pattern.
9513         (truncxfsf2): Likewise using truncxfsf2_noop.
9514         (truncxfdf2): Likewise using truncxfdf2_noop.
9515         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
9516
9517 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
9518
9519         * hooks.c (hook_constcharptr_tree_null): New hook.
9520         * hooks.h (hook_constcharptr_tree_null): New prototype.
9521         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
9522         * target.h (mangle_fundamental_type): New target hook.
9523         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
9524         target hook at rs6000_mangle_fundamental_type.
9525         (rs6000_mangle_fundamental_type): New function.
9526         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
9527
9528 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
9529
9530         PR 12267, 12391, 12560, 13129, 14114, 14133
9531         * c-tree.h: Forward declare struct c_binding.  Declare
9532         c_override_bindings_to_false.  Update prototypes.
9533         (struct lang_identifier): Update comments.  Change fields to be
9534         struct c_binding *.
9535         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
9536         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
9537         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
9538         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
9539         * c-common.h: Update prototypes.
9540         * c-decl.c (struct c_scope): Update commentary.  Remove names,
9541         names_last, parms, parms_last, tags, and shadowed fields.  Add
9542         bindings and depth fields.
9543         (scope_freelist): Move to more appropriate location.
9544         (c_print_identifier): Update for changes to struct lang_identifier.
9545         (objc_mark_locals_volatile): Update for new bindings structures.
9546         (global_bindings_p): Honor c_override_global_bindings_to_false.
9547         (pushlevel): Rename to push_scope; take no arguments; use the
9548         scope_freelist; initialize scope->depth and check for overflow.
9549         (poplevel): Rename to pop_scope; totally rewritten for new bindings
9550         structures.
9551         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
9552         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
9553         Improve some commentary.  Adjust handling of forward parm decls.
9554         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
9555         Preserve C_DECL_IN_EXTERNAL_SCOPE.
9556         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
9557         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
9558         decls.  Rewrite for new bindings structures.  Improve commentary.
9559         Eliminate the copy_node call.
9560         (implicit_decl_warning): Use the "diag" idiom (as seen in
9561         locate_old_decl) to reduce code duplication; call locate_old_decl
9562         if appropriate.  Relocate to remove need for forward declaration.
9563         (implicitly_declare): Adjust for new bindings structures.  Kludge
9564         around Objective-C not-really-builtin functions.
9565         (undeclared_variable): Improve diagnostics.  If current_function_decl
9566         is nonnull but current_function_scope is null, use current_scope.
9567         Use bind.
9568         (lookup_tag): Adjust for new bindings structures.  Kludge around
9569         Objective-C's tag declarations that wind up in the external scope.
9570         (lookup_name): Adjust for new bindings structures.  Kludge around
9571         c-common.c's pseudo-typedefs that wind up in the external scope.
9572         (lookup_name_current_level): Rename lookup_name_in_scope; take a
9573         second argument indicating the scope to examine; rewrite for
9574         new bindings structures.
9575         (c_init_decl_processing): Adjust for renamed functions.  Do not
9576         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
9577         First scope pushed is the external scope, not the global scope.
9578         (builtin_function): Use bind, not pushdecl.  Adjust other bits
9579         for new data structures.  Keep track of builtins that should be
9580         made visible automatically.
9581         (start_decl): Adjust diagnostics.  Remove unnecessary call to
9582         expand_decl.
9583         (grokparms): Return 0 if arg_types is error_mark_node.
9584         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
9585         reversed sense.  Rewrite for new bindings structures.  Do not
9586         leave any decls in the scope, to prevent pop_scope from doing
9587         contradictory things with them.
9588         (finish_struct, finish_enum): Remove redundant diagnostics.
9589         (build_enumerator): Don't cascade diagnostics for error_mark_node.
9590         Mark location where -pedantic changes the meaning of the program.
9591         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
9592         parameter decls into the function's scope structure using bind.
9593         Warn here about function definitions in the wrong style.
9594         Adjust diagnostics.
9595         (store_parm_decls): Correct the determination of whether a
9596         function was defined with a prototype.
9597         (c_write_global_declarations): Operate on all file decls and on
9598         the external scope.  Split body of the loop to...
9599         (c_write_global_declarations_1): ... this new function, to avoid
9600         code duplication.
9601         (truly_local_externals, first_builtin_decl, last_builtin_decl)
9602         (make_scope, pop_scope, in_parm_level_p, set_block)
9603         (any_external_decl, record_external_decl, bind_label, getdecls)
9604         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
9605         (c_reset_state): Delete.
9606         (visible_builtins, c_override_global_bindings_to_false)
9607         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
9608         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
9609         (external_scope, binding_freelist, bind, free_binding_and_advance)
9610         (push_file_scope, pop_file_scope): New.
9611         (pushtag, pushdecl_top_level, lookup_label, declare_label)
9612         (define_label, c_make_fname_decl, finish_decl)
9613         (mark_forward_parm_decls, build_compound_literal)
9614         (grokdeclarator, start_function, check_for_loop_decls)
9615         (identifier_global_value, record_builtin_type): Minor adjustments
9616         for new bindings structures.  Improve diagnostics and commentary.
9617         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
9618         pushlevel/poplevel respectively.
9619         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
9620         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
9621         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
9622         correct loop over multiple translation units; call fatal_error if
9623         requested to compile more than one file at once.  (This disables
9624         IMA temporarily - an up-front error being preferable to a crash.)
9625         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
9626         (all actions): Adjust calls to pushlevel/poplevel.
9627         (parsing_iso_function_signature): Delete.
9628         (extdef_1): Fold into extdef.
9629         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
9630         warn here about function definitions in the wrong style.
9631         (after_tyle_declarator, parm_declarator_starttypename)
9632         (parm_declarator_nostarttypename, notype_declarator): Remove
9633         commented-out productions.
9634         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
9635         an empty TREE_LIST node.  Adjust calls to get_parm_info.
9636         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
9637         to suppress -Wold-style-definition after this error.
9638         (c_parse_file): Don't clear the binding stack or call
9639         finish_fname_decls here.  Correct comment.
9640         * c-typeck.c (same_translation_unit_p): Export.
9641         (common_type): Use c_override_global_bindings_to_false, not
9642         pushlevel/poplevel/declare_parm_level.
9643         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
9644         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
9645         and LANG_HOOKS_GETDECLS with do-nothing stubs.
9646         * objc/objc-lang.c: Likewise.
9647         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
9648         get_parm_info.
9649         (OBJC_VOID_AT_END): Delete; replace all uses
9650         with void_list_node.
9651         (generate_forward_declaration_to_string_table): Delete.
9652         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
9653
9654         * coverage.c (create_coverage): Don't pushdecl anything.
9655         * langhooks.c (lhd_clear_binding_stack): Call
9656         lang_hooks.decls.poplevel, not poplevel.
9657         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
9658         circular list rather than going into an infinite loop.
9659
9660 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
9661
9662         * optabs.c (expand_binop): When synthesizing double word rotates
9663         from single word shifts, use a new register target if the provided
9664         target is not a REG already.
9665
9666 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9667
9668         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
9669         * c-common.c (handle_mode_attribute): Add extra arg to
9670         build_pointer_type_for_mode and build_reference_type_for_mode.
9671         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
9672         for INTEGER_CST.
9673         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
9674         Chain pointers via TYPE_NEXT_PTR_TO.
9675         (build_reference_type_for_mode): Similarly.
9676         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
9677         and build_reference_type_for_mode.
9678         (tree_check4_failed): New function.
9679         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
9680         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
9681         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
9682         Add check.
9683
9684 2004-03-23  Roger Sayle  <roger@eyesopen.com>
9685
9686         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
9687         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
9688         when both A and B are nonnegative.
9689         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
9690         nonzero.
9691
9692 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
9693
9694         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
9695         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
9696
9697 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
9698
9699         PR optimization/14669
9700         * fold-const.c (fold): Only unwiden integer comparisons for equality
9701         and inequality operators, or when the signedness doesn't change.
9702
9703 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
9704
9705         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
9706         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
9707         * config/sparc/t-linux: New file.
9708
9709 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
9710
9711         * gcse.c (can_assign_to_reg_p): New function, split out from...
9712         (want_to_gcse_p): ...here.
9713         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
9714         the rhs of a store.
9715
9716 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
9717
9718         * c-typeck.c (same_translation_unit_p): Fix pasto.
9719
9720 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
9721
9722         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
9723         (PARAM_MAX_SCHED_REGION_INSNS): New.
9724         * sched-rgn.c: Include params.h
9725         (MAX_RGN_BLOCKS): Delete.
9726         (MAX_RGN_INSNS): Delete.
9727         (too_large): Return bool.  Convert to PARAM_VALUE.
9728         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
9729         * doc/invoke.texi (param): Document max-sched-region-blocks and
9730         max-sched-region-insns.
9731
9732 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
9733
9734         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
9735         for base types.
9736
9737 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
9738
9739         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
9740         change.
9741
9742 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
9743
9744         PR c/14069
9745         * c-decl.c (finish_struct): Change type of incorrect flexible array
9746         field into error_mark_node.
9747
9748 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
9749
9750         PR target/14580
9751         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
9752         who are not local for Darwin PIC.
9753
9754 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
9755
9756         * regrename.c (regrename_optimize): Set regs_ever_live for all
9757         registers introduced as replacement.
9758
9759 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9760
9761         PR middle-end/14470
9762         * expr.c (mark_queue): New function.
9763         (emit_insns_enqueued_after_mark): New function replacing
9764         emit_queue.  Clear the body of emitted queued insns.
9765         (emit_queue): Call emit_insns_enqueued_after_mark.
9766         (store_expr): Mark the increment queue on entry.  Emit
9767         only the incrementations queued when expanding the source.
9768
9769 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
9770
9771         * configure.ac: Allow --disable-coverage-flags (for the future benefit
9772         of top level bootstrap, and consistency).  Reindent.
9773         * configure: Regenerate.
9774
9775 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9776
9777         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
9778         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
9779         unnecessary casts.
9780
9781 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
9782
9783         PR target/14291
9784         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
9785         __MINGW32__.
9786
9787 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
9788
9789         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
9790         to nonimmediate_operand.
9791         ("*doloop_di"): Likewise.
9792
9793 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
9794
9795         * real.h (struct real_value): Use the same type for all
9796         bitfields.  Rename exp to uexp.
9797         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
9798         Adjust all uses of exp...
9799         * builtins.c: ... here, ...
9800         * emit-rtl.c: ... here, and ...
9801         * real.c: ... and here.
9802
9803 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9804
9805         * pretty-print.c (pp_base_maybe_space): New function.
9806         * pretty-print.h (pp_base_maybe_space): Declare.
9807         (pp_maybe_space): New macro.
9808
9809 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
9810
9811         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
9812
9813 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
9814
9815         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
9816         of using register multiplication cost.
9817         (expand_mult): Adapt choose_mult_variant call.
9818         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
9819         of MODE; pass appropriate cost bound.  Adjust result when
9820         performing signed multiplication by a negative constant.
9821         Don't use intermediate modes larger than word_mode.
9822
9823 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9824
9825         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
9826         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
9827         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
9828         * explow.c (expr_size): Likewise.
9829         * expr.h (placeholder_list, find_placeholder): Deleted.
9830         * expr.c (store_constructor): Likewise.
9831         (get_inner_reference): Likewise.  Also don't call find_placeholder.
9832         (placeholder_list, find_placeholder): Deleted.
9833         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
9834         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
9835         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
9836         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
9837         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
9838         Likewise.
9839         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
9840         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
9841         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
9842         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
9843         Clean up by using first_rtl_op.
9844         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
9845         (substitute_placeholder_in_expr): New function.
9846         * tree.def (WITH_RECORD_EXPR): Deleted.
9847         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
9848         (substitute_placeholder_in_expr): New.
9849
9850 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
9851
9852         * dojump.c (prefer_and_bit_test): Fix which part of
9853         the and_test is replaced.
9854
9855 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
9856
9857         * frontends.texi: Add missing line.
9858
9859 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
9860             Chris Devers  <cdevers@pobox.com>
9861             Joseph S. Myers  <jsm@polyomino.org.uk>
9862
9863         * doc/frontends.texi: Rewrite.
9864         * doc/gcc.texi: Update last modification date.
9865
9866 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
9867
9868         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
9869         message before redirecting the edge.
9870
9871 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9872
9873         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
9874         flag.
9875         * explow.c (force_not_mem): Set REG_POINTER flag according to
9876         MEM_POINTER one.
9877         * rtl.h (MEM_POINTER): New macro.
9878         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
9879         for MEM_POINTER.
9880
9881 2004-03-20  Roger Sayle  <roger@eyesopen.com>
9882
9883         PR target/13889
9884         * cse.c (fold_rtx): Avoid substituting constants into unary
9885         conversion operations.
9886
9887 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9888
9889         * fold-const.c (fold): Replace "expr" with "t".
9890
9891 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
9892
9893         PR c/12373
9894         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
9895         DECL_ORIGINAL_TYPE if there isn't one.
9896
9897 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9898
9899         * fold-const.c (fold): Replace "final_type" with "type".
9900         Remove variable "final_type".
9901
9902 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9903
9904         * fold-const.c (fold): Constify "type".
9905         Replace "TREE_TYPE (t)" with "type".
9906
9907 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9908
9909         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
9910         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
9911         via (*targetm.foo) () with targetm.foo ().
9912
9913 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
9914
9915         PR other/14630
9916         * doc/install.texi: Add info directory category and entry.
9917
9918 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9919
9920         * fold-const.c (fold): Replace "t" with "tem" where it is used
9921         as a temporary variable.  Remove "orig_t" and all of its uses.
9922
9923 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9924
9925         * fold-const.c (fold): Remove variable "invert".
9926         Move the handling of relational expressions that can be folded
9927         to a constant ...
9928         (fold_relational_const): ... here.
9929         (tree_expr_nonzero_p): New.
9930
9931 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
9932
9933         PR c/14635
9934         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
9935         DEF_GCC_BUILTIN.
9936
9937 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
9938
9939         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
9940         (GTFILES): Add $(srcdir)/dojump.h.
9941         (gt-dojump.h): New dependency.
9942         * dojump.c (and_reg, and_test, shift_test): New static variables.
9943         (prefer_and_bit_test): New function.
9944         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
9945
9946 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
9947
9948         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
9949         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
9950         reorg.c, tree.h: Fix comment typos.
9951
9952 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9953
9954         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
9955         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
9956         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
9957         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
9958         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
9959         vmsdbgout.c: Replace calls via (*targetm.foo) () with
9960         targetm.foo ().
9961
9962 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
9963
9964         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
9965         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
9966         always_inline attribute.
9967         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
9968         Treat expansion as completed even if literal argument is
9969         invalid (so that other expansions are not tried in vain).
9970
9971 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9972
9973         * loop-doloop.c (add_test): Replace GEN_INT (0) with
9974         const0_rtx.
9975
9976 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9977
9978         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
9979         ...
9980         (fold_abs_const): ... here.
9981
9982 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9983
9984         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
9985
9986 2004-03-19  Denis Chertykov  <denisc@overta.ru>
9987
9988         PR target/11520
9989         * config/avr/avr.md ("call_insn"): Handle explicit integer
9990         specially.
9991         (call_value_insn): Likewise.
9992
9993 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9994
9995         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
9996
9997 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
9998
9999         * fold-const.c (negate_expr): Move the handling of constants
10000         ...
10001         (fold_negate_const): ... here.
10002
10003 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10004
10005         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
10006         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
10007         * tree.c (debug_no_type_hash): Deleted.
10008         (type_hash_canon): Abort if passed a variant.
10009         Check lang_hooks.types.hash_types.
10010         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
10011         (build_array_type): Remove unnecessary allocation of pointer type.
10012         (build_complex_type): Properly qualify resulting type.
10013
10014 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
10015
10016         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
10017
10018 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
10019
10020         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
10021         (expand_mult): ...here.
10022         (extract_high_half): New, split out from expand_mult_highpart.
10023         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
10024         (expand_highpart): Evaluate the cost of a shift/add sequence,
10025         then see if any of the specialized optabs are cheaper.
10026
10027 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
10028
10029         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
10030
10031 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10032
10033         * convert.c (convert_to_real): Add more math builtins.
10034
10035 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10036
10037         * convert.c (convert_to_real): Reformat using switch stmt.
10038
10039 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10040
10041         * c-common.c (pointer_int_sum): Do not complain about using
10042         pointers to pointers-to-members.
10043
10044 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10045
10046         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
10047         have moved to the target hooks structure".
10048
10049 2004-03-18  James E Wilson  <wilson@specifixinc.com>
10050
10051         * config/mips/mips.md (type): Split move into arith and fmove.  Split
10052         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
10053         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
10054         Likewise.
10055         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
10056         Likewise.
10057         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
10058         rm7_fp_quick): Likewise.
10059         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
10060         rm9k_fquick): Likewise.
10061         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
10062         Likewise.
10063         (ir_sr70_icmp): Delete.
10064
10065 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10066
10067         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
10068         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
10069         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
10070         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
10071         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
10072         Protect with proper check.
10073         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
10074         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
10075         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
10076         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
10077         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
10078         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
10079         not TYPE_FIELDS.
10080         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
10081
10082 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
10083
10084         * gcse.c (eliminate_partially_redundant_loads): Reject change if
10085         dest is set between beginning and current insn.
10086
10087 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10088
10089         * c-decl.c (grokdeclarator): Do not complain about redeclaring
10090         visible "static" identifiers "extern" in a local scope.
10091         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
10092         post-increments/decrements.
10093
10094 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
10095
10096         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
10097         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
10098         (xtensa_va_start): Remove assignment to current_function_arg_words.
10099
10100 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
10101
10102         * alias.c (record_set): Detect the case where a register is assigned
10103         a new value that has the same base term as the old one.
10104
10105 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10106
10107         * doloop.c: Removed.
10108         * loop-doloop.c: New file.
10109         * Makefile.in (doloop.o): Remove.
10110         (loop-doloop.o): New.
10111         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
10112         * cfgloopanal.c (get_loop_level): New function.
10113         * loop-iv.c (iv_number_of_iterations): Handle case when loop
10114         is leaved immediatelly.
10115         * loop.c (strength_reduce): Do not call doloop optimization.
10116         * loop.h (LOOP_BCT): Removed.
10117         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
10118         (rest_of_handle_loop2): Call doloop_optimize_loops.
10119         (rest_of_compilation): Test for optimizations moved to
10120         rest_of_handle_loop2.
10121
10122 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
10123
10124         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
10125         for mixed mode.
10126         (rs6000_emit_prologue): Ditto.
10127         (rs6000_emit_epilogue): Ditto.
10128         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
10129         macro for mixed mode.
10130
10131 2004-03-18  Jan Hubicka  <jh@suse.cz>
10132
10133         * predict.c (propagate_freq): Compute correctly frequency of
10134         EXIT_BLOCK.
10135
10136 2004-03-17  Eric Christopher  <echristo@redhat.com>
10137
10138         * builtins.c (apply_args_size): Use reg_raw_mode.
10139         (apply_result_size): Ditto.
10140
10141 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10142
10143         PR target/14620
10144         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
10145
10146 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
10147
10148         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
10149         32-bit builds when defaulting to 32-bit.
10150
10151 2004-03-17  Jan Hubicka  <jh@suse.cz>
10152
10153         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
10154         array.
10155
10156 2004-03-17  James E Wilson  <wilson@specifixinc.com>
10157
10158         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
10159         (hazard_nop): Change type to nop.
10160         (type): Split arith into arith, shift, slt, clz.  Delete darith.
10161         Fix all uses.  Change arith to multi if more than one insn emitted.
10162         * config/mips/5400.md (ir_vr54_arith): Likewise.
10163         * config/mips/5500.md (ir_vr55_arith): Likewise.
10164         * config/mips/7000.md (rm7_int_other): Likewise.
10165         * config/mips/9000.md (rm9k_int): Likewise.
10166         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
10167
10168 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
10169
10170         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
10171         to hold the subtype tree instead of recomputing it several times.
10172
10173 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
10174
10175         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
10176         CC_INVERT.
10177         * config/mn10300/mn10300.md (cc): Remove "invert".
10178
10179 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10180
10181         * builtins.c (integer_valued_real_p): Add builtin rint.
10182         (fold_builtin): Likewise.
10183         * convert.c (convert_to_real): Likewise.
10184
10185         * convert.c (convert_to_real): Fix typos in `long double'
10186         builtins.
10187
10188 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
10189
10190         PR c++/14481
10191         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
10192         generated COMPOUND_EXPRs.
10193
10194 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10195
10196         * config/h8300/t-rtems (h8300-*-rtems*): New.
10197
10198 2004-03-16  Eric Christopher  <echristo@redhat.com>
10199
10200         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
10201
10202 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
10203
10204         * config/i386/i386-protos.h: Add a prototype for
10205         ix86_reverse_condition.
10206         * config/i386/i386.c (ix86_reverse_condition): New.
10207         * config/i386/i386.h (REVERSE_CONDITION): Use
10208         ix86_reverse_condition.
10209         * config/i386/i386.md: Use ix86_reverse_condition instead of
10210         REVERSE_CONDITION.
10211
10212 2004-03-16  J. Brobecker  <brobecker@gnat.com>
10213
10214         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
10215
10216 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
10217
10218         PR bootstrap/12974
10219         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
10220
10221 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
10222
10223         * c-common.c (c_common_type_for_mode): Build vector types on
10224         demand.
10225         (handle_mode_attribute): Deprecate using the mode attribute
10226         to create vector types.  Fix indentation.
10227         (vector_type_node_list): Remove.
10228         (handle_vector_size_attribute): Create vector types on demand.
10229         Strip a NON_LVALUE_EXPR from the attribute if there is one.
10230         * c-typeck.c (comptypes): Make vector types compatible if they
10231         have the same underlying mode.
10232         (convert_for_assignment): Use comptypes to convert between
10233         vector types.
10234         * tree.c (build_common_tree_nodes_2): Do not create vector types.
10235         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
10236         vector types.
10237         * tree.h: Remove vector types.
10238         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
10239         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
10240         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
10241         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
10242         * doc/extend.texi (Vector Types): Document how to use the
10243         vector_size attribute to create vectors, rather than mode.
10244
10245         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
10246         * config/i386/emmintrin.h: Likewise.
10247         * config/i386/mmintrin.h: Likewise.
10248         * config/i386/xmmintrin.h: Likewise.
10249         * config/sh/ushmedia.h: Likewise.
10250
10251 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
10252
10253         * config/freebsd-spec.h, config/arc/arc-protos.h,
10254         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
10255         config/arm/linux-gas.h, config/arm/semi.h,
10256         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
10257         config/ia64/freebsd.h, config/mips/7000.md,
10258         config/mips/9000.md, config/ns32k/ns32k-protos.h,
10259         config/sparc/pbd.h: Update copyright.
10260
10261 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10262
10263         PR target/14577
10264         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
10265
10266 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
10267
10268         * combine.c (combine_simplify_rtx): Remove the "last"
10269         parameter and its documentation.  Adjust recursive calls.
10270         (simplify_logical): Always perform the only simplification
10271         controlled by "last", if the simplified expression is
10272         actually different.
10273         (try_combine): Do not pass the "last" parameter to
10274         combine_simplify_rtx.
10275
10276 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
10277
10278         PR target/14599
10279         * config/mips/mips.md (UNSPEC_GP): New constant.
10280         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
10281         an UNSPEC instead of (reg $gp).
10282         (mips16_gp_pseudo_reg): Change accordingly.
10283         (print_operand): Print $gp directly when handling CONST_GP_P.
10284
10285 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
10286
10287         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
10288         * longlong.h: Make code 68060 clean when compiling for m68060.
10289
10290 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
10291
10292         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
10293         * doc/md.texi: Clarify description of "i" constraint.
10294
10295 2004-03-15  James E Wilson  <wilson@specifixinc.com>
10296
10297         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
10298         Split store into store, fpstore, fpidxstore.  Fix all uses.
10299         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
10300         Likewise.
10301         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
10302         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
10303         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
10304         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
10305         ir_sr70_fstore): Likewise.
10306
10307 2004-03-15  Richard Henderson  <rth@redhat.com>
10308
10309         PR middle-end/14535
10310         * except.c (collect_one_action_chain): Record action for cleanup
10311         outer of exception spec.
10312
10313 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
10314
10315         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
10316         Fix the check for abort and only do the mmap if we can.
10317
10318 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
10319
10320         * config/sparc/sparc.h: Rework comments about the code model
10321         in 64-bit environment and the mode 'Pmode'.
10322         * doc/invoke.texi (SPARC options): Rework description of the
10323         different code models supported in 64-bit environment.
10324
10325 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
10326
10327         * defaults.h (REVERSIBLE_CC_MODE): Define.
10328         * jump.c (reversed_comparison_code_parts): Don't check if
10329         REVERSIBLE_CC_MODE is defined.
10330
10331 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
10332
10333         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
10334         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
10335         hosthooks.h, params.h, ra-colorize.c, web.c,
10336         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
10337         config/avr/avr-protos.h, config/avr/avr.md,
10338         config/fr30/fr30-protos.h, config/fr30/fr30.md,
10339         config/h8300/fixunssfsi.c, config/i386/darwin.h,
10340         config/i386/freebsd.h, config/i386/freebsd64.h,
10341         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
10342         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
10343         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
10344         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
10345         config/pa/pa64-regs.h, config/rs6000/aix41.h,
10346         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
10347         config/sparc/aout.h, config/sparc/freebsd.h,
10348         config/sparc/litecoff.h, config/vax/vax-protos.h,
10349         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
10350         copyright.
10351
10352 2004-03-15  Paul Brook  <paul@codesourcery.com>
10353
10354         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
10355
10356 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10357
10358         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
10359         (pp_c_cv_qualifier): Document.
10360         (pp_c_space_for_pointer_operator): Likewise.
10361         (pp_c_integer_constant): Likewise.
10362         (pp_c_identifier): Likewise.
10363         (pp_c_init_declarator): Don't print function body.
10364
10365 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
10366
10367         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
10368         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
10369         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
10370         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
10371         wording and grammar.
10372
10373 2004-03-14  Roger Sayle  <roger@eyesopen.com>
10374
10375         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
10376         with lang_hooks.foo ().
10377         * builtins.c (expand_builtin_va_arg): Likewise.
10378         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
10379         c_common_type_for_mode, c_common_nodes_and_builtins,
10380         handle_mode_attribute, handle_vector_size_attribute): Likewise.
10381         * c-convert.c (convert): Likewise.
10382         * c-format.c (check_format_types): Likewise.
10383         * c-objc-common.c (c_tree_printer): Likewise.
10384         * c-typeck.c (build_unary_op, build_conditional_expr,
10385         build_binary_op): Likewise.
10386         * calls.c (try_to_integrate, expand_call,
10387         emit_library_call_value_1): Likewise.
10388         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
10389         Likewise.
10390         * cgraphunit.c (record_call_1, cgraph_analyze_function,
10391         cgraph_expand_function): Likewise.
10392         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
10393         * coverage.c (build_fn_info_type, build_ctr_info_type,
10394         build_gcov_info, create_coverage): Likewise.
10395         * dbxout.c (dbxout_init): Likewise.
10396         * diagnostic.c (diagnostic_report_current_function): Likewise.
10397         * dojump.c (do_jump): Likewise.
10398         * dwarf2out.c (dwarf2_name): Likewise.
10399         * except.c (init_eh): Likewise.
10400         * explow.c (expr_size, int_expr_size): Likewise.
10401         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
10402         Likewise.
10403         * expr.c (store_expr, store_constructor, safe_from_p,
10404         expand_expr_real, do_store_flag, try_casesi): Likewise.
10405         * function.c (push_function_context_to, pop_function_context_from,
10406         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
10407         put_var_into_stack, allocate_struct_function, current_function_name):
10408         Likewise.
10409         * integrate.c (copy_decl_for_inlining, expand_inline_function):
10410         Likewise.
10411         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
10412         lhd_print_error_function): Likewise.
10413         * opts.c (handle_option, decode_options): Likewise.
10414         * passes.c (open_dump_file): Likewise.
10415         * print-tree.c (print_node): Likewise.
10416         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
10417         expand_decl_cleanup, emit_case_nodes): Likewise.
10418         * stor-layout.c (variable_size): Likewise.
10419         * toplev.c (announce_function, wrapup_global_declarations,
10420         check_global_declarations, compile_file, default_tree_printer,
10421         process_options, lang_dependent_init, finalize): Likewise.
10422         * tree-dump.c (dequeue_and_dump): Likewise.
10423         * tree-inline.c (remap_decl, remap_block, copy_body_r,
10424         initialize_inlined_parameters, declare_return_variable,
10425         inlinable_function_p, expand_call_inline, optimize_inline_calls,
10426         walk_tree, copy_tree_r): Likewise.
10427         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10428         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
10429         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
10430         variably_modified_type_p, dump_tree_statistics): Likewise.
10431         * varasm.c (assemble_variable, compare_constant, copy_constant,
10432         force_const_mem, compute_reloc_for_constant, output_constant,
10433         output_addressed_constants, initializer_constant_valid_p): Likewise.
10434
10435 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
10436
10437         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
10438
10439 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
10440
10441         * doc/install.texi: Reflect autoconf and automake version for
10442         libffi. Update autoconf version to 2.59.
10443
10444 2004-03-13  Roger Sayle  <roger@eyesopen.com>
10445
10446         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
10447         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
10448         make_range, build_range_check, fold_range_test, unextend,
10449         constant_boolean_node, fold_binary_op_with_conditional_arg,
10450         fold_truthop, fold_mathfn_compare, fold_inf_compare,
10451         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
10452         with lang_hooks.foo ().
10453
10454 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
10455
10456         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
10457
10458 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
10459
10460         * doc/install.texi: Note status of -fnew-ra.
10461
10462 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10463
10464         PR middle-end/14470
10465         * expr.c (store_expr): Call emit_queue before generating the move
10466         from the temporary to the original target.  Protect the temporary
10467         from emit_queue.
10468
10469 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
10470
10471         PR target/14533
10472         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
10473         other than UNSPEC_GOTOFF.
10474
10475 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
10476
10477         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
10478         to arm_legitimate_index_p.  Update all callers with SET as default
10479         value.
10480         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
10481         range if OUTER is a sign-extend operation on QImode.  Correctly
10482         reject shift operations on sign-extended QImode addresses.
10483         (bad_signed_byte_operand): Delete.
10484         (arm_extendqisi_mem_op): New function.
10485         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
10486         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
10487         constraints.
10488         (CONSTRAINT_LEN): New.
10489         (EXTRA_CONSTRAINT): Delete.  Replace with...
10490         (EXTRA_CONSTRAINT_STR): ... this.
10491         (PREDICATE_CODES): Remove bad_signed_byte_operand.
10492         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
10493         is now always default.
10494         (define_splits for bad sign-extend loads): Delete.
10495         (arm_extendqisi, arm_extendqisi_v5): Likewise.
10496         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
10497         Rework 'U' constraint to 'Uv'.
10498         * arm-protos.h: Remove bad_signed_byte_operand.  Add
10499         arm_extendqisi_mem_op.
10500         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
10501         Add Uq constraint.
10502
10503 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
10504
10505         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
10506         with targetm version.
10507
10508         PR target/14567
10509         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
10510         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
10511         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
10512         Update all users of RS6000_ARG_SIZE.
10513         (function_arg_advance): Count fregno using mode size.
10514         (function_arg): Handle long double split over regs and memory.
10515         (function_arg_partial_nregs): Likewise.
10516         (rs6000_va_arg): Repackage complex args.
10517
10518 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
10519
10520         PR target/14047
10521         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
10522         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
10523         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
10524
10525 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
10526
10527         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
10528         prototype.
10529         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
10530         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
10531
10532 2004-03-12  Andrew Pinski  <apinski@apple.com>
10533
10534         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
10535         Use ret instead of result. Use addr instead of base.
10536
10537 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
10538
10539         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
10540         fixes required by libstdc++ and update installation instructions
10541         for libstdc++.a.
10542
10543 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
10544
10545         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
10546         leading '@' on fastcall symbols before stripping suffix.
10547
10548 2004-03-12  Roger Sayle  <roger@eyesopen.com>
10549
10550         * combine.c (unmentioned_reg_p): New function to check whether an
10551         expression is a "specialization" of another, i.e. that there are
10552         no registers or memory references mentioned in the first that don't
10553         appear in the second.
10554         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
10555         (combine_instructions): Also try combining instructions using the
10556         REG_EQUAL note from a preceding log-linked instruction.
10557
10558 2004-03-12  Roger Sayle  <roger@eyesopen.com>
10559
10560         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
10561
10562 2004-03-12  Matt Austern  <austern@apple.com>
10563
10564         * target.h (struct gcc_target): New target hook, unwind_label.
10565         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
10566         * output.h (default_emit_unwind_label): New function.
10567         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
10568         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
10569         (TARGET_SUPPORTS_HIDDEN): New target macro.
10570         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
10571         that corresponds to this FDE.
10572         (FRAME_BEGIN_LABEL): Allow target to override default label.
10573         (output_call_frame_info): If FDEs are linknonce, then use extra
10574         indirection for FDE encoding, output a label for each FDE, and
10575         output an empty label for each function without an FDE.
10576         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
10577         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
10578         decls with DECL_ONE_ONLY set, if that macro is defined.
10579         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
10580         for a SUPPORTS_ONE_ONLY target.
10581         * config/darwin-protos.h (darwin_unique_section): Declare.
10582         (darwin_asm_named_section): Likewise.
10583         (darwin_section_type_flags): Likewise.
10584         (darwin_non_lazy_pcrel): Likewise.
10585         (darwin_emit_unwind_label): Likewise.
10586         (darwin_make_decl_one_only): Likewise.
10587         * config/darwin.c (machopic_finish): Get rid of tweak that
10588         eliminate stubs for symbols that are defined.
10589         (darwin_encode_section_info): Don't treat weak functions as defined.
10590         (darwin_make_decl_one_only): Define.
10591         (darwin_asm_named_section): Likewise.
10592         (darwin_section_type_flags): Likewise.
10593         (darwin_unique_section): Likewise.
10594         (darwin_emit_unwind_label): Likewise.
10595         (darwin_non_lazy_pcrel): Likewise.
10596         (darwin_asm_output_dwarf_delta): Difference between two labels is
10597         local only if both labels are local.
10598         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
10599         (ASM_MAKE_LABEL_LINKONCE): Likewise.
10600         (TARGET_SUPPORTS_HIDDEN): Likewise.
10601         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
10602         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
10603         (FRAME_BEGIN_LABEL): Likewise.
10604         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
10605         (ASM_DECLARE_FUNCTION_NAME): Likewise.
10606         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
10607         (TARGET_ASM_UNIQUE_SECTION): Define.
10608         (EH_FRAME_SECTION_NAME): Define.
10609         (EH_FRAME_SECTION_ATTR): Likewise.
10610         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
10611         (TARGET_ASM_NAMED_SECTION): Likewise.
10612         (TARGET_SECTION_TYPE_FLAGS): Likewise.
10613         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
10614         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
10615         TARGET_ASM_EMIT_UNWIND_LABEL.
10616
10617 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10618
10619         * builtins.c (expand_builtin_mathfn): Add pow10* to the
10620         existing exp10* case.
10621         (expand_builtin): Likewise.
10622
10623 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
10624
10625         * doc/tm.texi (registers) <Values in Registers>: Add
10626         entry for REGMODE_NATURAL_SIZE.
10627
10628 2004-03-12  Richard Henderson  <rth@redhat.com>
10629
10630         PR target/14547
10631         * target.h (struct gcc_target): Move calls substructure before
10632         booleans.  Add split_complex_arg.
10633         * function.c (assign_parms, split_complex_args): Use it.
10634         * calls.c (expand_call): Likewise.
10635         (split_complex_values): Likewise.  Check for splittable types
10636         before allocating memory.
10637         (split_complex_types): Likewise.
10638         * system.h (SPLIT_COMPLEX_ARGS): Poison.
10639         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
10640         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
10641         * config/alpha/alpha.c (alpha_split_complex_arg): New.
10642         (TARGET_SPLIT_COMPLEX_ARG): New.
10643         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
10644         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
10645         (rs6000_override_options): Zap it for non-AIX.
10646         (rs6000_function_value): Use targetm.calls.split_complex_arg.
10647         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
10648         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
10649         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
10650         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
10651         SPLIT_COMPLEX_ARGS entry.
10652
10653 2004-03-11  Richard Henderson  <rth@redhat.com>
10654
10655         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
10656         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
10657         (alpha_emit_xfloating_arith): Update to match.
10658         (alpha_emit_xfloating_compare): Likewise.
10659         (alpha_emit_xfloating_cvt): Likewise.
10660         (alpha_emit_xfloating_libcall): Take already built symbol,
10661         mark call const.
10662         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
10663         op1 in a register.
10664
10665 2004-03-11  Richard Henderson  <rth@redhat.com>
10666
10667         PR target/14539
10668         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
10669
10670         * simplify-rtx.c (simplify_relational_operation): Fix typo.
10671
10672 2004-03-11  Richard Henderson  <rth@redhat.com>
10673
10674         PR middle-end/14477
10675         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
10676
10677 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
10678
10679         PR target/14262
10680         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
10681         defined, pass small BLKmode values in registers in the low-order part.
10682
10683 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
10684
10685         * combine.c (if_then_else_cond): Check for NULL return value of
10686         simplify_gen_subreg.
10687
10688 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
10689
10690         PR target/14496
10691         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
10692         TARGET_SINGLE_FLOAT.
10693
10694 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
10695
10696         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
10697         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
10698         * config/ia64/ia64.c (ia64_init_libfuncs): New.
10699         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
10700
10701 2004-03-11  Roger Sayle  <roger@eyesopen.com>
10702
10703         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
10704         -((int)X>>C) where C is an integer constant one bit less than the
10705         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
10706         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
10707
10708         * simplify-rtx.c (simplify_unary_operation): Also implement the
10709         above transformations at the RTL level.
10710
10711 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
10712
10713         * real.c (encode_ibm_extended): Do round low word.
10714
10715 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
10716
10717         * config/arm/arm.md (is_xscale): Comment this attribute and move
10718         it a bit further up in the file, closer to related attributes.
10719
10720 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
10721
10722         * config/host-solaris.c (sol_gt_pch_use_address): Add
10723         missing terminating marker to comment.
10724
10725 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
10726
10727         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
10728         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
10729         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
10730         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
10731         move_operand as source predicate in all cases.
10732         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
10733         Test reg_or_0_operand.  Use move_operand as source predicate.
10734         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
10735         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
10736         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
10737         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
10738         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
10739         Use move_operand as source predicate.  Remove 'K' constraint.
10740         (*movqi_internal): Likewise movqi_internal.
10741         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
10742         reg_or_0_operand.  Use move_operand as source predicate.
10743         (*movsf_softfloat): Likewise movsf_internal2.
10744         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
10745         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
10746         (*movdf_softfloat): Likewise movdf_internal2.
10747         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
10748         for DImode if !TARGET_64BIT.
10749         (mips_legitimize_move): Simplify accordingly.
10750
10751 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
10752
10753         PR/14362
10754         * var-tracking.c (struct variable_def): Added field refcount.
10755         (variable_htab_free): Decrease the refcount and delete variable
10756         only if there are no more references.
10757         (unshare_variable): New function.
10758         (vars_copy_1): Increase refcount instead of copying the variable.
10759         (variable_union): Share the variables where possible, unshare
10760         the variables if needed.
10761         (variable_different_p): Return false if var1 and var2 are
10762         the same structure.
10763         (variable_was_changed): Init the refcount of new variable.
10764         (set_frame_base_location): Unshare variable if needed.
10765         (set_variable_part): Init the refcount of new variable.
10766         Unshare the variables if needed.
10767         (delete_variable_part): Unshare the variables if needed.
10768         (emit_notes_for_differences_1): Init the refcount of new variable.
10769         (vt_add_function_parameters): Do not add function parameters to
10770         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
10771         (vt_initialize): Do not add frame_base_decl to IN set of
10772         ENTRY_BLOCK_PTR because it is unused anyway.
10773
10774 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
10775
10776         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
10777         (vars_copy): Likewise.
10778         (variable_union): Likewise.
10779         (set_variable_part): Likewise.
10780         (delete_variable_part): Likewise.
10781
10782 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
10783
10784         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
10785         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
10786         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
10787         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
10788         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
10789         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
10790         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
10791         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
10792         config/stormy16/stormy16.c: Fix comment typos and formatting.
10793
10794 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
10795
10796         * configure: Regenerate, since I forgot to while committing Paolo's
10797         changes.
10798
10799 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
10800
10801         PR ada/14131
10802         Move language detection to the top level.
10803         * configure.ac: Remove code to detect languages,
10804         it now lives exclusively in the top level.
10805         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
10806         top level, renamed to ACX_PROG_GNAT.
10807
10808 2004-03-10  Richard Henderson  <rth@redhat.com>
10809
10810         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
10811         extra arguments.
10812         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
10813         and host_xmake_file fragments.
10814         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
10815         (gt_pch_restore): Similarly for gt_pch_use_address.
10816         (default_gt_pch_get_address): New.
10817         (mmap_gt_pch_get_address): Split out of gt_pch_save.
10818         (default_gt_pch_use_address): Split out of gt_pch_restore.
10819         (mmap_gt_pch_use_address): Likewise.
10820         * hooks.c (hook_voidp_size_t_null): Remove.
10821         (hook_bool_voidp_size_t_false): Remove.
10822         * hooks.h: Likewise.
10823         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
10824         default_ or mmap_ definitions.
10825         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
10826         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
10827         and gt_pch_use_address.
10828         * config/host-linux.c, config/host-solaris.c: New files.
10829         * config/x-linux, config/x-solaris: New files.
10830         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
10831         Update for changed definition.
10832         (darwin_rs6000_gt_pch_use_address): Likewise.
10833         * doc/hostconfig.texi: Update docs.
10834
10835 2004-03-10  Richard Henderson  <rth@redhat.com>
10836
10837         PR c/14517
10838         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
10839         except for pedantic c90 mode.
10840
10841 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
10842
10843         * configure.ac: Bump AC_PREREQ to 2.59.
10844         * configure: Regenerate.
10845
10846 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
10847
10848         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
10849         (exp10_optab, exp2_optab): Define corresponding macros.
10850         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
10851         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
10852         using exp10?f2 and exp2?f2 patterns.
10853         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
10854         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
10855         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
10856         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
10857
10858         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
10859         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
10860         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
10861
10862 2004-03-10  Anthony Green  <green@redhat.com>
10863
10864         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
10865
10866 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
10867
10868         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
10869         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
10870         __LONGDOUBLE128.
10871         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
10872         TARGET_OS_AIX_CPP_BUILTINS.
10873         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
10874         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
10875         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
10876         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
10877         previous change.
10878
10879 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10880
10881         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
10882
10883 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
10884
10885         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10886         __LONGDOUBLE128 on AIX.
10887
10888 2004-03-10  Andrew Haley  <aph@redhat.com>
10889
10890         PR optimization/14381
10891         * function.c (expand_function_end): Emit a blockage insn before
10892         the epilogue when -fnon-call-exceptions is used.
10893
10894         * except.c (expand_start_all_catch): Make comment more accurate.
10895
10896 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
10897
10898         PR target/14480
10899         * config/rs6000/t-rtems: Add missing file on branch.
10900
10901 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
10902
10903         * dbxout.c (dbxout_symbol_location): Do not output references
10904         to optimized-out constant pool symbols.
10905
10906 2004-03-10  Andreas Schwab  <schwab@suse.de>
10907
10908         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
10909         twon34_r.
10910
10911 2004-03-09  James E Wilson  <wilson@specifixinc.com>
10912
10913         * alias.c (alias_sets_might_conflict_p): New.
10914         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
10915         * common.opt (Wstrict-aliasing=): New.
10916         * flags.h (warn_strict_aliasing): Change type to int.
10917         * opts.c (warn_strict_aliasing): Change type to int.
10918         (common_handle_option): Handle OPT_Wstrict_aliasing_.
10919         * tree.h (alias_sets_might_conflict_p): Declare it.
10920         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
10921
10922 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
10923
10924         PR bootstrap/12371
10925         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
10926         (CALL_USED_REGISTERS): Likewise.
10927         (REG_CLASS_CONTENTS): Likewise.
10928         (REG_ALLOC_ORDER): New.
10929         (REGNO_REG_CLASS): Use regno_reg_class.
10930         * config/m68k/m68k.c: Add regno_reg_class array.
10931
10932 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
10933
10934         * config/ia64/ia64.md (divsi3): Fix algorithm.
10935           (udivsi3): Ditto.
10936           (setf_exp_xf): Remove '*' from name.
10937         * testsuite/gcc.dg/20040309-1.c: New test.
10938
10939 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
10940
10941         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
10942         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
10943         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
10944         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
10945         (sparc_aout_select_rtx_section): Don't check
10946         SUNOS4_SHARED_LIBRARIES.
10947         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
10948
10949 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
10950
10951         PR other/14474
10952         * doc/md.texi (Pattern Ordering, Dependent Patterns)
10953         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
10954         INTERNALS".
10955
10956 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
10957
10958         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
10959         (LIBGCC_SPEC): Update to match.
10960
10961 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
10962
10963         * c-decl.c (last_function_parms, last_function_parm_tags)
10964         (last_function_parm_others, current_function_parms)
10965         (current_function_parm_tags, current_function_parm_others):
10966         Delete.
10967         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
10968         New macros.
10969         (grokdeclarator): For function definitions, save the arg-info
10970         block from the declarator in DECL_ARGUMENTS.
10971         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
10972         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
10973         contains only PARM_DECLs.  Improve diagnostics.
10974         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
10975         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
10976         (store_parm_decls_newstyle): Take the function to operate on,
10977         and an arg-info block, as arguments; don't get anything from
10978         current_function_* globals.
10979         (store_parm_decls_oldstyle): Likewise.
10980         (store_parm_decls): Pass fndecl and its arg-info block down to
10981         store_parm_decls_newstyle/oldstyle.  Send functions with empty
10982         argument lists through store_parm_decls_newstyle to reduce
10983         overhead.
10984         (pushdecl): Comment on the problems with the call to copy_node.
10985         Clear DECL_ARGUMENTS of the old node after copying it, if it
10986         is an arg-info block instead of a chain of decls.
10987         (start_function): Do not manipulate current_function_parm* or
10988         last_function_parm*.
10989
10990 2004-03-09  Roger Sayle  <roger@eyesopen.com>
10991             Andrew Pinski  <pinskia@physics.uc.edu>
10992
10993         * ifcvt.c (noce_try_sign_mask): New function to transform
10994         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
10995         (noce_process_if_block): Call noce_try_sign_mask.
10996
10997 2004-03-09  Andrew Pinski  <apinski@apple.com>
10998
10999         * c-typeck.c (tagged_types_tu_compatible_p):
11000         Fix typo.
11001
11002 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11003
11004         * simplify-rtx.c (simplify_const_relational_operation): New function
11005         renamed from simplify_relational_operation.
11006         (simplify_relational_operation): Change prototype to accept an
11007         additional mode argument.  Call simplify_const_relational_operation.
11008         (simplify_gen_relational): Update simplify_relational_operation call.
11009         (simplify_ternary_operation): Update simplify_relational_operation
11010         subroutine call to use simplify_const_relational_operation instead.
11011
11012         * rtl.h (simplify_const_relational_operation): Prototype here.
11013         (simplify_relational_operation): Add addtional mode argument.
11014
11015         * combine.c (combine_simplify_rtx): Update calls to
11016         simplify_relational_operation.
11017         (simplify_set): Likewise.
11018         (gen_binary): Likewise.
11019         * cse.c (fold_rtx): Likewise.
11020         * dojump.c (compare_from_rtx): Likewise.
11021         (do_compare_rtx_and_jump): Likewise.
11022         * integrate.c (subst_constants): Likewise.
11023         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
11024
11025 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
11026
11027         * config/m32r/m32r.md: Remove all define_peephole's.
11028
11029 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
11030
11031         * config/rs6000/rs6000.md: Remove trailing whitespace.
11032
11033 2004-03-08  Eric Christopher  <echristo@redhat.com>
11034
11035         * Makefile.in (site.exp): Add libiconv variable definition.
11036
11037 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
11038
11039         * configure: Regenerate for config/accross.m4 correction.
11040
11041 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11042
11043         PR target/14480
11044         * config/rs6000/t-rtems: Add missing file on branch.
11045
11046 2004-03-08  Roger Sayle  <roger@eyesopen.com>
11047
11048         PR middle-end/14289
11049         * c-typeck.c (c_mark_addressable): A register variable should
11050         be considered global if its not automatic, i.e. TREE_PUBLIC,
11051         TREE_STATIC or DECL_EXTERNAL.
11052         * function.c (put_var_into_stack): Call abort when placing a
11053         hard register into the stack, if x_parm_reg_stack_loc is NULL.
11054
11055 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
11056
11057         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
11058         ("*extendqisi2_short_displ"): Likewise.
11059
11060 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11061
11062         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
11063         (comp_operator): Likewise.
11064         * config/pdp11/pdp11-protos.h: Remove corresponding
11065         prototypes.
11066
11067 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
11068
11069         * expr.c (highest_pow2_factor_for_type): Rename into
11070         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
11071         TYPE_ALIGN when the target is a COMPONENT_REF.
11072         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
11073
11074 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11075
11076         * config/rs6000/rs6000.c: Formatting fix.
11077         (legitimate_offset_address_p): Correct offset range check.
11078
11079         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
11080         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
11081         and MASK_STRING.
11082
11083 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11084
11085         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
11086         for little endian.
11087         ("ashrdi3_no_power"): Disable for little endian.
11088         (ashrdi3): Same.
11089
11090 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11091
11092         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
11093         builtins.
11094
11095 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
11096
11097         PR target/14471
11098         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
11099         case, checking for -no-mul-bug-abort option.
11100         * configure, config.in: Regenerate.
11101         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
11102         and -mno-mul-bug-workaround.
11103         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
11104         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
11105         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
11106         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
11107         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
11108         sure mulu.d is not last on cache-line.
11109         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
11110         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
11111         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
11112         (TARGET_SWITCHES): New options -mmul-bug-workaround and
11113         -mno-mul-bug-workaround.
11114         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
11115         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
11116         * config/cris/cris.c (cris_operand_extend_operator): Clarify
11117         relation to MULT in head comment.
11118         (cris_op_str): Abort for MULT.
11119         (cris_print_operand) <case '!'>: New case.
11120
11121 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11122
11123         PR debug/11983
11124         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
11125         dw_val_class_vec.  Replace use throughout file.
11126         (dw_float_const): Delete.
11127         (dw_vec_const): New.
11128         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
11129         throughout file.
11130         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
11131         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
11132         (size_of_die): Adjust dw_val_class_vec sizing.
11133         (output_die): Output dw_val_class_vec.
11134         (insert_int, extract_int, insert_float): New functions.
11135         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
11136         Handle CONST_VECTOR.
11137         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
11138
11139 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11140
11141         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
11142         AltiVec abi cannot co-exist.
11143
11144         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
11145
11146 2004-03-07  Jan Hubicka  <jh@suse.cz>
11147
11148         * except.c (emit_to_new_bb_before):  Break fallthru edges.
11149
11150 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
11151
11152         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
11153         ("*lshrsi3"): Also accept an immediate for 68HC12.
11154         ("*ashrsi3_const"): Likewise.
11155         ("*ashrsi3"): Likewise.
11156         ("*ashlsi3_const"): Likewise.
11157         ("*ashlsi3"): Likewise.
11158         ("cmphi_1_hc12"): Compare two hard register by pushing them and
11159         comparing with a pop; don't use a split for that.
11160         ("cmphi split"): Disable compare split for 68HC12.
11161
11162         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
11163         the status operands if they have side effects.
11164
11165 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
11166
11167         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
11168         definition.
11169         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
11170         config/h8300/h8300.h, config/ia64/ia64.h,
11171         config/mcore/mcore.h, config/mmix/mmix.h,
11172         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11173         config/stormy16/stormy16.h, config/v850/v850.h,
11174         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
11175         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
11176         definition.
11177
11178 2004-03-07  Roger Sayle  <roger@eyesopen.com>
11179
11180         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
11181         <XOR_EXPR>: Fold x ^ x as zero.
11182         <AND_EXPR>: Fold x & x as x.
11183
11184 2004-03-07  Roger Sayle  <roger@eyesopen.com>
11185
11186         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
11187         "foo++ == const" into "++foo == const+incr".
11188
11189 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
11190
11191         * config/mips/mips.c (mips_in_small_data_p): Return false if
11192         TARGET_ABICALLS.
11193
11194 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
11195
11196         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
11197         the stack register.
11198         (expand_prologue): Don't make an interrupt or a trap handler a far
11199         symbol.
11200         (m68hc11_initial_elimination_offset): Likewise.
11201
11202 2004-03-06  Richard Henderson  <rth@redhat.com>
11203
11204         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
11205
11206 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11207
11208         * config/ns32k/ns32k-protos.h: Add a prototype for
11209         ns32k_notice_update_cc.
11210         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
11211         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
11212         ns32k_notice_update_cc.
11213
11214 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
11215
11216         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
11217         "*load_multiple_si"): Allow only if reload_completed.
11218         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
11219         Likewise.
11220
11221 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11222
11223         * config/vax/vax-protos.h: Add a prototype for
11224         vax_notice_update_cc.
11225         * config/vax/vax.c (vax_notice_update_cc): New.
11226         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
11227         vax_notice_update_cc.
11228
11229 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
11230
11231         * collect2.c (main): Only export initfunc and finifunc if
11232         LD_INIT_SWITCH not defined.
11233         (scan_prog_file): Only export constructors and destructors if
11234         LD_INIT_SWITCH not defined.  Only export symbols not found in
11235         shared objects.
11236
11237 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11238
11239         * pa.md (icacheflush): Reorder operands to make match_scratch operand
11240         last.
11241         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
11242         from calls to gen_icacheflush.
11243
11244 2004-03-06  Richard Henderson  <rth@redhat.com>
11245
11246         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
11247         (TARGET_LONG_DOUBLE_128): New.
11248         (TARGET_SWITCHES): Add long-double-{128,64}.
11249         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
11250         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
11251         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
11252         (WIDEST_HARDWARE_FP_SIZE): New.
11253         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
11254         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
11255         if TARGET_VAX_FLOAT.
11256         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
11257         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
11258
11259 2004-03-06  Richard Henderson  <rth@redhat.com>
11260
11261         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
11262         botched rtx class conversion.
11263
11264 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11265
11266         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
11267         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
11268
11269         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
11270         macros.
11271         * fold-const.c (fold_mathfn_compare, fold): Likewise.
11272
11273 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
11274
11275         PR target/14343
11276         * config/i386/i386.md (movv2di_internal): Conditionalize on
11277         TARGET_SSE, not TARGET_SSE2.
11278
11279 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
11280
11281         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
11282         duplicated line.
11283
11284 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11285
11286         * builtins.c: Consistently use logN not log* in comments.
11287
11288 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11289
11290         * rtl.h (mem_expr_equal_p): Function prototype added.
11291         * cfgcleanup.c (merge_memattrs): New function.
11292         (flow_find_cross_jump): Call merge_memattrs for matching insns.
11293         * emit-rtl.c (mem_expr_equal_p): New function.
11294
11295 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
11296
11297         * objc/objc-act.c (synth_module_prologue): Const-qualify
11298         objc_selector type if using the GNU runtime; fix generated
11299         signatures for objc_msg_lookup and objc_msg_lookup_super
11300         to match what GNU ObjC headers provide; reformat and clean up.
11301         (synth_self_and_ucmd_args): Use previously constructed (and
11302         hence possibly const-qualified) objc_selector type.
11303
11304 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11305
11306         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
11307
11308 2004-03-05  Jason Merrill  <jason@redhat.com>
11309
11310         * tree.h (TYPE_HASH): Use TYPE_UID.
11311         (TREE_HASH): New macro with old definition of TYPE_HASH.
11312         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
11313         (build_array_type, build_function_type): Likewise.
11314         (build_method_type_directly): Likewise.
11315         (build_offset_type, build_complex_type): Likewise.
11316         (type_hash_list, attribute_hash_list): Likewise. Now static.
11317         * except.c: s/TYPE_HASH/TREE_HASH/.
11318
11319 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
11320
11321         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
11322         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
11323         __va_ndx by 2 words when referencing an argument on the stack.
11324         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
11325         words when an arg on the stack is first seen.
11326
11327 2004-03-05  Paul Brook  <paul@codesourcery.com>
11328
11329         * arm.h (ARM_FLAG_VFP): Remove.
11330         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
11331         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
11332
11333 2004-03-05  Paul Brook  <paul@codesourcery.com>
11334
11335         * function.c (assign_parms): Include pretend alignment offset.
11336
11337 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11338
11339         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
11340         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
11341
11342 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
11343
11344         * configure.ac: When passing --enable-languages to subdir
11345         configure when host != build, make sure we don't pass an empty
11346         value.
11347         * configure: Regenerate.
11348
11349 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
11350
11351         PR 13577
11352         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
11353         options.
11354
11355 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
11356
11357         * simplify-rtx.c (simplify_relational_operation): If
11358         flag_wrapv is set, do not move terms between the two
11359         side of a relational operator.
11360
11361 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
11362
11363         * rtlanal.c: Include target.h and output.h
11364         (rtx_cost, address_cost, default_address_cost): Move from...
11365         * cse.c (rtx_cost, address_cost, default_address_cost):
11366         ... this file.
11367         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
11368         * Makefile.in: Adjust dependencies.
11369
11370 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
11371
11372         * cse.c (cse_end_of_basic_block): Make static.
11373         * local-alloc.c (function_invariant_p): Move to
11374         reload1.c.
11375         * loop.c (libcall_other_reg, record_excess_regs):
11376         Make static.
11377         * reload1.c (function_invariant_p): Moved here
11378         from local-alloc.c, made static.
11379         * rtl.h (cse_end_of_basic_block, function_invariant_p,
11380         libcall_other_reg, record_excess_regs): Remove
11381         declarations.
11382
11383 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11384
11385         * config/m32r/m32r.c (signed_comparison_operator): Add a
11386         missing parenthesis.
11387
11388 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
11389
11390         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
11391         going to call mmap again.  Read the file into the right place.
11392         Give a fatal error if we have to relocate.
11393
11394 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
11395
11396         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
11397         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
11398
11399 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
11400
11401         PR other/14354
11402         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
11403         round the same.  When rounding, clear bits that would cause a
11404         second rounding in pack_d.
11405         (_fpmul_parts): Ditto.  Remove #if 0:d code.
11406
11407 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
11408
11409         PR c++/14425, c++/14426
11410         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
11411         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
11412         Change C++ definitions to accept a 'const int' argument;
11413         the prototypes already do.
11414         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
11415         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
11416         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
11417         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
11418         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
11419         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
11420         end in ..._int; change them to accept an int instead of a char
11421         as the last parameter.
11422
11423 2004-03-04  Phil Edwards  <phil@codesourcery.com>
11424
11425         * genmultilib:  Change '=' to '-' when translating option names
11426         to directory names.
11427
11428 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11429
11430         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
11431         stack slot for temp used for result of BLKmode but in integral mode.
11432
11433 2004-03-04  Jan Hubicka  <jh@suse.cz>
11434
11435         * reload.c (find_reloads): Reorganize if seqeunce to switch.
11436
11437         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
11438         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
11439
11440 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
11441
11442         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
11443         * testsuite/gcc.dg/20040303-1.c: New test.
11444
11445 2004-03-04  Steven Bosscher  <stevenb@suse.de>
11446
11447         * ppro.md: Rewrite as a DFA pipeline description.
11448         * i386.md: Remove all uses of the ppro_uops attribute.
11449         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
11450         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
11451         ix86_sched_reorder, ix86_variable_issue,
11452         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
11453         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
11454         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
11455         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
11456         * athlon.md (athlon_ssecmp_load): Fix comment
11457
11458 2004-03-04  Stuart Hastings  <stuart@apple.com>
11459
11460         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
11461
11462 2004-03-04  Stuart Hastings  <stuart@apple.com>
11463
11464         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
11465         686, tell Darwin assembler to allow prefetch insns, non-empty def
11466         of SUBTARGET_OPTION_TRANSLATE_TABLE.
11467
11468 2004-03-04  DJ Delorie  <dj@redhat.com>
11469
11470         PR optimization/14282
11471         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
11472         between a call and the assignment of its return value.
11473
11474 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
11475
11476         * config/h8300/h8300.c: Put a comment for every function.
11477
11478 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
11479
11480         * config/h8300/h8300.md: Add comments about peephole2's.
11481
11482 2004-03-04  Steven Bosscher  <stevenb@suse.de>
11483
11484         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
11485
11486 2004-03-04  Jan Hubicka  <jh@suse.cz>
11487
11488         * cfgcleanup.c (thread_jump): Update call of cselib_init.
11489         * cselib.c (cselib_record_memory): New static variable.
11490         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
11491         Give up on memories when asked for.
11492         (cselib_init): Accept new argument.
11493         * cselib.h (cselib_init): Update prototype.
11494         * gcse.c (local_cprop_pass): Update call of cselib_init.
11495         * loop.c (load_mems): Update call of cselib_init.
11496         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
11497         * sched-deps.c (sched_analyze): Update call of cselib_init.
11498
11499 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
11500             GP <gp@qnx.com>
11501
11502         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
11503         when compiling PIC.
11504
11505 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
11506
11507         PR/14362
11508         * var-tracking.c (track_expr_p): Do not track variables which
11509         should be ignored for debugging purposes.
11510
11511 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
11512
11513         * real.c (encode_ibm_extended): Don't bother rounding low double.
11514         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
11515         when fmt->pnan < fmt->p.
11516
11517 2004-03-04  Eric Christopher  <echristo@redhat.com>
11518
11519         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
11520         only range of valid arg registers and fixed_regs.
11521
11522 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
11523
11524         PR target/14406
11525         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
11526         (abstf2, abstf2_internal): New define_expand.
11527
11528 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11529
11530         PR optimization/14235
11531         * expr.c (convert_move): Copy the source to a new pseudo
11532         when converting from a sub-word source to a larger-than-word
11533         register which conflicts with the source.
11534
11535 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
11536
11537         PR 13728
11538         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
11539         parameters with the same name, unless one is a forward decl.
11540         Do not issue a redundant-redeclaration warning for forward
11541         decls of parameters.
11542
11543 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
11544
11545         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
11546         configuration.
11547
11548 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
11549
11550         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
11551
11552 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
11553
11554         * target-def.h (TARGET_OPTF): Delete.
11555         * c-opts.c (TARGET_OPTF): Define.
11556
11557 2004-03-04  Jan Hubicka  <jh@suse.cz>
11558
11559         * cselib.c (cselib_finish): Fix another miss-application of my previous
11560         patch.
11561
11562 2004-03-03  Mike Stump  <mrs@apple.com>
11563
11564         Add framework support for darwin.
11565
11566         * c-incpath.c: Include target.h and machmode.h.
11567         (add_path): Use a consistent style for cpp_dir.  Initialize
11568         p->construct to 0.
11569         (add_cpp_dir_path): New.
11570         (register_include_chains): Add use of extra_includes callback.
11571         (hook_void_int): Add.
11572         (target_c_incpath): Add.
11573         * c-incpath.h (add_cpp_dir_path): New.
11574         (target_c_incpath_s): Add.
11575         (target_c_incpath): Add.
11576         (C_INCPATH_INIT): Add.
11577         * c-opts.c (c_common_missing_argument,
11578         c_common_handle_option): Add -F argument processing.
11579         * c.opt: Add -F argument processing.
11580         * gcc.c (trad_capable_cpp): Add -F argument processing.
11581         * cppfiles.c (find_file_in_dir): Update to use construct
11582         callback.
11583         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
11584         cpp_get_prev): New.
11585         (_cpp_find_file): Use search_path_exhausted.
11586         (make_cpp_dir): Initialize construct to 0.
11587         * cpplib.h (missing_header_cb
11588         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
11589         (cpp_callbacks): Add missing_header
11590         (cpp_dir): Add construct.
11591         * target-def.h: (TARGET_OPTF): New.
11592         * hooks.c (hook_void_int, hook_void_charptr): Add.
11593         * hooks.h (hook_void_int, hook_void_charptr): Add.
11594         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
11595         $(MACHMODE_H) dependencies.
11596         * doc/invoke.texi (Darwin Options): Document -F.
11597         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
11598         (TARGET_OPTF): Add.
11599         * fix-header.c (target_c_incpath): Add.
11600
11601         * config/darwin-c.c: Add c-incpath.h include.
11602         (using_frameworks, find_subframework_file,
11603         find_subframework_header, add_system_framework_path,
11604         frameworks_in_use, num_frameworks, max_frameworks,
11605         add_framework, find_framework, struct framework_header,
11606         framework_header_dirs, framework_construct_pathname,
11607         find_subframework_file, add_system_framework_path,
11608         add_framework_path, framework_defaults,
11609         darwin_register_frameworks, find_subframework_header): Add.
11610         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
11611         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
11612         (CPP_SPEC): Add __APPLE_CC__ support.
11613         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
11614
11615 2004-03-04  Jan Hubicka  <jh@suse.cz>
11616
11617         * cselib.c (cselib_finish): Fix miss-application of my previous
11618         patch.
11619
11620 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
11621
11622         * hooks.c (hook_tree_tree_identity): New.
11623         * hooks.h: Add a prototype for hook_tree_tree_identity.
11624         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
11625         instead of MD_ASM_CLOBBERS.
11626         * system.h (MD_ASM_CLOBBERS): Poison.
11627         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
11628         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
11629         * target.h (gcc_target): Add md_asm_clobbers.
11630         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
11631         (ix86_md_asm_clobbers): New.
11632         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
11633         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
11634         TARGET_MD_ASM_CLOBBERS.
11635
11636 2004-03-03  Stuart Hastings  <stuart@apple.com>
11637
11638         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
11639
11640 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
11641
11642         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
11643
11644         * config/sparc/sparc.h (ASM_FLOAT): Delete.
11645         (ASM_DOUBLE): Likewise.
11646         (ASM_LONGDOUBLE): Likewise.
11647         * config/sparc/pbd.h (ASM_INT_OP): Delete.
11648
11649 2004-03-03  Richard Henderson  <rth@redhat.com>
11650
11651         PR opt/13862
11652         * cselib.c (cselib_record_sets): Don't record multiple sets in
11653         asm insns.
11654
11655 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
11656
11657         * common.opt: Add description of the new -fgcse-after-reload flag.
11658
11659         * flags.h (flag_gcse_after_reload): Declaration of global variable.
11660
11661         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
11662         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
11663         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
11664         get_bb_avail_insn, hash_scan_set_after_reload,
11665         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
11666         gcse_after_reload, get_bb_avail_insn): New functions to implement
11667         gcse-after-reload.
11668         (gcse_after_reload_main): New function, the main entry point to
11669         gcse-after-reload.
11670
11671         * rtl.h (gcse_after_reload_main): Declaration of the new function.
11672
11673         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
11674
11675         * toplev.c (flag_gcse_after_reload): Initialization.
11676
11677         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
11678
11679         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
11680         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
11681         the gcse after reload optimization.
11682
11683         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
11684         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
11685         parameters.
11686
11687         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
11688
11689 2004-03-03  Nicolas Pitre <nico@cam.org>
11690
11691         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
11692         small negative values.
11693
11694 2004-03-03  Jan Hubicka  <jh@suse.cz>
11695
11696         * cselib.c (hash_table):  Remove GTY marker.
11697         (reg_values): Turn into array.
11698         (used_regs): Likewise.
11699         (n_used_regs): New static variable.
11700         (reg_values_old): Kill.
11701         (clear_table): Update uses of arrays.
11702         (cselib_lookup): Likewise.
11703         (cselib_record_set): Likewise.
11704         (cselib_init): Likewise.
11705         (cselib_finish): Likewise.
11706         (cselib_udpate_varray_sizes): Kill.
11707         * cselib.h (cselib_update_varray_sizes): Kill.
11708
11709 2004-03-03  Paul Brook  <paul@codesourcery.com>
11710
11711         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
11712
11713 2004-03-03  Jan Hubicka  <jh@suse.cz>
11714
11715         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
11716         Rename from ...; make statistics transparent.
11717         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
11718         (loc_descriptor): New structure.
11719         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
11720         add_statistics):
11721         New static function.
11722         (ggc_record_overhead, dump_statistics): New global function.
11723         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
11724         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
11725         from ...; accept locations
11726         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
11727         ggc_realloc, ggc_alloc_typed):  ... this one.
11728         from ...; accept locations
11729         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
11730         ggc_alloc_stat): Rename from ... ; pass locations
11731         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
11732         ... this one.
11733         (ggc_alloc_stat): Record overehead.
11734         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
11735         ggc_realloc, ggc_alloc_typed):  Turn to macros
11736         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
11737         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
11738         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
11739         * langhooks.h (lhd_make_node): Declare.
11740         (LANG_HOOKS_MAKE_TYPE): Default to new function,
11741         * langhooks.c (lhd_make_node): New.
11742         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
11743         locations.
11744         (rtx_alloc, swallow_copy_rtx): ... this one.
11745         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
11746         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
11747         * toplpev.c (finalize): Dump stats.
11748         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
11749         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
11750         Rename from ... ; pass locators.
11751         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
11752         build?,  build_decl): Declare.
11753         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
11754         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
11755         Declare.
11756         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
11757         build?,  build_decl): New macros.
11758         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
11759         * statistics.h: New file.
11760
11761 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11762             Richard Sandiford  <rsandifo@redhat.com>
11763
11764         * config/mips/mips.h (MASK_FIX_SB1): Bump.
11765         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
11766         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
11767         * config/mips/mips.c (mips_output_division): Fill the branch delay
11768         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
11769         TARGET_FIX_R4400.
11770         (mips_output_division): Adjust accordingly.
11771         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
11772         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
11773
11774 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
11775
11776         * alias.c (rtx_equal_for_memref_p): Use predicates
11777         to test rtx classes and new rtx class codes, possibly
11778         splitting conditionals that tested against '<' and 'o'.
11779         * caller-save.c (save_call_clobbered_regs): Likewise.
11780         * combine.c (contains_muldiv, find_split_point, subst,
11781         combine_simplify_rtx, simplify_if_then_else,
11782         simplify_set, simplify_logical, expand_compound_operation,
11783         make_compound_operation, if_then_else_cond, known_cond,
11784         apply_distributive_law, cached_nonzero_bits,
11785         cached_num_sign_bit_copies, simplify_shift_const,
11786         gen_binary, simplify_comparison, update_table_tick,
11787         record_value_for_reg, get_lsat_value_validate): Likewise.
11788         * cse.c (mention_regs, find_best_addr, find_comparison_args,
11789         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
11790         Likewise.
11791         * emit-rtl.c (copy_insn_1): Likewise.
11792         * expr.c (force_operand): Likewise.
11793         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
11794         * flow.c (notice_stack_pointer_modification_1,
11795         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
11796         and_reg_cond, elim_reg_cond): Likewise.
11797         * function.c (update_epilogue_consts): Likewise.
11798         * genattrtab.c (attr_rtx_1): Likewise.
11799         * genopinit.c (gen_insn): Likewise.
11800         * integrate.c (subst_constants): Likewise.
11801         * jump.c (reversed_comparison_code_parts,
11802         reversed_comparison_code, delete_related_insns,
11803         rtx_renumbered_equal_p): Likewise.
11804         * local-alloc.c (block_alloc): Likewise.
11805         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
11806         canonicalize_condition): Likewise.
11807         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
11808         Likewise.
11809         * optabs.c (add_equal_node, expand_binop): Likewise.
11810         * predict.c (estimate_probability): Likewise.
11811         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
11812         * recog.c (validate_replace_rtx_1, comparison_operator,
11813         offsettable_address_p, constrain_operands): Likewise.
11814         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
11815         Likewise.
11816         * regclass.c (scan_one_insn): Likewise.
11817         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
11818         * regrename.c (kill_autoinc_value): Likewise.
11819         * reload.c (find_reusable_reload, find_reloads,
11820         reg_overlap_mentioned_for_reload_p): Likewise.
11821         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
11822         * rtl.c (copy_rtx): Likewise.
11823         * rtl.h (CONSTANT_P, INSN_P): Likewise.
11824         * rtlanal.c (commutative_operand_precedence): Likewise.
11825         * sched-deps.c (conditions_mutex_p): Likewise.
11826         * sched-rgn.c (is_cfg_nonregular): Likewise.
11827         * simplify-rtx.c (simplify_gen_binary,
11828         simplify_gen_relational, simplify_replace_rtx,
11829         simplify_unary_operation, simplify_binary_operation,
11830         simplify_ternary_operation, simplify_rtx): Likewise.
11831         * unroll.c (reg_dead_after_loop): Likewise.
11832         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
11833         print_operand): Likewise.
11834         * config/arc/arc.c (proper_comparison_operator): Likewise.
11835         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
11836         Likewise.
11837         * config/avr/avr.c (_reg_unused_after): Likewise.
11838         * config/frv/frv.c (frv_ifcvt_modify_tests,
11839         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
11840         * config/i386/i386.c (ix86_comparison_operator,
11841         ix86_carry_flag_operator, fcmov_comparison_operator,
11842         arith_or_logical_operator, print_operand,
11843         ix86_expand_binary_operator, ix86_binary_operator_ok):
11844         Likewise.
11845         * config/i386/i386.md: Likewise.
11846         * config/ia64/ia64.c (not_postinc_memory_operand,
11847         ia64_print_operand, update_set_flags, errata_emit_nops):
11848         Likewise.
11849         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
11850         CONSTRAINT_OK_FOR_S): Likewise.
11851         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
11852         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
11853         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
11854         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
11855         Likewise.
11856         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
11857         eqne_comparison_operator, signed_comparison_operator):
11858         Likewise.
11859         * config/mips/mips.c (cmp_op, symbolic_expression_p):
11860         Likewise.
11861         * config/mmix/mmix (mmix_foldable_comparison_operator,
11862         mmix_comparison_operator): Likewise.
11863         * config/pa/pa.c (hppa_legitimize_address): Likewise.
11864         * config/rs6000/rs6000.c (stmw_operation,
11865         branch_comparison_operator, trap_comparison_operator,
11866         ccr_bit): Likewise.
11867         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
11868         * config/s390/s390.c (s390_alc_comparison,
11869         s390_slb_comparison):L Likewise.
11870         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
11871         Likewise.
11872         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
11873         noov_compare_op, noov_compare64_op, v9_regcmp_op,
11874         emit_hard_tfmode_operation, reg_unused_after)
11875         * doc/md.texi, doc/rtl.texi: Likewise.
11876
11877         * ra-debug.c: Add 2004 to list of copyright years.
11878         * unroll.c: Likewise.
11879
11880         * combine.c (simplify_logical): Remove dummy test,
11881         (apply_distributive_law): Fix typo in comment.
11882         GET_CODE (x) == AND so x is a commutative binary op.
11883         * jump.c (delete_related_insns): simplify loop
11884         condition, move testing of RTX codes inside the loop.
11885         (rtx_renumbered_equal_p): do not use RTX_CODE.
11886         * rtl.c (rtx_class): Declare as enum rtx_class.
11887         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
11888         Move to RTX_COMM_COMPARE class.
11889         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
11890         Move to RTX_CONST_OBJ class.
11891         * rtl.h (enum rtx_class): New declaration,
11892         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
11893         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
11894         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
11895         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
11896         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
11897         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
11898         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
11899         OBJECT_P): New macros.
11900         * config/sparc/sparc.c (noov_compare_op): Remove register
11901         from parameter.
11902
11903 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
11904
11905         * target.h: Remove texi jargons in comments.
11906
11907 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11908
11909         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
11910         threshold to 0x4f.
11911
11912         Revert:
11913         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11914         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11915         as well.
11916         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11917         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11918
11919 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11920
11921         * doc/md.texi (cbranchmode4): New.
11922
11923 2004-03-02  Eric Christopher  <echristo@redhat.com>
11924
11925         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
11926         fix_trunc.
11927         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
11928         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
11929         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
11930         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
11931
11932 2004-03-02  Richard Henderson  <rth@redhat.com>
11933
11934         PR middle-end/11767
11935         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
11936         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
11937         before the compare, if flag_non_call_exceptions.
11938
11939 2004-03-02  Richard Henderson  <rth@redhat.com>
11940
11941         PR middle-end/14327
11942         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
11943         emitting the label, not after.
11944
11945 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11946
11947         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
11948         (m68hc11_mov_addr_mode): Likewise.
11949         (m68hc11_override_options): Initialize them based on target.
11950         (register_indirect_p): Allow a MEM for indirect addressing modes and
11951         use flags to control what is allowed.
11952         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
11953         supported addressing modes.
11954         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
11955         (go_if_legitimate_address_internal): Likewise.
11956         (m68hc11_indirect_p): Likewise and check the mode.
11957         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
11958
11959 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
11960
11961         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
11962         (expand_builtin_setjmp_setup): Use
11963         targetm.builtin_setjmp_frame_value instead of
11964         BUILTIN_SETJMP_FRAME_VALUE.
11965         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
11966         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
11967         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
11968         * target.h (gcc_target): Add builtin_setjmp_frame_value.
11969         * targhooks.c (default_builtin_setjmp_frame_value): New.
11970         * targhooks.h: Add a prototype for
11971         default_builtin_setjmp_frame_value.
11972         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
11973         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
11974
11975 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11976
11977         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
11978         sequences of moves.
11979         (add peepholes): New peepholes to optimize sequences adding small
11980         constants.
11981         (bset peepholes): New peepholes to transform an OR in a bset form
11982         (bclr peepholes): Likewise for bclr form.
11983         (cmp peepholes): New peepholes to avoid register copies when comparing.
11984
11985 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
11986
11987         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
11988         to separate push from moves.
11989         ("*pushdf_internal"): Likewise.
11990         ("*pushsf_internal"): Likewise.
11991         ("*pushsi_internal"): Likewise.
11992         ("movdi_internal"): Use define_insn_and_split; non push operand.
11993         ("movdf_internal"): Likewise.
11994         ("movsf_internal"): Likewise.
11995         ("movsi_internal"): Likewise.
11996         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
11997         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
11998         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
11999
12000 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12001
12002         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
12003         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
12004         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
12005         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
12006         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
12007         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
12008         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
12009         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
12010         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
12011         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
12012         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
12013
12014 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12015
12016         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
12017         (SOFT_XY_REGNUM): Define.
12018         (cmp split): Use the above instead of hard coded numbers.
12019         (8-bit op split): No need to check the mode; allow Q_REG.
12020         (ashift split): Adjust the first operand if it uses the SP and we
12021         are pushing the shifted value.
12022         (plus shift split): Fix when a source is in register D+X.
12023         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
12024
12025 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12026
12027         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
12028         comparing with Z register.
12029
12030 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12031
12032         * cfgloop.h (struct loop_desc): Removed.
12033         (struct loop): Fields simple, desc and has_desc removed.
12034         (simple_loop_p, count_loop_iterations): Declaration removed.
12035         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
12036         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
12037         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
12038         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
12039         simple_loop_exit_p, variable_initial_value, variable_initial_values,
12040         simple_condition_p, simple_increment, count_strange_loop_iterations,
12041         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
12042         Removed.
12043         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
12044
12045 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12046
12047         * genattrtab.c: Don't handle MATCH_INSN.
12048         * genrecog.c: Likewise.
12049         * gensupport.c: Likewise.
12050         * rtl.def (match_insn): Remove.
12051         * doc/md.texi (match_insn, match_insn2): Remove.
12052
12053 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
12054
12055         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
12056         macro results in memory allocation.
12057
12058 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
12059
12060         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
12061         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
12062         %(fbsd_dynamic_linker),
12063         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
12064         config/i386/freebsd.h
12065         * config/arm/freebsd.h: Ditto.
12066         * config/i386/freebsd.h: Ditto.
12067         * config/i386/freebsd64.h: Ditto.
12068         * config/ia64/freebsd.h: Ditto.
12069         * config/rs6000/sysv4.h: Ditto.
12070         * config/sparc/freebsd.h: Ditto.
12071
12072 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
12073
12074         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
12075
12076 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12077
12078         * rtl.def (define_combine): Remove.
12079
12080 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12081
12082         * config/h8300/h8300.md: Tweak formatting.
12083
12084 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12085
12086         * config/h8300/h8300.md (*cmphi_h8300): Rename to
12087         *cmphi_h8300_znvc.
12088         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
12089
12090 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
12091
12092         PR bootstrap/14356
12093         * gcc.c (process_command): Remove const-qualification from argv.
12094         (main): Likewise.
12095
12096 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12097
12098         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
12099         pushqi1_h8300hs_advanced.  Adjust its caller.
12100         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
12101         Adjust its caller.
12102
12103 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
12104
12105         * Makefile.in (install-libgcc, install-multilib): Pass
12106         mkinstalldirs var to libgcc.mk.
12107
12108 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12109
12110         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
12111         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
12112
12113 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12114
12115         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
12116         * config/h8300/h8300.md: Split several peephole2's, each into
12117         two.
12118
12119 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12120
12121         * dominance.c (recount_dominator): Handle postdominators.
12122
12123 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12124
12125         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
12126         (NUM_SYMBOL_TYPES): Likewise.
12127         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
12128         (mips_unspec_address): Declare.
12129         (mips_gotoff_page, mips_gotoff_global): Delete.
12130         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
12131         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
12132         (mips_symbolic_constant_p, mips_symbolic_address_p)
12133         (mips_symbol_insns): Handle new symbol types.
12134         (general_symbolic_operand): New predicate.
12135         (mips_unspec_address): Make extern.
12136         (mips_gotoff_page, mips_gotoff_global): Delete.
12137         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
12138         Handle new symbol types.
12139         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
12140         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
12141         mips_unspec_address directly.
12142         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
12143         the documentation of -mexplicit-relocs.
12144
12145 2004-03-01  Jeff Law  <law@redhat.com>
12146
12147         * fold-const.c (fold): An equality comparison of a non-weak object
12148         against zero has a known result.  Similarly an equality comparison
12149         of the address of two non-weak, unaliased symbols has a known result.
12150
12151         * ggc-page.c (struct page_entry): New field PREV.
12152         (ggc_alloc): Update PREV field appropriately.
12153         (sweep_pages): Likewise.
12154         (ggc_free): Likewise.  Use PREV field rather than loop to
12155         improve ggc_free performance.
12156
12157 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12158
12159         * config/mips/mips.c (mips_output_division): Use the division
12160         instruction to fill the delay slot of a zero check.
12161         (mips_idiv_insns): Adjust accordingly.
12162
12163 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
12164
12165         * config.gcc: Create a default tmake_file for linux, and use
12166         it in all but two linux clauses.  Comment those two.
12167
12168 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
12169
12170         * combine.c (try_combine):  Do not refer to is_replaced.
12171         (gen_lowpart_for_combine):  Perverse subregs now have a
12172         more politically correct name.
12173         * cse.c (cse_insn): Likewise.
12174         * jump.c: Fix bogus reference to delete_insn.
12175
12176 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
12177
12178         PR debug/14328
12179         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
12180         constants as signed values.
12181
12182         PR middle-end/13448
12183         * c-tree.h (readonly_warning): Rename to ...
12184         (readonly_error): ... this.
12185         * c-typeck.c (build_unary_op): Adjust accordingly.
12186         (readonly_warning): Rename to ...
12187         (readonly_error): ... this and issue errors, not warnings.
12188         (build_modify_expr): Call readonly_error, not readonly_warning.
12189         (c_expand_asm_operands): Likewise.
12190         * tree-inline.c (optimize_inline_calls): Do not inline functions
12191         after errors have occurred.
12192
12193 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
12194
12195         * configure.ac: Rearrange some threading code for clarity;
12196         add section comment.
12197         * configure: Regenerate.
12198
12199 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12200
12201         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
12202         typos.
12203         * doc/cppopts.texi: Fix a typo.
12204
12205 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12206
12207         * config/i386/i386.md: Fix formatting.
12208
12209 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
12210
12211         * configure.ac: Add some comments delineating sections of code.
12212
12213         * doc/install.texi: Note that libada uses autoconf 2.57 also.
12214
12215         * doc/install.texi: Fix idiot typo in previous commit.
12216
12217         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
12218
12219 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12220
12221         * config/h8300/h8300.md: Add comments about peephole2's.
12222
12223 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12224
12225         * config/h8300/h8300.md: Tweak operand numbers of some
12226         peephole2's.
12227
12228 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12229
12230         * config/h8300/h8300.md: Tweak comments about peephole2's.
12231
12232 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
12233
12234         PR middle-end/14203
12235         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
12236         instead of testing whether DECL_RTL is not NULL.
12237
12238 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12239
12240         * config/sh/sh.c: Fix formatting.
12241
12242 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12243
12244         * config/sh/sh.c: Convert to ISO-C.
12245
12246 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
12247
12248         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
12249         my previous patch.
12250
12251         * config/darwin.h (machopic_finish): Output stub even if the
12252         symbol is already defined.
12253
12254 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12255
12256         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
12257
12258 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12259
12260         * genattr.c (main): Don't define
12261         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
12262         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
12263         (DFA_PIPELINE_INTERFACE): Likewise.
12264         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
12265         (DFA_PIPELINE_INTERFACE): Likewise.
12266
12267 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
12268
12269         * config/mips/mips.md (tstsi, tstdi): Delete.
12270
12271 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12272
12273         * config/mips/mips.c (override_options): Remove an obsolete
12274         duplicate definition of the "e" constraint.
12275         * config/mips/mips.h: Update a comment accordingly.
12276
12277 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12278
12279         * config/mips/mips.md: Complete the unfinished R4000
12280         multiply/shift errata workaround.  Improve documentation.
12281         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
12282         has a hilo hazard.
12283         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
12284         (muldi3, muldi3_internal): Likewise.
12285         (muldi3_internal2): Remove, replacing with...
12286         (muldi3_mult3, muldi3_r4000): ...these new patterns.
12287         (mulsidi3): Take the errata into account.
12288         (mulsidi3_32bit): Remove, replacing with...
12289         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
12290         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
12291         (umulsidi3): Take the errata into account.
12292         (umulsidi3_32bit): Remove, replacing with..
12293         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
12294         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
12295         TARGET_FIX_R4000.
12296         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
12297         (smuldi3_highpart, umuldi3_highpart): Likewise.
12298         * doc/invoke.texi: Document the errata workaround.
12299
12300 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12301
12302         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
12303         * config/mips/mips.h (MASK_FIX_SB1): Bump.
12304         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
12305         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
12306         * config/mips/mips.c (mips_idiv_insns): New function.
12307         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
12308         (mips_output_division): Add a workaround for the R4000 divide/shift
12309         errata.
12310         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
12311         the length of an "idiv" instruction.
12312         * doc/invoke.texi: Document the new switches.
12313
12314 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12315
12316         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
12317         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
12318
12319 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12320
12321         PR optimization/14229
12322         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
12323
12324 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
12325
12326         * fold-const.c (fold): Strip NOPs that change the signedness
12327         for RSHIFT too.  Expand comment.
12328
12329 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
12330
12331         PR optimization/7871
12332         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
12333         from or to call insns.
12334
12335 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
12336
12337         PR optimization/7871
12338         * flow.c (propagate_one_insn): Interpret calls as setting global
12339         registers, not merely clobbering them.
12340
12341 2004-02-27  Dale Johannesen  <dalej@apple.com>
12342
12343         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
12344         config/darwin-protos.h:  Ditto.
12345         config/darwin.h:  Remove call to it.
12346         * combine.c (distribute_notes): Do not place a REG_DEAD note
12347         when value is both set and used.
12348
12349 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12350
12351         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
12352         as well.
12353         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
12354         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
12355
12356 2004-02-27  Andrew Pinski  <apinski@apple.com>
12357
12358         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
12359         Speedup common case of the type values being in the same order.
12360
12361 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
12362
12363         * config/ia64/ia64.h (no-inline-float-divide): New option.
12364         * config/ia64/ia64.h (no-inline-int-divide): New option.
12365         * config/ia64/ia64.h (no-inline-sqrt): New option.
12366         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
12367         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
12368         * config/ia64/ia64.c (ia64_override_options): Modify error
12369         checking for inlined division/sqrt.
12370
12371 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12372
12373         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
12374         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
12375         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
12376         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
12377         copyright.
12378
12379 2004-02-27  Paul Brook  <paul@codesourcery.com>
12380
12381         * function.c (assign_parms): Don't count pretend args for alignment.
12382
12383 2004-02-27  Richard Henderson  <rth@redhat.com>
12384
12385         * passes.c: New file.
12386         * Makefile.in (OBJS-common): Add it.
12387         * diagnostic.c (rtl_dump_and_exit): Move decl ...
12388         * flags.h (rtl_dump_and_exit): ... here.
12389         * output.h (size_directive_output, last_assemble_variable_decl):
12390         Move from toplev.c.
12391         * rtl.h (reg_alloc): Move from toplev.c.
12392         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
12393         struct dump_file_info, enum dump_file_index, dump_file_tbl,
12394         open_dump_file, close_dump_file, rest_of_decl_compilation,
12395         rest_of_type_compilation, rest_of_handle_final,
12396         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
12397         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
12398         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
12399         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
12400         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
12401         rest_of_handle_tracer, rest_of_handle_if_conversion,
12402         rest_of_handle_if_after_combine, rest_of_handle_web,
12403         rest_of_handle_branch_prob,
12404         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
12405         rest_of_handle_addressof, rest_of_handle_sibling_calls,
12406         rest_of_handle_jump_bypass, rest_of_handle_inlining,
12407         rest_of_handle_null_pointer, rest_of_handle_combine,
12408         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
12409         rest_of_handle_gcse, rest_of_handle_loop_optimize,
12410         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
12411         (decode_d_option): Use enable_rtl_dump_file.
12412         (compile_file, finalize, do_compile): Move profile+combine+graph
12413         cleanup to finish_optimization_passes.
12414         * toplev.h (init_optimization_passes, finish_optimization_passes,
12415         enable_rtl_dump_file): Declare.
12416
12417 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
12418             Roger Sayle  <roger@eyesopen.com>
12419
12420         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
12421         operands to build a tree with swapped operands.
12422         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
12423         'unsignedp' predicate to specify the signedness.
12424
12425 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12426
12427         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
12428         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
12429         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
12430         comment typos and formatting.  Follow spelling conventions.
12431
12432 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
12433
12434         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
12435         fix_truncsfsi2.
12436
12437         * config/rs6000/spe.md: Delete spe_efsctuiz.
12438         Add spe_fixuns_truncsfsi2.
12439         Add spe_fix_truncsfsi2.
12440
12441 2004-02-26  Eric Christopher  <echristo@redhat.com>
12442
12443         * c-lex.c (c_lex_string_translate): New variable.
12444         (lex_string): Use to determine string translation.
12445         * c-pragma.h: Prototype.
12446         * c-parse.in (start_string_translation): New. Set above.
12447         (stop_string_translation): Ditto.
12448         (attribute, attribute_list, asm_def, asm_stmt,
12449         asm_operand): Use above functions.
12450         * cp/parser.c (cp_parser_declaration): Translate strings
12451         unless token is RID_EXTERN. Set c_lex_string_translate
12452         for recursive use.
12453         (cp_parser_asm_definition): Only translate argument strings
12454         to asms.
12455         (cp_parser_asm_operand_list): Ditto.
12456         (cp_parser_attribute_list): Do not translate attribute strings.
12457
12458 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12459
12460         * stmt.c (expand_start_case_dummy): Remove.
12461         * tree.h: Remove the corresponding prototype.
12462
12463 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12464
12465         * builtins.c (apply_args_register_offset): Remove.
12466         * tree.h: Remove the corresponding prototype.
12467
12468 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12469
12470         * stor-layout.c (is_pending_size): Remove.
12471         * tree.h: Remove the corresponding prototype.
12472
12473 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12474
12475         * recog.c (validate_replace_src): Remove.
12476         * recog.h: Remove the corresponding prototype.
12477
12478 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12479
12480         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
12481         MAYBE_REG_PARM_STACK_SPACE.
12482         * function.c: Likewise.
12483         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
12484         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
12485         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
12486         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
12487
12488 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12489
12490         * c-decl.c (c_expand_deferred_function): Remove.
12491         * c-tree.h: Remove the corresponding prototype.
12492
12493 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12494
12495         * postreload.c (reload_cse_move2add): Generate just a PLUS
12496         instead of an entire SET.
12497
12498 2004-02-26  Jan Hubicka  <jh@suse.cz>
12499
12500         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
12501         /pentium4m.
12502         * i386.c (override_options): Add support for new CPUs.
12503         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
12504         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
12505         constants.
12506         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
12507
12508 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
12509
12510         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
12511
12512 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
12513
12514         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
12515         (sparc_emit_fixunsdi): New prototype.
12516         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
12517         (sparc_emit_fixunsdi): New function.
12518         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
12519         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
12520         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
12521         to sparc_emit_floatunsdi.
12522         (fixuns_truncsfdi2): New expander.
12523         (fixuns_truncdfdi2): Likewise.
12524
12525 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
12526
12527         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
12528         unless HAVE_cc0.
12529
12530 2004-02-25  Richard Henderson  <rth@redhat.com>
12531
12532         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
12533         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
12534         use (op0-op1) == 0 if op0 is a pointer.
12535         * config/alpha/alpha.md (cmpdi): Use some_operand.
12536         (three comparison combine splits): Remove.
12537
12538 2004-02-25  Richard Henderson  <rth@redhat.com>
12539
12540         PR c/12794
12541         * c-common.c (handle_alias_attribute): Reject the attribute if
12542         current_function_decl is set.
12543
12544 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
12545
12546         * config.gcc: Add comment describing extra_gcc_objs.
12547         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
12548         * configure.ac (extra_gcc_objs): New substitution variable.
12549         (host_extra_gcc_objs): Don't substitute.
12550         * configure: Regenerate.
12551         * Makefile.in: Use extra_gcc_objs.
12552
12553 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
12554
12555         * doc/contrib.texi: Add an entry for myself.
12556
12557 2004-02-25  Jan Hubicka  <jh@suse.cz>
12558
12559         * basic-block.h (make_eh_edge, break_superblocks): Declare.
12560         * cfgbuild.c (make_eh_edge):  Make global.
12561         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
12562         * except.c (build_post_landing_pads, connect_post_landing_pads,
12563         dw2_build_landing_pads, sjlj_emit_function_enter,
12564         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
12565         sjlj_build_landing_pads): Update CFG.
12566         (emit_to_new_bb_before): New function.
12567         (finish_eh_generation): Do not rebuild the CFG.
12568
12569 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12570
12571         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
12572         target_cpu_default defines.
12573         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
12574         * pa.h (TARGET_DEFAULT): Likewise.
12575
12576 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
12577
12578         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
12579         comparisons with regard to signedness.
12580
12581 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
12582
12583         * arm.c (thumb_legitimize_address): New function.
12584         * arm-protos.h: Prototype it.
12585         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
12586         (LEGITIMIZE_ADDRESS): Use it.
12587
12588 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
12589
12590         * reload1.c (reload): Only spill eliminable register with multiple
12591         adjacent elimination alternatives if all alternatives fail.
12592
12593 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
12594
12595         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
12596         is -4095...+4095 inclusive.
12597
12598 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
12599
12600         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
12601         the bootstrap failure with Sun CC 5.4 and 5.5.
12602
12603 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12604
12605         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
12606         which modifies NEWREG.
12607         (cse_condition_code_reg): Update the mode of CC_REG in
12608         CC_SRC_INSN on our own.
12609
12610 2004-02-24  Michael Matz  <matz@suse.de>
12611
12612         * config/i386/i386.c (ix86_comp_type_attributes): Check for
12613         regparm attributes.
12614
12615 2004-02-24  Richard Henderson  <rth@redhat.com>
12616
12617         * toplev.c (dump_file_tbl): Rename from dump_file.
12618         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
12619         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
12620         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
12621         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
12622         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
12623         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
12624         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
12625         s/rtl_dump_file/dump_file/g.
12626
12627 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
12628
12629         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
12630         (spe_fixuns_truncsfsi2): Delete.
12631
12632         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
12633         (fixuns_truncsfsi2): Delete.
12634
12635 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
12636
12637         PR/14240
12638         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
12639
12640 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
12641
12642         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
12643
12644 2004-02-24  Jason Merrill  <jason@redhat.com>
12645
12646         * tree.c (check_qualified_type): New fn.
12647         (get_qualified_type): Use it.  If type already has the desired
12648         quals, just return it.
12649         * tree.h: Declare it.
12650
12651 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
12652
12653         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
12654         TARGET_SCHED_FINISH_GLOBAL): New macros.
12655
12656         * target.h (md_init_global, md_finish_global): Function
12657         declarations corresponding to new target macros.
12658
12659         * haifa-sched.c (sched_init, sched_finish): Allow target to
12660         call the new schedular hooks.
12661
12662         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
12663         call to update_life_info.
12664
12665         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
12666         flag_schedule_insns for SH4.
12667
12668         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
12669         find_set_regmode_weight, find_insn_regmode_weight,
12670         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
12671         sh_variable_issue, high_pressure, ready_reorder,
12672         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
12673         functions used to throttle the insn movement in first
12674         scheduling pass for SH.
12675
12676         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
12677         TARGET_SCHED_FINISH_GLOBAL.
12678
12679 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
12680
12681         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
12682         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
12683         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
12684         symbols in sections named by the user.
12685         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
12686         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
12687         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
12688         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
12689         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
12690         the above.
12691         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
12692         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
12693         one more pseudo to further improve code generation.
12694         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
12695         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
12696         inside UNSPEC.
12697         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
12698         * config/frv/frv.c (frv_legitimate_address_p): Added
12699         allow_double_reg_p argument.  Adjust all callers.  Use it to
12700         decide whether to enable double-register indirect addressing.
12701         (frv_funcdesc_alias_set): Remove.
12702         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
12703         register.  Emit movdi_ldd.
12704         (ldd_address_operand): New.
12705         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
12706         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12707         (PREDICATE_CODES): Add ldd_address_operand.
12708         * config/frv/frv.md (movdi_ldd): New.
12709         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
12710         intermediate computations if possible.
12711         (symGOTOFF2reg_i): Fix harmless typo.
12712         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
12713         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
12714         relocated p_vaddr to vaddr type.
12715         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
12716         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
12717         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
12718         MEM, or use a funcdesc alias set.  Use regular move instead of
12719         ldd.
12720         (dbl_memory_one_insn_operand): Recognize function descriptors by
12721         type or by alias set, and don't split them.
12722         * config/frv/frv.md (call, call_value): Never use call_internal
12723         for fdpic.
12724         (call_internal, call_value_internal): Never match for FDPIC.
12725         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
12726         call_value_fdpicsi): Require FDPIC.
12727         (ldd): Removed.
12728         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
12729         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
12730         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
12731         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
12732         FDPIC.  Compute data base address.
12733         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
12734         before the other self-specs are processed.
12735         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
12736         Build with -fPIC.
12737         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
12738         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
12739         inhibit_libc is defined.
12740         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
12741         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
12742         __FRV_FDPIC__.
12743         (__RELOC_POINTER): Define.
12744         (_Unwind_IteratePhdrCallback): Use it.
12745         * config/frv/frv.h (Twrite): Define.
12746         (TRANSFER_FROM_TRAMPOLINE): Use it.
12747         * config/frv/linux.h (INVOKE__main): Undefine.
12748         (Twrite): Override.
12749         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
12750         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
12751         (-mlibrary-pic): Emphasize that this option generates EABI code.
12752         (-mcpu): Add fr550.
12753         (-mpack): Remove.
12754         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
12755         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
12756         and CONSTs in FDPIC mode.
12757         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
12758         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
12759         * config/frv/frv.c (move_source_operand): Don't accept symbolic
12760         constants.
12761         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
12762         rather than 'i' constraint for the 2-instruction alternative.
12763         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
12764         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
12765         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
12766         EXTRA_CONSTRAINT_FOR_Y.
12767         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
12768         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
12769         (addsi3): Change 'Y' constraint to 'Q'.
12770         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
12771         * reload.c (CONST_POOL_OK_P): New macro.
12772         (find_reloads): Use it to decide whether a constant can be forced
12773         into memory.
12774         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
12775         constant satisfies got12_operand.
12776         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
12777         (frv_legitimate_address_p): Check for valid unspec offsets using
12778         got12_operand rather than frv_legitimate_fdpic_operand_p.
12779         (frv_legitimate_fdpic_operand_p): Delete.
12780         (frv_emit_movsi): Abort if we try to use the FDPIC register during
12781         or after reload.
12782         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
12783         TARGET_FDPIC.
12784         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
12785         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
12786         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
12787         (frv_fdpic_fptr_operand): Don't declare here.
12788         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
12789         rather than fdpic_got12_operand.
12790         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
12791         got12_operand and const_unspec_operand.
12792         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
12793         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
12794         (symbolic_operand): Remove.
12795         (const_unspec_operand): New predicate.
12796         * config/frv/frv.md (*movsi_got): Use got12_operand.
12797         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
12798         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
12799         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
12800         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
12801         * config/frv/frv.c (frv_unspec): New structure.
12802         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
12803         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
12804         validate CONST indices.  Use frv_output_const_unspec to print them.
12805         (frv_print_operand): Update call to unspec_got_name.  Use
12806         frv_output_const_unspec to print constant unspecs.
12807         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
12808         Reject UNSPECs otherwise.
12809         (unspec_got_name): Take the relocation number as argument, not an
12810         rtx containing it.
12811         (frv_output_addr_const_extra): Remove, replacing with...
12812         (frv_output_const_unspec): ...this new function.
12813         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
12814         (gpr_or_int12_operand): Use fdpic_got12_operand.
12815         (dbl_memory_one_insn_operand): Likewise.
12816         (fdpic_got12_operand): Use frv_const_unspec_p.
12817         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
12818         are already legitimate.  Use frv_small_data_reloc_p when deciding
12819         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
12820         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
12821         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
12822         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
12823         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
12824         label, for real this time.
12825         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
12826         representation of visibility.
12827         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
12828         such.
12829         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
12830         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
12831         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
12832         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
12833         it was explicitly disabled.
12834         (frv_stack_info): There is no need to save the link register in every
12835         frame unless TARGET_LINKED_FP is true.
12836         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
12837         frame pointer if the stack pointer might change value.
12838         (frv_return_addr_rtx): Check and process "count" argument.
12839         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
12840         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
12841         (frv_find_base_term): Declare.
12842         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
12843         (FIND_BASE_TERM): Define.
12844         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
12845         small_data_register_operand, small_data_symbolic_operand.  Add
12846         symbolic_operand.
12847         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
12848         (frv_print_operand_memory_reference, output_move_single): Remove
12849         special handling for unlegitimized sdata addresses.
12850         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
12851         and symbolic addresses.
12852         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
12853         (frv_find_base_term): New function.
12854         (int_2word_operand): Check specifically for symbolic address constants.
12855         (pic_register_operand, pic_symbolic_operand): Delete.
12856         (small_data_register_operand, small_data_symbolic_operand): Delete.
12857         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
12858         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
12859         (move_source_operand): Only accept CONSTs if they're a two-insn
12860         symbolic constant.
12861         (fdpic_got12_operand): Don't require TARGET_FDPIC.
12862         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
12863         using gen_symGOTOFF2reg*.
12864         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
12865         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
12866         themselves a cost of 3 insns.
12867         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
12868         Change predicate to symbolic_operand.
12869         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
12870         (*movsi_lda_sdata): Delete.
12871         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
12872         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
12873         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
12874         frv-*-*linux*.
12875         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
12876         label.
12877         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
12878         -multilib-library-pic.
12879         (LINK_SPEC): Add -z text for -mfdpic.
12880         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
12881         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
12882         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
12883         Override.
12884         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
12885         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
12886         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
12887         crtstuff-generated files.
12888         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
12889         * config.gcc: Add frv-*-*linux*.
12890         * config/frv/linux.h, config/frv/t-linux: New.
12891         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
12892         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
12893         when -mfdpic even if a linker script is explicitly listed.
12894         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
12895         * config/frv/frv.c (frv_override_options): Clear asm_out
12896         unaligned_op for SImode on FDPIC.
12897         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
12898         argument passed to decl_readonly_section.
12899         (frv_assemble_integer): Revert 2003-09-30's change, but make the
12900         whole block run with FDPIC even with -fno-PIC.
12901         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
12902         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
12903         symbol or label plus offset to memory.
12904         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
12905         GOTOFF and GPREL for LABEL_REF.
12906         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
12907         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
12908         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
12909         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
12910         * doc/invoke.texi: Document them.
12911         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
12912         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
12913         (frv_splittable_got_operand): Removed.
12914         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
12915         LO_SUM.  Add comments.
12916         (frv_override_options): Moved enabling of FDPIC to
12917         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
12918         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
12919         (frv_legitimize_fdpic_address): Don't duplicate logic in
12920         frv_emit_movsi.
12921         (frv_gen_GPsym2reg): New.
12922         (unspec_got_name): Added gprel.
12923         (frv_expand_fdpic_call): Add support for inlining PLTs.
12924         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
12925         (gpr_or_int12_operand): Added GPREL12.
12926         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
12927         (small_data_symbolic_operand): Fail if FDPIC.
12928         (fdpic_splittable_got_operand): Removed.
12929         (fdpic_got12_operand): Added GPREL12.
12930         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
12931         when appropriate.  Fix sdata GOTOFF.
12932         (frv_legitimate_constant_p): Require legitimate PIC operand for
12933         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
12934         (frv_assemble_integer): Move FDPIC funcdesc handling out of
12935         flag_pic case.
12936         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
12937         frv_assemble_integer fails.
12938         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
12939         (SUBTARGET_DRIVER_SELF_SPECS): New.
12940         (ASM_SPEC): Don't pass -mno-fdpic.
12941         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
12942         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
12943         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
12944         -multilib-library-pic.
12945         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
12946         condexec_si_media_operator, condexec_sf_add_operator and
12947         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
12948         and condexec_sf_unary_operator.
12949         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
12950         New.
12951         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
12952         movsi_internal.  Give them internal names.  movsi_got has type
12953         int.
12954         (fdpic got splitters): Remove.
12955         (symGPREL2reg, symGPREL2reg_hilo): New.
12956         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
12957         to -mlibrary-pic.  Map -multilib-library-pic to it.
12958         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
12959         Document.
12960         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
12961         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
12962         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
12963         (frv_cannot_force_const_mem): New function.
12964         (const_small_data_p, plus_small_data_p): Update comments on sdata
12965         on FDPIC.
12966         (frv_override_options): Set flag_pie for FDPIC too.
12967         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
12968         call-saved registers on FDPIC.
12969         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
12970         don't force LR to be preserved.
12971         (frv_expand_prologue): Likewise.
12972         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
12973         (frv_frame_pointer_required): Don't force it just because the
12974         FDPIC register is used.
12975         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
12976         operand only if !condexec_p.
12977         (frv_legitimize_address): Return the FDPIC-legitimized address.
12978         Don't match small data here on FDPIC.
12979         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
12980         symbols.  Use TRUE/FALSE instead of 1/0.
12981         (frv_local_funcdesc_p): New.
12982         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
12983         immediates when possible.
12984         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
12985         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
12986         an UNSPEC_GOT.
12987         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
12988         12-bit immediates when possible.
12989         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
12990         are not legitimate pic operands.
12991         (frv_in_small_data_p): Re-enable for FDPIC.
12992         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
12993         (FRV_GLOBAL_P): Removed.
12994         * config/frv/frv.md: Add modes to CONSTs.
12995         (movsi_got): New.
12996         (movsi_lo_sum_got): Use separate matches instead of match_dup.
12997         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
12998         (fdpic splittable operations): Match on flag_pic != 1.
12999         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
13000         * config/frv/frv.c (frv_asm_out_constructor,
13001         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
13002         bytes, not bits.
13003         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
13004         * config/frv/frv.c (frv_assemble_integer): Reject complex
13005         expressions referencing function SYMBOL_REFs.
13006         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
13007         (move_source_operand): Reject CONSTs that reference function
13008         SYMBOL_REFs on FDPIC.
13009         (frv_emit_movsi): If we get such a CONST, break it up.
13010         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
13011         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
13012         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
13013         MEM.
13014         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
13015         (frv_trampoline_size): Increase for FDPIC.
13016         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
13017         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
13018         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
13019         Disable use of GOTOFF for now.
13020         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
13021         Disable use of small data in FDPIC for now.
13022         (frv_asm_output_mi_thunk): Implement for FDPIC.
13023         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
13024         * config/frv/frv.c (frv_asm_out_constructor): Use
13025         frv_assemble_integer for FDPIC pointers.
13026         (frv_asm_out_destructor): Likewise.
13027         * config/frv/frv.md (ldd): Fix order of operands.  Use
13028         address_operand for input.
13029         2003-09-18  DJ Delorie  <dj@redhat.com>
13030         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
13031         (unspec_got_name): Correct typo.
13032         (frv_emit_movsi): Pre-expand splittable GOTs.
13033         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
13034         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
13035         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
13036         * config/frv/t-frv: Add -mfdpic multilibs.
13037         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
13038         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
13039         * config/frv/frv.c (frv_override_options): -mfdpic assumes
13040         flag_pic, default to 32-bit pics, require DWORD ops.
13041         (frv_override_options): Add W and Z constraints.
13042         (frv_expand_prologue): No pic prologue for -mfdpic.
13043         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
13044         (frv_print_operand_memory_reference): Handle GOT constants.
13045         (frv_legitimate_address_p): Allow GOT constants.
13046         (frv_legitimize_address): Handle GOT addresses too.
13047         (frv_legitimate_fdpic_operand_p): New.
13048         (frv_legitimize_fdpic_address): New.
13049         (unspec_got_name): New.
13050         (frv_output_addr_const_extra): New.
13051         (frv_expand_fdpic_call): New.
13052         (frv_fdpic_fptr_operand): New.
13053         (gpr_or_int12_operand): Handle GOT operands.
13054         (int_2word_operand): Handle GOT operands.
13055         (fdpic_operand): New.
13056         (fdpic_splittable_got_operand): New.
13057         (fdpic_got12_operand): New.
13058         (frv_emit_movsi): Handle GOT operands.
13059         (frv_assemble_integer): -mfdpic doesn't use rofixups.
13060         (frv_print_operand): Support 'g' code for GOT operands.
13061         * config/frv/frv-protos.h: Add prototypes as needed.
13062         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
13063         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
13064         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
13065         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
13066         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
13067         R_FRV_GOTOFFLO): New.
13068         (movsi_high_got, movsi_lo_sum_got): New.
13069         (*movsi_pic): Don't use this splitter for -mfdpic.
13070         (addsi3): Allow GOT references also.
13071         (call, call_value): Handle -mfdpic separately.
13072         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
13073         call_value_fdpicsi): New.
13074         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
13075         symGOTOFF2reg_i): New.
13076         * config/frv/frv.h (MASK_FDPIC): New.
13077         (TARGET_FDPIC): New.
13078         (TARGET_SWITCHES): Add -mfdpic.
13079         (FDPIC_FPTR_REGNO): New.
13080         (FDPIC_REGNO): New.
13081         (OUR_FDPIC_REG): New.
13082         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
13083         FDPIC_CALL_REGS.
13084         (REG_CLASS_NAMES): Likewise.
13085         (REG_CLASS_CONTENTS): Likewise.
13086         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
13087         (EXTRA_CONSTRAINT): Add it here.
13088         (FRV_GLOBAL_P): New.
13089         (OUTPUT_ADDR_CONST_EXTRA): New.
13090
13091 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13092
13093         * config/sparc/sparc.h: Remove commented-out definitions of
13094         TARGET_EDOM and GEN_ERRNO_RTX.
13095
13096 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13097
13098         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
13099         df_analyse with df_analyze.
13100
13101 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
13102
13103         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
13104         beginning of block.
13105
13106 2004-02-23  James E Wilson  <wilson@specifixinc.com>
13107
13108         * calls.c (precompute_arguments): Update comment.
13109
13110 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13111
13112         * et-forest.c: Replace et_occurences with et_occurrences.
13113
13114 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13115
13116         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
13117         with iv_analyze.
13118
13119 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
13120
13121         * config/i386/i386.c: Rename pni to sse3.
13122         * config/i386/i386.h: Likewise.
13123         * config/i386/i386.md: Likewise.
13124         * config/i386/pmmintrin.h: Likewise.
13125         * doc/extend.texi: Likewise.
13126         * doc/invoke.texi: Likewise.
13127
13128 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
13129             Kazu Hirata  <kazu@cs.umass.edu>
13130
13131         Remove -fwritable-strings.
13132         * c-common.c (fix_string_type): Don't check
13133         flag_writable_strings.
13134         (fix_string_type): Likewise.
13135         * c-opts.c (set_std_c89): Don't initialize
13136         flag_writable_strings.
13137         (set_std_c99): Likewise.
13138         * common.opt (fwritable-strings): Remove.
13139         * flags.h: Remove the external declaration of
13140         flag_writable_strings.
13141         * opts.c (common_handle_option) <OPT_fwritable_strings>:
13142         Remove.
13143         * toplev.c (flag_writable_strings): Remove.
13144         (f_options): Remove an entry for writable-strings.
13145         * varasm.c (const_hash_1) <STRING_CST>: Don't check
13146         flag_writable_strings.
13147         (compare_constant) <STRING_CST>: Likewise.
13148         (build_constant_desc): Likewise.
13149         * config/darwin.c (machopic_select_section): Likewise.
13150         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
13151         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
13152         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
13153         * config/mips/mips.c (mips_select_section): Likewise.
13154         (mips_encode_section_info): Likewise.
13155         * config/pa/pa.c (pa_select_section): Likewise.
13156         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
13157         * config/v850/v850.c (v850_select_section): Likewise.
13158         * doc/invoke.texi (-fwritable-strings): Remove.
13159         (-fno-const-strings): Don't mention -fwritable-strings.
13160         * doc/trouble.texi: Don't mention -fwritable-strings.
13161
13162 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
13163
13164         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
13165
13166 2004-02-23  Dale Johannesen  <dalej@apple.com>
13167
13168         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
13169         (movdf_hardfloat64):  Ditto.
13170         (movdf_softfloat64):  Ditto.
13171
13172 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
13173         * config/rs6000/rs6000.c (function_arg): call to
13174         rs6000_mixed_function_arg for DFmode moved to allow
13175         normal DFmode incoming register assignment.
13176
13177 2004-02-23  Dale Johannesen  <dalej@apple.com>
13178
13179         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
13180         (movdf_hardfloat64):  Ditto.
13181
13182 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13183
13184         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
13185         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
13186         copyright.
13187
13188 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
13189
13190         PR c/14156
13191         * c-typeck.c (c_expand_return): Change check for VAR_DECL
13192         to use DECL_P instead.
13193
13194         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
13195         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
13196
13197 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13198
13199         * Makefile.in (opts.o): Depend on target.h.
13200         * opts.c (decode_options): Use targetm.default_short_enums
13201         instead of DEFAULT_SHORT_ENUMS.
13202         * system.h (DEFAULT_SHORT_ENUMS): Poison.
13203         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
13204         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
13205         * target.h (gcc_target): Add default_short_enums.
13206         * config/cris/cris.h: Remove a comment about
13207         DEFAULT_SHORT_ENUMS.
13208         * config/ip2k/ip2k.h: Likewise.
13209         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
13210         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
13211
13212 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
13213             Falk Hueffner  <falk@debian.org>
13214
13215         PR c/14188
13216         * builtins.c (expand_builtin_va_arg): Emit an informative message
13217         if a trap is generated.
13218         * c-typeck.c (build_function_call): Likewise.
13219
13220 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
13221
13222         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
13223         fopen.
13224         * libgcov.c: Include sys/stat.h.
13225         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
13226         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
13227         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
13228         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
13229
13230 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
13231
13232         * reorg.c: Remove comments about dead ports.
13233
13234 2004-02-22  Christopher Faylor  <cgf@redhat.com>
13235
13236         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
13237         extra host object file when targetting cygwin rather than generic
13238         object files.
13239
13240 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
13241
13242         Merge from tree-ssa:
13243         2003-11-20  Richard Henderson  <rth@redhat.com>
13244
13245                 * tree-inline.c (insert_decl_map): New.
13246                 (remap_decl, remap_type, remap_block, copy_body_r,
13247                 initialize_inlined_parameters, declare_return_variable,
13248                 remap_save_expr): Use it.
13249
13250         * function.c (copy_body_r): Add mapping from id->ret_label to
13251         id->ret_label.  Revert test for ret_label.
13252
13253 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
13254
13255         * genoutput.c (process_template): Strip trailing whitespace in @
13256         templates and issue a warning if there was any.
13257
13258 2004-02-21  Christopher Faylor  <cgf@redhat.com>
13259
13260         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
13261         object file when targetting cygwin.
13262         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
13263         overridden by top-level Makefile.
13264
13265 2004-02-21  Roger Sayle  <roger@eyesopen.com>
13266
13267         * config/i386/i386.c (standard_80387_constant_p): Also prefer
13268         the x87's load constant instructions when optimizing for size.
13269
13270 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
13271
13272         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
13273         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
13274         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
13275         * fold-const.c: Likewise.
13276         * simplify-rtx.c: Likewise.
13277
13278 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
13279
13280         * combine.c (can_combine_p): Don't ignore SETs marked with
13281         REG_EH_REGION notes.
13282         (try_combine): When attemting to fix unrecognized insns, don't
13283         split a PARALLEL that contains the original i2.
13284
13285 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
13286
13287         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
13288         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
13289         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
13290         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
13291         (vector, pixel, bool): #define to __vector, __pixel and __bool.
13292         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
13293         portion of header.
13294         (__altivec_link_error_invalid_argument): Remove prototype; will use
13295         __builtin_altivec_compiletime_error("vec_*") instead.
13296         (vec_*): Fix/complete set of available operation overloads given the
13297         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
13298         cv-correctness of pointer arguments; in C, always check for correct
13299         argument types before macro expansion.
13300         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
13301         defining Darwin/PowerPC-specific '-f[no-]altivec' and
13302         '-W[no-]altivec-long-deprecated' switches.
13303         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
13304         '__vector', '__pixel' and '__bool' macros using
13305         '__attribute__((altivec(...)))' types.
13306         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
13307         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
13308         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
13309         New type nodes.
13310         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
13311         handling '-W[no-]altivec-long-deprecated'.
13312         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
13313         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
13314         altivec_expand_dst_builtin): Remove casts from integer literals.
13315         (altivec_expand_builtin): Likewise; handle expansion of new
13316         '__builtin_altivec_compiletime_error' function.
13317         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
13318         types, and make them distinct from other vector types; register
13319         '__builtin_altivec_compiletime_error' function.
13320         (print_operand): For 'P', print a full target register name instead of
13321         merely its number.
13322         (rs6000_attribute_table): Add "altivec" attribute.
13323         (rs6000_handle_altivec_attribute): New function.
13324         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
13325         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
13326         maps to).
13327         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
13328         declare.
13329         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
13330
13331 2004-02-20  James E Wilson  <wilson@specifixinc.com>
13332
13333         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
13334         check.
13335         (shift_mix4left+2): Delete redundant pattern.
13336
13337 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
13338
13339         * alias.c (OUTGOING_REGNO): Don't define the default.
13340         * builtins.c (OUTGOING_REGNO): Likewise.
13341         (INCOMING_REGNO): Likewise.
13342         (apply_args_register_offset): Always use OUTGOING_REGNO.
13343         * combine.c (OUTGOING_REGNO): Likewise.
13344         * sibcall.c (OUTGOING_REGNO): Likewise.
13345         * defaults.h (INCOMING_REGNO): Provide the default.
13346         (OUTGOING_REGNO): Likewise.
13347
13348 2004-02-21  Jan Hubicka  <jh@suse.cz>
13349
13350         * params.def (max-peeled-insns, max-completely-peeled-insns,
13351         max-once-peeled-insns): Set to 400.
13352
13353 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13354
13355         PR c++/12007
13356         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
13357         are set for parameters before outputing debugging information.
13358
13359 2004-02-20  Falk Hueffner  <falk@debian.org>
13360
13361         PR target/14201
13362         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
13363         numbers.
13364
13365 2004-02-20  Per Bothner  <per@bothner.com>
13366
13367         * input.h:  Don't #include line-map.h.  It may cause link problems
13368         with undefined linemap_line_start when line-map.h is included but
13369         line-map.o is not linked, as currently happens with gengtype on
13370         compilers that don't support inline.
13371         * toplev.c:  So we do have to explicitly #include line-map.h here.
13372
13373 2004-02-20  Richard Henderson  <rth@redhat.com>
13374
13375         * doc/invoke.texi: Add -Wvariadic-macros.
13376
13377 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
13378
13379         * haifa-sched.c (sched_emit_insn): Remove.
13380         * sched-int.h: Remove the corresponding prototype.
13381
13382 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
13383
13384         Revert:
13385         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13386         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
13387         * system.h (DEFAULT_SHORT_ENUMS): Poison.
13388         * config/cris/cris.h: Remove a comment about
13389         DEFAULT_SHORT_ENUMS.
13390         * config/ip2k/ip2k.h: Likewise.
13391         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
13392
13393 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
13394             Tom Tromey  <tromey@redhat.com>
13395
13396         * doc/install.texi: Moved --disable-libgcj and
13397         --with-system-zlib documentation to new section for
13398         Java-specific options.
13399         Added explicit Cross-Compiler-Specific Options subheading.
13400         Added section for Java-specific options.
13401
13402 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
13403
13404         * doc/install.texi (Building the Ada compiler): Remove
13405         example.
13406
13407 2004-02-20  James E Wilson  <wilson@specifixinc.com>
13408
13409         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
13410
13411 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
13412
13413         * gcc.c (process_command): Allow translation of the copyright
13414         symbol but not the rest of the copyright message.
13415         * gcov.c (print_version): Likewise.  Allow translation of the
13416         message about warranty.
13417
13418 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
13419
13420         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
13421         predicate.
13422         ("*andsi_clear"): Tweak constraints to not match postincrement.
13423         Adjust the predicate to exclude a volatile memory reference.
13424         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
13425         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
13426
13427 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
13428
13429         * move-if-change: Remove.
13430         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
13431         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
13432         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
13433         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
13434         (s-gtyp-gen, s-iov): Use the top level move-if-change.
13435         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
13436
13437 2004-02-19  James E Wilson  <wilson@specifixinc.com>
13438
13439         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
13440         for operand2.  Add condition that requires register_operand operand2
13441         before reload.
13442
13443 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
13444             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13445
13446         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
13447         * config/mips/mips.md: Expand comment above unaligned loads and stores.
13448
13449 2004-02-19  Richard Henderson  <rth@redhat.com>
13450
13451         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
13452         * tree.c (build0, build1, build2, build3, build4): Split out from...
13453         (build): ... here.  Call them.
13454         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
13455
13456         * convert.c (convert_to_integer): Remove extra build argument.
13457         * tree-inline.c (expand_call_inline): Likewise.
13458
13459 2004-02-19  Richard Henderson  <rth@redhat.com>
13460
13461         * c-opts.c (warn_variadic_macros): New.
13462         (c_common_handle_option): Set it.
13463         (sanitize_cpp_opts): Copy it to cpp_opts.
13464         * c.opt (Wvariadic-macros): New.
13465         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
13466         * cppinit.c (cpp_create_reader): Initialize it.
13467         * cppmacro.c (parse_params): Check it.
13468
13469 2004-02-19  David Daney <ddaney@avtrex.com>
13470
13471         PR preprocessor/14198
13472         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
13473         builtin_assert ("machine=mips")
13474
13475 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13476
13477         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
13478         * system.h (DEFAULT_SHORT_ENUMS): Poison.
13479         * config/cris/cris.h: Remove a comment about
13480         DEFAULT_SHORT_ENUMS.
13481         * config/ip2k/ip2k.h: Likewise.
13482         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
13483
13484 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
13485
13486         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
13487         when passing single SFmode quantities in general registers,
13488         put them in the high half.
13489
13490 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
13491
13492         * doc/md.texi (Standard Names): Document additional dependency on
13493         fix pattern.
13494
13495         * optabs.c (ftruncify): Remove.
13496         (expand_fix): Manually inline ftruncify above.
13497         (can_fix_p): Add FIXME note.
13498
13499 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
13500
13501         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
13502         spe_fixuns_truncsfsi2.
13503
13504         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
13505         fixuns_truncsfsi2.
13506
13507 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
13508
13509         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
13510         * testsuite/gcc.dg/20040219-1.c: New test.
13511
13512 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
13513
13514         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
13515         "*subsf3_cconly"): Subtraction is not commutative.
13516
13517 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
13518
13519         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
13520         (sdbout_symbol): If called before sdbout_init, queue DECL for
13521         later and return.
13522         (sdbout_init): Set sdbout_initialized true, process decls
13523         queued earlier by sdbout_symbol.
13524         (sdbout_finish): Use size_t for index variable.
13525
13526 2004-02-19  Jeff Law  <law@redhat.com>
13527
13528         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
13529         for unordered comparison codes.
13530
13531 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
13532
13533         * reload1.c (reload): Correct comment.
13534         (scan_paradoxical_subregs): Remove #if 0 and old comment.
13535         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
13536         register variables are not used by reload.
13537
13538 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
13539
13540         PR target/14209
13541         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
13542         constraints to not match postincrement.  Adjust the predicate to
13543         exclude a volatile memory reference.
13544
13545 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13546
13547         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
13548
13549 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13550
13551         * hooks.c (hook_void_tree_int): Remove.
13552         (hook_void_constcharptr): Likewise.
13553         (hook_int_void_0): Likewise.
13554         * hooks.h: Remove the prototypes for the above three
13555         functions.
13556         * targhooks.c (hook_bool_machine_mode_true): Remove.
13557         * targhooks.h: Remove the prototype for
13558         hook_bool_machine_mode_true.
13559
13560 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13561
13562         * emit-rtl.c (subreg_realpart_p): Remove.
13563         (reorder_insns_with_line_notes): Likewise.
13564         (end_full_sequence): Likewise.
13565         * rtl.h: Remove the prototype for the above functions.
13566
13567 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13568
13569         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
13570         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13571         config/iq2000/iq2000.h, config/m32r/m32r.h,
13572         config/pdp11/pdp11.h, config/sparc/sparc.h,
13573         config/xtensa/xtensa.h: Remove commented-out or useless
13574         definitions of CASE_VECTOR_PC_RELATIVE.
13575
13576 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13577
13578         * loop.c (all_sets_invariant_p): Remove.
13579
13580 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
13581
13582         PR target/12916
13583         * config/sparc/sparc.h (NPARM_REGS): Delete.
13584         (BASE_RETURN_VALUE_REG): Likewise.
13585         (BASE_OUTGOING_VALUE_REG): Likewise.
13586         (BASE_PASSING_ARG_REG): Likewise.
13587         (BASE_INCOMING_ARG_REG): Likewise.
13588         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
13589         TARGET_ARCH64, not TARGET_V9.
13590         (function_arg_slotno): Dispatch based on the mode class.
13591         Handle vector modes like floating-point modes.
13592         (function_arg_record_value_1): Handle vector types like
13593         floating-point types.
13594         (function_arg_record_value_2): Likewise.
13595         Calculate regno after mode transformation.
13596         (function_arg): Handle vector modes like floating-point modes.
13597         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
13598         If ARCH64, do not recheck alignment.
13599         (function_arg_pass_by_reference): Reorder the conditions.
13600         (sparc_return_in_memory): Move after function_arg_padding.
13601         Implement calling conventions for vector modes.
13602         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
13603         (function_value): Move scope of 'regbase'.
13604         Implement calling conventions for vector modes.
13605         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
13606         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
13607         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
13608         the argument is passed by reference.
13609         (sparc_type_code): Handle vector types.
13610
13611 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
13612
13613         * function.c (assign_parms): When building decl_rtl for
13614         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
13615
13616 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
13617
13618         * expr.c (is_aligning_offset): Check if we are aligning the
13619         expressions's address over BIGGEST_ALIGNMENT in bytes, not
13620         in bits.
13621
13622 2004-02-18  Matt Austern  <austern@apple.com>
13623
13624         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
13625         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
13626         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
13627         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
13628         spec string.
13629         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
13630
13631 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
13632
13633         * dwarf2out.c (loclabel_num): Move outside #ifdef
13634         DWARF2_DEBUGGING_INFO and mark with GTY(()).
13635         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
13636         Mark with GTY(()).
13637         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
13638         Allocate memory with ggc_alloc.  No need to copy anything.
13639         (ia64_hpux_file_end): Update to match.
13640
13641 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
13642
13643         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
13644         by default.
13645
13646 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
13647
13648         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
13649         ("divmodtisi3"): Likewise.
13650         ("udivmoddi4", "udivmodtidi3"): Likewise.
13651         ("divmodsi4", "divmoddisi3"): Likewise.
13652         ("udivmodsi4", "udivmoddisi3"): Likewise.
13653         ("udivsi3", "umodsi3"): Likewise.
13654
13655 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
13656
13657         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
13658         placeholder insn when chunkifying the pool.
13659
13660 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13661
13662         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
13663         generating PIC code.
13664
13665 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13666
13667         * config/h8300/h8300-protos.h: Add a prototype for
13668         h8300_expand_branch.
13669         * config/h8300/h8300.c (h8300_expand_branch): New.
13670         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
13671         bgtu, beq, bne): Call h8300_expand_branch().
13672
13673 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13674
13675         * config/h8300/h8300-protos.h: Add prototypes for
13676         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
13677         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
13678         (h8300_hard_regno_mode_ok): Likewise.
13679         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
13680         h8300_hard_regno_nregs().
13681         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
13682
13683 2004-02-18  Per Bothner  <per@bothner.com>
13684
13685         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
13686         partly reverts my 2003-10-01 change, because we're back to logically
13687         including <command line> inside the main line.
13688         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
13689         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
13690         Fixes PR preprocessor/14103.
13691
13692         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
13693         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
13694         (cpp_push_include):  Don't need to increment pfile's line field.
13695         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
13696
13697         * c-ppoutput.c (print struct):  New first_time field.
13698         (init_pp_output):  Set print.first_time.
13699         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
13700         which is set also for (say) <command line>.  Clear print.first_time.
13701
13702         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
13703         does not match the code, so fix both.
13704         (should_stack_file):  Inline include_pch_p function.
13705         (include_pch_p):  Remove pointless function.
13706
13707         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
13708
13709 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13710
13711         * config/h8300/h8300.md (four define_peephole2's): Use
13712         h8300_regs_ok_for_stm().
13713
13714 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13715
13716         * config/h8300/h8300-protos.h: Update the prototype for
13717         expand_a_rotate().
13718         * config/h8300/h8300.c (expand_a_rotate): Remove the first
13719         argument.
13720         * config/h8300/h8300.md: Update all callers.
13721
13722 2004-02-18  Jan Hubicka  <jh@suse.cz>
13723
13724         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
13725         floats.
13726         (simplify_binary_operation): Deal with logicals on floats.
13727
13728         * i386.md (SSE fabs splitters): Emit new patterns.
13729         (SSE cmov splitters): Likewise.
13730         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
13731         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
13732         subregs.
13733         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
13734         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
13735
13736 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13737
13738         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
13739         by hand.
13740         (output_a_rotate): Tweak a comment.
13741         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
13742         (*rotlhi3_1): Change to rotlhi3_1.
13743         (*rotlsi3_1): Change to rotlsi3_1.
13744
13745 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
13746
13747         PR target/13866
13748         * arm.c (load_multiple_operation): Don't insist that the source reg
13749         of a post-increment component is the same as the destination.
13750         (store_multiple_operation): Likewise.
13751
13752 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13753
13754         * config/h8300/h8300.md: Move movsf patterns into one section
13755         of the file.
13756
13757 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13758
13759         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
13760         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
13761         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
13762         config/mips/linux64.h, config/pa/pa-64.h,
13763         config/rs6000/aix51.h, config/rs6000/aix52.h,
13764         config/rs6000/spe.md, config/sparc/linux.h,
13765         config/sparc/linux64.h: Update copyright.
13766
13767 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13768
13769         * config/h8300/h8300.md: Move push patterns into one
13770         section of the file.
13771
13772 2004-02-18  Mark Mitchell <mark@codesourcery.com>
13773
13774         PR c++/11326
13775         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
13776         fntype.
13777
13778 2004-02-18  Paul Brook  <paul@codesourcery.com>
13779
13780         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
13781
13782 2004-02-18  Paul Brook  <paul@codesourcery.com>
13783
13784         PR debug/12934
13785         * dwarf2out.c (loc_descriptor_from_tree): Handle
13786         EXPR_WITH_FILE_LOCATION.
13787
13788 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
13789
13790         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
13791         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
13792         trailing whitespace from instructions.
13793
13794 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
13795
13796         * configure.ac: When generating auto-build.h, pass
13797         --enable-languages to the sub-configure.
13798         Put quotes around ${program_transform_name} when generating
13799         name of as, ld, nm, objdump.
13800         * configure: Regenerate.
13801
13802 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
13803
13804         * Makefile.in (s-check, s-config, s-conditions, s-flags)
13805         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
13806         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
13807         (s-preds, s-iov): Do not depend on move-if-change.
13808
13809 2004-02-17  James E Wilson  <wilson@specifixinc.com>
13810
13811         * caller-save.c (insert_restore): Pass mem through copy_rtx.
13812         (insert_save): Likewise.
13813
13814 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13815
13816         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
13817         warning.
13818
13819 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13820
13821         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
13822         *one_cmplsi2_h8300.
13823         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
13824
13825 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13826
13827         * config/h8300/h8300-protos.h: Update the prototype of
13828         fix_bit_operand().
13829         * config/h8300/h8300.c (fix_bit_operand): Remove the second
13830         argument "what".
13831         * config/h8300/h8300.md: Update all callers.
13832
13833 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13834
13835         * config/h8300/h8300.c (fix_bit_operand): Change the name of
13836         the last argument to "code" from "type".
13837
13838 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13839
13840         * config/h8300/h8300.c: Remove an extern declaration of
13841         rtx_equal_function_value_matters.
13842
13843 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13844
13845         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
13846         by hand.
13847         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
13848         (*iorqi3_1): Change to iorqi3_1.
13849         (*xorqi3_1): Change to xorqi3_1.
13850
13851 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13852
13853         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
13854         typos.
13855
13856 2004-02-17  Jan Hubicka  <jh@suse.cz>
13857
13858         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
13859
13860 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
13861
13862         PR optimization/14119
13863         * combine.c (try_combine): When attemting to fix unrecognized insns,
13864         don't delete SETs marked with REG_EH_REGION notes.
13865
13866 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
13867
13868         * combine.c (simplify_if_then_else): Do not replace
13869         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
13870         modes differ.
13871
13872 2004-02017  Steven Bosscher  <stevenb@suse.de>
13873
13874         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
13875         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
13876         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
13877         * ada/utils.c: Likewise.
13878         * cp/decl.c: Likewise.
13879         * f/com.c: Likewise.
13880         * java/class.c: Likewise.
13881
13882 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13883
13884         * config/h8300/h8300.md: Fix comment typos.
13885
13886 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13887
13888         * config/mips/t-iris6gld: Renamed to ...
13889         * config/mips/t-irix-gld: ... this.
13890         * config.gcc (mips-sgi-irix6*): Reflect this
13891         (mips-sgi-irix5*): Use it with GNU ld.
13892
13893         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
13894         to ...
13895         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
13896         * config/mips/t-irix-gld: Reflect this.
13897         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
13898
13899         * config/mips/iris5gld.h: New file.
13900         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
13901         Only use collect2 without gas.
13902
13903         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
13904         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
13905         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
13906         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
13907
13908         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
13909         * config/mips/iris5.h: ... here.
13910
13911         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
13912         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
13913         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
13914
13915         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
13916         using irix_startfile_spec, irix_endfile_spec.
13917
13918 2004-02-16  Gunther Nikl  <gni@gecko.de>
13919
13920         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
13921
13922 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13923
13924         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
13925         insns by hand.
13926
13927 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13928
13929         * cfghooks.c (split_edge): Speed up updating of dominators.
13930
13931 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
13932
13933         PR c++/11326
13934         * c-common.c (flag_abi_version): Remove.
13935         * c-common.h (flag_abi_version): Likewise.
13936         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
13937         * c.opt (fabi-version): Remove.
13938         * calls.c (expand_call): Always pass a function type to
13939         struct_value_rtx.  Use convert_memory_address.
13940         * common.opt (fabi-version): Add it.
13941         * flags.h (flag_abi_version): Likewise.
13942         (abi_version_at_least): New macro.
13943         * opts.c (common_handle_option): Add OPT_fabi_version.
13944         * toplev.c (flag_abi_version): Define it.
13945         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
13946         New function.
13947         (ia64_output_mi_thunk): Use it.
13948         (ia64_struct_value_rtx): Likewise.
13949
13950 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13951
13952         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
13953         Don't generate insns by hand.
13954
13955 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
13956
13957         PR c++/14178
13958         * doc/invoke.texi (fabi-version): The default is 2 now.
13959
13960 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13961
13962         * loop-iv.c: New file.
13963         * Makefile.in (loop-iv.o): New.
13964         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
13965         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
13966         num_loop_branches): New functions.
13967         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
13968         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
13969         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
13970         get_simple_loop_desc, free_simple_loop_desc): Declare.
13971         (simple_loop_desc): New inline function.
13972         (struct rtx_iv, struct niter_desc): New.
13973         * cfgloopmanip.c (loopify): Specify semantics more precisely.
13974         * expr.c (force_operand): Handle subregs of expressions created by
13975         loop unroller.
13976         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
13977         parts of the initialization to toplev.c
13978         * loop-unroll.c (loop_exit_at_end_p): New.
13979         (unroll_and_peel_loops): Call iv_analysis_done.
13980         (decide_peel_once_rolling, decide_peel_completely,
13981         decide_unroll_stupid, decide_unroll_constant_iterations,
13982         decide_unroll_runtime_iterations, decide_peel_simple,
13983         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
13984         unroll_loop_runtime_iterations): Use new simple loop analysis.
13985         * loop-unswitch.c (compare_and_jump_seq): New.
13986         (may_unswitch_on_p): Renamed to ...
13987         (may_unswitch_on): Use new iv analysis.
13988         (reversed_condition): Export.
13989         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
13990         * predict.c (estimate_probability): Use new simple loop analysis.
13991         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
13992         canon_condition, simplify_using_condition): Declare.
13993         * stor-layout.c (get_mode_bounds): New.
13994         * toplev.c (rest_of_handle_loop2): Some parts of
13995         initialization/finalization moved here from loop-init.c.
13996
13997 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13998
13999         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
14000         pointer.
14001         (CALL_USED_REGISTERS): Likewise.
14002         (REG_ALLOC_ORDER): Likewise.
14003         (REG_CLASS) <GENERAL_REGS>: Likewise.
14004
14005 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
14006
14007         * doc/md.texi (Insn Canonicalizations): Document left-chaining
14008         in associative operators.
14009         * rtlanal.c (commutative_operand_precedence): Create some new
14010         variables.  Prefer a commutative operand on the left, then
14011         binary expressions, then NEG and NOT.
14012
14013 2004-02-16  Matthias Klose  <doko@debian.org>
14014
14015         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
14016         in terms of SHLIB_SOVERSION.
14017         * config/m68k/t-slibgcc-elf-ver: New file.
14018         * config/pa/t-slibgcc-elf-ver: New file.
14019         * config.gcc (m68k-linux, parisc-linux): Use them when not
14020         sjlj exceptions are not configured.
14021
14022 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
14023
14024         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
14025
14026 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
14027
14028         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
14029
14030 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
14031
14032         * doc/sourcebuild.texi: Mention backends.html.
14033
14034 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
14035
14036         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
14037         line-map.c, line-map.h, var-tracking.c: Fix comment
14038         formatting.
14039
14040 2004-02-16  Richard Henderson  <rth@redhat.com>
14041
14042         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
14043
14044         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
14045
14046 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14047
14048         * config/h8300/h8300.md: Remove unnecessary parallels from
14049         all define_insn and define_split patterns.
14050
14051 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14052
14053         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
14054         "clobber").
14055
14056 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
14057
14058         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
14059         '%#'.
14060
14061 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14062
14063         * config/ia64/ia64.c, config/mips/mips.c,
14064         config/mmix/mmix-modes.def: Fix comment typos.
14065
14066 2004-02-15  Roger Sayle  <roger@eyesopen.com>
14067
14068         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
14069         (get_directive_line): Remove unused function prototype.
14070
14071 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14072
14073         * tree-inline.c (copy_body_r): Do not replace ret_label.
14074
14075 2004-02-14  Jan Hubicka  <jh@suse.cz>
14076
14077         * i386.c (x86_four_jump_limit): New variable.
14078         (k8_avoid_jump_misspredicts): Rename to ...
14079         (ix86_avoid_jump_misspredicts): .. this one.
14080         (ix86_pad_returns): Break out from ...
14081         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
14082         to.
14083         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
14084
14085 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14086
14087         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
14088         PARALLEL is NULL.
14089
14090 2004-02-14  Per Bothner  <per@bothner.com>
14091
14092         * fix-header.c (line_table):  Move local variable in main to global.
14093         * scan.h (line_table):  Use it.
14094         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
14095         line (recently renamed to src_loc) before calling recognized_function.
14096
14097 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
14098
14099         * Makefile.in: Fix comment typos.
14100
14101 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
14102
14103         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
14104         for start_value when it is directly moved into reg, and factorize
14105         the retrieval of GET_MODE (reg).
14106
14107 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14108
14109         * config/mips/mips-protos.h (mips_load_got_page): Delete.
14110         (mips_load_got_global): Delete.
14111         (mips_gotoff_page): Declare.
14112         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
14113         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
14114         UNSPEC_LOAD_GOT pattern rather than a MEM.
14115         (*load_got[sd]i): New patterns.
14116         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
14117         (mips_load_got_page, mips_load_got_global): Delete.
14118         (mips_gotoff_page): New function.
14119         (override_options): Don't initialize mips_got_alias_set.
14120
14121 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14122
14123         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
14124         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
14125         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
14126         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
14127         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
14128         * config/mips/mips.c: Fix some overly-long lines.
14129         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
14130         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
14131
14132 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14133
14134         * configure.ac: Search for as, ld below libexec/gcc.
14135         * configure: Regenerate.
14136
14137 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14138
14139         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
14140         __builtin_arm_setwcx ().
14141         * config/arm/arm.c (arm_expand_builtin): Generate operands
14142         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
14143
14144 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14145
14146         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
14147         and "wmuluh" to "wmulsm" and "wmulum", respectively.
14148         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
14149         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
14150         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
14151         (_mm_mulhi_pu16): Likewise.
14152
14153 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
14154
14155         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
14156         DECL_NAME != 0 before dereferencing.
14157
14158 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
14159
14160         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
14161         (s390_output_addr_const_extra): Declare.
14162         (s390_output_pool_entry): Remove FILE * argument.
14163         * config/s390/s390.c (s390_output_symbolic_const): Remove.
14164         (s390_output_addr_const_extra): New function.
14165         (print_operand_address): Call output_addr_const instead of
14166         s390_output_symbolic_const.
14167         (print_operand): Likewise.
14168         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
14169         Remove FILE * argument.
14170         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
14171         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
14172         call.
14173
14174 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14175
14176         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
14177         (struct edge, struct vertex, struct graph): New.
14178         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
14179         free_graph): New functions.
14180
14181 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
14182
14183         * config/mips/mips.md (casesi_internal, casesi_internal_di):
14184         Use ".set macro" to avoid warnings about multi-instruction
14185         macros, since they're intentional.
14186
14187 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
14188
14189         * config/darwin.h: Add include guards.  Remove old, now incorrect,
14190         comment about STANDARD_EXEC_PREFIX.
14191
14192         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
14193         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
14194         for installing .1 manpages.  Add rules for installing cpp
14195         and gcov manpages under their installed names.
14196
14197 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
14198
14199         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
14200         host, but try LD_FOR_TARGET first.
14201         * configure: Rebuilt.
14202
14203 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14204
14205         * dbxout.c: Move declaration of dbxout_type_decl outside
14206         #ifdef DBX_DEBUGGING_INFO.
14207         * c-parse.in: Don't give the asmdef production a type.
14208
14209 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14210
14211         * debug.h (struct gcc_debug_hooks): Add type_decl field.
14212         (debug_nothing_tree_int): Prototype.
14213         (dwarf_debug_hooks): Delete, unused.
14214         * debug.c (do_nothing_debug_hooks): Update.
14215         (debug_nothing_tree_int): New function.
14216         * langhooks.h (struct lang_hooks_for_decls):
14217         Remove builtin_type_decls field.
14218         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
14219         (LANG_HOOKS_DECLS): Update.
14220         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
14221         Use debug_hooks->type_decl.
14222         * dbxout.c (preinit_symbols): New static.
14223         (dbx_debug_hooks, xcoff_debug_hooks): Update.
14224         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
14225         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
14226         for symbols to output.
14227         (dbxout_type_decl): New function.
14228         (dbxout_symbol): If called before dbxout_init has run, queue
14229         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
14230         to TYPE_DECLs before emitting them.
14231         * xcoffout.c (assign_type_number): Delete.
14232         (xcoff_type_numbers): New static table.
14233         (xcoff_assign_fundamental_type_number): New function.
14234         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
14235         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
14236         * sdbout.c: Include varray.h.
14237         (deferred_global_decls): New static.
14238         (sdb_debug_hooks): Update.
14239         (sdbout_global_decl): If we can't emit something right now,
14240         remember it in deferred_global_decls.
14241         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
14242         (sdbout_init): Initialize deferred_global_decls.
14243         * Makefile.in: Update dependencies of sdbout.o.
14244         * dwarf2out.c (dwarf2out_type_decl): New function.
14245         (dwarf2_debug_hooks): Update.
14246         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
14247         * c-decl.c (getdecls): Just return 0.
14248         (check_for_loop_decls): Don't use getdecls.
14249         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
14250         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
14251
14252 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
14253
14254         * config/s390/s390.c (s390_sched_reorder2): Remove.
14255         (TARGET_SCHED_REORDER2): Do not redefine.
14256
14257 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14258
14259         * c-parse.in (maybe_type_qual): Delete.
14260         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
14261         (asm_argument): New grammar rules.
14262         (extdef_1): Use asmdef.
14263         (maybeasm): Move down with other asm rules; use simple_asm_expr.
14264         (xexpr): Move up with other expression rules.
14265         (stmt): Use asm_stmt.
14266
14267         * c-typeck.c (build_asm_expr): New function - body mostly
14268         pulled from build_asm_stmt.
14269         (build_asm_stmt): Just handle tacking on the volatile qualifier.
14270         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
14271
14272 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
14273
14274         PR bootstrap/13617
14275         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
14276         (mips_declare_object): Make variadic.
14277         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
14278         mips_output_aligned_decl_common.
14279         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
14280         (mips_declare_object): Make variadic.
14281
14282 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14283
14284         * function.c (update_epilogue_consts): Teach about binary operations.
14285
14286         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
14287         previous MEM_VOLATILE in REF.
14288         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
14289         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
14290
14291 2004-02-12  Gunther Nikl  <gni@gecko.de>
14292
14293         * config.gcc: Restore support for m68k-openbsd.
14294
14295 2004-02-12  Jan Hubicka  <jh@suse.cz>
14296
14297         * tree-optimize.c (tree_rest_of_compilation): Do not release
14298         DECL_ARGUMENTS.
14299
14300 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
14301
14302         * doc/install.texi: Fix the spelling of "explicitly".
14303
14304 2004-02-11  Eric Christopher  <echristo@redhat.com>
14305
14306         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
14307         duplicate argument structure of cpp_interpret_string.
14308         * cpphash.h: Move prototype...
14309         * cpplib.h: Here.
14310         * cpplib.c: Fix calls to match new function signature.
14311
14312 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14313
14314         PR c/456
14315         * cppexp.c (num_binary_op): Don't allow comma operators in #if
14316         constant expressions at all outside C99 mode if pedantic.
14317
14318 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
14319
14320         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
14321         (log10_optab, log2_optab): Define corresponding macros.
14322         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
14323         * genopinit.c (optabs): Implement log10_optab and log2_optab
14324         using log10?f2 and log2?f2 patterns.
14325         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
14326         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
14327         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
14328         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
14329
14330         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
14331         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
14332         log2, log2f and log2l built-ins as inline x87 intrinsics.
14333
14334 2004-02-11  Richard Henderson  <rth@redhat.com>
14335
14336         PR target/1532
14337         * flow.c (insn_dead_p): A clobber of a dead hard register is a
14338         dead insn after reload.
14339
14340 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
14341
14342         * tree.h (frame_base_decl): Add GTY marker.
14343         * var-tracking.c (frame_base_decl): Likewise.
14344
14345 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
14346
14347         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
14348         incorrect, hunk.
14349         (add_location_or_const_value_attribute): Use text_section_label,
14350         not TEXT_SECTION_NAME.
14351
14352 2004-02-11  Per Bothner  <per@bothner.com>
14353
14354         Represent column numbers using line-map's source_location.
14355         The "next available source_location" is now managed internally by
14356         line-maps.c rather than by clients.
14357         * line-map.h (struct line_map):  New field column_bits.
14358         <from_line>:  Rename field to start_location.
14359         (struct line_maps):  New fields highest_location and max_column_hint.
14360         (linemap_check_files_exited):  New declaration.
14361         (linemap_line_start):  New declaration.
14362         (linemap_add):  Remove from_line parameter; use highest_location field.
14363         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
14364         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
14365         (CURRENT_LINE_MAP):  Remove macro.
14366         (linemap_position_for_column):  New inline function.
14367         * line-map.c (linemap_init):  Clear new fields.
14368         (linemap_check_files_exited):  New function, extracted from ...
14369         (linemap_free):  Use linemap_check_files_exited.
14370         (linemap_add):  Remove from_line parameter.  Various updates.
14371         (linemap_line_start):  New function.
14372         (linemap_lookeup):  Update for new field names.
14373         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
14374         linemap_position_for_column may unpredictably change the current map,
14375         it is cleaner and simpler for us to not cache it in cpp_reader.
14376         (struct cpp_buffer):  New sysp field.
14377         Changed warned_cplusplus_comments and from_stage3 to bitfields.
14378         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
14379         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
14380         current map using linemap_lookup.
14381         (do_linemarker):  Also set buffer's sysp field.
14382         (destringize_and_run):  No longer need to decrement current line.
14383         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
14384         (search_path_head, open_file_failed):  Use buffer's sysp.
14385         (cpp_make_system_header):  Get current map using linemap_lookup.
14386         Also set buffer's sysp flag.
14387         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
14388         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
14389         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
14390         (struct cpp_reader):  ... and adding saved_line_base field.
14391         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
14392         Update accordingly.  Don't adjust line.
14393         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
14394         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
14395         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
14396         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
14397         * cpplex.c (_cpp_lex_direct):  Likewise.
14398         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
14399         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
14400         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
14401         Remove col field as it is now subsumed by src_loc.
14402         * cpperror.c:  Update various field, parameter, and macro names.
14403         (print_location):  If col==0, try SOURCE_COLUMN of line.
14404         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
14405         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
14406         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
14407         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
14408         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
14409         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
14410         (_cpp_lex_direct):  Use linemap_position_for_column.
14411         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
14412         parameter.  Instead get it from the line_table global.  Adjust callers.
14413         (print):  Remove map field.  Replace line field to src_line.
14414         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
14415         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
14416         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
14417         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
14418         * cpptrad.c (copy_comment):  Rename variable.
14419         * c-lex.c (map):  Remove static variable, for same reason we removed
14420         cpp_reader's map field.
14421         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
14422         to call linemap_lookup.
14423         (cb_line_change):  Token's line field replaced by src_loc.
14424         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
14425         Don't save new_map.
14426
14427         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
14428         source_location.
14429
14430 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
14431
14432         * config/rs6000/altivec.md (*movv4si_internal): At least one
14433         operand must be register_operand.
14434         (*movv8hi_internal1): Likewise.
14435         (*movv16qi_internal1): Likewise.
14436         (*movv4sf_internal1): Likewise.
14437
14438 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
14439
14440         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
14441         operand.
14442         (movv4hi_internal): Same.
14443         (movv2sf_internal): Same.
14444         (movv1di_internal): Same.
14445
14446 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
14447
14448         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
14449         TARGET_OLDABI consistently.
14450         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
14451         mips_va_arg,override_options,compute_frame_size,
14452         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
14453         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
14454         and TARGET_OLDABI consistently.
14455         * config/mips/mips.md (exception_receiver): Likewise.
14456         * config/mips/linux64.h: Likewise.
14457
14458 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
14459
14460         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
14461         Set AltiVec ABI and vrsave as default for ppc64 linux.
14462         (init_cumulative_args): Post error, if try to return
14463         value in AltiVec register without enable AltiVec.
14464         (function_arg_advance): Ditto for passing arguments.
14465
14466 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
14467
14468         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
14469         a label before updating its usage count.
14470
14471 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
14472
14473         * doc/install.texi: Remove extra cd.
14474
14475 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
14476
14477         * c-common.c (vector_size_helper): Remove; call
14478         reconstruct_complex_type() instead.
14479         * tree.c (reconstruct_complex_type): New function
14480         (formerly vector_size_helper() in c-common.c).
14481         (make_vector): Make externally visible.
14482         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
14483
14484 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
14485
14486         * config/h8300/h8300-protos.h: Add a prototype for
14487         h8300_regs_ok_for_stm.
14488         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
14489         * config/h8300/h8300.md (stm_h8300s_2_advanced,
14490         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
14491         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
14492         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
14493         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
14494         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
14495         ldm_h8300s_4_normal, ldm_h8300s_4): Use
14496         h8300_regs_ok_for_stm().
14497
14498 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
14499
14500         PR c/14088
14501         * real.c (real_from_string): Look for 'X' as well as 'x' in
14502         hexfloat strings.
14503
14504 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
14505
14506         * config/h8300/h8300.md: Remove an incorrect comment about
14507         peephole2.  Add comments.
14508
14509 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
14510
14511         PR/14058
14512         * emit-rtl.c (set_decl_incoming_rtl): New.
14513         * tree.h (set_decl_incoming_rtl): New.
14514         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
14515         DECL_INCOMING_RTL.
14516         * ada/misc.c (adjust_decl_rtl): Likewise.
14517
14518 2004-02-10  Per Bothner  <per@bothner.com>
14519
14520         * c-opts.c (c_common_post_options):   Don't emit working directory
14521         in cpp output if -P was specified.
14522
14523 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
14524
14525         PR c/14092
14526         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
14527         negate_expr back to the original type.
14528
14529 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
14530
14531         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
14532         bump retaddr here.
14533
14534 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
14535
14536         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
14537         gen_lowpart_SUBREG): Move under the file in which they
14538         are actually declared.
14539
14540 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
14541
14542         * doc/sourcebuild.texi: Add libada documentation.
14543
14544         * doc/install.texi: Update documentation on Ada build, now
14545         that the GNAT lib and tools are built automatically.
14546
14547 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
14548
14549         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
14550         && TARGET_IRIX.
14551
14552 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
14553
14554         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
14555         boundaries outside build_component_ref() call (a macro in ObjC++).
14556
14557 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
14558
14559         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
14560         (init_cumulative_args): Likewise.
14561         (a7_overlap_mentioned_p): Delete prototype.
14562         * config/xtensa/xtensa.c (struct machine_function): Replace
14563         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
14564         Add set_frame_ptr_insn field.
14565         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
14566         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
14567         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
14568         at the function entry and replace the operand with the pseudo.
14569         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
14570         argument and record this flag in CUMULATIVE_ARGS.
14571         (function_arg): Remove result_mode and special-case code to handle
14572         arguments in a7.  Instead, set need_a7_copy flag when there is an
14573         incoming argument in a7.
14574         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
14575         and use the value recorded in cfun->machine->set_frame_ptr_insn.
14576         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
14577         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
14578         special-case code.
14579         (a7_overlap_mentioned_p): Delete.
14580         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
14581         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
14582         arguments to init_cumulative_args and pass "incoming" flag instead.
14583         (BLOCK_REG_PADDING): Delete.
14584         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
14585         checks for reload_in_progress and reload_completed.  Update calls to
14586         xtensa_copy_incoming_a7.
14587         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
14588         to call xtensa_copy_incoming_a7.
14589
14590 2004-02-09  DJ Delorie  <dj@redhat.com>
14591
14592         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
14593         longer modify standard_exec_prefix, standard_bindir_prefix, or
14594         standard_startfile_prefix.
14595
14596 2004-02-09  James E Wilson  <wilson@specifixinc.com>
14597
14598         PR c++/11295
14599         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
14600         to expand_expr_real call, and pass in alt_rtl as last argument.
14601
14602         PR libstdc++/5625
14603         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
14604         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
14605         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
14606         * except.c (expand_builtin_extend_pointer): New.
14607         * except.h (expand_builtin_extend_pointer): Declare.
14608
14609 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
14610
14611         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
14612         unaligned loads and stores.
14613
14614 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14615
14616         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
14617         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
14618
14619         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
14620         * config/mips/iris5.h: ... here.
14621         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
14622
14623         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
14624         * config/mips/iris5.h: ... here.
14625
14626 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14627
14628         * configure.ac: Remove default executable files before AC_PROG_CC.
14629         * configure: Regenerate.
14630
14631 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
14632
14633         PR target/13721
14634         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
14635         print a operand other than a register.
14636
14637 2004-02-09  Roger Sayle  <roger@eyesopen.com>
14638
14639         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
14640         tree code rather than call fold_convert, which doesn't specify a
14641         default floating point to integer conversion.
14642
14643 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
14644
14645         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
14646         code to support SGS assembler.  Reformat adjacent code where possible.
14647         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
14648         definition.
14649         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
14650         for '%#'.
14651         * config/m68k/linux.h, config/m68k/m68k.c,
14652         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
14653         macros and asm_printf() format strings.
14654         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
14655         * config/m68k/linux.h: Update copyright.
14656         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
14657
14658 2004-02-08  Andreas Schwab  <schwab@suse.de>
14659             Bernardo Innocenti  <bernie@develer.com>
14660
14661         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
14662         REGISTER_PREFIX.
14663         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
14664         frame pointer register, overridable by OS targets.
14665         * (M68K_REGNAME): Macro to obtain register name for asm output,
14666         eventually replacing %a6 with M68K_FP_REG_NAME.
14667         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
14668         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
14669         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
14670         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
14671         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
14672
14673 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
14674
14675         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
14676         hook_rtx_tree_int_null.
14677         * targhooks.c (default_struct_value_rtx): Remove.
14678         * targhooks.h: Remove the prototype for
14679         default_struct_value_rtx.
14680         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14681         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
14682         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14683         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
14684         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
14685         config/rs6000/rs6000.c, config/s390/s390.c,
14686         config/stormy16/stormy16.c, config/v850/v850.c,
14687         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
14688         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
14689
14690 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
14691
14692         * README.Portability: Change "ISO C89" to "ISO C90".
14693         * c-parse.in (primary, initelt): Likewise.
14694
14695 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
14696
14697         * real.c (encode_ibm_extended): Normalize the input value before
14698         converting it to a double.  Handle the case where a normal value
14699         rounds to infinity.
14700
14701 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
14702
14703         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
14704         warning.
14705         * cse.c (preferrable): Change to preferable. Update all of its
14706         callers.
14707         * genautomata.c (ainsn): Change
14708         first_ainsn_with_given_equialence_num to
14709         first_ainsn_with_given_equivalence_num.  Update all of its
14710         references.
14711
14712 2004-02-08  Jan Hubicka  <jh@suse.cz>
14713
14714         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
14715
14716 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
14717
14718         * function.c (assign_parms): Fix formatting.
14719
14720 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
14721
14722         * default.h (PROMOTE_PROTOTYPES): Remove.
14723         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
14724         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
14725         EXPAND_BUILTIN_SAVEREGS): Poison.
14726         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
14727         hook_bool_tree_false.
14728         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14729         * target.h: Replace SETUP_INCOMING_VARARGS with
14730         targetm.calls.setup_incoming_varargs().
14731         * targhooks.c (default_promote_function_return): Remove.
14732         (default_promote_prototypes): Likewise.
14733         (default_struct_value_rtx): Always abort().
14734         (default_expand_builtin_saveregs): Always print an error
14735         message.
14736         (default_setup_incoming_varargs): Do nothing.
14737         (default_pretend_outgoing_varargs_named): Don't depend on
14738         SETUP_INCOMING_VARARGS.
14739         * targhooks.h: Remove the prototype for
14740         default_promote_function_return and
14741         default_promote_prototypes.
14742
14743 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
14744
14745         * system.h (SHARED_SECTION_ASM_OP): Poison.
14746         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
14747         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
14748
14749 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
14750
14751         Bug 13856
14752         * c-decl.c (diagnose_mismatched_decls): Only give special
14753         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
14754         is also true.
14755         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
14756         DECL_FUNCTION_CODE when defining a built-in function.
14757         Don't update DECL_ESTIMATED_INSNS.
14758         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
14759         FUNCTION_DECLs.
14760         * tree.h: Delete DECL_ESTIMATED_INSNS.
14761         * tree-inline.c (struct inline_data): Delete inlined_insns field.
14762         (expand_call_inline, optimize_inline_calls): Don't update
14763         DECL_ESTIMATED_INSNS nor inlined_insns.
14764         * cgraphunit.c (cgraph_analyze_function): Don't update
14765         DECL_ESTIMATED_INSNS.
14766
14767 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
14768
14769         * c-common.c (shadow_warning): Delete.
14770         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
14771         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
14772         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
14773         * c-parse.in (free_parser_stacks): Delete.
14774
14775 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
14776
14777         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
14778         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
14779         Use the top level mkinstalldirs, not the one in the gcc subdir.
14780         * mkinstalldirs: Remove (from the gcc subdir).
14781
14782 2004-02-07  Roger Sayle  <roger@eyesopen.com>
14783
14784         PR middle-end/13696
14785         * fold-const.c (fold_convert): New function to provide type
14786         conversion to the middle-end without using convert.
14787         (negate_expr, associate_trees, size_diffop, omit_one_operand,
14788         operand_equal_for_comparison_p, pedantic_omit_one_operand,
14789         invert_truthvalue, optimize_bit_field_compare, range_binop,
14790         decode_field_reference, make_range, build_range_check, unextend,
14791         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
14792         fold_binary_op_with_conditional_arg, fold_inf_compare,
14793         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
14794         convert with calls to fold_convert.
14795
14796 2004-02-07  Jan Hubicka  <jh@suse.cz>
14797
14798         * genrecog.c (find_operand): add extra argument stop.
14799         (validate_pattern): Verify that mach_dup is duplicating operand
14800         defined lexically earlier.
14801
14802 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
14803
14804         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
14805         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
14806         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
14807         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
14808         config/ia64/ia64.h, config/ip2k/ip2k.h,
14809         config/iq2000/iq2000.h, config/mips/iris5.h,
14810         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
14811         config/rs6000/aix51.h, config/rs6000/aix52.h,
14812         config/rs6000/darwin.h, config/rs6000/rs6000.h,
14813         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
14814         config/sparc/linux.h, config/sparc/linux64.h,
14815         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
14816         config/xtensa/xtensa.h: Remove the definitions of
14817         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
14818         MAX_WCHAR_TYPE_SIZE.
14819         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
14820         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
14821
14822 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
14823
14824         PR bootstrap/13990
14825         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
14826         gen_rtx_NE.
14827
14828 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
14829
14830         * var-tracking.c (vt_add_function_parameters): Surround checkings by
14831         #ifdef ENABLE_CHECKING and #endif.
14832
14833 2004-02-07  Roger Sayle  <roger@eyesopen.com>
14834
14835         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
14836         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
14837         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
14838         integer types and floating point with unsafe_math_optimizations.
14839         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
14840         Optimize A - B as A + (-B), if B is easily negated.
14841
14842 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
14843
14844         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
14845         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
14846         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
14847         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
14848         Update copyright.
14849
14850 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
14851
14852         * c-ppoutput.c, var-tracking.c: Fix comment typos.
14853
14854 2004-02-06  James E Wilson  <wilson@specifixinc.com>
14855
14856         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
14857         glibc 2.3 or better.
14858
14859 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14860
14861         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
14862         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
14863
14864 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
14865
14866         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
14867         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
14868         (SHLIB_MKMAP_OPTS): Delete.
14869         (TARGET_LIBGCC2_CFLAGS): Add -specs.
14870         (bispecs): Add rule.
14871         * config/rs6000/libgcc-ppc64.ver: New file.
14872         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
14873         (__floatdidf, __floatdisf): Optimize multiply.
14874         (__fixunstfdi): New function.
14875         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
14876         real and imag parts larger than one register.
14877         (function_arg): Correct type of reg used when fp arg split partially
14878         to stack.
14879         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
14880         and __MACH__ or __powerpc64__.
14881
14882 2004-02-06  Roger Sayle  <roger@eyesopen.com>
14883             Ulrich Weigand  <uweigand@de.ibm.com>
14884
14885         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
14886         of gen_highpart or gen_lowpart when the floating point format is
14887         wider than the result mode.
14888
14889 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
14890
14891         * dwarf2out.c (loclabel_num): Move into #ifdef
14892         DWARF2_DEBUGGING_INFO.
14893
14894 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
14895
14896         * objc/objc-act.c (build_super_template) the 'class' field of
14897         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
14898         (get_super_receiver): Likewise.
14899
14900 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
14901
14902         * reload1.c (check_eliminable_occurrences): Optimize the reset
14903         of can_eliminate.
14904         (eliminate_regs_in_insn): Likewise.
14905
14906 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
14907             Josef Zlomek  <zlomekj@suse.cz>
14908
14909         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
14910         at the beginning of function, call dwarf2out_var_location for
14911         NOTE_INSN_VAR_LOCATION note.
14912         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
14913         decl_loc_table): New.
14914         (lookup_decl_loc): New function.
14915         (add_var_loc_to_decl): New function.
14916         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
14917         only if can_use_fbreg.
14918         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
14919         functions.
14920         (loc_descriptor): Likewise. Process VAR_LOCATION.
14921         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
14922         (loc_descriptor_from_tree): Call mem_loc_descriptor with
14923         can_use_fbreg == true.
14924         (add_location_or_const_value_attribute): Added parameter enum
14925         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
14926         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
14927         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
14928         with attr == DW_AT_location.
14929         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
14930         if frame_base_decl is defined and has a location list.
14931         (gen_variable_die): Call add_location_or_const_value_attribute with
14932         attr == DW_AT_location.
14933         (dwarf2out_var_location): New function.
14934         (dwarf2out_begin_function): New function.
14935         (dwarf2out_init): Create decl_loc_table.
14936
14937 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
14938
14939         * loop.c (force_movables): Transitively increase the priorities of
14940         all insns forces by an insn, not just the first one.
14941
14942 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
14943             Daniel Berlin <dberlin@dberlin.org>
14944
14945         Josef Zlomek  <zlomekj@suse.cz>
14946         * Makefile.in (var-tracking.o): New.
14947         * common.opt (fvar-tracking): New.
14948         * flags.h (flag_var_tracking): New.
14949         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
14950         * opts.c (common_handle_option): Add OPT_fvar_tracking.
14951         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
14952         * rtl.c (note_insn_name): Likewise.
14953         * rtl.def (VAR_LOCATION): New.
14954         * rtl.h (NOTE_VAR_LOCATION): New.
14955         (NOTE_VAR_LOCATION_DECL): New.
14956         (NOTE_VAR_LOCATION_LOC): New.
14957         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
14958         (variable_tracking_main): New exported function.
14959         * timevar.def (TV_VAR_TRACKING): New.
14960         * toplev.c (enum dump_file_index): Added DFI_vartrack.
14961         (dump_file): "vartrack" was added (-dV).
14962         (flag_var_tracking): New.
14963         (f_options): "var-tracking" was added.
14964         (rest_of_handle_variable_tracking): New function.
14965         (rest_of_compilation): Run variable tracking.
14966         (process_options): If user has not specified flag_var_tracking set it
14967         according to optimize, debug_info_level and debug_hooks.
14968         * tree.h (frame_base_decl): New.
14969         * var-tracking.c: New file.
14970         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
14971         (ia64_override_options): Set flags to run variable tracking in machine
14972         dependent reorg instead of toplev.c.
14973         (ia64_reorg): Run variable tracking if wanted.
14974         * doc/invoke.texi: Mention variable tracking in -dV,
14975         add and -fvar-tracking.
14976         * doc/passes.texi: Added variable tracking pass.
14977
14978         Daniel Berlin <dberlin@dberlin.org>
14979         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
14980         * dbxout.c (dbx_debug_hooks): Likewise.
14981         (xcoff_debug): Likewise.
14982         * debug.c (do_nothing_debug_hooks): Likewise.
14983         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
14984         * dwarfout.c (dwarf_debug_hooks): Likewise.
14985         * sdbout.c (sdb_debug_hooks): Likewise.
14986         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
14987         * final.c (final_scan_insn): Call var_location debug hook for each
14988         NOTE_INSN_VAR_LOCATION.
14989
14990 2004-02-06  Jan Hubicka  <jh@suse.cz>
14991
14992         * flow.c (update_life_info): Allocate reg_deaths when called from
14993         scheudler.
14994         (attempt_auto_inc):  Update life ranges accordingly.
14995
14996 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
14997
14998         PR debug/11816
14999         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
15000
15001 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15002
15003         * cfganal.c (flow_call_edges_add): Never split a libcall block.
15004
15005 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
15006
15007         * dwarf2out.c (output_loc_list): Don't use deltas if we have
15008         a separate line info table in use.
15009         Use the correct size for terminators.
15010         (output_die): Use offset, not delta.
15011
15012 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
15013
15014         * doc/invoke.texi: Remove the pni option from -mfpmath=.
15015
15016 2004-02-06  Jan Hubicka  <jh@suse.cz>
15017
15018         * recog.c (split_all_insns): Do not update reg info.
15019         * regrename.c (regrename_optimize): Likewise.
15020         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
15021         * flow.c (struct propagate_block_info): Add insn_num field.
15022         (reg_deaths): New array.
15023         (life_analysis): Free reg_deaths info.
15024         (allocate_reg_life_data): Allocate reg_deaths array.
15025         (propagate_one_insn): Use new array.
15026         (init_propagate_block): Initialize it.
15027         (free_propagate_block_info): Finish compuation of
15028         REG_LIVE_LENGTH
15029         (attempt_auto_inc): Sanity check that REG_INFO is not
15030         computed at same time.
15031         (mark_used_regs): Update new array.
15032
15033         * reg-stack.c (subst_stack_regs): Unshare clobbers before
15034         substitution.
15035
15036 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15037
15038         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
15039         *extendqisi2_short_displ.
15040
15041 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
15042
15043         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
15044         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
15045         (emit_library_call_value_1): Likewise pass nargs.
15046         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
15047         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
15048         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
15049         parameter instead of scanning TYPE_ARGS_TYPES to count args.
15050         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
15051         prototype.
15052         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
15053         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
15054         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
15055         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
15056         INIT_CUMULATIVE_ARGS.
15057         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
15058         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
15059         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
15060         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
15061         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
15062         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
15063         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
15064         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
15065         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
15066         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
15067         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
15068         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
15069
15070 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15071
15072         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
15073         possible.
15074
15075 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15076
15077         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
15078         note containing (plus (reg) (const_int)), where reg is an
15079         eliminable reg, then perform the register elimination without
15080         depending on eliminate_regs().
15081
15082 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15083
15084         * config/arc/arc.c (arc_return_in_memory): Check the return
15085         value of int_size_in_bytes against -1.  Don't check
15086         TREE_ADDRESSABLE.
15087         * config/avr/avr.c (avr_return_in_memory): Check the return
15088         value of int_size_in_bytes against -1.
15089         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
15090         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
15091         Likewise.
15092         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
15093         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
15094         Likewise.
15095
15096 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15097
15098         * config/frv/frv-protos.h: Remove the prototype for
15099         frv_setup_incoming_varargs.
15100         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
15101         (frv_setup_incoming_varargs): Make it static.
15102         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
15103
15104 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15105
15106         * config/fr30/fr30-protos.h: Remove the prototype for
15107         fr30_setup_incoming_varargs.
15108         Update the prototypes for fr30_num_arg_regs and
15109         fr30_function_arg_partial_nregs.
15110         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
15111         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15112         (fr30_setup_incoming_varargs): Make it static.
15113         Add argument second_time.  Don't do anything when second_time
15114         is nonzero.
15115         (fr30_num_arg_regs): Change the type of the first argument to
15116         enum machine_mode.
15117         (fr30_function_arg_partial_nregs): Change the type of the
15118         second argument to enum machine_mode.
15119         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
15120         (SETUP_INCOMING_VARARGS): Remove.
15121
15122 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15123
15124         * config/arc/arc-protos.h: Remove the prototype for
15125         arc_setup_incoming_varargs.
15126         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15127         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15128         (arc_setup_incoming_varargs): Make it static.
15129         (arc_external_libcall): Likewise.
15130         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
15131         Remove the commented-out definition of
15132         ASM_OUTPUT_EXTERNAL_LIBCALL.
15133
15134 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
15135
15136         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
15137         to $$(slibdir) in the installation commands.
15138
15139 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
15140
15141         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
15142         with inner_regno, not regno.
15143         * rtlanal.c (refers_to_regno_p): Same.
15144
15145 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15146
15147         * config.gcc: Remove i370 support.
15148
15149 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15150
15151         * doc/install.texi:  Update automake and autoconf version
15152         requirements.  Note where to find gcj automake version.
15153
15154 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15155
15156         * Makefile.in (generate-manpages): Move dependencies to ...
15157         (man): here.
15158         * doc/makefile.texi: Document new targets.
15159         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
15160
15161 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15162
15163         PR/13485
15164         Makefile.in (srcextra):  Add a level of indirection to ...
15165         (gcc.srcextra): ... here.
15166         (po-generated): Delete.
15167         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
15168         options.c.
15169         (start.encap): Remove superfluous lang.srcextra dependency.
15170         objc/Make-lang.in (po-generated):  Delete.
15171
15172 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15173
15174         * config/ia64/ia64.c (REG_GP): Remove.
15175
15176 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15177
15178         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
15179
15180 2004-02-05  Devang Patel  <dpatel@apple.com>
15181
15182         * dwarf2out.c (force_type_die): Look up input type itself
15183         instead of root_type() of type.
15184
15185 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
15186
15187         * config/s390/s390.md ("*tmqidi_ext"): New insn.
15188         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
15189         pre-reload splitters are transformed to post-reload
15190         define_insn_and_split patterns.
15191         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
15192
15193 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15194
15195         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
15196         TARGET_PROMOTE_PROTOTYPES.
15197
15198 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15199
15200         PR middle-end/13750
15201         Revert:
15202         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
15203         PR pch/13361
15204         * c-typeck.c (constructor_asmspec): Delete.
15205         (struct initializer_stack): Delete field 'asmspec'.
15206         (start_init): Delete saving of asmspec.
15207         (finish_init): Don't update constructor_asmspec.
15208         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15209         * stmt.c (expand_asm): Duplicate strings from tree.
15210         (expand_asm_operands): Likewise.
15211         * tree.c (tree_size): Update computation of size of STRING_CST.
15212         (make_node): Don't make STRING_CST nodes.
15213         (build_string): Allocate string with tree node.
15214         * tree.def (STRING_CST): Update comment.
15215         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15216         (tree_string): Place contents of string in tree node.
15217         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15218         from tree.
15219
15220 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
15221
15222         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
15223         msgid.
15224
15225 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
15226
15227         * config/rs6000/altivec.md (*movv4si_internal): At least one
15228         operand must be altivec_register_operand.
15229         (*movv8hi_internal1): Likewise.
15230         (*movv16qi_internal1): Likewise.
15231         (*movv4sf_internal1): Likewise.
15232
15233 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
15234
15235         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
15236         * configure: Regenerate.
15237
15238 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
15239
15240         * doc/install.texi: Update description of --gxx-include-dir to
15241         give correct default value.
15242
15243 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15244
15245         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
15246         8 with MAC_REG.
15247
15248 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15249
15250         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
15251         gen_rtx_PARALLEL.
15252
15253 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15254
15255         * emit-rtl.c: Update the comment about the file.
15256
15257 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
15258
15259         * sourcebuild.texi (Test Idioms): Update testcase naming
15260         conventions.
15261
15262 2004-02-04  Per Bothner  <per@bothner.com>
15263
15264         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
15265         * c-ppoutput.c (pp_dir_change):  New function.
15266         * c-common.h (pp_dir_change):  New declaration.
15267         * cpplib.h (struct cpp_options):  Remove working_directory field.
15268         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
15269         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
15270         Don't handle -fworking_directory here, but in c_common_post_options.
15271         (read_original_directory): Don't back up when done.
15272         Don't clear no-longer used working_directory flag.
15273         * cpplib.h:  Update declarations to match.
15274         * c-lex.c (cb_dir_change):  Move to c-opts.c.
15275         (init_c_lex):  Don't set dir_change callback here, since we want
15276         to set it even if flag_preprocess_only.
15277         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
15278         (c_common_post_options):  Set dir_change callback.
15279         Call pp_dir_change if approporiate.
15280         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
15281         unneeded parameter and result. Do LC_RENAME for <built-in>.
15282         (c_common_post_options):  Call cpp_read_main_file here instead.
15283         (c_common_init):  Update accordingly.
15284         (push_command_line_include):  Don't cpp_push_main_file.
15285         Do LC_RENAME rather than LC_LEASE to get back to main file.
15286         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
15287         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
15288         files, but call finish_options for all files.
15289         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
15290         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
15291         cpp_find_main_file + cpp_push_main_file.
15292         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
15293         * opts.c (handle_options):  Only set main_input_filename first time.
15294
15295 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
15296
15297         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
15298
15299 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
15300
15301         * reload.c (find_equiv_reg): When checking for register overlap,
15302         don't index hard_regno_nregs with a pseudo-reg.
15303
15304 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15305
15306         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
15307
15308 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
15309
15310         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
15311         against FIRST_PSEUDO_REGISTER.
15312
15313 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15314
15315         * Makefile.in: Move target, host overrides after per-language
15316         fragments.
15317
15318         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
15319         (GNATLIBCFLAGS): Remove -g.
15320
15321 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15322
15323         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
15324         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
15325         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
15326         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
15327         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
15328         config/sparc/sparc.c, config/vax/vax.c: Revert the
15329         replacements of "FALLTHRU" with "Fall through" done in the
15330         previous patch.
15331
15332 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15333
15334         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
15335         config/arm/arm.c, config/arm/arm.md,
15336         config/cris/cris-protos.h, config/fr30/fr30.c,
15337         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
15338         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
15339         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
15340         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
15341         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
15342         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
15343         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
15344         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
15345         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
15346         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
15347         config/s390/s390.md, config/sparc/netbsd-elf.h,
15348         config/sparc/openbsd.h, config/sparc/sparc.c,
15349         config/xtensa/lib2funcs.S: Fix comment formatting.
15350
15351 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15352
15353         * config/alpha/alpha.c, config/arc/arc.c,
15354         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
15355         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
15356         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
15357         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
15358         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
15359         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
15360         config/iq2000/iq2000.c, config/m32r/m32r.c,
15361         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
15362         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
15363         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
15364         config/rs6000/rs6000.h, config/sparc/sparc.c,
15365         config/vax/vax.c: Fix comment typos.  Follow spelling
15366         conventions.
15367
15368 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15369
15370         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
15371         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
15372         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
15373         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
15374         config/arm/fpa.md, config/arm/iwmmxt.md,
15375         config/arm/netbsd-elf.h, config/arm/netbsd.h,
15376         config/m68hc11/m68hc11.md, config/mips/iris5.h,
15377         config/mn10300/mn10300.md, config/rs6000/altivec.md,
15378         config/sparc/netbsd-elf.h: Update copyright.
15379
15380 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
15381
15382         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15383         for all modes whose size is greater than 8 bytes if ARCH32.
15384         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
15385         by reference if ARCH32.
15386
15387 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
15388
15389         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
15390
15391 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15392
15393         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
15394         to before adddi3 insn patterns.
15395         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
15396         "reload_insi"): Move to before addsi3 insn patterns.
15397
15398 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
15399
15400         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
15401         parameter.  Use it instead of current_function_is_thunk.
15402         * function.h (struct function): Update documentation for is_thunk.
15403         * tree.h (CALL_FROM_THUNK_P): New macro.
15404         * config/alpha/alpha.c (alpha_sa_mask): Do not check
15405         no_new_pseudos when testing current_function_is_thunk.
15406         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
15407
15408 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15409
15410         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
15411         TARGET_SETUP_INCOMING_VARARGS.
15412
15413 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15414
15415         * emit-rtl.c (gen_rtx): Remove.
15416         * genattrtab.c: Don't mention gen_rtx in a comment.
15417         * rtl.h: Remove the prototype for gen_rtx.
15418         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
15419
15420 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15421
15422         * config/arc/arc.h, config/fr30/fr30.h
15423         (SETUP_INCOMING_VARARGS): Remove the target-independent
15424         comments.
15425         * doc/tm.texi: Don't mention deprecated target macros.
15426
15427 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15428
15429         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
15430         target-independent comment.
15431
15432 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15433
15434         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
15435         mention deprecated target macros.
15436
15437 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15438
15439         * config.gcc: Remove obsolete ports and configurations.
15440         * config/linux-aout.h, config/netware.h,
15441         config/t-linux-gnulibc1, config/d30v/abi,
15442         config/d30v/d30v-protos.h, config/d30v/d30v.c,
15443         config/d30v/d30v.h, config/d30v/d30v.md,
15444         config/d30v/libgcc1.asm, config/d30v/t-d30v,
15445         config/dsp16xx/dsp16xx-modes.def,
15446         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
15447         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
15448         config/i370/README, config/i370/i370-c.c,
15449         config/i370/i370-protos.h, config/i370/i370.c,
15450         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
15451         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
15452         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
15453         config/i386/moss.h, config/i386/netware.h,
15454         config/i386/svr3.ifile, config/i386/svr3dbx.h,
15455         config/i386/svr3gas.h, config/i386/svr3z.ifile,
15456         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
15457         config/i960/i960-c.c, config/i960/i960-coff.h,
15458         config/i960/i960-modes.def, config/i960/i960-protos.h,
15459         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
15460         config/i960/rtems.h, config/i960/t-960bare,
15461         config/m68k/hp310.h, config/m68k/hp320.h,
15462         config/m68k/hp320base.h, config/m68k/m68kv4.h,
15463         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
15464         Remove.
15465         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
15466         doc/md.texi: Remove mentions of obsolete ports.
15467
15468 2004-02-04  Jan Hubicka  <jh@suse.cz>
15469
15470         * alias.c (find_base_term, get_addr):  Do not dereference NULL
15471         pointer when all VALUE's locations has been invalidated.
15472         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
15473
15474 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
15475
15476         * doc/invoke.texi (x86 options): Fix spelling/wording.
15477
15478 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
15479
15480         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
15481         put the original string in a comment.
15482         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
15483         * config/mips/mips.c (mips_output_ascii): Likewise.
15484         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
15485
15486 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15487
15488         * system.h (GIV_SORT_CRITERION): Poison.
15489         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
15490         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
15491
15492 2004-02-03  Roger Sayle  <roger@eyesopen.com>
15493
15494         PR target/9348
15495         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
15496         multiplies with a multiplication of the wrong signedness, its the
15497         signedness of the multiplication that we've performed that needs to
15498         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
15499         if expand_mult_highpart_adjust places the result in target.
15500
15501 2004-02-03  Richard Henderson  <rth@redhat.com>
15502
15503         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
15504
15505 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
15506
15507         * config.gcc (sh[234]l): Use little endian fragments.
15508
15509 2004-02-03  Paul Koning  <pkoning@equallogic.com>
15510
15511         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
15512         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
15513         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
15514         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
15515         floating point format.
15516         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
15517         the above functions.
15518         (output_move_quad): Output float values in correct target format.
15519         (legitimate_const_double_p): New function.
15520         * config/pdp11/pdp11.h: Fix typos.
15521         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
15522         (TARGET_FLOAT_FORMAT): Ditto.
15523         (pdp11_f_format, pdp11_d_format): Add external declarations.
15524         (MAX_REGS_PER_ADDRESS): Corrected.
15525         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
15526         (PRINT_OPERAND): Output float literals in target format.
15527
15528 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
15529
15530         PR c++/13975
15531         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
15532         TI_PRIVATE.
15533         (access_public_node): Redefine.
15534         (access_protected_node): Likewise.
15535         (access_private_node): Likewise.
15536         * tree.c (build_common_tree_nodes): Create access_public_node,
15537         access_protected_node, and access_private_node.
15538
15539 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
15540
15541         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
15542         (MASK_INLINE_INT_DIV_THR): Ditto.
15543         (MASK_INLINE_SQRT_LAT): Ditto.
15544         (MASK_INLINE_SQRT_THR): Ditto.
15545         (MASK_DWARF2_ASM): Ditto.
15546         (MASK_EARLY_STOP_BITS): Ditto.
15547
15548 2004-02-02  Paul Brook  <paul@codesourcery.com>
15549
15550         Merge from csl-arm-branch.
15551
15552         2004-01-30  Paul Brook  <paul@codesourcery.com>
15553
15554         * aof.h (REGISTER_NAMES): Add vfp reg names
15555         (ADDITIONAL_REGISTER_NAMES): Ditto.
15556         * aout.h (REGISTER_NAMES): Ditto.
15557         (ADDITIONAL_REGISTER_NAMES): Ditto.
15558         * arm-protos.h: Update/Add Prototypes.
15559         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
15560         Only allow 0.0 for VFP.
15561         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
15562         (values_fp): Rename from values_fpa.  Update Users.
15563         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
15564         Update users.  Only check valid constants for this hardware.
15565         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
15566         Only allow consts for FPA.
15567         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
15568         Only allow consts for FPA.
15569         (use_return_insn): Check for saved VFP regs.
15570         (arm_legitimate_address_p): Handle VFP DFmode addressing.
15571         (arm_legitimize_address): Ditto.
15572         (arm_general_register_operand): New function.
15573         (vfp_mem_operand): New function.
15574         (vfp_compare_operand): New function.
15575         (vfp_secondary_reload_class): New function.
15576         (arm_float_compare_operand): New function.
15577         (vfp_print_multi): New function.
15578         (vfp_output_fstmx): New function.
15579         (vfp_emit_fstm): New function.
15580         (arm_output_epilogue): Output VPF reg restore code.
15581         (arm_expand_prologue): Output VFP reg save code.
15582         (arm_print_operand): Add 'P'.
15583         (arm_hard_regno_mode_ok): Return modes for VFP regs.
15584         (arm_regno_class): Return classes for VFP regs.
15585         (arm_compute_initial_elimination_offset): Include space for VFP regs.
15586         (arm_get_frame_size): Ditto.
15587         * arm.h (FIXED_REGISTERS): Add VFP regs.
15588         (CALL_USED_REGISTERS): Ditto.
15589         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
15590         (FIRST_VFP_REGNUM): Define.
15591         (LAST_VFP_REGNUM): Define.
15592         (IS_VFP_REGNUM): Define.
15593         (FIRST_PSEUDO_REGISTER): Include VFP regs.
15594         (HARD_REGNO_NREGS): Handle VFP regs.
15595         (REG_ALLOC_ORDER): Add VFP regs.
15596         (enum reg_class): Add VFP_REGS.
15597         (REG_CLASS_NAMES): Ditto.
15598         (REG_CLASS_CONTENTS): Ditto.
15599         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
15600         (REG_CLASS_FROM_LETTER): Add 'w'.
15601         (EXTRA_CONSTRAINT_ARM): Add 'U'.
15602         (EXTRA_MEMORY_CONSTRAINT): Define.
15603         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
15604         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
15605         (REGISTER_MOVE_COST): Ditto.
15606         (PREDICATE_CODES): Add arm_general_register_operand,
15607         arm_float_compare_operand and vfp_compare_operand.
15608         * arm.md (various): Rename as above.
15609         (divsf3): Enable when TARGET_VFP.
15610         (divdf3): Ditto.
15611         (movdfcc): Ditto.
15612         (sqrtsf2): Ditto.
15613         (sqrtdf2): Ditto.
15614         (arm_movdi): Disable when TARGET_VFP.
15615         (arm_movsi_insn): Ditto.
15616         (movsi): Only split with general regs.
15617         (cmpsf): Use arm_float_compare_operand.
15618         (push_fp_multi): Restrict to TARGET_FPA.
15619         (vfp.md): Include.
15620         * vfp.md: New file.
15621         * fpa.md (various): Rename as above.
15622         * doc/md.texi: Document ARM w and U constraints.
15623
15624         2004-01-15  Paul Brook  <paul@codesourcery.com>
15625
15626         * config.gcc: Add with_fpu.  Allow with-float=softfp.
15627         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
15628         Break out of loop when we find a float-abi.  Fix typo.
15629         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
15630         Set -mfloat-abi=.
15631         * doc/install.texi: Document --with-fpu.
15632
15633         2003-01-14  Paul Brook  <paul@codesourcery.com>
15634
15635         * config.gcc (with_arch): Add armv6.
15636         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
15637         * config/arm/arm.c (arm_overrride_options): Ditto.
15638
15639         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
15640
15641         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
15642         (FL_ARCH6): Renamed from FL_ARCH6J.
15643         (arm_arch3m): Renamed from arm_fast_multiply.
15644         (arm_arch6): Renamed from arm_arch6j.
15645         * arm.h: Update all uses of above.
15646         * arm-cores.def: Likewise.
15647         * arm.md: Likewise.
15648
15649         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
15650         not arm6j.  Add entry for arch armv6.
15651
15652         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
15653
15654         * arm.c (arm_emit_extendsi): Delete.
15655         * arm-protos.h (arm_emit_extendsi): Delete.
15656         * arm.md (zero_extendhisi2): Also handle zero-extension of
15657         non-subregs.
15658         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
15659         (thumb_zero_extendhisi2): Only match if not v6.
15660         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
15661         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
15662         (thumb_extendqisi2): Likewise.
15663         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
15664         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
15665         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
15666         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
15667         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
15668         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
15669         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
15670         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
15671         (arm_extendqisi2addsi): Likewise.
15672
15673         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
15674
15675         Revert this change:
15676         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
15677         + REG addressing modes.
15678
15679         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
15680         + REG addressing modes.
15681
15682         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
15683
15684         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
15685         CONSTANT_P_RTX.
15686
15687         2003-30-12  Paul Brook  <paul@codesourcery.com>
15688
15689         * longlong.h: protect arm inlines with !defined (__thumb__)
15690
15691         2003-30-12  Paul Brook  <paul@codesourcery.com>
15692
15693         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
15694
15695         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
15696
15697         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
15698         change.
15699
15700         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
15701
15702         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
15703         to the virtual incoming args pointer for downward stacks.
15704
15705         2003-12-29  Paul Brook  <paul@codesourcery.com>
15706
15707         * config/arm/arm-cores.def: Add cost function.
15708         * config/arm/arm.c (arm_*_rtx_costs): New functions.
15709         (arm_rtx_costs): Remove
15710         (struct processors): Add rtx_costs field.
15711         (all_cores, all_architectures): Ditto.
15712         (arm_override_options): Set targetm.rtx_costs.
15713         (thumb_rtx_costs): New function.
15714         (arm_rtx_costs_1): Remove cases handled elsewhere.
15715         * config/arm/arm.h (processor_type): Add COSTS parameter.
15716
15717         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
15718
15719         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
15720         (arm926ejs.md): Include it.
15721         * config/arm/arm926ejs.md: New pipeline description.
15722
15723         2003-12-24  Paul Brook  <paul@codesourcery.com>
15724
15725         * config/arm/arm.c (arm_arch6j): New variable.
15726         (arm_override_options): Set it.
15727         (arm_emit_extendsi): New function.
15728         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
15729         * config/arm/arm.h (arm_arch6j): Declare.
15730         * config/arm/arm.md: Add sign/zero extend insns.
15731
15732         2003-12-23  Paul Brook  <paul@codesourcery.com>
15733
15734         * config/arm/arm.c (all_architectures): Add armv6.
15735         * doc/invoke.texi: Document it.
15736
15737         2003-12-19  Paul Brook  <paul@codesourcery.com>
15738
15739         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
15740         insn patterns to match.
15741         * config/arm/arm-generic.md: Ditto.
15742         * config/arm/cirrus.md: Ditto.
15743         * config/arm/fpa.md: Ditto.
15744         * config/amm/iwmmxt.md: Ditto.
15745         * config/arm/arm1026ejs.md: Ditto.
15746         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
15747         for 11_loadb.
15748
15749         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
15750
15751         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
15752         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
15753         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
15754         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
15755         arm_no_early_mul_dep): Correctly deal with conditional execution,
15756         parallels and single shift operations.
15757         (arm_no_early_alu_shift_value_dep): Define.
15758         * arm.md (attr type): Replace 'normal' with 'alu',
15759         'alu_shift' and 'alu_shift_reg'.
15760         (attr core_cycles): Adjust.
15761         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
15762         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
15763         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
15764         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
15765         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
15766         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
15767         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
15768         attribute appropriately.
15769         * config/arm/arm1026ejs.md (alu_op): Adjust.
15770         (alu_shift_op, alu_shift_reg_op): New.
15771         * config/arm/arm1136.md: Add better bypasses for early
15772         registers. Remove load[234] and store[234] bypasses.
15773         (11_alu_op): Adjust.
15774         (11_alu_shift_op, 11_alu_shift_reg_op): New.
15775
15776         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
15777
15778         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
15779         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
15780         * config/arm/arm.c (arm_no_early_store_addr_dep,
15781         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
15782         * config/arm/arm1026ejs.md: Add load-store bypass.
15783         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
15784         Add bypasses between instructions.
15785
15786         2003-12-10  Paul Brook  <paul@codesourcery.com>
15787
15788         * config/arm/arm.c (arm_fpu_model): New variable.
15789         (arm_fload_abi): New variable.
15790         (target_fpe_name): Rename from target_fp_name.
15791         (target_fpu_name): New variable.
15792         (arm_is_cirrus): Remove.
15793         (fpu_desc): New struct.
15794         (all_fpus): Define.
15795         (pf_model_for_fpu): Define.
15796         (all_loat_abis): Define.
15797         (arm_override_options): Set fp arch flags based on -mfpu=
15798         and -float-abi=.
15799         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
15800         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
15801         (*): Use new TARGET_* flags.
15802         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
15803         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
15804         (TARGET_SOFT_FLOAT): Ditto.
15805         (TARGET_SOFT_FLOAT_ABI): New.
15806         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
15807         TARGET_HARD_FLOAT.
15808         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
15809         (TARGET_OPTIONS): Add -mfpu=.
15810         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
15811         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
15812         (arm_pf_model): Define.
15813         (arm_float_abi_type): Define.
15814         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
15815         * config/arm/arm.md: Use new TARGET_* flags.
15816         * config/arm/cirrus.md: Ditto.
15817         * config/arm/fpa.md: Ditto.
15818         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
15819         * config/arm/semi.h (ASM_SPEC): Ditto.
15820         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
15821         (FPUTYPE_DEFAULT): Set to VFP.
15822         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
15823
15824         2003-11-22  Phil Edwards  <phil@codesourcery.com>
15825
15826         PR target/12476
15827         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
15828         'bx' instead of 'b' to avoid branch range restrictions.  Output
15829         the thunk immediately before the thunked-to function.
15830         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
15831         .thumb_func if a thunk is being generated.  Emit .code 16 along
15832         with .thumb_func if a thunk is not being generated.
15833
15834         2003-11-15  Nicolas Pitre <nico@cam.org>
15835
15836         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
15837         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
15838         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
15839         (lshrdi3_iwmmxt): Renamed from lshrdi3.
15840         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
15841
15842         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
15843             Ian Lance Taylor  <ian@wasabisystems.com>
15844
15845         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
15846         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
15847
15848         2003-11-05  Phil Edwards  <phil@codesourcery.com>
15849
15850         * config/arm/arm.md (insn):  Add new V6 instruction names.
15851         (generic_sched):  New attr.
15852         * config/arm/arm-generic.md:  Use generic_sched here.
15853         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
15854         stages of pipeline.  Adjust latency counts accordingly.
15855         * config/arm/arm1136jfs.md:  New file.
15856
15857         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
15858
15859         * config/arm/arm.h (processor_type): New enumeration type.
15860         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
15861         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
15862         (CPP_CPU_ARCH_SPEC): Likewise.
15863         * config/arm/arm.c (arm_tune): New variable.
15864         (all_cores): Use cores.def.
15865         (all_architectures): Add representative processor.
15866         (arm_override_options): Restructure way in which tuning
15867         information is deduced.
15868         * arm.md: Update "insn" and "type" attributes throughout.
15869         (insn): New attribute.
15870         (type): Compute "mult" from "insn" attribute.  Add load2,
15871         load3, load4 alternatives.
15872         (arm automaton): Move to arm-generic.md.
15873         * config/arm/arm-cores.def: New file.
15874         * config/arm/arm-generic.md: Likewise.
15875         * config/arm/arm1026ejs.md: Likewise.
15876
15877 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
15878
15879         * doc/invoke.texi (SPARC options): Remove -mflat and
15880         all -mxxx (xxx:chip) options.
15881         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
15882         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
15883         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
15884         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
15885         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
15886         * config/sparc/sparc.c: Likewise.
15887         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
15888         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
15889         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
15890         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
15891         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
15892         (sparc_flat_must_save_register_p): Likewise.
15893         (sparc_flat_compute_frame_size): Likewise.
15894         (sparc_flat_save_restore): Likewise.
15895         (sparc_flat_function_prologue): Likewise.
15896         (sparc_flat_function_epilogue): Likewise.
15897         (sparc_flat_epilogue_delay_slots): Likewise.
15898         (sparc_flat_eligible_for_epilogue_delay): Likewise.
15899         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
15900         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
15901         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
15902         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
15903         (CONDITIONAL_REGISTER_USAGE): Likewise.
15904         (FRAME_POINTER_REQUIRED): Likewise.
15905         (INITIAL_ELIMINATION_OFFSET): Likewise.
15906         (BASE_RETURN_VALUE_REG): Likewise.
15907         (BASE_OUTGOING_VALUE_REG): Likewise.
15908         (BASE_PASSING_ARG_REG): Likewise.
15909         (BASE_INCOMING_ARG_REG): Likewise.
15910         (INCOMING_REGNO): Likewise.
15911         (OUTGOING_REGNO): Likewise.
15912         (LOCAL_REGNO): Likewise.
15913         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
15914         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
15915         (EPILOGUE_USES): Likewise.
15916         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
15917         ("flat" attribute): Delete.
15918         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
15919         handling.
15920         (call followed by jump define_peephole's): Delete.
15921         (exception_receiver): Likewise.
15922         (builtin_setjmp_receiver): Likewise.
15923         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
15924
15925 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
15926
15927         PR c/11658
15928         PR c/13994
15929         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
15930         on langhooks.h.
15931         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
15932         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
15933         Include langhooks.h.  Replace c_common_truthvalue_conversion
15934         with the truthvalue_conversion language hook throughout.
15935         (expr_no_commas): Call default_conversion before save_expr
15936         for the first term of the production 'x ? : y'.
15937         * c-common.c (c_common_truthvalue_conversion): Remove
15938         obsolete block.  Invoke recursively the hook instead
15939         of this function.
15940         * c-convert.c (convert): handle ERROR_MARK_NODE.
15941         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
15942         returned by the truthvalue_conversion language hook.
15943         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
15944         c_objc_common_truthvalue_conversion.
15945         * c-objc-common.c (c_objc_common_truthvalue_conversion):
15946         New function.
15947         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
15948         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
15949         c_objc_common_truthvalue_conversion.
15950
15951 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15952
15953         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
15954         of gen_rtx.
15955         (LIBCALL_VALUE): Likewise.
15956         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
15957         gen_rtx_CC0 instead of gen_rtx.
15958         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
15959         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
15960         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
15961         gen_rtx.
15962         (m68hc11_emit_logical): Likewise.
15963
15964 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15965
15966         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
15967         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
15968         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
15969         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
15970         config/mips/mips.md, config/mmix/mmix.c,
15971         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
15972         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
15973         config/rs6000/altivec.md, config/s390/s390.c,
15974         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
15975         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
15976         Use const0_rtx instead of GEN_INT (0).  Do the same for other
15977         constants that are readily available.
15978
15979 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15980
15981         * doloop.c, optabs.c, regmove.c, sched-deps.c,
15982         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
15983         instead of GEN_INT (0).  Do the same for other constants that
15984         are readily available.
15985
15986 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15987
15988         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
15989         gen_rtx.
15990         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
15991         instead of gen_rtx.
15992         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
15993         gen_rtx.
15994         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
15995         gen_rtx_ASHIFT instead of gen_rtx.
15996         (udivmodqi4): Likewise.
15997
15998 2004-02-02  Richard Henderson  <rth@redhat.com>
15999
16000         PR target/13789
16001         * expr.c (store_expr): Use force_operand before emit_move_insn.
16002
16003 2004-02-02  Jeff Law  <law@redhat.com>
16004             Roger Sayle  <roger@eyesopen.com>
16005
16006         * tree.c (commutative_tree_code, associative_tree_code): New
16007         functions.
16008         (iterative_hash_expr): Use commutative_tree_code.
16009         * tree.h (commutative_tree_code, associative_tree_code): Declare.
16010         * fold-const.c (operand_equal_p): Use commutative_tree_code
16011         rather than inlining the commutativity check.
16012         (fold): Likewise.
16013
16014 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16015
16016         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
16017         * config/frv/frv-protos.h: Remove the prototype for
16018         frv_function_arg_keep_as_reference.
16019         * config/frv/frv.c (frv_function_arg_keep_as_reference):
16020         Remove.
16021         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
16022         * config/stormy16/stormy16.h: Remove the commented-out
16023         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
16024
16025 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
16026
16027         PR target/13914
16028         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
16029         for retaddr_column.
16030
16031 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16032
16033         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
16034         gen_rtx.
16035
16036 2004-02-02  Eric Christopher  <echristo@redhat.com>
16037             Zack Weinberg  <zack@codesourcery.com>
16038
16039         * c-opts.c (c_common_handle_option): Add -finput-charset.
16040         * c.opt: Ditto.
16041         * cppcharset.c (one_iso88591_to_utf8): Remove.
16042         (convert_iso88591_utf8): Ditto.
16043         (conversion_tab): Remove 8859-1 converter.
16044         (_cpp_input_to_utf8): Remove.
16045         (_cpp_init_iconv_buffer): Ditto.
16046         (_cpp_close_iconv_buffer): Ditto.
16047         (_cpp_convert_input): New function.
16048         (_cpp_default_encoding): Ditto.
16049         * cpphash.h: Add/remove prototypes for above.
16050         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
16051         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
16052         for narrow execution and input character sets.
16053         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
16054         * doc/cppopts.texi: Document -finput-charset.
16055
16056 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
16057
16058         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
16059         against FIRST_PSEUDO_REGISTER.
16060
16061 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16062
16063         * doc/invoke.texi (SPARC options): Further improve.
16064
16065 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16066
16067         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
16068         config/h8300/h8300.c, config/ip2k/ip2k.md,
16069         config/iq2000/iq2000.c, config/mips/mips.c,
16070         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
16071         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
16072         config/v850/v850.md: Fix indentation.
16073
16074 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16075
16076         * config/sparc/sparc.c (function_arg_slotno): Align TImode
16077         arguments on a 16-byte boundary in the parameter array if ARCH64.
16078         Split handling of TFmode.
16079
16080 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
16081
16082         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
16083         Don't test CONSTANT_P (x).
16084         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
16085         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
16086         Fix misindentation.
16087
16088 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16089
16090         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
16091
16092 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16093
16094         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
16095         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
16096         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
16097         config/iq2000/iq2000.c, config/m32r/m32r.c,
16098         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
16099         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
16100         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
16101         config/stormy16/stormy16.c, config/v850/v850.md,
16102         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
16103
16104 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16105
16106         * config/mcore/mcore.c (block_move_sequence): Replace
16107         gen_rtx_CONST_INT with GEN_INT.
16108
16109 2004-02-02  Jan Hubicka  <jh@suse.cz>
16110
16111         * alias.c (record_set): Use hard_regno_nregs.
16112         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
16113         * builtins.c (apply_args_size): Likewise.
16114         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
16115         mark_set_regs, add_stored_regs, mark_referenced_regs,
16116         insert_restore, insert_save, insert_one_insn): Likewise.
16117         * cfgcleanup.c: Include regs.h
16118         (mark_effect, mentions_nonequal_regs): Likewise.
16119         * cfgrtl.c (mark_killed_regs): Likewise
16120         * combine.c (update_table_tick, record_value_for_reg,
16121         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
16122         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
16123         reg_bitfield_target_p, distribute_notes): Likewise.
16124         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
16125         exp_equiv_p, cse_insn): Likewise.
16126         * cselib.c (cselib_lookup): Likewise.
16127         (cselib_invalidate_regno, cselib_record_set): Likewise.
16128         * df.c (df_ref_record): Likewise.
16129         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
16130         Likewise.
16131         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
16132         count_or_remove_death_notes_bb): Likewise.
16133         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
16134         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
16135         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
16136         * integrate.c (mark_stores): Likewise.
16137         * jump.c (delete_prior_computation): Likewise.
16138         * lcm.c (reg_dies, reg_becomes_live): Likewise.
16139         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
16140         * loop.c (LOOP_REGNO_NREGS): Likewise.
16141         * postreload.c (reload_combine, reload_combine_note_store,
16142         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
16143         * ra-colorize.c (combine, color_usable_p, get_free_reg,
16144         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
16145         try_recolor_web, insert_coalesced_conflicts, check_colors,
16146         break_precolored_alias): Likewise.
16147         * ra-debug.c: Include regs.h
16148         (ra_print_rtx_object): Likewise.
16149         * ra-rewrite (choose_spill_colors): Likewise.
16150         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
16151         * ra.c (init_ra): Likewise.
16152         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
16153         peep2_find_free_register): Likewise.
16154         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
16155         * regclass.c (hard_regno_nregs): New array.
16156         (init_reg_modes_once): Initialize it.
16157         (choose_hard_reg_mode): Use it.
16158         (record_reg_classes): Likewise.
16159         * regmove.c (mark_flags_life_zones): Likewise.
16160         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
16161         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
16162         copy_value, maybe_mode_change, find_oldest_value_reg,
16163         copyprop_hardreg_forward_1):
16164         * regs.h (hard_regno_nregs): Declare.
16165         * realod.c (reload_inner_reg_of_subreg): Use it.
16166         (push_reload, combine_reloads, find_dummy_reload,
16167         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
16168         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
16169         reload_adjust_reg_for_mode): Likewise.
16170         * reload1.c (compute_use_by_pseudos, count_pseudo,
16171         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
16172         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
16173         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
16174         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
16175         delete_output_reload): Likewise.
16176         * resource.c (update_live_status, mark_referenced_resources,
16177         mark_set_resources, mark_target_live_regs): Likewise.
16178         * rtlanal.c:  Include regs.h
16179         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
16180         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
16181         subreg_regno_offset, subreg_offset_representable_p,
16182         hoist_test_store): Likewise.
16183         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
16184         * sched-rgn.c (check_live_1, update_live_1): Likewise.
16185         * stmt.c: Include regs.h
16186         (decl_conflicts_with_clobbers_p): Likewise.
16187         * varasm.c (make_decl_rtl): Likewise.
16188         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
16189
16190 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16191
16192         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
16193         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
16194         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
16195         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
16196         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
16197         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
16198         config/iq2000/iq2000.h, config/m32r/m32r.c,
16199         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
16200         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
16201         config/mcore/mcore.c, config/mcore/mcore.h,
16202         config/mcore/mcore.md, config/mips/mips.c,
16203         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
16204         config/rs6000/rs6000.c, config/s390/s390.c,
16205         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
16206         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
16207         "gen_rtx (FOO, " with "gen_rtx_FOO (".
16208
16209 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16210
16211         * config/h8300/h8300.md (two peephole2's): New.
16212
16213 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
16214
16215         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
16216         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
16217         (ASM_CPU_SPEC): Likewise
16218         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
16219         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
16220
16221 2004-02-01  Roger Sayle  <roger@eyesopen.com>
16222
16223         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
16224         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
16225         (expand_builtin): Always call expand_builtin_pow.
16226
16227 2004-02-01  Roger Sayle  <roger@eyesopen.com>
16228
16229         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
16230         BUILT_IN_SIGNBITL): New GCC builtins.
16231         * builtins.c (expand_builtin_signbit): New function to RTL expand
16232         calls to signbit, signbitf and signbitl as inline intrinsics.
16233         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
16234         (fold_builtin_signbit): New function to perform constant folding
16235         of signbit, signbitf and signbitl.
16236         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
16237
16238         * doc/extend.texi: Document new signbit{,f,l} builtins.
16239
16240 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
16241
16242         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
16243
16244 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
16245
16246         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
16247         "mips_const_double_ok" and "simple_memory_operand", which were
16248         removed from the MIPS port with the mips-3_4-rewrite branch merge.
16249         * config/mips/mips.c (mips16_lay_out_constants): Update comment
16250         for removal of simple_memory_operand.
16251
16252 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16253
16254         * config/c4x/c4x.md: Use GEN_INT instead of
16255         gen_rtx (CONST_INT, ...).
16256
16257 2004-01-31  Richard Henderson  <rth@redhat.com>
16258
16259         * varasm.c (output_constant_pool): Don't zap the pool.
16260
16261 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16262
16263         * genrecog.c (decision_type): Add DT_const_int.
16264         (write_cond) [DT_const_int]: Print a comparison against small
16265         constant.
16266         (write_node): Simplify comparisons against small constants
16267         before printing tests.
16268
16269 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16270
16271         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
16272         instead of gen_rtx_CONST_INT.
16273
16274 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16275
16276         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
16277         instead of gen_rtx_CONST_INT.
16278
16279 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16280
16281         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
16282         hook_bool_CUMULATIVE_ARGS_false.
16283         * targhooks.c (default_strict_argument_naming): Rename to
16284         hook_bool_CUMULATIVE_ARGS_false.
16285         * targhooks.h: Update the prototype for
16286         default_strict_argument_naming.
16287
16288 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16289
16290         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
16291         * config/sh/sh.h: Likewise.
16292         * config/sh/sh.md: Likewise.
16293
16294 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
16295
16296         * doc/invoke.texi (SPARC options): Restructure and update.
16297
16298 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16299
16300         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
16301         STRICT_ARGUMENT_NAMING): Poison.
16302         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
16303         hook_bool_tree_false.
16304         * targhooks.c (default_promote_function_args): Remove.
16305         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
16306         Don't check incoming.
16307         (default_strict_argument_naming): Don't use
16308         STRICT_ARGUMENT_NAMING.
16309         * targhooks.h: Remove the prototype for
16310         default_promote_function_args.
16311
16312 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16313
16314         * config/i386/i386-protos.h: Remove the prototype for
16315         ix86_setup_incoming_varargs.
16316         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
16317         (ix86_setup_incoming_varargs): Make it static.
16318         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
16319
16320 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16321
16322         * alloc-pool.c: Fix comment typos.
16323         * builtin-types.def: Likewise.
16324         * builtins.def: Likewise.
16325         * c-pretty-print.c: Likewise.
16326         * df.h: Likewise.
16327         * reload1.c: Likewise.
16328
16329 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16330
16331         * doc/invoke.texi: Follow spelling conventions.
16332         * doc/tm.texi: Likewise.
16333
16334 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16335
16336         * doc/install.texi: Fix typos.
16337         * doc/invoke.texi: Likewise.
16338
16339 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
16340
16341         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
16342         registers as pointers.
16343         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
16344
16345 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
16346
16347         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
16348         and restore it to gen_lowpart_general on exit.
16349         (gen_lowpart_for_combine): Adjust all callers to go through
16350         gen_lowpart.
16351         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
16352         and restore it to gen_lowpart_general on exit.
16353         (gen_lowpart_if_possible): Adjust all callers to go through
16354         gen_lowpart.
16355         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
16356         (gen_lowpart): Declare as pointer to function, initialized to
16357         gen_lowpart_general.
16358         * rtl.h (gen_lowpart): Declare as pointer to function.
16359
16360 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16361
16362         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
16363         * calls.c: Likewise.
16364         * emit-rtl.c: Likewise.
16365         * function.c: Likewise.
16366         * reload1.c: Likewise.
16367         * config/i386/cygming.h: Likewise.
16368         * config/i386/i386.c: Likewise.
16369         * config/i386/winnt.c: Likewise.
16370
16371 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
16372
16373         PR bootstrap/9249
16374         * doc/install.texi: document --enable-__cxa_atexit option.
16375         * configure.ac: Disable __cxa_atexit if not supported.
16376         * configure: Regenerate.
16377
16378 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
16379
16380         * ggc-zone.c (ggc_free): New function.
16381
16382 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16383
16384         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
16385         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
16386         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
16387         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
16388         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
16389         config/alpha/alpha.c, config/alpha/alpha.h,
16390         config/alpha/alpha.md, config/alpha/unicosmk.h,
16391         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
16392         config/c4x/c4x-protos.h, config/c4x/c4x.md,
16393         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
16394         config/frv/frvend.c, config/i386/cygming.h,
16395         config/i386/djgpp.h, config/i386/emmintrin.h,
16396         config/i386/gthr-win32.c, config/i386/i386-interix.h,
16397         config/i386/i386-protos.h, config/i386/openbsd.h,
16398         config/i386/winnt.c, config/i386/xm-mingw32.h,
16399         config/i386/xmmintrin.h, config/ia64/ia64.md,
16400         config/iq2000/iq2000.md, config/m32r/m32r.md,
16401         config/m68k/m68k.md, config/mcore/mcore-elf.h,
16402         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
16403         config/mips/iris5gas.h, config/mips/iris6.h,
16404         config/mips/iris6gas.h, config/mips/linux.h,
16405         config/mips/mips.md, config/mips/netbsd.h,
16406         config/mips/openbsd.h, config/mips/windiss.h,
16407         config/pa/fptr.c, config/rs6000/aix.h,
16408         config/rs6000/altivec.h, config/rs6000/darwin.h,
16409         config/rs6000/xcoff.h, config/s390/s390-protos.h,
16410         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
16411         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
16412         config/sparc/sol2.h: Update copyright.
16413
16414 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
16415
16416         * Makefile.in (abs_docdir, abs_srcdir): Define.
16417         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
16418
16419 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16420
16421         * genconfig.c (main): Have CC0_P check its operand even on a
16422         target without cc0.
16423
16424 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16425
16426         * config/alpha/alpha.c: Remove mentions of deprecates macros
16427         in comments, remove some target-independent comments about target
16428         macros, and/or add minimal function comments for target hook
16429         implementations.
16430         * config/avr/avr.c: Likewise.
16431         * config/ia64/ia64.h: Likewise.
16432         * config/ip2k/ip2k.c: Likewise.
16433         * config/iq2000/iq2000.c: Likewise.
16434         * config/m32r/m32r.h: Likewise.
16435         * config/m68hc11/m68hc11.c: Likewise.
16436         * config/mcore/mcore.c: Likewise.
16437         * config/mmix/mmix.c: Likewise.
16438         * config/mn10300/mn10300.c: Likewise.
16439         * config/pa/pa.c: Likewise.
16440         * config/pdp11/pdp11.c: Likewise.
16441         * config/rs6000/rs6000.h: Likewise.
16442         * config/sh/sh.c: Likewise.
16443         * config/sh/sh.h: Likewise.
16444         * config/sparc/sparc.c: Likewise.
16445         * config/sparc/sparc.h: Likewise.
16446         * config/stormy16/stormy16.c: Likewise.
16447         * config/xtensa/xtensa.c: Likewise.
16448
16449 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
16450
16451         PR optimization/12147
16452         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
16453         RELOAD_FOR_OPADDR_ADDR.
16454         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
16455         might be reused as RELOAD_FOR_OPADDR_ADDR register.
16456
16457 2004-01-30  Jan Hubicka  <jh@suse.cz>
16458
16459         * reload.c (get_secondary_mem): Fix updating of
16460         secondary_memlocs_elim_used.
16461
16462 2004-01-30  Richard Henderson  <rth@redhat.com>
16463
16464         * varasm.c (struct rtx_const, struct pool_constant): Remove.
16465         (MAX_RTX_HASH_TABLE): Remove.
16466         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
16467         (first_pool, last_pool, pool_offset): Remove.
16468         (struct rtx_constant_pool): Split out from ...
16469         (struct varasm_status): ... here.  Reference one via pointer.
16470         (struct constant_descriptor_rtx): Merge struct pool_constant.
16471         (SYMHASH): Remove.
16472         (decode_rtx_const): Remove.
16473         (const_hash_rtx, compare_constant_rtx): Remove.
16474         (record_constant_rtx): Remove.
16475         (const_desc_rtx_hash, const_desc_rtx_eq): New.
16476         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
16477         (const_rtx_hash_1, const_rtx_hash): New.
16478         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
16479         (simplify_subtraction): Use simplify_rtx.
16480         (force_const_mem): Rewrite to use new data structures.
16481         (find_pool_constant): Likewise.
16482         (get_pool_constant, get_pool_constant_mark,
16483         get_pool_constant_for_function, get_pool_mode,
16484         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
16485         (output_constant_pool_2): Split out from output_constant_pool.
16486         (output_constant_pool_1): Likewise.  Use new pool datastructures.
16487         (output_constant_pool): Zap entire pool datastructure.
16488         (mark_constant): Use new pool datastructures.
16489         (mark_constants): Use for_each_rtx.
16490         (mark_constant_pool): Use new pool datastructures.
16491
16492 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
16493
16494         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
16495         Copy operands[1] to pseudo for simplify_gen_subreg.
16496
16497 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16498
16499         * gcse.c (bypass_block): Fix a typo in the previous check-in
16500         to the file.
16501
16502 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
16503
16504         * toplev.c: Include alloc-pool.h.
16505         * Makefile.in (toplev.c): Update dependencies.
16506
16507 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16508
16509         * combine.c (simplify_shift_const, case XOR): Be careful when
16510         commuting XOR with ASHIFTRT.
16511
16512 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16513             Eric Botcazou  <ebotcazou@libertysurf.fr>
16514
16515         * config/sparc/sparc-protos.h: Remove the prototype for
16516         sparc_builtin_saveregs.
16517         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16518         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16519         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16520         (TARGET_STRUCT_VALUE_RTX): Likewise.
16521         (TARGET_RETURN_IN_MEMORY): Likewise.
16522         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16523         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16524         (sparc_builtin_saveregs): Make it static.
16525         (sparc_promote_prototypes): New.
16526         (sparc_struct_value_rtx): Likewise.
16527         (sparc_return_in_memory): Likewise.
16528         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
16529         (PROMOTE_FUNCTION_RETURN): Likewise.
16530         (RETURN_IN_MEMORY): Likewise.
16531         (STRUCT_VALUE): Likewise.
16532         (STRUCT_VALUE_INCOMING): Likewise.
16533         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16534         (STRICT_ARGUMENT_NAMING): Likewise.
16535         (PROMOTE_PROTOTYPES): Likewise.
16536
16537         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
16538
16539 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
16540
16541         PR c/12818
16542         * varasm.c (const_hash_1) <STRING_CST>: Use the
16543         address to compute the hash value if flag_writable_strings.
16544         (compare_constant) <STRING_CST>: Compare the addresses
16545         if flag_writable_strings.
16546         (build_constant_desc): Do not copy the expression for a
16547         STRING_CST if flag_writable_strings.
16548
16549 2004-01-30  Jan Hubicka  <jh@suse.cz>
16550
16551         * alloc-pool.c: Include hashtab.h
16552         (alloc_pool_descriptor): New structure
16553         (alloc_pool_hash): New global variable.
16554         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
16555         (create_alloc_pool): Update statistics.
16556         (free_alloc_pool): Likewise.
16557         (pool_alloc): Likewise.
16558         (output_info): New structure
16559         (print_statistics, dump_alloc_pool_statistics): New function.
16560         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
16561         (dump_alloc_pool_statistics): Declare.
16562         * toplev.c (finalize):  Dump statistics.
16563
16564         * reload.c (secondary_memlocs_elim_used): New static variable.
16565         (get_secondary_mem): Update it.
16566         (find_reloads): Use it.
16567
16568 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
16569
16570         * toplev.c: Fix broken checkin of 2003-12-30, again.
16571
16572 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
16573
16574         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
16575         s390*-*-* targets by specifying a 'nop' insn.
16576         * configure: Regenerate.
16577
16578 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
16579
16580         PR target/11475
16581         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
16582
16583 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
16584
16585         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
16586         of addr when creating MEM copy.
16587
16588 2004-01-29  Devang Patel  <dpatel@apple.com>
16589
16590         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
16591
16592 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
16593
16594         PR inline-asm/6162
16595         * reload.c (find_reloads): Only support one pair of commutative
16596         operands.
16597
16598 2004-01-29  Roger Sayle  <roger@eyesopen.com>
16599
16600         PR java/13824
16601         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
16602         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
16603         recursion.
16604
16605 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
16606
16607         * config/frv/frv.c: Don't mention deprecated macros in
16608         comments.  Remove some target-independent comments about
16609         target macros.
16610         * config/frv/frv.h: Likewise.
16611
16612 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16613
16614         * cfghooks.c (split_block): Set probability and count of the
16615         new edge.
16616
16617 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
16618
16619         * dwarf2out.c (struct die_struct): Added field decl_id.
16620         (decl_die_table): Changed to hash table.
16621         (decl_die_table_allocated): Deleted.
16622         (decl_die_table_in_use): Deleted.
16623         (DECL_DIE_TABLE_INCREMENT): Deleted.
16624         (decl_die_table_hash): New function.
16625         (decl_die_table_eq): New function.
16626         (lookup_decl_die): Lookup in a hash table.
16627         (equate_decl_number_to_die): Insert into a hash table.
16628         (dwarf2out_init): Init hash table decl_die_table.
16629
16630 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
16631
16632         PR optimization/13424
16633         * expr.c (store_constructor): Revert 2003-12-03 change.
16634
16635         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
16636         expected before returning early.  Avoid sharing RTL if they
16637         need to be changed.
16638
16639         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
16640         handling so that memory attributes are preserved.  Don't call
16641         ix86_set_move_mem_attrs.
16642         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
16643         (ix86_expand_clrstr): Rename src argument to
16644         dst.  Rework rep_stos and strset handling so that memory attributes
16645         are preserved.
16646         (ix86_expand_strlen): Pass src argument to
16647         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
16648         memory attributes are preserved.
16649         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
16650         change_address instead of gen_rtx_MEM.
16651         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
16652         expanders.
16653         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
16654         strmovqi, strmovqi_rex64): Remove.
16655         (rep_mov*, strmov*): Prefix insn names with *.
16656         (strset, strset_singleop, rep_stos): New expanders.
16657         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
16658         strsetqi, strsetqi_rex64): Remove.
16659         (rep_stos*, strset*): Prefix insn names with *.
16660         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
16661         to SImode.
16662         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
16663         are preserved.
16664         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
16665         Prefix insn names with *.
16666         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
16667         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
16668         (strlenqi_1): New expander.
16669         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
16670
16671 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16672
16673         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
16674         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
16675         verify_flow_info): Declaration removed.
16676         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
16677         (debug_bb, debug_bb_n): Add argument to dump_bb call.
16678         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
16679         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
16680         instead of delete_block.
16681         * cfghooks.c: Include timevar.h and toplev.h.
16682         (cfg_hooks): Define here.
16683         (verify_flow_info, dump_bb): Moved from cfg.c.
16684         (redirect_edge_and_branch, redirect_edge_and_branch_force,
16685         split_block, split_block_after_labels, move_block_after,
16686         delete_basic_block, split_edge, create_basic_block,
16687         create_empty_bb, can_merge_blocks_p, merge_blocks,
16688         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
16689         New functions.
16690         * cfghooks.h (struct cfg_hooks): Added fields name,
16691         make_forwarder_block, tidy_fallthru_edge and
16692         move_block_after. Changed type of verify_flow_info, dump_bb,
16693         split_block fields. Renamed cfgh_split_edge and delete_block
16694         fields.
16695         (redirect_edge_and_branch, redirect_edge_and_branch_force,
16696         split_block, delete_block, split_edge, create_basic_block,
16697         can_merge_blocks_p, merge_blocks): Macros removed.
16698         (cfg_hooks): Do not export.
16699         (verify_flow_info, dump_bb, redirect_edge_and_branch,
16700         redirect_edge_and_branch_force, split_block, split_block_after_labels,
16701         move_block_after, delete_basic_block, split_edge, create_basic_block,
16702         create_empty_bb, can_merge_blocks_p, merge_blocks,
16703         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
16704         Declare.
16705         (cfg_layout_rtl_cfg_hooks): Declare.
16706         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
16707         New functions.
16708         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
16709         (redirect_edge_with_latch_update): Removed.
16710         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
16711         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
16712         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
16713         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
16714         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
16715         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
16716         cfghooks.c.
16717         (rtl_create_basic_block): Coding style fix.
16718         (rtl_tidy_fallthru_edge, rtl_move_block_after,
16719         rtl_make_forwarder_block): New functions.
16720         (update_cfg_after_block_merging): Removed.
16721         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
16722         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
16723         to dump_bb.
16724         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
16725         find_if_case_2): Don't update dominators.
16726         * timevar.def (TV_CFG_VERIFY): New.
16727         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
16728         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
16729         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
16730         (remove_bbs): Don't call remove_bbs.
16731         (create_preheader): Use make_forwarder_block.
16732         (mfb_keep_just, mfb_update_loops): New static functions.
16733
16734 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
16735
16736         * config/avr/avr.h: Remove target-independent comments about
16737         target macros.
16738
16739 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
16740
16741         * timevar.c (timevar_print): Mention when checking is enabled.
16742
16743 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
16744
16745         * c-lex.c (c_lex): Rename to...
16746         (c_lex_with_flags): Add new parameter to get CPP flags.
16747         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
16748         * c-pragma.h (c_lex_with_flags): Declare.
16749
16750 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16751
16752         * config/mcore/mcore.c (mcore_external_libcall): Add a
16753         comment.
16754         (mcore_return_in_memory): Likewise.
16755
16756 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16757
16758         * config/mcore/mcore-protos.h: Remove the prototype for
16759         mcore_setup_incoming_varargs.
16760         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
16761         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16762         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16763         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16764         (TARGET_STRUCT_VALUE_RTX): Likewise.
16765         (TARGET_RETURN_IN_MEMORY): Likewise.
16766         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16767         (mcore_setup_incoming_varargs): Make it static.  Receive the
16768         first argument by reference.  Add argument second_time.
16769         (mcore_external_libcall): New.
16770         (mcore_return_in_memory): Likewise.
16771         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
16772         (PROMOTE_FUNCTION_RETURN): Likewise.
16773         (STRUCT_VALUE): Likewise.
16774         (RETURN_IN_MEMORY): Likewise.
16775         (SETUP_INCOMING_VARARGS): Likewise.
16776         (PROMOTE_PROTOTYPES): Likewise.
16777         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
16778
16779 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16780
16781         * config/m32r/m32r-protos.h: Remove the prototype for
16782         m32r_setup_incoming_varargs.
16783         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
16784         (TARGET_STRUCT_VALUE_RTX): Likewise.
16785         (TARGET_RETURN_IN_MEMORY): Likewise.
16786         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16787         (m32r_return_in_memory): New.
16788         (m32r_setup_incoming_varargs): Make it static.
16789         * config/m32r/m32r.h: Remove #undef of
16790         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
16791         definitions of PROMOTE_FUNCTION_ARGS and
16792         PROMOTE_FUNCTION_RETURN.
16793         (PROMOTE_PROTOTYPES): Remove.
16794         (RETURN_IN_MEMORY): Likewise.
16795         (STRUCT_VALUE): Likewise.
16796
16797 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16798
16799         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
16800         (TARGET_STRUCT_VALUE_RTX): Likewise.
16801         (m68k_struct_value_rtx): Likewise.
16802         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
16803         STRUCT_VALUE_REGNUM.
16804         (PROMOTE_PROTOTYPES): Remove.
16805         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
16806         STRUCT_VALUE_REGNUM.
16807         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
16808         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
16809
16810 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16811
16812         * config/stormy16/stormy16.c
16813         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
16814         TARGET_BUILD_BUILTIN_VA_LIST.
16815
16816 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16817
16818         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
16819         (TARGET_STRUCT_VALUE_RTX): Likewise.
16820         (TARGET_RETURN_IN_MEMORY): Likewise.
16821         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16822         (v850_return_in_memory): Likewise.
16823         (v850_setup_incoming_varargs): Likewise.
16824         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
16825         (SETUP_INCOMING_VARARGS): Likewise.
16826         (RETURN_IN_MEMORY): Likewise.
16827         (STRUCT_VALUE): Likewise.
16828
16829 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16830
16831         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
16832         (fr30_setup_incoming_varargs): Don't use
16833         STRICT_ARGUMENT_NAMING.
16834         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
16835         (STRICT_ARGUMENT_NAMING): Likewise.
16836
16837 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16838
16839         * config/frv/frv-protos.h: Remove the prototype for
16840         frv_expand_builtin_saveregs.
16841         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
16842         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16843         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
16844         STRUCT_VALUE_REGNUM.
16845         (frv_expand_builtin_saveregs): Make it static.
16846         (frv_struct_value_rtx): New.
16847         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
16848
16849 2004-01-29  Jan Hubicka  <jh@suse.cz>
16850
16851         PR c++/12850
16852         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
16853         initial pointers.
16854         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
16855         for functions that will be only inlined.
16856         (cgraph_mark_function_to_output): Likewise.
16857         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
16858         do not clear function body.
16859         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
16860         (tree_rest_of_compilation): Reorganize the logic releasing function
16861         body to use callgraph datastructure.
16862
16863 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16864
16865         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
16866         to register_operand.
16867
16868 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
16869
16870         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
16871         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
16872         match_operand expressions so that all match_dups appear
16873         lexically after their corresponding match_operands.
16874
16875 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16876
16877         * config/h8300/h8300.c (WORD_REG_USED): Use
16878         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
16879         (compute_saved_regs): Likewise.
16880         (h8300_expand_prologue): Likewise.  Allocate locals after
16881         saving registers.
16882         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
16883         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
16884         registers.
16885         (h8300_initial_elimination_offset): Adjust for the new frame
16886         layout, which swaps flips the order of locals and saved
16887         registers.
16888         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
16889         (HARD_FRAME_POINTER_REGNUM): New.
16890         (ELIMINABLE_REGS): Add an elimination rule from
16891         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
16892         (REGISTER_NAMES): Add fp.
16893         * config/h8300/h8300.md (FP_REG): Change to 11.
16894         (HFP_REG): New.
16895
16896 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16897
16898         * genrecog.c (write_node): Remove a useless local variable.
16899
16900 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
16901
16902         * Makefile.in (options.c options.h): Use stamp file s-options to
16903         avoid unnecessary rebuilds.
16904         (options.o): New target listing dependencies.
16905         (gtyp-gen.h): Use stamp file s-gtyp-gen.
16906         (STAGESTUFF): Add s-gtyp-gen.
16907
16908 2004-01-28  Richard Henderson  <rth@redhat.com>
16909
16910         * ggc.h (ggc_free): Declare.
16911         * ggc-common.c (ggc_realloc): Use it.
16912         * ggc-page.c: Remove lots of inline markers.
16913         (globals): Add free_object_list.
16914         (ggc_alloc): Tidy.
16915         (ggc_free, validate_free_objects): New.
16916         (poison_pages): Provide default.
16917         (ggc_collect): Call validate_free_objects; emit markers to
16918         the debug file.
16919
16920 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
16921             Jim Wilson  <wilson@specifixinc.com>
16922
16923         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
16924         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
16925         scratch pointer.
16926         (ia64_secondary_reload_class): Delete case GR_REGS.
16927         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
16928         Do not allocate a scratch register.
16929         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
16930
16931 2004-01-28  Jan Hubicka  <jh@suse.cz>
16932
16933         * gcse.c (bypass_block): Prevent edges to be unified when we are
16934         about to emit compenstation code.
16935
16936 2004-01-28  Nick Clifton  <nickc@redhat.com>
16937
16938         * config/arm/arm.c (arm_expand_builtin): Force second argument of
16939         the setcwx insn into a register.
16940
16941 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
16942
16943         * config/fp-bit.c (pack_d): When using paired doubles to implement
16944         a long double, round the high part separately.
16945         (unpack_d): Fix the case in which the high part is a power of two
16946         and the low part is a nonzero value of the opposite sign.
16947
16948 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16949
16950         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
16951         (TARGET_STRUCT_VALUE_RTX): Likewise.
16952         (c4x_external_libcall): Likewise.
16953         (c4x_struct_value_rtx): Likewise.
16954         * config/c4x/c4x.h: Remove.
16955         (STRUCT_VALUE_REGNUM): Likewise.
16956         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
16957
16958 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16959
16960         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
16961         (TARGET_STRUCT_VALUE_RTX): Likewise.
16962         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
16963         (STRUCT_VALUE): Likewise.
16964         (PROMOTE_PROTOTYPES): Likewise.
16965
16966 2004-01-27  Roger Sayle  <roger@eyesopen.com>
16967
16968         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
16969         CONST_INT before using INTVAL.
16970
16971 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
16972
16973         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
16974         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
16975         frame if !TARGET_BACKCHAIN.
16976         * config/s390/s390.md ("allocate_stack"): Use pattern only if
16977         TARGET_BACKCHAIN.
16978         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
16979
16980 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
16981
16982         * ia64.c (ia64_function_arg): When placing HFAs in integer
16983         registers, do not special case the mode used for complex
16984         types.  Do not advance int_regs until the current register
16985         is full.
16986
16987 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
16988
16989         PR target/7297
16990         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
16991
16992 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
16993
16994         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
16995         slow, unaligned loads and stores while debugging.  Fix formatting.
16996
16997 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
16998
16999         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
17000         of computing wmode.
17001         (restore_stack_nonlocal): Same.
17002
17003 2004-01-27  Devang Patel <dpatel@apple.com>
17004
17005         * Makefile.in (dwarf2out.o): Depend on input.h
17006         * dbxout.c (dbx_debug_hooks): Add new empty hook for
17007         imported_module_or_decl.
17008         (xcoff_debug_hooks): Same.
17009         * sdbout.c (sdb_debug_hooks): Same.
17010         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
17011         * debug.c (do_nothing_debug_hooks): Same.
17012         (debug_nothing_tree_tree): New function.
17013         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
17014         * dwarf2out.c: Include input.h.
17015         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
17016         (remove_child_TAG): New function.
17017         (dwarf_tag_name): Handle DW_TAG_imported_module.
17018         (gen_subprogram_die): Equate decl number to declaration die. Do not
17019         remove all children dies while reusing declaration die for definition.
17020         Instead, selectively remove only formal parameters.
17021         (gen_variable_die): Equate variable decl to declaration die.
17022         (gen_field_die): Equate field decl to line number.
17023         (force_namespace_die): Replace it with ...
17024         (force_decl_die): ... this.
17025         (force_type_die): New function.
17026         (setup_namespace_context): Replace use of force_namespace_die() with
17027         force_decl_die().
17028         (gen_namespace_die): Same.
17029         (dwarf2out_imported_module_or_decl): New function.
17030
17031 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
17032
17033         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
17034         on CQImode and CHImode incoming arguments in register a7.
17035         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
17036         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
17037         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
17038         xtensa_copy_incoming_a7 before reload.
17039
17040 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17041
17042         * coverage.c (get_coverage_counts): Give a different message
17043         if flag_guess_branch_prob is set.
17044         * predict.c (counts_to_freqs): Return an int.
17045         (estimate_bb_frequencies): If counts_to_freqs returns zero,
17046         calculate estimates.
17047
17048 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
17049
17050         * config/iq2000/iq2000-protos.h: Remove the prototype for
17051         iq2000_setup_incoming_varargs.
17052         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17053         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17054         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17055         (TARGET_STRUCT_VALUE_RTX): Likewise.
17056         (TARGET_RETURN_IN_MEMORY): Likewise.
17057         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17058         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17059         (iq2000_return_in_memory): Likewise.
17060         (iq2000_setup_incoming_varargs): Make it static.  Receive the
17061         first argument by reference.
17062         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
17063         (PROMOTE_FUNCTION_RETURN): Likewise.
17064         (PROMOTE_PROTOTYPES): Likewise.
17065         (RETURN_IN_MEMORY): Likewise.
17066         (STRUCT_VALUE): Likewise.
17067         (SETUP_INCOMING_VARARGS): Likewise.
17068         (STRICT_ARGUMENT_NAMING): Likewise.
17069
17070 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
17071
17072         * fixinc/fixinc.c (test_test): Initialize res.
17073         (start_flexer): Initialize pz_cmd_save.
17074
17075 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17076
17077         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
17078         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
17079
17080 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17081
17082         PR 7198
17083         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
17084         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
17085         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
17086         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
17087         Possibly rename pattern for consistency.
17088         Remove ??? comments suggesting that this be done.
17089         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
17090         New patterns.
17091         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
17092         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
17093         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
17094         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
17095         Update to match.
17096
17097 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
17098
17099         * config/arm/arm.c (output_return_instruction): Only restore IP
17100         into SP if frame_pointer_needed.
17101
17102 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17103
17104         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
17105         for SCmode and DCmode if ARCH32.
17106         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
17107         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
17108         if ARCH32.
17109         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
17110         if ARCH32.
17111         (BASE_OUTGOING_VALUE_REG): Likewise.
17112
17113 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17114
17115         PR target/10904
17116         PR target/13058
17117         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
17118         Forbid mode changes from SImode for lower FP regs if ARCH64.
17119
17120 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17121
17122         * Makefile.in (bt-load.o): Depend on except.h.
17123         * bt-load.c (except.h): #include.
17124         (compute_defs_uses_and_gen): If insn at end of BB can throw
17125         within this function, consider registers used by it unavailable for
17126         btr migration.
17127         (move_btr_def): If insn at end of BB can throw, insert before rather
17128         than after.
17129
17130         * flags.h (flag_btr_bb_exclusive): Declare.
17131         * toplev.c (flag_btr_bb_exclusive): New variable.
17132         (f_options): Add btr-bb-exclusive.
17133         * bt-load.c (augment_live_range): Restore old behaviour if
17134         flag_btr_bb_exclusive is set.
17135         * common.opt: Add entry for -fbtr-bb-exclusive.
17136         * opts.c (common_handle_options): Same.
17137         * doc/invoke.texi: Document -fbtr-bb-exclusive.
17138
17139         * bt-load.c (btrs_live_at_end): New variable.
17140         (compute_defs_uses_and_gen): Compute its pointed-to array.
17141         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
17142         (augment_live_range): When augmenting with a new dominator,
17143         use only its btrs_live_at_end set, but also add in the full set
17144         of the old dominator.
17145         (btr_def_live_range): Use btrs_live_at_end.
17146         (move_btr_def): Set other_btr_uses_before_def, and move new set
17147         to the end of the basic block, if appropriate.
17148         (migrate_btr_defs): Allocate and free btrs_live_at_end.
17149
17150         * bt-load.c (basic_block_freq): Remove outdated comment.
17151
17152 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
17153
17154         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
17155         (PREDICATE_CODES): Remove duplicate.
17156         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
17157         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
17158         (MASK_PROFILE_KERNEL): Adjust define.
17159
17160 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
17161
17162         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
17163         of long string literals from 32 bytes to sizeof (void *) when !-Os
17164         and to 1 with -Os.
17165
17166 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17167
17168         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
17169         constant addresses in the normal mode.
17170
17171 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17172
17173         * system.h (CHAR_BITFIELD): Delete.
17174         (BOOL_BITFIELD): New.
17175         * c-decl.c (c_scope): Use BOOL_BITFIELD.
17176         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
17177
17178 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17179
17180         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17181         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17182         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17183         (TARGET_STRUCT_VALUE_RTX): Likewise.
17184         (TARGET_RETURN_IN_MEMORY): Likewise.
17185         (arc_return_in_memory): Likewise.
17186         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
17187         (PROMOTE_FUNCTION_RETURN): Likewise.
17188         (RETURN_IN_MEMORY): Likewise.
17189         (STRUCT_VALUE): Likewise.
17190
17191 2004-01-26  Richard Henderson  <rth@redhat.com>
17192
17193         * c-parse.in (extension): Use itype.
17194         (SAVE_EXT_FLAGS): Don't allocate a tree.
17195         (RESTORE_EXT_FLAGS): Don't read a tree.
17196
17197 2004-01-26  Jan Hubicka  <jh@suse.cz>
17198
17199         * cselib.c (discard_useless_values):  Clear out value pointer pointing
17200         to datastructure to be recycled.
17201
17202 2004-01-25  Jan Hubicka  <jh@suse.cz>
17203
17204         * genextract.c (main): Do not output the memset when not checking.
17205
17206 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17207
17208         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
17209         switch statement instead of a chain of if statements.
17210
17211 2004-01-26  Jeff Law  <law@redhat.com>
17212
17213         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
17214         acute accents for Petur Runolfsson's entry.
17215
17216 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17217
17218         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
17219         (TARGET_RETURN_IN_MEMORY): Likewise.
17220         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
17221         (RETURN_IN_MEMORY): Likewise.
17222
17223 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17224
17225          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
17226          unaligned load/store into smaller loads and stores.
17227
17228 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17229
17230         * function.c (assign_parms): Do not assign
17231         long long argument to memory in prologue if
17232         is it loaded into register.
17233
17234 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17235
17236          PR middle-end/13779
17237          * expr.c (emit_group_load): split constant
17238          correctly into register components of PARALLEL insn.
17239
17240 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17241
17242         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
17243         Use adjust_address_nv directly with appropriate mode.
17244         (restore_stack_nonlocal): Ditto.
17245
17246 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17247
17248         * config/xtensa/xtensa-protos.h: Remove the prototype for
17249         xtensa_builtin_saveregs.
17250         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17251         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17252         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17253         (TARGET_STRUCT_VALUE_RTX): Likewise.
17254         (TARGET_RETURN_IN_MEMORY): Likewise.
17255         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17256         (xtensa_builtin_saveregs): Make it static.
17257         (xtensa_return_in_memory): New.
17258         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
17259         (PROMOTE_FUNCTION_RETURN): Likewise.
17260         (PROMOTE_PROTOTYPES): Likewise.
17261         (STRUCT_VALUE): Likewise.
17262         (RETURN_IN_MEMORY): Likewise.
17263         (EXPAND_BUILTIN_SAVEREGS): Likewise.
17264
17265 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17266
17267         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
17268         (arm_setup_incoming_varargs): Likewise.
17269         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
17270
17271 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17272
17273         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
17274         (cris_setup_incoming_varargs): Likewise.
17275         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
17276
17277 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17278
17279         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
17280         (ns32k_struct_value_rtx): Likewise.
17281         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
17282         NS32K_STRUCT_VALUE_REGNUM.
17283
17284 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17285
17286         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17287         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17288         (TARGET_STRUCT_VALUE_RTX): Likewise.
17289         (arm_struct_value_rtx): Likewise.
17290         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
17291         (STRUCT_VALUE): Likewise.
17292         (STRUCT_VALUE_REGNUM): Likewise.
17293         (PROMOTE_PROTOTYPES): Likewise.
17294
17295 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17296
17297         * config/ia64/ia64-protos.h: Remove the prototype for
17298         ia64_setup_incoming_varargs and ia64_return_in_memory.
17299         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
17300         (TARGET_RETURN_IN_MEMORY): Likewise.
17301         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17302         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17303         (ia64_setup_incoming_varargs): Adjust the arguments to meet
17304         the requirement of TARGET_SETUP_INCOMING_VARARGS.
17305         (ia64_return_in_memory): Make it static.  Change the return
17306         type to bool from int.  Add an argument.
17307         (ia64_struct_value_rtx): New.
17308         * config/ia64/ia64.h: Remove commented-out definitions of
17309         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
17310         PROMOTE_PROTOTYPES.
17311         (RETURN_IN_MEMORY): Remove.
17312         (STRUCT_VALUE_REGNUM): Likewise.
17313         (STRICT_ARGUMENT_NAMING): Likewise.
17314
17315 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
17316
17317         PR target/13666
17318         * config/sparc/sparc.c (function_arg_union_value): New function.
17319         (function_arg): Use it to deal with unions.
17320         (function_value): Likewise.  Define 'regbase' only for ARCH64.
17321         Replace a conditional statement by a simpler one.
17322
17323 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
17324
17325         * config/mips/mips.c (mips16_optimize_gp): Delete.
17326         (mips_reorg): Don't call it.
17327
17328 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17329
17330         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
17331         (floatunsqihf2): Remove operand 6.
17332         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
17333         fix patterns.
17334         (ldi_conditional, ldf_conditional): Validate operands.
17335
17336 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17337
17338         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
17339         (HAVE_GAS_HIDDEN): Undefine as interim measure.
17340
17341 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17342
17343         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
17344         memory references if TARGET_EXPOSE_LDP nonzero.
17345
17346 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17347
17348         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
17349
17350 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17351
17352         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
17353         invalid operand combinations.
17354
17355 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17356
17357         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
17358         c4x_legitimate_address_p.  Fix post_modify check.
17359
17360         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
17361         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
17362
17363 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17364
17365         * config/pa/pa-protos.h: Remove the prototype for
17366         hppa_builtin_saveregs.  Add a prototype for
17367         pa_return_in_memory.
17368         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
17369         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17370         (TARGET_STRUCT_VALUE_RTX): Likewise.
17371         (TARGET_RETURN_IN_MEMORY): Likewise.
17372         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17373         (pa_struct_value_rtx): Likewise.
17374         (pa_return_in_memory): Likewise.
17375         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
17376         PA_STRUCT_VALUE_REGNUM.
17377         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
17378         (EXPAND_BUILTIN_SAVEREGS): Remove.
17379         (PROMOTE_PROTOTYPES): Likewise.
17380         (PROMOTE_FUNCTION_RETURN): Likewise.
17381
17382 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17383
17384         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
17385         (TARGET_STRUCT_VALUE_RTX): Likewise.
17386         (vax_struct_value_rtx): Likewise.
17387         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
17388         VAX_STRUCT_VALUE_REGNUM.
17389         (PROMOTE_PROTOTYPES): Remove.
17390
17391 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17392
17393         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
17394
17395 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
17396
17397         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
17398         and MIPS64 have HI/LO interlocks.  Update comment.
17399
17400 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17401
17402         * config/stormy16/stormy16-protos.h: Remove the prototype for
17403         xstormy16_setup_incoming_varargs.
17404         * config/stormy16/stormy16.c
17405         (xstormy16_setup_incoming_varargs): Remove.
17406         (xstormy16_return_in_memory): New.
17407         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
17408         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17409         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17410         (TARGET_STRUCT_VALUE_RTX): Likewise.
17411         (TARGET_RETURN_IN_MEMORY): Likewise.
17412         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
17413         (PROMOTE_FUNCTION_RETURN): Likewise
17414         (PROMOTE_PROTOTYPES): Likewise
17415         (RETURN_IN_MEMORY): Likewise
17416         (STRUCT_VALUE): Likewise
17417         (SETUP_INCOMING_VARARGS): Likewise
17418
17419 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
17420
17421         * config/mips/mips.c (mips_offset_within_object_p): New function.
17422         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
17423         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
17424         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
17425
17426 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17427
17428         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
17429         (PROMOTE_FUNCTION_RETURN): Likewise.
17430
17431 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17432
17433         * config/mn10300/mn10300-protos.h: Remove the prototype for
17434         mn10300_builtin_saveregs.
17435         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
17436         (TARGET_STRUCT_VALUE_RTX): Likewise.
17437         (TARGET_RETURN_IN_MEMORY): Likewise.
17438         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17439         (mn10300_return_in_memory): Likewise.
17440         (mn10300_builtin_saveregs): Make it static.
17441         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
17442         (RETURN_IN_MEMORY): Likewise.
17443         (STRUCT_VALUE): Likewise.
17444         (EXPAND_BUILTIN_SAVEREGS): Likewise.
17445
17446 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
17447
17448         PR bootstrap/13853
17449         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
17450
17451 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17452
17453         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
17454         using ccr.
17455
17456 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17457
17458         * config/i860/i860-protos.h: Remove the prototype for
17459         i860_saveregs.
17460         * config/i860/i860.c (i860_saveregs): Make it static.
17461         (i860_struct_value_rtx): New.
17462         (TARGET_STRUCT_VALUE_RTX): Likewise.
17463         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17464         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
17465         I860_STRUCT_VALUE_REGNUM.
17466         (EXPAND_BUILTIN_SAVEREGS): Remove.
17467
17468 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17469
17470         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
17471         (TARGET_RETURN_IN_MEMORY): Likewise.
17472         (m68hc11_struct_value_rtx): Likewise.
17473         (m68hc11_return_in_memory): Likewise.
17474         * config/m68hc11/m68hc11.h: Remove a commented-out definition
17475         of PROMOTE_PROTOTYPES.
17476         (RETURN_IN_MEMORY): Remove.
17477         (STRUCT_VALUE_REGNUM): Likewise.
17478
17479 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17480
17481         * config/mmix/mmix-protos.h: Remove the prototype for
17482         mmix_setup_incoming_varargs.
17483         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17484         (TARGET_STRUCT_VALUE_RTX): Likewise.
17485         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17486         (mmix_setup_incoming_varargs): Make it static.
17487         (mmix_struct_value_rtx): New.
17488         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
17489         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
17490         (STRUCT_VALUE_REGNUM): Remove.
17491         (SETUP_INCOMING_VARARGS): Likewise.
17492
17493 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17494
17495         * config/mips/mips-protos.h: Remove the prototypes for
17496         mips_setup_incoming_varargs and mips_return_in_memory.
17497         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17498         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17499         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17500         (TARGET_STRUCT_VALUE_RTX): Likewise.
17501         (TARGET_RETURN_IN_MEMORY): Likewise.
17502         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17503         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17504         (mips_setup_incoming_varargs): Match the prototype for
17505         TARGET_SETUP_INCOMING_VARARGS.
17506         (mips_return_in_memory): Make it static.  Add argument fntype.
17507         (mips_strict_argument_naming): New.
17508         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
17509         (PROMOTE_FUNCTION_ARGS): Likewise.
17510         (PROMOTE_FUNCTION_RETURN): Likewise.
17511         (STRUCT_VALUE): Likewise.
17512         (RETURN_IN_MEMORY): Likewise.
17513         (SETUP_INCOMING_VARARGS): Likewise.
17514         (STRICT_ARGUMENT_NAMING): Likewise.
17515
17516 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17517
17518         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
17519         (TARGET_RETURN_IN_MEMORY): Likewise.
17520         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17521         (ip2k_return_in_memory): Likewise.
17522         (ip2k_setup_incoming_varargs): Likewise.
17523         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
17524         (STRUCT_VALUE): Likewise.
17525         (STRUCT_VALUE_INCOMING): Likewise.
17526         (SETUP_INCOMING_VARARGS): Likewise.
17527
17528 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17529
17530         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
17531         (TARGET_RETURN_IN_MEMORY): Likewise.
17532         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17533         (avr_return_in_memory): Remove.
17534         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
17535         (STRUCT_VALUE): Likewise.
17536         (STRUCT_VALUE_INCOMING): Likewise.
17537         (STRICT_ARGUMENT_NAMING): Likewise.
17538
17539 2004-01-25  Jan Hubicka  <jh@suse.cz>
17540
17541         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
17542
17543 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
17544
17545         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
17546         (mips_regno_mode_ok_for_base_p): Declare.
17547         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
17548         (FRAME_POINTER_REGNUM): Renumber to 78.
17549         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
17550         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
17551         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
17552         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
17553         (REG_MODE_OK_FOR_BASE_P): Likewise.
17554         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
17555         entry for 77 to "$arg" and entry for 78 to "$frame".
17556         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
17557         (mips_reg_mode_ok_for_base_p): Remove.
17558         (mips_regno_mode_ok_for_base_p): New function, derived from old
17559         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
17560         restrictions unless we're being strict.
17561         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
17562
17563 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17564
17565         * c-common.h: Fix comment typos.
17566         * c-decl.c: Likewise.
17567         * cgraphunit.c: Likewise.
17568         * combine.c: Likewise.
17569         * et-forest.c: Likewise.
17570         * flow.c: Likewise.
17571         * function.c: Likewise.
17572         * ifcvt.c: Likewise.
17573         * integrate.c: Likewise.
17574         * jump.c: Likewise.
17575         * postreload.c: Likewise.
17576         * varray.c: Likewise.
17577
17578 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17579
17580         * doc/frontends.texi: Update copyright.
17581         * doc/gcov.texi: Likewise.
17582         * doc/gty.texi: Likewise.
17583         * doc/sourcebuild.texi: Likewise.
17584         * doc/standards.texi: Likewise.
17585
17586 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
17587
17588         PR target/12978
17589         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
17590         Remove movstrqi_small because it conflicts with movstrqi_large.
17591
17592 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17593
17594         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17595         (TARGET_STRUCT_VALUE_RTX): Likewise.
17596         (cris_struct_value_rtx): Likewise.
17597         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
17598         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
17599         STRUCT_VALUE_REGNUM.
17600         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
17601
17602 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
17603
17604         PR bootstrap/13848
17605         * cse.c (cse_cc_succs): Change the mode of the source expression
17606         as soon as decide we need a new mode.  Don't permit changing modes
17607         if we found a match in a successor block.
17608         (cse_condition_code_reg): Save original mode of source expression
17609         so that we know whether we have to change the mode in other
17610         insns.
17611
17612 2004-01-24  Jan Hubicka  <jh@suse.cz>
17613
17614         * emit-rtl.c (change_address, adjust_address_1, offset_address,
17615         widen_memory_access):  Return early when there is nothing to change.
17616
17617 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
17618
17619         * simplify-rtx.c (simplify_relational_operation): Don't
17620         simplify address == constant into address + -constant == 0.
17621
17622 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17623
17624         * gcc.c (process_command): Don't internationalize the
17625         Copyright message.
17626         * mips-tfile.c (main): Likewise.
17627
17628 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
17629
17630         * cse.c: (cse_cc_succs) Fix comparison warning.
17631
17632 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17633
17634         * config/h8300/h8300.md: Remove extraneous USE in expanders.
17635
17636 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17637
17638         * config/h8300/h8300-protos.h: Provide prototypes for
17639         h8300_legitimate_constant_p and h8300_legitimate_address_p.
17640         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
17641         (h8300_rtx_ok_for_base_p): Likewise.
17642         (h8300_legitimate_address_p): Likewise.
17643         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
17644         h8300_legitimate_constant_p.
17645         (RTX_OK_FOR_BASE_P): Remove.
17646         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
17647
17648 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17649
17650         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
17651         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
17652         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
17653         (REG_OK_FOR_BASE_STRICT_P): Likewise.
17654         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
17655         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
17656         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
17657         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
17658
17659 2004-01-24  Jan Hubicka  <jh@suse.cz>
17660
17661         * cselib.c (remove_useless_values):  Do not access discarded values.
17662
17663 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
17664
17665         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
17666         arrays.
17667
17668 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
17669
17670         * recog.c: Fix a typo in copyright.
17671
17672 2004-01-23  Andrew Pinski  <apinski@apple.com>
17673
17674         * config/rs6000/rs6000.md (call): Fix misappiled patch.
17675         (call_value): Likewise.
17676
17677 2004-01-23  Richard Henderson  <rth@redhat.com>
17678
17679         PR opt/12941
17680         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
17681         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
17682         if SHIFT_COUNT_TRUNCATED is set.
17683
17684 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
17685
17686         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
17687         separate real and imaginary parts.
17688         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
17689
17690 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
17691
17692         PR target/13674
17693         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
17694         loading into GPR.
17695
17696 2004-01-23  Jan Hubicka  <jh@suse.cz>
17697
17698         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
17699         change.
17700
17701         * alloc-pool.c (align_four): Kill.
17702         (create_alloc_pool): Align size to eight.
17703         (free_alloc_pool, free_pool): Invalidate deallocated data.
17704
17705 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
17706
17707         PR gcc/1532
17708         * cse.c (cse_change_cc_mode): New static function.
17709         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
17710         (cse_condition_code_reg): New function.
17711         * rtl.h (cse_condition_code_reg): Declare.
17712         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
17713         * target.h (struct gcc_target): Add fixed_condition_code_regs and
17714         cc_modes_compatible.
17715         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
17716         (TARGET_CC_MODES_COMPATIBLE): Define.
17717         (TARGET_INITIALIZER): Add new initializers.
17718         * targhooks.c (default_cc_modes_compatible): New function.
17719         * targhooks.c (default_cc_modes_compatible): Declare.
17720         * hooks.c (hook_bool_intp_intp_false): New function.
17721         * hooks.h (hook_bool_intp_intp_false): Declare.
17722         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
17723         (TARGET_CC_MODES_COMPATIBLE): Define.
17724         (ix86_fixed_condition_code_regs): New static function.
17725         (ix86_cc_modes_compatible): Likewise.
17726         * doc/tm.texi (Condition Code): Document new hooks.
17727
17728 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17729
17730         * fixinc/inclhack.def (bad_lval): Renamed to ...
17731         (alpha_bad_lval): ... this.
17732         Removed file list.
17733         Restrict to alpha*-dec-osf*.
17734         * fixinc/fixincl.x: Regenerate.
17735         * fixinc/tests/base/dirent.h: Remove, moving test ...
17736         * fixinc/tests/base/testing.h: ... here, reflecting new name.
17737
17738 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
17739
17740         PR c/13814
17741         * c-decl.c (diagnose_mismatched_decls): Also discard a
17742         built-in if we encounter an old-style definition with the
17743         same name.
17744
17745 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
17746
17747         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
17748         set to default{32,64}.
17749
17750 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
17751
17752         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
17753         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
17754
17755 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
17756             Olivier Hainque  <hainque@act-europe.fr>
17757
17758         * fold-const.c (fold_binary_op_with_conditional_arg): Only
17759         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
17760
17761 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
17762
17763         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
17764         size for minipool references.
17765
17766 2004-01-23  Roger Sayle  <roger@eyesopen.com>
17767
17768         * real.c (real_floor, real_ceil): Tweak to allow input and output
17769         arguments to overlap.
17770         (real_round): New function to implement round(3m) semantics.
17771         * real.h (real_round): Prototype here.
17772         * builtins.c (fold_builtin_round): New function to constant fold
17773         round, roundf and roundl.
17774         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
17775
17776 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
17777
17778         PR optimization/13819
17779         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
17780         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
17781         (sh_handle_sp_switch_attribute): Remove warning.
17782
17783 2004-01-23  Jan Hubicka  <jh@suse.cz>
17784
17785         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
17786
17787 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
17788
17789         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
17790         may or may not return non-NIL.
17791         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
17792         check CANNOT_CHANGE_MODE_CLASS
17793
17794 2004-01-23  Jan Hubicka  <jh@suse.cz>
17795
17796         * basic-block.h (PROP_POSTRELOAD): New macro.
17797         (CLEANUP_LOG_LINKS): New.
17798         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
17799         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
17800
17801         * cselib.c (value_pool): New.
17802         (new_cselib_val): Use pool.
17803         (cselib_init): Initialize value_pool
17804         (cselib_finish): Free pool.
17805
17806 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
17807
17808         * config/sparc/sparc.c (scan_record_type): New function.
17809         (function_arg_slotno): Use it to determine which kinds of
17810         registers the record can be passed in.
17811
17812 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
17813
17814         * config/pa/fptr.c: Fix old-style definition.
17815
17816 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
17817
17818         PR optimization/13724
17819         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
17820         represents the zero bits produced by a ZERO_EXTEND operation.
17821
17822 2004-01-22  Roger Sayle  <roger@eyesopen.com>
17823
17824         PR optimization/13821
17825         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
17826         correctly calculate the lowpart offset of the contracted subreg.
17827
17828 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
17829
17830         * doc/invoke.texi (Optimize Options): Note that --param arguments
17831         are subject to change without notice.
17832
17833 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17834
17835         * config.gcc (mips-sgi-irix6*o32): Removed.
17836         * config/mips/iris6-o32-as.h: Likewise.
17837         * config/mips/iris6-o32-gas.h: Likewise.
17838         * config/mips/iris6-o32.h: Likewise.
17839
17840 2004-01-22  Jan Hubicka  <jh@suse.cz>
17841
17842         * cfgcleanup.c (first_pass): New static variable.
17843         (try_forward_edges):  Add work limiting check for threading.
17844         (try_crossjump_bb):  Add work limiting check for crossjumping.
17845         (try_optimize_cfg):  Maintain first pass variable.
17846
17847 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
17848
17849         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
17850         handles complex and vector modes.
17851
17852 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
17853
17854         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
17855         (REG_OK_FOR_BASE_P_STRICT): Likewise.
17856         (STRICT): Likewise.
17857
17858 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
17859
17860         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
17861         (genrtl_for_stmt): Remove emit_nop calls.
17862
17863 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17864
17865         PR target/13713
17866         PR target/13324
17867         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
17868         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
17869         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
17870
17871 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
17872
17873         * config/arm/arm.c: Include "debug.h".
17874         (thumb_pushpop): Take two new arguments.  Add some commentary.
17875         Output frame information when pushing.
17876         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
17877         thumb_pushpop.
17878         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
17879         offset, and pass it to thumb_pushpop.  Output CFI information.
17880         (thumb_expand_prologue): Add some frame-related markers and notes.
17881
17882 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
17883
17884         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
17885         for TARGET_64BIT.
17886         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
17887         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
17888
17889 2004-01-22  Roger Sayle  <roger@eyesopen.com>
17890             Paolo Bonzini  <bonzini@gnu.org>
17891
17892         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
17893         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
17894         * rtl.h (subreg_lsb_1): Prototype here.
17895         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
17896         sign extensions.
17897
17898 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
17899
17900         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
17901         macro need not be defined if jump-tables should contain
17902         relative addresses only when -fPIC or -fPIC is in effect.
17903
17904 2004-01-22  Jan Hubicka  <jh@suse.cz>
17905
17906         * alias.c (reg_base_value): Turn into varray.
17907         (reg_base_value_size): Kill.
17908         (old_reg_base_value): New deletable varray.
17909         (alias_invariant_size): New variable.
17910         (REG_BASE_VALUE): Update to use varray.
17911         (find_base_value): Likewise.
17912         (record_set): Likewise.
17913         (record_base_value): Likewise.
17914         (memrefs_conflict_p): Likewise.
17915         (record_set): Likewise
17916         (record_base_value): Likewise.
17917         (memrefs_conflict_p): Use alias_invariant_size.
17918         (init_alias_analysis): Use varray; set alias_invariant_size;
17919         rescale other arrays to be sized by maxreg.
17920         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
17921
17922 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
17923
17924         * config/sparc/sparc.c (function_arg_slotno): Use
17925         FLOAT_TYPE_P to detect FP fields in structures.
17926         (function_arg_record_value_1): Likewise.
17927         (function_arg_record_value_2): Likewise.
17928
17929 2004-01-22  Jan Hubicka  <jh@suse.cz>
17930
17931         * function.c (allocate_struct_function): Do not initialize expr, emit
17932         and varasm.
17933         (prepare_function_start): Do it here.
17934         * c-parse.in (maybe_type_qual): Do not produce line number notes.
17935
17936 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
17937
17938         PR target/13559
17939         * config/sparc/sparc.c (function_arg_record_value_3): Revert
17940         to 'word_mode' once the first slot has been filled.
17941
17942 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
17943
17944         * config/sparc/sparc.c (function_arg_record_value_1): Fix
17945         computation of the number of integer registers required.
17946
17947 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17948
17949         * config/i386/i386.md: Simplify certain comparisons of
17950         const_int.
17951
17952 2004-01-21  Andrew Pinski  <apinski@apple.com>
17953
17954         PR target/13785
17955         * config/rs6000/rs6000.md (call_value): Force operand
17956         1 not operand 0 into a register.
17957
17958 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17959
17960         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
17961         unwind-dw2-fde.h: Update copyright.
17962
17963 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17964
17965         * pa-protos.h: Update copyright.
17966         * pa.h: Likewise.
17967         * pa.md: Likewise.
17968
17969 2004-01-21  Caroline Tice  <ctice@apple.com>
17970
17971         PR target/12308
17972         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
17973         flags register.
17974         (fix_truncdfdi2): Likewise.
17975         (fix_truncsfdi2): Likewise.
17976         (*fix_truncdi_1): Likewise.
17977         (fix_truncxfsi2): Likewise.
17978         (fix_truncdfsi2): Likewise.
17979         (fix_truncsfsi2): Likewise.
17980         (*fix_truncsi_1): Likewise.
17981         (fix_truncxfhi2): Likewise.
17982         (fix_truncdfhi2): Likewise.
17983         (fix_truncsfhi2): Likewise.
17984         (*fix_trunchi_1): Likewise.
17985
17986 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17987
17988         * alias.c, basic-block.h, c-common.c, c-common.h,
17989         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
17990         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
17991         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
17992         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
17993         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
17994         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
17995         genautomata.c, genconditions.c, genemit.c, genflags.c,
17996         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
17997         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
17998         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
17999         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
18000         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
18001         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
18002         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
18003         unwind.h, varray.c, varray.h: Update copyright.
18004
18005 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18006
18007         * config/h8300/coff.h: Update copyright.
18008         * config/h8300/elf.h: Likewise.
18009         * config/h8300/h8300-protos.h: Likewise.
18010         * config/h8300/h8300.c: Likewise.
18011         * config/h8300/h8300.h: Likewise.
18012         * config/h8300/h8300.md: Likewise.
18013
18014 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18015
18016         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
18017         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
18018         ultrix_unistd): New hacks.
18019         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
18020         ULTRIX_CONST2_CHECK): Add checks.
18021         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
18022         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
18023         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
18024         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
18025         * fixinc/tests/base/locale.h: New file.
18026         * fixinc/fixincl.x: Rebuilt.
18027
18028 2004-01-21  Andreas Jaeger  <aj@suse.de>
18029             Michael Matz  <matz@suse.de>
18030
18031         * doc/extend.texi (Extended Asm): Clarify memory clobber.
18032
18033 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18034
18035         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
18036         _Jv_RegisterClasses through a function pointer.
18037
18038 2004-01-21  Falk Hueffner  <falk@debian.org>
18039
18040         PR target/12898
18041         * config/alpha/alpha.c (alpha_emit_set_const_1): If
18042         no_new_pseudos, use gen_rtx_SET directly for SImode constants
18043         which need multiple instructions to emit.
18044
18045 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
18046
18047         * config/m32r/m32r.h (CPP_SPEC): Define.
18048
18049 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
18050
18051         * c-decl.c (merge_decls): Kill different_binding_level and
18052         different_tu arguments; simplify throughout.
18053         (duplicate_decls): Likewise.
18054         (pushdecl, merge_translation_unit_decls): Update calls to
18055         duplicate_decls.
18056
18057 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18058
18059         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
18060         $(SYSTEM_H).
18061         (print-rtl1.o): Depend on $(SYSTEM_H).
18062
18063 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
18064
18065         PR bootstrap/12730
18066         * configure.ac: Delete definition and subsitution of docdir.
18067         Add info, man, srcman and srcinfo to target hooks. Create doc/
18068         directory.
18069         * configure: Regenerate.
18070         * Makefile.in: Don't substitute docdir and delete all references
18071         throughout.
18072         (MAKEINFOFLAGS): Define.
18073         (stmp-docobjdir): Delete.
18074         (INFOFILES, MANFILES): Define.
18075         (info): Call lang.info, srcinfo and lang.srcinfo.
18076         (generated-manpages): Call lang.man, srcman and lang.srcman.
18077         (srcinfo, srcman): New rules to copy back files to source directory.
18078         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
18079         (install-man): Revamp rule.
18080         (clean): Update dvi directory.
18081         (distclean): Delete TAGS from front end directorys.
18082         (maintainer-clean): Delete all document files in source directory.
18083
18084         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
18085         (objc.srcman, objc.srcinfo): Likewise.
18086
18087 2004-01-20  Bruce Korb  <bkorb@gnu.org>
18088
18089         * fixinc/inclhack.def(math_exception): bypass only for glibc.
18090         (matherr_decl): rename & relocate as exception_structure.
18091         This fix must precede the math_exception fix.
18092
18093 2004-01-20  Roger Sayle  <roger@eyesopen.com>
18094
18095         * fold-const.c (fold_convert): Rename to fold_convert_const.
18096         (fold_convert_const): Change arguments to take a tree_code,
18097         a type and the operand/expression to be converted.  Return
18098         NULL_TREE if no simplification is possible.  Add support for
18099         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
18100         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
18101         Adjust call to fold_convert to match new fold_convert_const.
18102         Avoid modifying the tree passed to fold in-place.
18103
18104 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
18105
18106         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
18107         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
18108         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
18109
18110 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18111
18112         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
18113         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
18114         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
18115         (emit_move_sequence): Check scratch_reg first in various if statements.
18116         Extend source simplification to handle all 64-bit CONST_INTs.
18117         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
18118         frame size.
18119         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
18120         frame offset calculations.
18121         * pa.h (NEW_HP_ASSEMBLER): Add comment.
18122         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
18123         LEGITIMATE_64BIT_CONST_INT_P): Define.
18124         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
18125         any CONST_INT as legitimate during and after reload.
18126         (VAL_32_BITS_P, INT_32_BITS): Define.
18127         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
18128
18129 2004-01-20  Jan Hubicka  <jh@suse.cz>
18130
18131         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
18132         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
18133         containing hard regs are shared.
18134         (gen_hard_reg_clobber): New function.
18135         (hard_reg_clobbers): New array.
18136         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
18137         (copy_rtx): Do not copy clobbers containing hard regs.
18138         * rtl.h (gen_hard_reg_clobber): Declare.
18139
18140 2004-01-20  Jan Hubicka  <jh@suse.cz>
18141
18142         * varray.c:  Include hashtab.h
18143         (varray_descriptor): New structure.
18144         (hash_descriptor, eq_descriptor, varray_descriptor,
18145         print_statistics): New static functions
18146         (varray_init, varray_grow): Update statistics
18147         (dump_varray_statistics): New function.
18148         * varray.h (dump_varray_statistics): Declare.
18149         * toplev.c (finalize): Call it.
18150         * Makefile.in (varray.o): Add dependency.
18151
18152 2004-01-20  Jan Hubicka  <jh@suse.cz>
18153
18154         * cselib.c: Include alloc-pool.h
18155         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
18156         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
18157         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
18158         unchain_one_elt_loc_list_pool, unchain_one_value,
18159         new_cselib_val): Simplify using allocpool.
18160         (cselib_init): Initialize allocpools.
18161         (cselib_finish): Finish allocpools.
18162         * Makefile.in (cselib.o): Depend on alloc-pool.h
18163
18164 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
18165
18166         * config/mips/mips.c (mips_load_call_address): Make the call insn
18167         use $gp if it could be calling a lazy binding stub.
18168
18169 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
18170
18171         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
18172         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18173         (TARGET_STRUCT_VALUE_RTX): Likewise.
18174         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
18175         (PROMOTE_FUNCTION_RETURN): Remove.
18176         (STRUCT_VALUE): Remove.
18177
18178 2004-01-20  Denis Chertykov  <denisc@overta.ru>
18179
18180         PR bootstrap/13735
18181         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
18182         register as pointer after reload.
18183
18184 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18185
18186         PR optimization/12440
18187         * loop.c: Include ggc.h.
18188         (loop_optimize): Run garbage collector between optimization of loops.
18189         * Makefile.in (loop.o): Add GGC_H dependency.
18190
18191 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
18192
18193         * gcc/config/rs6000/rs6000.c (function_arg) Handle
18194         vector register special in function without prototype.
18195         (function_arg_advance): Vector parameters get always
18196         GPRs allocated for the linux64 target.
18197
18198 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18199
18200         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
18201         not TARGET_M32RX_MASK.
18202
18203 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
18204
18205         PR target/13557
18206         * config/sparc/sparc.c (function_arg): Reorder the cases.
18207
18208 2004-01-19  Per Bothner  <per@bothner.com>
18209
18210         Move cpp_reader's line_maps field to a shared global.
18211         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
18212         and change the type to a pointer rather than a struct.
18213         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
18214         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
18215         Likewise.
18216         * cppfiles.c (validate_pch):  Likewise.
18217         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
18218         Likewise.
18219         * cpperror.c (print_location):  Likewise.
18220         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
18221         * cppinit.c (cpp_create_reader):  Handle new parameter.
18222         (cpp_destroy):  Don't free line_maps - that's no longer our job.
18223         * input.h (line_table):  New variable.
18224         * toplev.c (line_table):  Declare variable.
18225         (general_init):  Initialize line_table.
18226         * c-opts.c (c_common_init_options):  Pass line_table to
18227         cpp_create_reader.
18228         * fix-header.c (read_scan_file):  New local variable line_table.
18229         Initialize, and pass it to cpp_create_reader.
18230         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
18231         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
18232
18233 2004-01-19  Per Bothner  <per@bothner.com>
18234
18235         Implement a cache for linemap_lookup.
18236         * line-map.h (struct_line_maps):  Add cache field.
18237         * line-map.c (linemap_init):  Zero cache field.
18238         (linemap_add):  Set cache field to offset of newly allocated map.
18239         (linemap_lookup):  Use and set cache field.
18240
18241 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18242
18243         PR optimization/13567
18244         * cse.c (cse_basic_block): Call cse_insn with a non-null
18245         libcall_insn for the last SET insn of a no-confilict block.
18246
18247 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
18248
18249         * Makefile.in (target_noncanonical, program_transform_name): Use
18250         immediate define instead of deferred.
18251         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
18252         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
18253         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
18254         deferred backquote.
18255
18256 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
18257
18258         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
18259         true unconditionally.
18260         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
18261         Remove.
18262         (build_unary_op, build_modify_expr): Don't handle extended
18263         lvalues.
18264         (build_component_ref, build_conditional_expr): Call non_lvalue
18265         instead of pedantic_non_lvalue.
18266         (build_c_cast): Don't condition use of non_lvalue on pedantic.
18267         * fold-const.c (fold): Don't check pedantic directly for
18268         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
18269         passed to pedantic_non_lvalue.
18270         * doc/extend.texi: Remove documentation of extended lvalues.
18271
18272 2004-01-19  Roger Sayle  <roger@eyesopen.com>
18273
18274         PR optimization/5263
18275         * simplify-rtx.c (associative_constant_p): Delete.
18276         (simplify_associative_operation): Rewrite to linearize terms, and
18277         attempt to simplify new term against both left and right subterms.
18278         (simplify_binary_operation): Call swap_commutative_operands_p on
18279         op0 and op1, not trueop0 and trueop1.  Move the initialization of
18280         trueop0 and trueop1 down to where first needed.
18281         (simplify_relational_operation): Likewise.
18282         * rtlanal.c (commutative_operand_precedence): Also order constant
18283         operands using avoid_constant_pool_reference.
18284
18285 2004-01-19  Richard Henderson  <rth@redhat.com>
18286
18287         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
18288         don't check memory mode.
18289         (unaligned_memory_operand): Likewise.
18290         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
18291         abort for op0 not MEM.
18292
18293         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
18294         is not a reg, copy to a scratch first.
18295         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
18296         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
18297         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
18298         (reload_inqi, reload_inhi): Fix mode of op0.
18299         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
18300         reload_outhi_help): Likewise.  Use define_insn_and_split.
18301
18302         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
18303         as well as $29 dead.
18304
18305 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
18306
18307         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
18308         "tls_object" for thread-local objects.
18309         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
18310         "#tls" for thread-local sections.
18311         * configure.ac (thread-local checks): Specify --fatal-warnings in
18312         every binutils-specific checks.  For sparc*-*-*, test whether the
18313         OS is Solaris and the tools are native and act accordingly.
18314         * configure: Rebuild.
18315
18316 2004-01-19  Jeff Law  <law@redhat.com>
18317
18318         * contrib.texi: Update Paolo Carlini's entry.  New entries for
18319         Jerry Quinn and Petur Runolfsson.
18320
18321 2004-01-19  Roger Sayle  <roger@eyesopen.com>
18322
18323         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
18324         size, don't use the larger zero-extending loads.
18325
18326 2004-01-19  Richard Henderson  <rth@redhat.com>
18327
18328         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
18329         * alpha.md (UNSPEC_NT_LDA): Remove.
18330         (UNSPEC_CVTLQ, cvtlq): New.
18331         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
18332         (extendsidi2_fix): Remove.
18333         (extendsidi2 splitter): Use cvtlq.
18334         (extendsidi2 fp peepholes): Remove.
18335         (cvtql): Use SFmode instead of SImode.
18336         (fix_trunc?fsi): Update to match.
18337         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
18338         (movsi): Rename from movsi_nofix, remove f alternatives.
18339         (movsi_nt_vms): Similarly.
18340         (movsi_fix, movsi_nt_vms_fix): Remove.
18341         (nt_lda): Remove.
18342         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
18343
18344 2004-01-19  Jan Hubicka  <jh@suse.cz>
18345
18346         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
18347         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
18348         list.
18349         (cgraph_remove_unreachable_nodes): New function
18350         (cgraph_decide_inlining_of_small_function): Fix pasto.
18351         (cgraph_decide_inlining_incrementally): Fix pasto.
18352         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
18353
18354 2004-01-19  Steven Bosscher  <stevenb@suse.de>
18355
18356         * gengtype.c (header_file): Make it static.
18357         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
18358         * gengtype.h (header_file): No longer extern.
18359
18360 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
18361
18362         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
18363         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
18364         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
18365
18366 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
18367
18368         * stmt.c (HAVE_casesi): Define it not already defined.
18369         (HAVE_tablejump): Likewise.
18370         (expand_end_case_type): Resort to the binary tree method if
18371         neither casesi or tablejump is available.
18372
18373 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
18374
18375         * final.c (final_scan_insn): Make non-static again.
18376         * output.h (final_scan_insn): Re-add prototype.
18377         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
18378         to final_scan_insn call.
18379         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
18380         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
18381         * config/pa/pa.c (output_lbranch, output_call): Likewise.
18382         * config/sh/sh.c (print_slot): Likewise.
18383         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
18384         (output_sibcall, sparc_flat_function_epilogue): Likewise.
18385
18386 2004-01-18  Jan Hubicka  <jh@suse.cz>
18387
18388         * basic-block.h (try_redirect_by_replacing_jump): Declare.
18389         * cfgcleanup.c (try_optimize_cfg): Use it.
18390         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
18391         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
18392         Kill hack.
18393         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
18394
18395         Revert:
18396         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
18397
18398                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
18399                 even after reload, just don't remove the actual jump tables.
18400
18401 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
18402
18403         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
18404
18405 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
18406
18407         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
18408         the size of a pointer in bytes.
18409
18410 2004-01-18  Roger Sayle  <roger@eyesopen.com>
18411
18412         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
18413         live "next" variable, which could lead to an infinite loop.
18414
18415 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
18416
18417         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
18418         block.
18419
18420         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
18421         Check for NULL in the chain and remove repeated code.
18422
18423 2004-01-18  Jan Hubicka  <jh@suse.cz>
18424
18425         * coverage.c (checksum_string): Rename to ...
18426         (coverage_checksum_string): ... this one, Use crc32_string; recognize
18427         names containing random number and zero the number out in order to get
18428         match.
18429
18430 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
18431
18432         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
18433
18434 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
18435
18436         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
18437         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
18438         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
18439         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
18440         doc/trouble.texi: Remove trailing whitespace.
18441
18442 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
18443
18444         PR target/7618
18445         * config/mips/mips.c: Include cfglayout.h.
18446         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
18447         (mips_unspec_offset_high): Add temporary register argument.
18448         (mips_load_call_address): New function, split out from...
18449         (mips_expand_call): ...here.
18450         (mips_output_cplocal): New function.
18451         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
18452         (mips_emit_loadgp): New function, split out from...
18453         (mips_expand_prologue): ...here.
18454         (mips_output_mi_thunk): New function.
18455
18456 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
18457
18458         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
18459         mcpu32): Remove redundant checks for implied target predefines.
18460
18461 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
18462
18463         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
18464         Return type is unsigned int not int.
18465         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
18466         Likewise.
18467
18468 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
18469
18470         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
18471         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
18472         "GNU/Linux" and "Microsoft Windows" terminology.
18473
18474 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
18475
18476         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
18477         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
18478         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
18479         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
18480         @smallexample instead of @example.
18481
18482 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
18483
18484         * objc/objc-act.c (build_objc_method_call): Use target
18485         hooks instead of macros to determine if ..._stret
18486         dispatchers should be used (NeXT runtime only).
18487
18488 2004-01-17  Roger Sayle  <roger@eyesopen.com>
18489
18490         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
18491         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
18492
18493 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
18494
18495         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
18496         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
18497         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
18498         macros.
18499         * reload1.c (emit_reload_insns): Use them.
18500         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
18501         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
18502         for NULL PATTERN.
18503
18504 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
18505
18506         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
18507         (final_scan_insn): Update to take an additional SEEN argument.  Emit
18508         a line note after the prologue.  Make static.
18509         (line_note_exists): Remove.
18510         (final): Don't initialize line_note_exists.  Update call to
18511         final_scan_insn.
18512         * output.h (final_scan_insn): Remove prologue.
18513         * function.c (set_insn_locators): Update comment.
18514         (thread_prologue_and_epilogue_insns): Add a comment.
18515
18516 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
18517
18518         PR target/10781
18519         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
18520         Prototype.
18521         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
18522         New function.
18523         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
18524         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
18525         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
18526
18527 2004-01-17  Jan Hubicka  <jh@suse.cz>
18528
18529         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
18530         commit.
18531
18532         * toplev.c (HAVE_conditional_execution): Provide default.
18533         (rest_of_handle_reorder_blocks): For conditional_execution target
18534         update liveness once after all transformations
18535         (rest_of_compilation): Do crossjumping before ce3.
18536
18537 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
18538
18539         * alias.c (new_alias_set): Mark last_alias_set for PCH.
18540         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
18541         for PCH.
18542         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
18543         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
18544         (get_TOC_alias_set): Mark 'set' for PCH.
18545
18546 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
18547
18548         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
18549         even after reload, just don't remove the actual jump tables.
18550
18551 2004-01-17  J. Brobecker  <brobecker@gnat.com>
18552
18553         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
18554         Remove checks for is_ada() and TREE_UNSIGNED.
18555         (subrange_type_die): Emit a byte_size attribute if the subrange
18556         type size is different from the base type size.
18557         (modified_type_die): Replace call to is_ada_subrange_type() by
18558         call to is_subrange_type().
18559
18560 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
18561
18562         * config/sh/sh.c: Include ggc.h.
18563
18564 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
18565
18566         * Makefile.in (MD5_H): New.
18567         (fold-const.o): Depend on md5.h.
18568         (dwarf2out.o): Likewise.
18569         (cppfiles.o): Likewise.
18570         * cppfiles.c: Include md5.h.
18571         (should_stack_file): Check against list read from PCH file.
18572         (struct pchf_data): New.
18573         (pchf): New variable.
18574         (struct pchf_adder_info): New.
18575         (pchf_adder): New.
18576         (pchf_save_compare): New.
18577         (_cpp_save_file_entries): New.
18578         (_cpp_read_file_entries): New.
18579         (struct pchf_compare_data): New.
18580         (pchf_compare): New.
18581         (check_file_against_entries): New.
18582         * cpphash.h (_cpp_save_file_entries): Prototype.
18583         (_cpp_read_file_entries): Prototype.
18584         * cpppch.c (cpp_write_pch_state): Write the list of headers.
18585         (cpp_read_state): Read the list of headers.
18586
18587 2004-01-17  Jan Hubicka  <jh@suse.cz>
18588
18589         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
18590         builtin_expect specially.
18591         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
18592         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
18593         * invoke.texi (max-inline-insns-single): Set to 100.
18594         (large-function-insns): Set to 3000.
18595
18596 2004-01-16  Eric Christopher  <echristo@redhat.com>
18597             Chandrakala Chavva <cchavva@redhat.com>
18598
18599         * cppcharset.c (one_iso88591_to_utf8): New function.
18600         (convert_iso88591_utf8): Ditto. Use.
18601         (conversion_tab): Use.
18602         (_cpp_input_to_utf8): New function.
18603         (_cpp_init_iconv_buffer): Ditto.
18604         (_cpp_close_iconv_buffer): Ditto.
18605         * cpphash.h: Prototype new functions.
18606         (cpp_buffer): Add input_cset_desc.
18607         * cppinit.c: Add input_charset default.
18608         * cpplib.c (cpp_push_buffer): Support init and
18609         close of iconv.
18610         * cpplib.h (cpp_options): Add input_charset.
18611
18612 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
18613
18614         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
18615         * config/alpha/unicosmk.h: Remove a commented-out definition
18616         of ASM_OUTPUT_SECTION_NAME.
18617         * config/stormy16/stormy16.h: Likewise.
18618
18619 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18620
18621         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
18622         (alpha___extern_prefix_sys_stat): ... this.
18623         Apply to <sys/mount.h>, too.
18624         Tweak to match more variations.
18625         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
18626
18627         * fixinc/inclhack.def (alpha___extern_prefix,
18628         alpha___extern_prefix_standards): New hacks to obey
18629         __PRAGMA_EXTERN_PREFIX.
18630         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
18631         test.
18632         * fixinc/tests/base/standards.h: Likewise.
18633
18634         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
18635         variations.
18636         New testcase.
18637         * fixinc/tests/base/pthread.h: Handle it.
18638
18639         * fixincl/inclhack.def (bad_lval): Sort file list.
18640         Add many missing files up to Tru64 UNIX V5.1B.
18641         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
18642         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
18643         order.
18644
18645         * fixinc/fixincl.x: Regenerate.
18646
18647 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
18648
18649         * version.c (version_string): Change to 3.5.0.
18650         * doc/include/gcc-common.texi (version-GCC): Likewise.
18651
18652 2004-01-16  Jan Hubicka  <jh@suse.cz>
18653
18654         * i386.md (load_tp_di): Fix pasto.
18655
18656         PR opt/13608
18657         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
18658
18659         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
18660         pp_c_character_constant, pp_c_floating_constant,
18661         pp_c_additive_expression, pp_c_shift_expression,
18662         pp_c_equality_expression, pp_c_and_expression,
18663         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
18664         pp_c_logical_and_expression): Remove inline modifier.
18665         * dwarf2out.c (get_AT): Likewise.
18666         * et-forest.c (et_splay): Likewise.
18667         * ra.h (ra_alloc, ra_calloc): Likewise
18668
18669 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
18670
18671         * config/frv/frv-protos.h: Fix comment formatting.
18672         * config/frv/frv.c: Likewise.
18673         * config/frv/frv.h: Likewise.
18674         * config/frv/frv.md: Likewise.
18675         * config/frv/frvbegin.c: Likewise.
18676         * config/frv/frvend.c: Likewise.
18677
18678 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
18679
18680         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
18681         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
18682         LINKER_DOES_NOT_WORK_WITH_DWARF2.
18683         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
18684
18685 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
18686
18687         PR 11864
18688         * postreload.c (reload_cse_simplify_operands): Don't remove
18689         implicit extension from LOAD_EXTEND_OP.
18690
18691 2004-01-16  Jan Hubicka  <jh@suse.cz>
18692
18693         PR opt/11350
18694         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
18695         after reload.
18696         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
18697         rtl_try_redirect_by_replacing_branch): Likewise.
18698
18699 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
18700
18701         PR pch/13689
18702         * alias.c (struct alias_set_entry): Mark for GC.
18703         (alias_sets): Make static, mark for GC.
18704         (record_alias_subset): Use GC to allocate alias structures.
18705         * varray.c (element): Make generic varrays GCed.
18706
18707         PR pch/13361
18708         * c-typeck.c (constructor_asmspec): Delete.
18709         (struct initializer_stack): Delete field 'asmspec'.
18710         (start_init): Delete saving of asmspec.
18711         (finish_init): Don't update constructor_asmspec.
18712         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
18713         * stmt.c (expand_asm): Duplicate strings from tree.
18714         (expand_asm_operands): Likewise.
18715         * tree.c (tree_size): Update computation of size of STRING_CST.
18716         (make_node): Don't make STRING_CST nodes.
18717         (build_string): Allocate string with tree node.
18718         * tree.def (STRING_CST): Update comment.
18719         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
18720         (tree_string): Place contents of string in tree node.
18721         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
18722         from tree.
18723
18724         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
18725         altivec operands.
18726
18727 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
18728
18729         * c-common.h: Fix comment formatting.
18730         * c-cppbuiltin.c: Likewise.
18731         * c-pragma.c: Likewise.
18732         * calls.c: Likewise.
18733         * collect2.c: Likewise.
18734         * cppcharset.c: Likewise.
18735         * cpptrad.c: Likewise.
18736         * dbxout.c: Likewise.
18737         * defaults.h: Likewise.
18738         * dwarf2out.c: Likewise.
18739         * fold-const.c: Likewise.
18740         * genautomata.c: Likewise.
18741         * genconditions.c: Likewise.
18742         * genflags.c: Likewise.
18743         * gengtype.c: Likewise.
18744         * integrate.c: Likewise.
18745         * loop.c: Likewise.
18746         * predict.c: Likewise.
18747         * sdbout.c: Likewise.
18748
18749 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
18750
18751         * config/ia64/ia64.md (*movti_internal): C output template
18752         extracted to ia64.c.
18753         (*movti_internal_reg): Delete.
18754         (reload_inti, reload_outti): Use the correct mode on operand 2
18755         in the first place, don't fix it up in the output template.
18756         (movtf, reload_ointf, reload_outtf): New expanders.
18757         (*movtf_internal): New define_insn_and_split.
18758         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
18759         make static; do not hand TFmode CONST_DOUBLEs to split_double.
18760         (ia64_split_tmode_move): New function, body mostly pulled
18761         from ia64.md:*movti_internal.
18762         (ia64_function_arg_words): New function, extracted common
18763         logic from ia64_function_arg et seq.
18764         (ia64_function_arg_offset): Likewise.  Handle correctly the
18765         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
18766         (ia64_function_arg, ia64_function_arg_partial_nregs)
18767         (ia64_function_arg_advance): Use ia64_function_arg_words and
18768         ia64_function_arg_offset.
18769         (ia64_function_value): TCmode does not go in float regs.
18770         (ia64_secondary_reload_class): Also handle TFmode.
18771         * config/ia64/ia64-protos.h: Remove prototype for
18772         ia64_split_timode; add prototype for ia64_split_tmode_move.
18773
18774 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
18775
18776         * Makefile.in (MAINT): Make it an immediate assignment.
18777
18778 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
18779
18780         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
18781
18782 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
18783
18784         * config/h8300/coff.h: Replace Hitachi with Renesas.
18785         * config/h8300/elf.h: Likewise.
18786         * config/h8300/h8300-protos.h: Likewise.
18787         * config/h8300/h8300.c: Likewise.
18788         * config/h8300/h8300.h: Likewise.
18789         * config/h8300/h8300.md: Likewise.
18790         * config/h8300/lib1funcs.asm: Likewise.
18791
18792 2004-01-15  Andrew Pinski  <apinski@apple.com>
18793
18794         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
18795         around it.
18796
18797 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
18798
18799         * config/h8300/h8300.c (h8300_return_in_memory): New.
18800         (TARGET_STRUCT_VALUE_RTX): Likewise.
18801         (TARGET_RETURN_IN_MEMORY): Likewise.
18802         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
18803         (RETURN_IN_MEMORY): Likewise.
18804
18805 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
18806
18807         PR optimization/13375
18808         * gcse.c (handle_avail_expr): Just return if the source is not a
18809         single set.
18810
18811 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
18812             Daniel Jacobowitz  <drow@mvista.com>
18813
18814         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
18815         (EQUIV): Define.
18816         (ARM_FUNC_ALIAS): New macro.
18817         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
18818         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
18819
18820 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18821
18822         PR optimization/12372
18823         * calls.c (expand_call): Add call_fusage data for stack arguments in
18824         constant calls.
18825
18826 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
18827
18828         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
18829         (rs6000_elf_declare_function_name): Formatting.
18830         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
18831
18832 2004-01-15  Jan Hubicka  <jh@suse.cz>
18833
18834         PR bootstrap/13692
18835         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
18836         previous patch.
18837
18838 2004-01-15  Richard Henderson  <rth@redhat.com>
18839
18840         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
18841         integer regs of the same call-savedness.
18842
18843 2004-01-15  Andreas Schwab  <schwab@suse.de>
18844
18845         PR bootstrap/13562
18846         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
18847         status for NOTB/NOTW/NEGW methods.
18848
18849 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
18850
18851         * doc/invoke.texi: Update dump file names.  Fix a typo.
18852
18853 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
18854
18855         * builtins.c (expand_builtin_va_end): Don't use
18856         EXPAND_BUILTIN_VA_END.
18857         * system.h (EXPAND_BUILTIN_VA_END): Poison.
18858         * config/d30v/d30v.h: Remove a commented-out definition of
18859         EXPAND_BUILTIN_VA_END.
18860         * config/stormy16/stormy16.h: Likewise.
18861
18862 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
18863
18864         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
18865         * targhooks.c (default_struct_value_rtx): Don't use
18866         STRUCT_VALUE_INCOMING_REGNUM.
18867
18868 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
18869
18870         PR bootstrap/12744
18871         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
18872         GENINSRC and not parsedir.  Define srcextra as a langhook.
18873         * configure: Regenerate.
18874         * Makefile.in: Suppress default .l.c rule.  Don't substitute
18875         parsedir and delete all references throughout.  Conditionally define
18876         rule for srcextra dependent on GENINSRC.
18877         (stmp-docobjdir): Delete.
18878         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
18879         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
18880         and gengtype-yacc.h back to source directory.
18881         (maintainer-clean): Delete all parse files in source directory.
18882         (distclean): Delete generated files.
18883
18884         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
18885         (objc-parse.c, objc-parse.y): Don't use parsedir.
18886         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
18887         directory if requested.
18888         (po-generated): Don't use parsedir.
18889         (objc.maintainer-clean): Delete above files from source directory.
18890
18891 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18892
18893         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
18894
18895 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18896
18897         * doc/tm.texi: Replace RETURN_IN_MEMORY with
18898         TARGET_RETURN_IN_MEMORY.
18899
18900 2004-01-15  Jan Hubicka  <jh@suse.cz>
18901
18902         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
18903         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
18904         functions accepting SSE arguments
18905         (function_arg): Warn only when asked to warn.
18906         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
18907
18908 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
18909
18910         * c-parse.in (stmts_and_decls): Make label at end of compound
18911         statement a hard error.
18912
18913 2004-01-14  Jan Hubicka  <jh@suse.cz>
18914
18915         * cgraph.c (create_edge): Use local.redefined_extern_inline.
18916         * cgraph.h (cgraph_local_info): Sort fields by size; add
18917         redefined_extern_inline
18918         (cgraph_global_info): Sort fields by size.
18919         (cgraph_node): Likewise.
18920         * cgraphunit.c (cgraph_finalize_function): Se
18921         local.redefined_extern_inline on redefinition.
18922         (cgraph_analyze_function): Use it; fix formating.
18923
18924 2004-01-14  Jan Hubicka  <jh@suse.cz>
18925
18926         PR c++/10776
18927         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
18928         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
18929         bitmaps
18930         (cache_size): New variable
18931         (add_dependence): Update use; canonize early memory locations
18932         (sched_analyze_1): Likewise.
18933         (sched_analyze_2): Likewise.
18934         (init_dependency_caches): Initialize bitmaps.
18935         (free_dependency_caches): Free bitmaps
18936
18937 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18938
18939         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
18940         targetm.calls.strict_argument_naming().
18941         * target.h: Likewise.
18942
18943 2004-01-14  Richard Henderson  <rth@redhat.com>
18944
18945         PR debug/13231
18946         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
18947         instructions.
18948
18949 2004-01-14  Richard Henderson  <rth@redhat.com>
18950
18951         PR c++/12491
18952         * except.c (struct eh_region): Add u.fixup.resolved.
18953         (resolve_one_fixup_region): Split out from ...
18954         (resolve_fixup_regions): ... here.
18955
18956 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18957
18958         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
18959
18960 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18961
18962         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
18963         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
18964         (STRUCT_VALUE): Remove.
18965
18966 2004-01-14  Steven Bosscher  <stevenb@suse.de>
18967
18968         * system.h: Poison PROMOTED_MODE
18969         * integrate.c (expand_inline_function): Don't mention the
18970         PROMOTED_MODE.
18971         * loop.c (update_giv_derive): Same.
18972         * tree.h (DECL_RTL): Same.
18973
18974 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
18975
18976         PR target/9365
18977         * sh.c (gen_block_redirect): Add special handling of RETURN.
18978         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
18979         far branch target (i.e. it's a return).
18980
18981 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18982
18983         * regrename.c (find_oldest_value_reg): Fix a warning.
18984
18985 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
18986
18987         PR bootstrap/12527
18988         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
18989         Move linux-gas.h and linux-elf.h before aout.h.
18990         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
18991         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
18992
18993 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
18994
18995         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
18996         (CONST_INT, VOIDmode, ...).
18997
18998 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
18999
19000         * regrename.c (find_oldest_value_reg): If the replacement uses
19001         multiple hard registers, check that all of them are in CLASS.
19002
19003 2004-01-14  Jan Hubicka  <jh@suse.cz>
19004
19005         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
19006         impossible.
19007
19008 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
19009
19010         * Makefile.in: Define MAINT from --enable-maintainer-mode.
19011
19012 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
19013
19014         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
19015         Calculate always vrsave_mask if TARGET_ALTIVEC.
19016         (rs6000_emit_prologue): Emit code for vrsave
19017         only if TARGET_ALTIVEC_VRSAVE.
19018         (rs6000_emit_epilogue): Likewise.
19019
19020 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
19021
19022         * config/sparc/sparc.md (tie_add32): Fix pasto.
19023         (tie_add64): Likewise.
19024
19025 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19026
19027         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
19028
19029 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19030
19031         * config/iq2000/iq2000-protos.h: Fix comment formatting.
19032         * config/iq2000/iq2000.c: Likewise.
19033         * config/iq2000/iq2000.md: Likewise.
19034
19035 2004-01-14  J. Brobecker  <brobecker@gnat.com>
19036
19037         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
19038         (subrange_type_die): Add handle for nameless subrange types.
19039
19040 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19041
19042         * config/h8300/h8300-protos.h: Replace do_movsi with
19043         h8300_expand_movsi.
19044         * config/h8300/h8300.c (do_movsi): Change to
19045         h8300_expand_movsi.
19046         * config/h8300/h8300.md (movsi): Replace do_movsi with
19047         h8300_expand_movsi.
19048         (movsf): Likewise.
19049
19050 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19051
19052         * config/h8300/h8300.c (dosize): Change to
19053         h8300_emit_stack_adjustment.  Update callers.
19054
19055 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19056
19057         * config/h8300/h8300.md (movstrictqi): Add an alternative with
19058         the source being post_inc.  Tighten the predicate for the
19059         destination to register_operand.
19060         (movstricthi): Likewise.
19061
19062 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19063
19064         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
19065         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
19066         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
19067
19068 2004-01-14  Jan Hubicka  <jh@suse.cz>
19069
19070         Partial fix PR c++/12850
19071         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
19072         at zero nest level.
19073
19074 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
19075
19076         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
19077         pseudo-register.
19078
19079 2004-01-13  Devang Patel <dpatel@apple.com
19080
19081         PR debug/7078
19082         * dbxout.c (dbxout_symbol_name): Emit mangled names for
19083         NAMESPACE_DECL memebers.
19084
19085 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
19086
19087         PR c++/12709
19088         * c-common.c (finish_fname_decls): Use the chain only if the
19089         tree is an expr_stmt.
19090
19091 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
19092
19093         * rtl.def: Add comment about new option in automata_option.
19094
19095         * genautomata.c (PROGRESS_OPTION): New macro.
19096         (progress_flag): New global variable.
19097         (gen_automata_option): Process `progress'.
19098         (transform_insn_regexps, check_unit_distributions_to_automata,
19099         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
19100         expand_automata, write_automata): Print about the progress only if
19101         progress_flag.  Remove fflush.
19102         (initiate_automaton_gen): Process command line flag `-progress'.
19103
19104         * doc/md.texi: Describe the new option.
19105
19106 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19107
19108         * cfg.c (dump_bb): Dump entry edges.
19109
19110 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
19111
19112         * arm.c (thumb_legitimate_address_p): Only allow constant pool
19113         references from SImode.
19114         * arm.md (thumb_movhi_insn): Don't allow minipool references.
19115
19116 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19117
19118         * system.h (TEXT_SECTION): Poison.
19119         * varasm.c (text_section): Don't use TEXT_SECTION.
19120         * config/sh/sh.c (sh_file_start): Fix a comment typo.
19121         * doc/tm.texi (TEXT_SECTION): Remove.
19122
19123 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
19124
19125         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
19126
19127 2004-01-12  James E Wilson  <wilson@specifixinc.com>
19128
19129         * unwind-libunwind.c: Delete.
19130
19131 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19132
19133         PR 13656
19134         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
19135         oldtype is set, set *newtypep or *oldtypep too.  Do not set
19136         them at the very end.
19137         (validate_proto_after_old_defn): Restructure for comprehensibility;
19138         make error messages clearer.
19139
19140 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19141
19142         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
19143         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
19144         * varray.c: No need to prototype error.
19145         (varray_check_failed): Wrap long string onto two lines.
19146         (varray_underflow): New function.
19147
19148 2004-01-13  Steven Bosscher  <stevenb@suse.de>
19149
19150         PR c++/13376
19151         * function.h (struct function): Kill `name' field.
19152         (current_function_name): Make it an extern function.
19153         * function.c (current_function_name): New function.
19154         * graph.c: Update all uses of current_function_name.
19155         * gcse.c: Likewise.
19156         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
19157         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
19158         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
19159         instead of a strcmp with "main".
19160
19161 2004-01-13  Jan Hubicka  <jh@suse.cz>
19162
19163         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
19164
19165         * cgraphunit.c (cgraph_optimize_function):  Always do
19166         optimize_inline_calls when there is always_inline callee.
19167         (cgraph_decide_inlining): Fix formating.
19168         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
19169         functions.
19170         (expand_call_inline): Likewise.
19171         * toplev.h (sorry): Fix prototype.
19172
19173 2004-01-12  Roger Sayle  <roger@eyesopen.com>
19174
19175         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
19176         conditional jumps that drop through to unconditional jumps or the
19177         end of the sequence.
19178
19179 2004-01-13  Jan Hubicka  <jh@suse.cz>
19180
19181         * alias.c (new_alias_set): Construct the alias_set varray.
19182         (init_alias_once): Don't do it here.
19183
19184 2004-01-12  Marc Espie <espie@openbsd.org>
19185
19186         * system.h: handle YYBYACC like YYBISON.
19187
19188 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
19189
19190         PR target/10847
19191         * config.gcc: No longer includes conflicting header sparc/sol2.h when
19192         building on sparc64-*-openbsd*.
19193
19194 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
19195
19196         PR debug/13539
19197         * dbxout.c (dbxout_type): Protected inheritance is not
19198         private but protected.
19199
19200 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
19201
19202         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
19203
19204 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
19205
19206         PR optimization/12508.
19207         * combine.c (try_combine): Remove a dead set in a parallel
19208         even if its destination is a subreg.
19209
19210         Revert:
19211         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
19212         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
19213         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
19214
19215 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
19216
19217         * real.c: Update copyright date.
19218         * emit-rtl.c: Likewise.
19219         * rtl.h: Likewise.
19220         * dwarf2out.c: Likewise.
19221         * config/rs6000/darwin-ldouble.c: Likewise.
19222         * config/rs6000/rs6000.md: Likewise.
19223
19224 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
19225
19226         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
19227         TFmode to SImode libfuncs.
19228
19229 2004-01-12  Roger Sayle  <roger@eyesopen.com>
19230
19231         PR middle-end/11397
19232         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
19233
19234 2004-01-12  Jan Hubicka  <jh@suse.cz>
19235
19236         PR opt/12826
19237         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
19238         stored.
19239
19240         PR opt/12863
19241         * cfgcleanup.c (label_is_jump_target_p): Move to...
19242         * rtlanal.c (label_is_jump_target_p): ... here.
19243         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
19244         edges unified with branch edges.
19245
19246 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
19247
19248         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
19249         high word of an integral CONST_DOUBLE.
19250
19251 2004-01-12  Paul Brook  <paul@codesourcery.com>
19252
19253         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
19254
19255 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
19256
19257         PR target/13585
19258         * sh-protos.h (check_use_sfunc_addr): Declare.
19259         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
19260         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
19261
19262 2004-01-12  Jan Hubicka  <jh@suse.cz>
19263
19264         * alias.c:  Invlude varray.h
19265         (alias_sets): Turn into varray.
19266         (get_alias_set_entry): Use VARRAY; mark inline.
19267         (mems_in_disjoint_alias_sets_p): Mark inline.
19268         (record_alias_subset): Use varray.
19269         (init_alias_once): Initialize varray.
19270         (new_alias_set): Grow array.
19271         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
19272
19273 2004-01-12  Jan Hubicka  <jh@suse.cz>
19274
19275         Partial fix for PR opt/10776 II
19276         * cselib.c: Include params.h
19277         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
19278         locations.
19279         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
19280         * Makefile.in (cselib.o): Depend on params.h
19281
19282 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
19283
19284         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
19285         simplify_unary_operation if the operand has a known mode.
19286
19287 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
19288
19289         PR target/13534
19290         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
19291         predicate to handle 'ld' conform addresses.
19292         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
19293         contraint.
19294         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
19295         are memory contraints.
19296         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
19297         New prototype.
19298         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
19299         Change 'o' to 'Y' constraint.
19300         (*movdf_softfloat64): Ditto.
19301
19302 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
19303
19304         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
19305         brace-enclosed syntax in all C output statements.
19306
19307 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
19308
19309         PR target/13401
19310         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
19311         Objective-C language type value is 14.
19312
19313 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
19314
19315         PR c/12148
19316         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
19317         `int' in a number of places to make sure we always have a SImode
19318         and not a HImode.  Add a 'L' suffix to a number of constants.
19319
19320 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19321
19322         * pa.c: Don't include obstack.h.
19323
19324         * pa.md: Correct constraint in pattern for loading PIC label address.
19325
19326 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
19327
19328         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
19329          before defining.
19330
19331 2004-01-11  Steven Bosscher  <stevenb@suse.de>
19332
19333         PR fortran/9972
19334         * toplev.c (rest_of_handle_inline): Also consider functions
19335         for deferral if the language is GNU F77.
19336
19337 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
19338
19339         * c-decl.c (diagnose_arglist_conflict): Add missing space to
19340         diagnostic messages.
19341
19342 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
19343
19344         PR middle-end/13392
19345         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
19346         to drop through label.  Don't fall back to SCC even when conditional
19347         jump has not been found.
19348
19349 2004-01-11  Jan Hubicka  <jh@suse.cz>
19350
19351         * invoke.texi: Fix syntax error in previous patch.
19352
19353         Partial fix for PR opt/10776
19354         * Makefile.in (reload.o): Include param.h
19355         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
19356         * reload.c: Include params.h.
19357         (find_equiv_reg): Work limiting check.
19358         * invoke.texi: Document.
19359
19360 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
19361
19362         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
19363         out-of-bounds accesses to string constants.  Simplify mips16
19364         case accordingly.
19365
19366 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
19367
19368         PR optimization/13469
19369         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
19370         reload_cse_regs (-fnon-call-exceptions only).
19371
19372 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
19373
19374         * config/mcore/lib1.asm: Fix comment formatting.
19375         * config/mcore/mcore-elf.h: Likewise.
19376         * config/mcore/mcore.c: Likewise.
19377         * config/mcore/mcore.h: Likewise.
19378         * config/mcore/mcore.md: Likewise.
19379
19380 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
19381
19382         * c-decl.c (duplicate_decls): Break apart into...
19383         (diagnose_arglist_conflict, validate_proto_after_old_defn)
19384         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
19385         ... these new functions.  Restructure for comprehensibility.
19386         Remove various archaic special cases.  Always report the
19387         location of the previous declaration when a diagnostic is issued.
19388         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
19389         (match_builtin_function_types): Delete unnecessary forward declaration.
19390
19391 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
19392
19393         * genautomata.c (make_automaton, NDFA_to_DFA):
19394         Print progress bars with '.' characters instead of '*'.
19395         (build_automaton): Change notes to match.
19396
19397 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
19398
19399         * config/m32r/m32r.md: Use define_constants for unspec and
19400         unspec_volatile.
19401
19402 2004-01-10  Jan Hubicka  <jh@suse.cz>
19403
19404         PR opt/11635
19405         * expr.c (expand_expr_real):  More curefully expand union casts.
19406
19407 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
19408
19409         * config/m32r/m32r.md (flush_icache): Use 1 for
19410         unspec_volatile.
19411
19412 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
19413             James E Wilson  <wilson@specifixinc.com>
19414
19415         PR debug/12860
19416         * dbxout.c (dbxout_symbol): Remove initialization of
19417         current_sym_code, current_sym_value, and current_sym_addr.
19418         (dbxout_symbol_location): Same.
19419         (dbxout_prepare_symbol): Zero current_sym_code,
19420         current_sym_value, and current_sym_addr.
19421
19422 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
19423
19424         * tree.c (get_unwidened): Reorder conditions so that the null pointer
19425         check is done first.
19426
19427 2004-01-09  Eric Christopher  <echristo@redhat.com>
19428
19429         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
19430         if we're running mark_constant_function.
19431
19432 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
19433
19434         PR target/12561
19435         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
19436
19437 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
19438
19439         PR debug/11231
19440         * dbxout.c (dbxout_type_fields): Return if any item is
19441         error_mark_node or the type is error_mark_node.
19442
19443 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
19444
19445         * config/rs6000/darwin-ldouble.c: Add big comment explaining
19446         exactly what is expected as a 'long double'.
19447         (_xlqadd): When a value to be returned is representable as a
19448         'double', just return it directly, do not construct it using a union.
19449         Also, correct final fixup.
19450         (_xlqmul): Likewise.
19451         (_xlqdiv): Likewise.
19452         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
19453
19454         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
19455
19456 2004-01-09  Richard Henderson  <rth@redhat.com>
19457
19458         * recog.c (constrain_operands): Validate mem operands.
19459
19460 2004-01-09   James E Wilson  <wilson@specifixinc.com>
19461
19462         * gcc.c (init_spec): Remove -lunwind from shared case.
19463         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
19464
19465 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
19466
19467         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
19468         * configure: Regenerate
19469
19470 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
19471
19472         PR c/11234
19473         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
19474         between function and object pointers.
19475         (digest_init): When comparing a pointer to function type to the
19476         target type, only apply TREE_TYPE once to the pointer to function
19477         type.
19478         * except.c (for_each_eh_label_1): Treat data as a pointer to a
19479         function pointer rather than casting it to a function pointer.
19480         (for_each_eh_label): Update caller.
19481         * recog.h (struct insn_data): Use a struct or union for output.
19482         * genoutput.c (output_insn_data): Update.
19483         * final.c (get_insn_template): Update.
19484
19485 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
19486
19487         * expr.h (expand_expr): Make it a macro, not a function.
19488         (expand_expr_real): New function.
19489         * expr.c (store_expr): Adjust logic for deciding whether or not to
19490         copy the value returned by expand_expr.
19491         (expand_expr): Rename to ...
19492         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
19493         calls to language hooks.
19494         * c-common.h (c_expand_expr): Adjust prototype.
19495         * c-common.c (c_expand_expr): Add alt_rtl parameter.
19496         * langhooks-def.h (lhd_expand_expr): Change prototype.
19497         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
19498         * langhooks.h (lang_hooks): Change type of expand_expr.
19499         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
19500         (last_expr_alt_rtl): Likewise.
19501         (expand_expr_stmt_value): Set last_expr_alt_rtl.
19502         (clear_last_expr): Clear it.
19503         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
19504         (expand_end_bindings): Save and restor last_expr_alt_rtl.
19505         * tree.def (RTL_EXPR): Give it an additional operand.
19506         * tree.h (RTL_EXPR_ALT_RTL): New macro.
19507
19508 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
19509
19510         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
19511         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
19512
19513 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
19514
19515         PR target/13380.
19516         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
19517         or (ne:SI (reg:CC 17) (const_int 0)).
19518         Be specific about modes wherever possible.
19519
19520 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
19521
19522         * config/m32r/m32r.c (m32r_expand_block_move): Call
19523         gen_movestrsi_internal with two more arguments.
19524         (m32r_output_block_move): Adjust operand numbers.
19525         Properly update the source and destination pointers.
19526         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
19527         'r+'.  Change the set detinations to match_operand.
19528
19529 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
19530
19531         * final.c (FIRST_INSN_ADDRESS): Remove.
19532         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
19533         * system.h (FIRST_INSN_ADDRESS): Poison.
19534         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
19535         * config/m32r/m32r-protos.h: Remove the prototype for
19536         m32r_first_insn_address.
19537         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
19538         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
19539         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
19540
19541 2004-01-09  J. Brobecker  <brobecker@gnat.com>
19542
19543         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
19544         we just created.
19545         (is_ada_subrange_type): DIEs for enumeration subtypes should be
19546         emitted as subrange types too.
19547         (subrange_type_die): Add handling of enumeration subtypes.
19548
19549 2004-01-08  Richard Henderson  <rth@redhat.com>
19550
19551         PR opt/12441
19552         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
19553         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
19554         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
19555         (ix86_address_cost): Be prepared for SUBREGed registers.
19556         (legitimate_address_p): Accept SUBREGed registers.
19557
19558 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
19559
19560         * Makefile.in: Rename configure.in to configure.ac
19561         * doc/sourcebuild.texi: Likewise.
19562         * configure: Regenerate.
19563         * config.in: Regenerate.
19564
19565 2004-01-08  Stuart Hastings  <stuart@apple.com>
19566
19567         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
19568
19569 2004-01-08  Jan Hubicka  <jh@suse.cz>
19570
19571         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
19572
19573 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
19574
19575         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
19576         (UNSPEC_FIX_TRUNC_TF): New constant.
19577         (movtf_internal): Make splitter active only when insn is active.
19578         (extenddftf2): Rewrite to properly load zero into low part.
19579         (extenddftf2_internal): New.
19580         (extendsftf2): Rewrite.
19581         (truncdftf2): Correct length.
19582         (floatditf2): Delete.
19583         (fix_trunc_helper): New.
19584         (fix_trunctfdi2): Use fix_trunc_helper.
19585         (fix_trunctfsi2): Likewise.fix_trunc
19586         (fix_trunctfsi2_internal): New.
19587
19588         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
19589         addresses are legitimate on Darwin even when flag_pic.
19590         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
19591         non-offsettable addresses for loads of TFmode constants.
19592
19593 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
19594
19595         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
19596         variables in the appropriate bss section.
19597
19598 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
19599
19600         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
19601         target_flags has MASK_POWERPC64 when -m64.
19602         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
19603         to 620, 630, power3, power4 and rs64a entries.
19604         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
19605
19606 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
19607
19608         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
19609         floating-point constants.
19610
19611 2004-01-08  J. Brobecker  <brobecker@gnat.com>
19612
19613         * dwarf2out.c (subrange_type_die): Add context_die parameter.
19614         Create the subrange_type DIE using the given context DIE.
19615         (modified_type_die): Update call to subrange_type_die.
19616
19617 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
19618
19619         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
19620         Add multiple-include guard.
19621
19622 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
19623
19624         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
19625         all vector constant loadable by vsplt*.
19626         (output_vec_const_move): Likewise.
19627
19628 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
19629
19630         PR c/6024
19631         * c-typeck.c (comptypes): Only treat enumerated types in the same
19632         translation unit as compatible with each other when they are the
19633         same type.
19634         * doc/extend.texi: Update.
19635
19636 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
19637
19638         PR c/12165
19639         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
19640         array type from the array element type.
19641
19642 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
19643
19644         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
19645         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
19646         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
19647         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
19648         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
19649
19650 2004-01-06  Eric Christopher  <echristo@redhat.com>
19651
19652         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
19653         (DWARF2_DEBUGGING_INFO): Define.
19654         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
19655         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
19656         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
19657         for irix as.
19658         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
19659         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
19660         * config/mips/iris5gas.h: Ditto.
19661         (DBX_DEBUGGING_INFO): Remove.
19662         (DWARF2_DEBUGGING_INFO): Ditto.
19663         (MIPS_DEBUGGING_INFO): Ditto.
19664         (PREFERRED_DEBUGGING_TYPE): Ditto.
19665         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
19666         (PREFERRED_DEBUGGING_TYPE): Ditto.
19667         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
19668         * config/mips/elf64.h: Ditto.
19669
19670 2004-01-06  Jan Hubicka  <jh@suse.cz>
19671
19672         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
19673         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
19674
19675 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
19676
19677         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
19678         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
19679         * config/rs6000/darwin-ldouble.c: New.
19680
19681         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
19682         for constants.
19683         (constant_subword): Delete.
19684         * rtl.h (constant_subword): Delete prototype.
19685         (immed_double_const): Is not in varasm.c.
19686         * simplify-rtx.c (simplify_immed_subreg): New.
19687         (simplify_subreg): Use simplify_immed_subreg.
19688
19689         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
19690         than trying to generate RTL directly.
19691         (fix_trunctfsi2): Use expand_fix rather than trying to generate
19692         RTL directly.
19693
19694         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
19695
19696 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
19697
19698         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
19699         function into a separate macro.
19700         (read_only_data_section): Add void argument.
19701         (private_data_section): Same.
19702         (read_only_private_data_section): Same.
19703         (toc_section): Same.
19704
19705 2004-01-06  Jan Hubicka  <jh@suse.cz>
19706
19707         * invoke.texi:  Remove typo in last change.
19708
19709         PR target/10301
19710         * config.gcc: Accept opteron and athlon-64 as variants
19711         of k8.
19712         * i386.c (override_options): Likewise.
19713         * invoke.texi (i386 -mtune): Expand documentation.
19714
19715 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
19716
19717         * alias.c: Fix comment typos.
19718         * builtins.c: Likewise.
19719         * cfg.c: Likewise.
19720         * df.c: Likewise.
19721         * dominance.c: Likewise.
19722         * dwarf2out.c: Likewise.
19723         * emit-rtl.c: Likewise.
19724         * expr.c: Likewise.
19725         * final.c: Likewise.
19726         * fold-const.c: Likewise.
19727         * gcse.c: Likewise.
19728         * genattrtab.c: Likewise.
19729         * genrecog.c: Likewise.
19730         * gensupport.c: Likewise.
19731         * ggc-zone.c: Likewise.
19732         * integrate.c: Likewise.
19733         * local-alloc.c: Likewise.
19734         * loop.c: Likewise.
19735         * recog.c: Likewise.
19736         * regmove.c: Likewise.
19737         * reg-stack.c: Likewise.
19738         * reorg.c: Likewise.
19739         * rtlanal.c: Likewise.
19740         * rtl.h: Likewise.
19741         * sched-ebb.c: Likewise.
19742         * simplify-rtx.c: Likewise.
19743         * toplev.c: Likewise.
19744         * varasm.c: Likewise.
19745
19746 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
19747
19748         * doc/install.texi: Fix typos.
19749         * doc/invoke.texi: Likewise.
19750         * doc/md.texi: Likewise.
19751
19752 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
19753
19754         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
19755
19756 2004-01-06  Jan Hubicka  <jh@suse.cz>
19757
19758         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
19759         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
19760         of MMX_REGPARM.
19761         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
19762         add MMX_REGPARM.
19763         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
19764         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
19765         (MMX_REGPARM_MAX): Similarly for -mmmx.
19766
19767 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
19768
19769         * config/sh/linux.h: Fix comment formatting.
19770         * config/sh/netbsd-elf.h: Likewise.
19771         * config/sh/sh.c: Likewise.
19772         * config/sh/sh.h: Likewise.
19773         * config/sh/vxworks.h: Likewise.
19774
19775 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
19776
19777         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
19778         * toplev.c (output_file_directive): Don't use
19779         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
19780
19781 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
19782
19783         * toplev.c: Fix broken checkin of 2003-12-30.
19784
19785 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
19786
19787         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
19788         (USING_MMAP): We don't support non-mmap.
19789         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
19790         large objects.
19791         (struct page_entry): Remove bytes_free.
19792         (struct page_table_chain): Remove.
19793         (struct globals): Remove page_table member.
19794         (loookup_page_table_entry): Function deleted.
19795         (set_page_table_entry): Ditto.
19796         (ggc_allocated_p): No longer need page table lookups.
19797         (ggc_marked_p): Ditto.
19798         (alloc_small_page): Don't care about bytes_free anymore.
19799         (alloc_large_page): Round up size.
19800         (ggc_alloc_zone_1): Mark large objects as such, and calculate
19801         their size the new way.
19802         Remove page table lookups and setting.
19803         (ggc_get_size): Calculate large object size the new way.
19804         (sweep_pages): Redo to account for fact that we no longer have
19805         bytes_free.
19806         (ggc_collect): No longer need to reincrement bytes_free.
19807         (ggc_pch_alloc_object): Handle new large objects properly.
19808         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
19809
19810 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
19811
19812         * doc/invoke.texi: Remove a page break.
19813
19814 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
19815
19816         * config/avr/avr.c (avr_output_function_prologue): Remove an
19817         extra pair of curly braces.
19818
19819 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
19820
19821         * config/mn10300/mn10300.c: Fix comment formatting.
19822         * config/mn10300/mn10300.h: Likewise.
19823
19824 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19825
19826         * tree.h: Update documentation on nothrow_flag.
19827         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
19828         types.
19829
19830 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
19831
19832         * doc/invoke.texi: Remove traces of dead ports.
19833
19834 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
19835
19836         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
19837         option.
19838
19839 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
19840
19841         PR target/12945
19842         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
19843         counter labels.
19844         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
19845         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
19846         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
19847         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
19848         (mips_symbol_insns): Don't trust the local/global classification.
19849         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
19850         (override_options): Make -mabicalls -fno-unit-at-a-time imply
19851         -mno-explicit-relocs.
19852         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
19853         between local and global symbols.
19854
19855 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
19856
19857         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
19858         (mips_preferred_reload_class): Declare.
19859         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
19860         (EXTRA_CONSTRAINT): Update accordingly.
19861         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
19862         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
19863         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
19864         mips_dangerous_for_la25_p.
19865         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
19866         if mips_dangerous_for_la25_p.
19867
19868 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
19869
19870         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
19871         warning.
19872
19873 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
19874
19875         * configure.ac: Use AC_PROG_CPP_WERROR.
19876         * configure: Regenerate.
19877
19878 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
19879
19880         * .cvsignore: Add autom4te.cache.
19881
19882 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
19883
19884         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
19885         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
19886         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
19887         then architecture options, then ABI options.  General rewording.
19888
19889 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
19890
19891         PR c/3414
19892         * doc/extend.texi: Clarify definition of malloc attribute.
19893
19894 2004-01-04  Jan Hubicka  <jh@suse.cz>
19895
19896         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
19897         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
19898         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
19899         (cgraph_inline_p): Add extra argument reason.
19900         * cgraphunit.c: Minor formating fixes.
19901         cgraph_first_inlined_callee): New functions.
19902         (record_call_1): Record builtins too.
19903         (cgraph_analyze_function): Update inline_failed messages.
19904         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
19905         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
19906         (cgraph_check_inline_limits): Likewise; Add argument reason.
19907         (cgraph_set_inline_failed): New static function.
19908         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
19909         reasons.
19910         (cgraph_inline_p): Add new argument reason.
19911         * tree-inline.c (expand_call_inline):  Update warning.
19912
19913 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
19914
19915         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
19916         with modern equivalents.
19917         * configure: Regenerate.
19918
19919         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
19920         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
19921         * configure: Regenerate.
19922
19923         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
19924
19925         * configure.in: Rename to configure.ac.
19926         * configure.ac: Renamed from configure.in; make minimum necessary
19927         changes for autoconf 2.5x.
19928         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
19929         * configure: Regenerate with autoconf 2.57.
19930
19931 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
19932
19933         * config/mips/linux.h: Fix comment formatting.
19934         * config/mips/mips.c: Likewise.
19935         * config/mips/mips.h: Likewise.
19936         * config/mips/mips.md: Likewise.
19937         * config/mips/netbsd.h: Likewise.
19938         * config/mips/windiss.h: Likewise.
19939
19940 2004-01-02  Richard Henderson  <rth@redhat.com>
19941
19942         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
19943         for sse and 387; add suppression for mmx.
19944
19945 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
19946
19947         * loop.c (loop_optimize): Free all loops_info's mems.
19948
19949         * c-typeck.c (finish_init): Free spelling_base before
19950         setting it again.
19951
19952         * cfgloop.c (flow_loops_find): Always free the sbitmap
19953         headers.
19954
19955         * predict.c (estimate_probability): Free bbs after being
19956         done with it.
19957
19958 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
19959
19960         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
19961         const_8bit_operand and call_address_operand.
19962
19963 2004-01-02  Jan Hubicka  <jh@suse.cz>
19964
19965         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
19966         when there is nothing to inline but warnings are requested.
19967         (cgraph_decide_inlining):  Fix memory leak.
19968
19969 2004-01-02  Jan Hubicka  <jh@suse.cz>
19970
19971         * expr.c (store_constructor):  Fix pasto in previous patch.
19972
19973 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
19974
19975         * config/i386/cygming.h: Fix comment formatting.
19976         * config/i386/djgpp.h: Likewise.
19977         * config/i386/gthr-win32.c: Likewise.
19978         * config/i386/i386-interix.h: Likewise.
19979         * config/i386/i386.c: Likewise.
19980         * config/i386/i386.h: Likewise.
19981         * config/i386/openbsd.h: Likewise.
19982         * config/i386/winnt.c: Likewise.
19983         * config/i386/xm-mingw32.h: Likewise.
19984
19985 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
19986
19987         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
19988         copyright and last modification dates.
19989
19990 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
19991
19992         * doc/install.texi (Specific): Mention x86_64.
19993
19994 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
19995
19996         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
19997         Call force_operand on plus_constant result.
19998
19999 2004-01-01  Jan Hubicka  <jh@suse.cz>
20000
20001         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
20002         * expr.c (store_constructor): Use vec_init pattern.
20003         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
20004         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
20005         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
20006         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
20007         New patterns.
20008         (sse2_unpc?pd): Fix pattern.
20009         (sse2_movlpd): Kill.
20010         (sse2_movsd): Deal with movlpd too.
20011         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
20012         (ix86_expand_vector_init): New.
20013         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
20014         * md.texi (vec_set, vec_extract): Document
20015
20016 2003-12-31  Jan Hubicka  <jh@suse.cz>
20017
20018         PR opt/13473
20019         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
20020         ASM input operands
20021
20022         PR opt/12617
20023         * toplev.c (dump_file_index): Reorder ce3 and bbro.
20024         (dump_file): Likewise.
20025         (rest_of_compilation): Likewise.
20026
20027         PR debug/13367
20028         * cgraph.c (cgraph_function_possibly_inlined):  Even with
20029         flag_really_no_inline we inline always_inline functions.
20030         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
20031         for non-always_inline functions when there is flag_really_no_inline.
20032         (cgraph_decide_inlining): Limit work done when not inlining.
20033         (cgraph_decide_inlining_incrementally): Likewise.
20034         (cgraph_optimize_function): Check whether something got inlined.
20035         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
20036         extern inline functions when not inlining.
20037
20038         * opts.c (decode_options):  Disable crossjumping at -O1
20039         * invoke.texi (-O1): Document change.
20040
20041 See ChangeLog.10 for earlier changes.