OSDN Git Service

287ddeb12d8df80294806b160ade2c75017b4961
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
2
3         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
4         Always make REAL_VALUE_TYPE a struct containing an array of
5         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
6         big it is.  Don't declare or use union real_extract.
7
8         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
9         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
10         (print_operand), config/arm/arm.c (output_move_double),
11         config/arm/arm.md (consttable_4, consttable_8),
12         config/romp/romp.c (output_fpops), config/s390/s390.h
13         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
14         (xtensa_output_literal): Don't use union real_extract.
15
16         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
17         (sfmode_constant_to_ulong), config/ns32k/merlin.h
18         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
19         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
20         (PRINT_OPERAND): Don't use local version of union
21         real_extract.
22
23         * config/convex/convex.c (check_float_value), config/vax/vax.c
24         (vax_float_literal), config/m88k/m88k.md (divdf3),
25         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
26         config/pdp11/pdp11.c (output_move_quad): Don't do host
27         arithmetic on target floating point quantities.
28
29         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
30         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
31
32         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
33         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
34
35         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
36         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
37         INFINITY.
38         * print-rtl.c (print_rtx): Disable code which needs
39         floating-point emulator.
40         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
41         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
42         depending on HOST_FLOAT_FORMAT to be defined properly.
43
44         * config/1750a/1750a.c (get_double, float_label): Delete.
45         (print_operand): Delete huge commented-out chunk.  Use
46         REAL_VALUE_TO_DECIMAL.
47         * config/1750a/1750a-protos.h: Delete prototypes of deleted
48         functions.
49         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
50         IEEE_FLOAT_FORMAT.
51         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
52         Use REAL_VALUE_TO_DECIMAL as ELF version does.
53         * config/m88k/m88k.c (real_power_of_2_operand,
54         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
55         real_extract out of the union; run the input through
56         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
57         from that into the union.
58         * config/pdp11/pdp11.c (output_move_double): Rearrange
59         parentheses to make automatic indenter happy.
60
61         * doc/tm.texi (Cross-compilation): Rename node to "Floating
62         Point" and rewrite to describe current situation.  Also adjust
63         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
64         match code.
65         * doc/rtl.texi: Adjust cross reference.
66
67 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
68
69         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
70         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
71         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
72         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
73         prevent use of sp as a reload register.
74         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
75         non_acc_reg_operand.
76         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
77         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
78         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
79         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
80
81 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
82
83         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
84         * cpplex.c (unterminated): Delete.
85         (parse_string): No string literal may extend over multiple
86         lines.  Suppress the error when preprocessing assembly.
87         * cppmain.c (scan_translation_unit): Strings are single-line.
88
89         * doc/cpp.texi: Update to match.
90
91 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
92
93         PR optimization/5854
94         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
95         Shut up warnings.
96         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
97         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
98         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
99         const0 if scratch register was not allocated.
100         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
101         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
102         with GEN_INT (...).
103         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
104         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
105         with GEN_INT (...) everywhere.  Remove constraints in define_split
106         patterns.
107         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
108         require scratch register for setting 0 into regs/non-pushable memory.
109
110 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
111
112         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
113         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
114
115 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
116
117         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
118         * cppinit.c (cpp_create_reader):  On by default.
119         (cpp_handle_option):  Handle -W[no-]endif-labels.
120         (cpp_post_options):  Also enable if -pedantic.
121         * cpplib.c (do_else):  Use it.
122         (do_endif):  Likewise.
123         * doc/cppopts.texi:  Document new option.
124         * doc/invoke.texi:  Document new option.
125
126 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
127
128         * config/i386/i386.c, config/i386/i386.md: Change all occurences
129         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
130
131 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
132
133         * flow.c (calculate_global_regs_live): Clear aux fields of
134         ENTRY and EXIT.
135
136 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
137
138         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
139         REG or MEM subregs, pass rtx * instead of rtx to it.
140         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
141         rtx * instead of rtx to alter_subreg.
142         * config/m32r/m32r.c (gen_split_move_double): Likewise.
143         * config/pj/pj.c (pj_output_rval): Likewise.
144
145 2002-03-22  Richard Henderson  <rth@redhat.com>
146
147         PR target/3177
148         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
149         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
150         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
151         (ia64_expand_prologue): Look at int_regs, not words, for number
152         of incomming int regs.
153
154 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
155
156         * expr.c (expand_expr): A RESULT_DECL is part of a call.
157
158 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
159
160         * toplev.c (flag_loop_optimize, flag_crossjumping):
161         New static variables.
162         (rest_of_compilation): Conditionalize crossjumping and
163         loop optimizer.
164         (parse_options_and_default_flags): Default loop_optimize and
165         crossjumping.
166         (lang_independent_options): Add -fcrossjumping and -floop-optimize
167         * invoke.texi (crossjumping, loop-optimize): Document.
168
169 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
170
171         * real.c (eiisneg): Move outside #ifdef NANS.
172
173 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
174
175         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
176         frequencies match; avoid match on different loop depths.
177         (try_crossjump_to_bb): Kill tests that no longer brings time
178         savings.
179         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
180         updating code.
181         (split_edge): Likewise.
182
183         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
184         variable.
185
186         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
187         * cfgrtl.c: Include insn-config.h
188         (split_block) Dirtify block in presence of conditional execution
189
190 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
191
192         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
193         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
194         (function_arg): Constify CUMULATIVE_ARGS.
195         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
196         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
197         (UNITS_PER_DOUBLE): New macro.
198         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
199         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
200         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
201         fp_regs and stack_words.
202         (EABI_FLOAT_VARARGS_P): New macro.
203         * config/mips/mips.c (struct mips_arg_info): New.
204         (mips_arg_info): New function.
205         (function_arg_advance): Use it.  Add adjustment instructions here
206         rather than in function_arg.
207         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
208         for VOIDmode at the beginning of the function.
209         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
210         (function_arg_pass_by_reference): Likewise.
211         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
212         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
213         (mips_va_start): Likewise.  Use the new stack_words field of
214         CUMULATIVE_ARGS to set up overflow area.  Reformat.
215         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
216         doubles and other types, aligning the overflow pointer for non-doubles
217         too.  Remove some code duplication.  Replace hard-coded constants.
218
219 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
220
221         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
222         (CLASS_UNITS): Undefine.
223         (CLASS_MAX_NREGS): Use FP_INC.
224         * config/mips/mips.c (compute_frame_size): Likewise.
225         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
226
227 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
228
229         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
230         prototype, and handle lexing numbers and identifiers.
231         (parse_identifier): Update to new form of parse_slow.
232         (parse_number): Fast path only, use parse_slow otherwise.
233         (_cpp_lex_direct): Update calls to parse_number.
234
235 2002-03-21  DJ Delorie  <dj@redhat.com>
236
237         * bb-reorder.c (make_reorder_chain_1): Protect against
238         when redundant edges are omitted.
239         * predict.c (dump_prediction): Likewise.
240
241 2002-03-21  Richard Henderson  <rth@redhat.com>
242
243         PR target/5996
244         * fixinc/inclhack.def (solaris_stdio_tag): New.
245         * fixinc/fixincl.x: Regenerate.
246
247 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
248
249         PR c/5597
250         * c-typeck.c (process_init_element): Flag non-static
251         initialization of a flexible array member as illegal.
252
253 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
254
255         * config/rs6000/t-linux64: New.
256         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
257         t-ppccomm.  Use t-rs6000 and t-linux64.
258         (powerpc64-*-gnu* <tmake_file>): Likewise.
259         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
260         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
261         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
262
263 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
264
265         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
266         flag_really_no_inline instead of optimize == 0.
267
268         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
269
270         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
271
272         * flags.h (flag_really_no_inline): New.
273
274         * c-common.c (c_common_post_options): Initialzie
275         flag_really_no_inline.
276
277         * toplev.c (flag_really_no_inline): New.
278
279 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
280
281         * config/avr/avr.md (length): Fix length computation for
282         conditional branches.
283
284 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
285
286         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
287         sdbout.o, profile.o): Update.
288         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
289         langhook.
290         * c-common.h (gettags): Move here from tree.h.
291         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
292         insert_block, getdecls, kept_level_p, global_bindings_p): New.
293         * dbxout.c (dbxout_init): Use getdecls langhook.
294         * expr.c (expand_expr): Use insert_block langhook.
295         * fold-const.c: Include langhooks.h.
296         (fold_range_test, fold_binary_op_with_conditional_arg,
297         fold): Use global_bindings_p langhook.
298         * integrate.c (expand_inline_function): Use insert_block langhook.
299         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
300         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
301         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
302         LANG_HOOKS_GETDECLS): New.
303         (LANG_HOOKS_INITIALIZER): Update.
304         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
305         langhook.
306         * langhooks.h (struct lang_hooks_for_decls): New.
307         (struct lang_hooks): Update.
308         * profile.c: Include langhooks.h.
309         (output_func_start_profiler): Use new langhooks.
310         * sdbout.c: Include langhooks.h.
311         (sdbout_init, sdbout_finish): Use getdecls langhook.
312         * stmt.c: Include langhooks.h.
313         (expand_fixup, fixup_gotos): Use new langhooks.
314         * stor-layout.c: Include langhooks.h.
315         (variable_size): Use global_bindings_p langhook.
316         * toplev.c (compile_file): Use getdecls langhook.
317         * tree-inline.c (remap_block): Use insert_block langhook.
318         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
319         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
320
321 2002-03-21  Richard Henderson  <rth@redhat.com>
322
323         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
324         constants in .data when -fpic.
325
326 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
327
328         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
329         where appropriate.
330
331 2002-03-21  Tom Tromey  <tromey@redhat.com>
332
333         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
334
335 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
336
337         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
338
339         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
340
341 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
342             Richard Henderson  <rth@redhat.com>
343
344         PR c/5354
345         * c-common.c (c_expand_expr): Preserve result of a statement
346         expression if needed.
347
348 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
349
350         PR bootstrap/4195
351         * genrecog.c (maybe_both_true_mode): Remove.
352         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
353         * machmode.def (Pmode): Likewise.
354
355 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
356
357         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
358         (nonlocal_mentioned_p_1): New function.
359         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
360         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
361         (mark_constant_function): Recognize pure functions.
362         * rtl.h (global_reg_mentioned_p): New prototype.
363         * rtlanal.c (global_reg_mentioned_p,
364         global_reg_mentioned_p_1): New function.
365
366 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
367
368         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
369         UNIX assert.h.
370         * fixinc/fixincl.x: Regenerate.
371
372 2002-03-20  Jason Merrill  <jason@redhat.com>
373
374         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
375
376 2002-03-20  Michael Meissner  <meissner@redhat.com>
377
378         * doc/invoke.texi (Optimize Options): Document that -O2 sets
379         -fstrict-aliasing.
380
381 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
382
383         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
384         ".literal_position" directive before the constant pool.
385
386 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
387
388         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
389         Add Craig Rodrigues.
390         Add Brad Lucier to testers.
391
392 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
393
394         PR target/4792
395         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
396         to if_then_else.
397         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
398         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
399         instead of insn_extract.
400
401 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
402
403         PR bootstrap/4192
404         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
405
406         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
407         stmt if some case has been output.
408
409 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
410
411         PR c/5972
412         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
413         movsfcc_1, movdfcc_1): Add %O2.
414         * config/i386/i386.c (print_operand): Handle %ON.
415         Print . before float condition codes in Sun as cmov syntax.
416         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
417         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
418         no longer true.
419
420 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
421
422         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
423         return instruction if PC was popped.
424
425 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
426
427         * config/xtensa/xtensa.md: Remove unused type attributes.
428         (adddi_carry, subddi_carry): Change type attribute to "multi".
429
430 2002-03-19  Dale Johannesen  <dalej@apple.com>
431
432         PR optimization/5999, middle-end/5731
433         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
434         multiplications by reciprocals.
435
436 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
437
438         * Makefile.in: Update.
439         * c-common.c: Include langhooks.h.
440         (inline_forbidden_p): Use new hook.
441         * diagnostic.c: Include langhooks.h.
442         (format_with_decl, announce_function,
443         default_print_error_function): Use new hook.
444         * dwarf2out.c (dwarf2_name): Use new hook.
445         * function.c: Include langhooks.h.
446         (init_function_start): Use new hook.
447         * langhooks-def.h (lhd_decl_printable_name): New.
448         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
449         (LANGHOOKS_INITIALIZER): Update.
450         * langhooks.c (lhd_decl_printable_name): New.
451         * langhooks.h (struct lang_hooks): New hook.
452         * toplev.c (decl_name, decl_printable_name): Remove.
453         (open_dump_file): Use new hook.
454         (process_options): Remove old hook.
455         * tree.h (decl_printable_name): Remove.
456 objc:
457         * objc-act.c (objc_init): Remove old hook.
458         (objc_printable_name): Export.
459         * objc-act.h (objc_printable_name): New.
460         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
461
462 2002-03-19  Jim Blandy  <jimb@redhat.com>
463
464         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
465         the start_source_file debug hook, not the current line number.
466
467 2002-03-19  Richard Henderson  <rth@redhat.com>
468
469         * flow.c (EH_USES): Provide default.
470         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
471         * doc/tm.texi (EH_USES): New.
472
473         * config/ia64/ia64.c (ia64_eh_uses): New.
474         * config/ia64/ia64-protos.h: Update.
475         * config/ia64/ia64.h (EH_USES): New.
476
477 2002-03-19  Richard Henderson  <rth@redhat.com>
478
479         * varasm.c (output_constant_def): Fix stupid typo.
480
481 2002-03-19  Richard Henderson  <rth@redhat.com>
482
483         PR 5879
484         * except.c (current_function_has_exception_handlers): New.
485         * except.h: Declare it.
486         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
487         Combine tests that disable all sibcalls for the function.
488
489 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
490
491         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
492         for INTEGER_CST.
493
494 2002-03-19  Richard Henderson  <rth@redhat.com>
495
496         PR 5977, 5991
497         * config/ia64/ia64.c: Revert 2002-03-01 patch.
498         * config/ia64/ia64.h (INIT_EXPANDERS): New.
499
500 2002-03-19  Jim Blandy  <jimb@redhat.com>
501
502         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
503         name, even if the replacement list contains no tokens, as required
504         by Dwarf.
505
506 2002-03-19  Jason Merrill  <jason@redhat.com>
507
508         * varasm.c (globalize_decl): Get the name from the RTL, not
509         DECL_ASSEMBLER_NAME.
510
511         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
512
513 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
514
515         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
516         subdi_carry): Define.
517
518 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
519
520         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
521         about -fpic/-fPIC if extra_warnings set.
522
523 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
524
525         * expr.c (expand_expr): Sign-extend CONST_INT generated from
526         TREE_STRING_POINTER.
527         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
528
529 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
530
531         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
532         in favor of SP if FRAME_POINTER_REQUIRED is false.
533
534 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
535
536         * emit-rtl.c (gen_int_mode): New function.
537         * rtl.h: Prototype for it.
538         * combine.c (make_extraction, simplify_comparison), expmed.c
539         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
540         (convert_modes, store_field), optabs.c (expand_fix),
541         simplify-rtx.c (neg_const_int, simplify_unary_real),
542
543         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
544         Use it instead of GEN_INT (trunc_int_for_mode (...)).
545
546 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
547
548         PR c/5656
549         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
550         convert_parm_for_inlining.
551         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
552         Define.
553         * langhooks-def.h: Likewise.
554         * objc/objc-lang.c: Likewise.
555         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
556         function.
557         * tree-inline.c (initialize_inlined_parameters):
558         Call convert_parm_for_inlining lang hook if needed.
559         * c-typeck.c (c_convert_parm_for_inlining): New function.
560         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
561
562 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
563
564         * calls.c (precompute_arguments): Do not assume that temporaries
565         can be destroyed after expanding the argument.
566         (expand_call): Likewise.
567
568 2002-03-15  Eric Christopher  <echristo@redhat.com>
569
570         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
571         Fix register preference on last change.
572         * config/mips/mips.c (mips_return_in_memory): New function.
573         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
574         * config/mips/mips-protos.h: Declare.
575         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
576         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
577
578 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
579
580         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
581         a register too.
582         (anddi3, iorsi3): Likewise.
583
584         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
585         use %gprel for symbols that are going to be placed in linkonce
586         sections.
587
588         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
589         RETURN_ADDRESS_POINTER_REGNUM to $ra.
590         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
591         not needed.  Disregard leaf_function_p().
592         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
593         mips16 frame pointer.
594         * config/mips/mips.md (store ra): Only to small SP offsets.
595         2001-08-22  Graham Stott  <grahams@redhat.com>
596         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
597         return a REG rtx for the return address register.
598
599 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
600
601         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
602         constant-pool addresses as "mode-dependent".
603         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
604
605 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
606
607         PR target/5740
608         * expr.c (emit_group_load): Use extract_bit_field if
609         needed for CONCAT arguments.
610
611 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
612
613         PR target/4863
614         * arm.md (tablejump): Make this a define_expand.  For PIC add the
615         offset to the base of the table.
616         (thumb_tablejump): Matcher for Thumb tablejump insn.
617         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
618         as the difference of two labels.
619         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
620         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
621         tables in the code.
622         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
623         * arm.c (get_jump_table_size): If the table is not in the text
624         section, return zero.
625
626 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
627
628         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
629         of gen_rtx_SUBREG.
630         (arm_reload_out_hi): Use gen_lowpart instead of
631         gen_rtx_SUBREG to access QImode components.
632         * config/arm/arm.md: Disable zero_extend split for QImode
633         subregs in BIG_ENDIAN mode.
634         (storehi_bigend): Match use of least significant byte.
635         (storeinthi): Remove extraneous SUBREG.
636         Add missing construction of operands[2].
637         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
638         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
639         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
640
641 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
642
643         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
644         any_operand.
645
646 2002-03-17  Richard Henderson  <rth@redhat.com>
647
648         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
649         explicitly.
650
651 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
652
653         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
654         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
655
656 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
657
658         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
659
660         * predict.c (estimate_bb_frequencies): Delete unused variables.
661
662 2002-03-17  Richard Henderson  <rth@redhat.com>
663
664         * config/ia64/ia64.c (ia64_attribute_table): Move before
665         targetm definition.  Make static.
666
667 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
668
669         * c-common.h (yyparse, c_common_parse_file): New.
670         * c-lang.c: Include c-common.h.
671         (LANG_HOOKS_PARSE_FILE): Redefine.
672         * c-lex.c: Include c-common.h.
673         (yyparse): Rename c_common_parse_file.  Call yyparse.
674         * c-parse.in (yyparse): Remove macro.
675         * c-tree.h (yyparse_1): Remove.
676         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
677         (LANG_HOOKS_INITIALIZER): Update.
678         * langhooks.h (struct lang_hoooks): New hook parse_file.
679         * toplev.c (compile_file): Use parse_file hook.
680         * tree.h (yyparse): Remove.
681         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
682
683 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
684
685         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
686         float_truncate, not fix.
687         ("*truncdfsf2_real"): Ditto.
688         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
689
690         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
691
692 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
693
694         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
695         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
696         where appropriate.  Make the second reference to
697         leaf_function_p a function call, as intended.  Reindented.
698
699         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
700         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
701
702         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
703         add register to non-constant into sp.
704
705         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
706         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
707         (mips16_gp_pseudo_rtx): Lose.
708         (INIT_EXPANDERS): Deleted.
709         * config/mips/mips.c (mips_init_machine_status): New.
710         (mips_free_machine_status): New.
711         (mips_mark_machine_status): New.
712         (override_options): Set them.
713         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
714         (struct machine_function): ... new.  Replaced all references.
715         (mips_add_gc_roots): Don't mark them.
716         (embedded_pic_fnaddr_reg): New, extracted from...
717         (embedded_pic_offset): ... here.
718         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
719         (movsi): Likewise.
720
721 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
722
723         * cppinit.c: Revert -MD removal.
724
725 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
726
727         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
728         soft registers by default for 68HC12.
729         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
730         when compiling with -fomit-frame-pointer.
731         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
732         (expand_epilogue): Likewise.
733         (m68hc11_gen_rotate): Use exg when rotating by 8.
734
735 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
736
737         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
738         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
739         (splits): Remove unused add splits.
740         ("*addhi3_68hc12"): Tune constraints.
741         ("addhi_sp"): Try to use X instead of Y in all cases and if the
742         constant fits in 8-bits and D is dead use abx/aby instructions.
743         ("*addhi3"): Remove extern declaration of ix_reg.
744         ("*subsi3"): Optimize and provide new split.
745         ("subhi3"): Cleanup.
746         ("*subhi3_sp"): Avoid saving X if we know it is dead.
747         (arith splits): For 68hc12 save the address register on the stack
748         and do the arithmetic operation with a pop.
749
750 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
751
752         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
753         allocating QImode in address registers.
754         ("*movqi_m68hc11"): Likewise.
755
756 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
757
758         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
759
760 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
761
762         * cppinit.c (print_help): Display -MD and -MMD.
763         Don't display usage string.  Update assertion syntax and
764         typo.
765         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
766         (cpp_handle_option): Update.
767
768 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
769
770         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
771         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
772         and define it so that regardless of target CPU size,
773         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
774         of "int" rather than "long."
775
776 2002-03-15  Richard Henderson  <rth@redhat.com>
777
778         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
779         size as a tree.
780
781 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
782
783         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
784         ("tstqi" split): Avoid using memory for tstqi on address register.
785         (splits): Remove constraints.
786         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
787         ("cmpdf", "cmpsf"): Remove since not used.
788         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
789         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
790
791 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
792
793         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
794         ("neghi2"): Tighten constraints.
795         ("one_cmplsi2"): Optimize and simplify split.
796         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
797
798 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
799
800         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
801         and split of AND operation to clear the upper bits.
802         ("*logicalsi3_zextqi"): Likewise.
803         ("*logicallhi3_zexthi_ashift8"): Likewise.
804         ("*logicalsi3_silshr16"): Likewise.
805         ("logicalsi3_silshl16"): Likewise.
806         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
807
808 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
809
810         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
811         (m68hc11_indirect_p): New function.
812         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
813         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
814         TARGET_M6812.
815         (asm_print_register): Likewise.
816         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
817         (m68hc11_indirect_p): Declare.
818         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
819         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
820         (TARGET_SWITCHES): New option -mrelax.
821         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
822         destination.
823         ("iorsi3", "xorsi3"): Likewise.
824         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
825         ("*andhi3_mem"): New to handle destination in memory with bclr
826         and a scratch register.
827         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
828         ("*andhi3_const"): New when operand2 is constant.
829         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
830         ("*andhi3_gen"): Cleanup of the old "andhi3".
831         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
832         ("xorqi3"): Update constraints.
833
834 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
835
836         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
837         for reg_equiv_memory_loc when the operand is a register that does
838         not get a hard register (stack location).
839         (tst_operand): After reload, accept all memory operand.
840         (symbolic_memory_operand): Fix detection of symbolic references.
841         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
842         accept symbols and any constant.
843
844 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
845
846         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
847         note on the insn that sets the soft frame register.
848         (must_parenthesize): ix and iy are also reserved names.
849         (print_operand_address): One more place where parenthesis are required
850         to avoid confusion with register names.
851         (m68hc11_gen_movhi): Allow push of stack pointer.
852         (m68hc11_check_z_replacement): Fix handling of parallel with a
853         clobber.
854         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
855         the replacement register is.
856         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
857         and D8_REGS classes.
858         (MODES_TIEABLE_P): All modes are tieable except QImode.
859
860 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
861
862         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
863         (___subdi3): Likewise.
864         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
865         (__map_data_section): Optimize 68hc11 case.
866
867 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
868
869         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
870         than a shift to avoid adding a register with itself.
871         (m68hc11_memory_move_cost): Take into account NO_REGS.
872         (m68hc11_register_move_cost): Update and use memory move cost
873         for soft registers.
874         (m68hc11_address_cost): Make cost of valid offset not 0 so that
875         it gives more opportunities to cse to optimize.
876         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
877         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
878
879 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
880
881         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
882         * c-common.def (CLEANUP_STMT): New tree node.
883         * c-common.h (CLEANUP_DECL): New macro.
884         (CLEANUP_EXPR): Likewise.
885         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
886         * expr.c (expand_expr): Tidy.
887         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
888         * tree-inline.c (initialize_inlined_parameters): Clean up
889         new local variables.
890
891 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
892
893         PR bootstrap/4128
894         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
895         before movrXX only, use reg_overlap_mentioned_p.
896         Only special case NE if just one insn can be generated.
897
898 2002-03-15  Jason Merrill  <jason@redhat.com>
899
900         * varasm.c (assemble_variable): Call resolve_unique_section before
901         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
902         of error_mark_node.
903
904 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
905
906         PR target/5170
907         * arm.md (split pattern for thumb shiftable immediates): Add comment
908         explaining non-obvious test.
909
910 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
911
912         PR target/5712
913         * arm.md (movaddr, movaddr_insn): Delete.
914
915 2002-03-15  Jason Merrill  <jason@redhat.com>
916
917         * toplev.c (wrapup_global_declarations): Clarify variable handling.
918         -fkeep-static-consts doesn't apply to comdats.
919
920 2002-03-14  Richard Henderson  <rth@redhat.com>
921
922         * c-decl.c: Include c-pragma.h.
923         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
924         (finish_function): Tidy.
925         * c-pragma.c: Include c-common.h.
926         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
927         (handle_pragma_weak): Use them.
928         (init_pragma): Register pending_weaks.
929         * c-pragma.h (maybe_apply_pragma_weak): Declare.
930         * print-tree.c (print_node): Print DECL_WEAK.
931         * varasm.c (mark_weak_decls): Remove.
932         (remove_from_pending_weak_list): Remove.
933         (add_weak): Remove.
934         (asm_emit_uninitialised): Call globalize_decl for weak commons.
935         (weak_decls): Make a tree_list.
936         (declare_weak): Cons weak_decls directly.
937         (globalize_decl): Remove weak_decls elements directly.
938         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
939         symbols.  Don't pretend to handle aliases.
940         (init_varasm_once): Update weak_decls registry.
941         * Makefile.in: Update dependencies.
942
943 2002-03-14  Richard Henderson  <rth@redhat.com>
944
945         PR target/5312
946         * config/ia64/ia64.c: Include tm_p.h last.
947         (gen_nop_type): Remove duplicate definition.
948         (cycle_end_fill_slots): Set sched_data for second L slot.
949         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
950         (nop_cycles_until): Fix typos.
951
952 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
953
954         PR optimization/5891
955         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
956
957 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
958
959         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
960           descriptors correctly.
961
962 2002-03-14  Michael Meissner  <meissner@redhat.com>
963
964         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
965         100, allowing MAX_UNROLLED_INSNS to be overridden.
966
967         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
968         --param.
969
970         * unroll.c (params.h): Include.
971         (MAX_UNROLLED_INSNS): Delete, now in params.h.
972
973         * doc/invoke.texi (--param max-unroll-insns): Document.
974
975         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
976
977 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
978
979         * arm.md: Fix warnings about constraints in peepholes and splits.
980
981 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
982
983         * cpphash.h (struct lexer_state): Remove line_extension member.
984         * cpplib.c (dequote_string, do_linemarker): New functions.
985         (linemarker_dir): New data object.
986         (DIRECTIVE_TABLE): No longer need to interpret #line in
987         preprocessed source.  Delete obsolete comment about return
988         values of handlers.
989         (end_directive, directive_diagnostics, _cpp_handle_directive):
990         Don't muck with line_extension.
991         (directive_diagnostics): No need to issue warnings for
992         linemarkers here.
993         (_cpp_handle_directive): Issue warnings for linemarkers here,
994         when appropriate.  Dispatch linemarkers to do_linemarker, not
995         do_line.
996         (do_line): Code to handle linemarkers split out to do_linemarker.
997         Convert escape sequences in filename argument, both places.
998
999         * cppmacro.c (quote_string): Rename cpp_quote_string and
1000         export.  All callers changed.
1001         * cpplib.h (cpp_quote_string): Prototype.
1002         * cppmain.c (print_line): Call cpp_quote_string on to_file
1003         before printing it.
1004
1005         * doc/cpp.texi: Document that escapes are now interpreted in
1006         #line and in linemarkers, and that non-printing characters are
1007         converted to octal escapes when linemarkers are generated.
1008
1009 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
1010
1011         * emit-rtl.c (try_split): Use delete_insns.
1012         * recog.c (split_all_insns): Fix terminating condition.
1013
1014 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
1015             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
1016
1017         PR target/5828
1018         * arm.c (arm_output_epilogue): Fix floating-point register save
1019         adjustment when using a frame pointer.
1020
1021 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
1022
1023         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
1024         * config/mips/mips.c (compute_frame_size): Retrofit them here.
1025         (save_restore_insns, mips_expand_epilogue): And here.
1026         (build_mips16_call_stub): And here.
1027         (mips_function_value): Use the new macros to decide whether a single
1028         or complex float can be returned in floating-point registers.  Return
1029         a parallel rtx in the complex case.
1030
1031 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
1032
1033         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
1034         call after liveness analysis.
1035
1036         * recog.c (split_insn): Use delete_insn_and_edges.
1037
1038         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
1039         instructions to have branch prediction notes.
1040         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
1041
1042 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
1043
1044         * configure.in: Don't pass -Wno-long-long to a ADA compiler
1045         that doesn't support it.
1046         * configure: Regenerate.
1047
1048 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
1049
1050         PR target/5626
1051         * config/sparc/sparc.md (normal_branch, inverted_branch,
1052         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
1053         inverted_fp_branch): Adjust calls to output_cbranch.
1054         Set length attribute.
1055         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
1056         output_v9branch.  Set length attribute.
1057         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
1058         predicates.
1059         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
1060         (output_cbranch): Likewise.  Handle far branches.
1061         (output_v9branch): Handle far branches.
1062         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
1063         Adjust prototypes.
1064         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
1065         noov_compare64_op predicates.
1066
1067 2002-03-13  Jason Merrill  <jason@redhat.com>
1068
1069         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
1070         into the function and constify it.
1071         * gthr-dce.h, gthr-solaris.h: Likewise.
1072
1073 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
1074
1075         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
1076         * config/rs6000/rs6000.c (rs6000_va_arg): Use
1077         std_expand_builtin_va_arg if not ABI_V4.
1078
1079 2002-03-13  Jason Merrill  <jason@redhat.com>
1080
1081         * varasm.c (globalize_decl): New fn.
1082         (assemble_start_function): Use it.
1083         (asm_emit_uninitialized): Use it.
1084         (assemble_alias): Use it.
1085         (assemble_variable): Use it.
1086
1087 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
1088
1089         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
1090         2002-03-12 internal visibility change.
1091         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
1092         visibility into SYMBOL_REF_FLAG.
1093
1094 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
1095
1096         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
1097         VOIDmode operand.  Add compile-time optimization for constant results.
1098
1099 2002-03-12  Jason Merrill  <jason@redhat.com>
1100
1101         * c-typeck.c (convert_for_assignment): Don't allow conversions
1102         between pointers and references.  Only allow lvalues to convert to
1103         reference.
1104
1105 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
1106
1107         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
1108         before prologue, to avoid scheduling problems.
1109
1110 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
1111
1112         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
1113         (ELIMINABLE_REGS): Add sfp->sp.
1114         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
1115
1116 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
1117
1118         PR optimization/5892
1119         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
1120
1121 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
1122
1123         * loop.c (basic_induction_var): Don't call convert_modes if mode
1124         classes are different.
1125
1126 2002-03-12  Richard Henderson  <rth@redhat.com>
1127
1128         PR optimization/5901
1129         * function.c (reposition_prologue_and_epilogue_notes): Position
1130         the markers after/before the last/first insn not deleted.
1131
1132 2002-03-12  Richard Henderson  <rth@redhat.com>
1133
1134         PR optimization/5878
1135         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
1136         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
1137         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
1138
1139         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
1140         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
1141         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
1142
1143         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
1144         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
1145         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
1146         also.  Don't set it if not flag_pic.
1147         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
1148         to be INVALID_REGNUM when not used.
1149
1150 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
1151
1152         * expmed.c (store_bit_field): Reset alias set for memory.
1153         (extract_bit_field): Same.
1154
1155 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1156
1157         * c-common.c (c_tree_code_type, c_tree_code_length,
1158         c_tree_code_name, add_c_tree_codes): Delete.
1159         * c-common.h (add_c_tree_codes): Delete.
1160         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
1161         Define.
1162         * c-objc-common.c (c_objc_common_init): Don't call
1163         add_c_tree_codes, instead set lang_unsafe_for_reeval.
1164         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
1165         objc_tree_code_name, add_objc_tree_codes): Delete.
1166         (objc_init): Don't call add_objc_tree_codes.
1167         * objc/objc-lang.c (tree_code_type, tree_code_length,
1168         tree_code_name): Define.
1169         * toplev.c (lang_independent_init): Don't set
1170         tree_code_length[IDENTIFIER_NODE].
1171         * tree.c (tree_code_type, tree_code_length, tree_code_name):
1172         Delete definitions, moved to language front-ends.
1173         * tree.def (IDENTIFIER_NODE): Hardwire the length.
1174         * tree.h (tree_code_type, tree_code_length, tree_code_name):
1175         Const-ify.
1176         (tree_code_length): Change type to unsigned char.
1177
1178 2002-03-12  Richard Henderson  <rth@redhat.com>
1179
1180         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
1181         internal visibility change.
1182
1183 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
1184
1185         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
1186         validize_mem() instead of change_address to avoid clobbering
1187         memory attributes.
1188
1189 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
1190
1191         * c-lex.h (position_after_whitespace): Remove.
1192
1193 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
1194
1195         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
1196         (lex_string): Use unsigned char pointers.
1197
1198 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
1199
1200         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
1201         is not a valid memory_operand.
1202
1203 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
1204
1205         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
1206         * config/xtensa/lib1funcs.asm: Fix copyright to include
1207         special case for libgcc files.
1208         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
1209         (__divsi3): Likewise.
1210         (__umodsi3): Likewise.
1211         (__modsi3): Likewise.
1212         * config/xtensa/lib2funcs.S: Fix copyright to include
1213         special case for libgcc files.
1214
1215 2002-03-12  Tom Rix  <trix@redhat.com>
1216
1217         * collect2.c (resolve_lib_name): Move outside of
1218         OBJECT_FORMAT_COFF ifdef.
1219         (ignore_library): Same.
1220
1221 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
1222
1223         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
1224
1225 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
1226
1227         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
1228         to function_section before writing out the constant pool.
1229
1230 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
1231
1232         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
1233         zero_constant.
1234         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
1235
1236 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
1237
1238         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
1239         (adddi3): Likewise.
1240         (movdf): Likewise.
1241         (movdi): Likewise.
1242         (cmpsi splitter): Likewise.
1243         (modsi3): Fail if <= 0.
1244         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
1245         redundant test when HOST_BITS_PER_WIDE_INT != 32.
1246         (reg_or_sub_cint64_operand): Likewise.
1247         (num_insns_constant_wide): Optimize sign extension.
1248         (rs6000_legitimize_address): Likewise.
1249
1250 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
1251
1252         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1253         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1254
1255 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
1256
1257         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
1258         address calculation.
1259
1260 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
1261
1262         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
1263         scratch register to DImode / TImode.
1264         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
1265         register used does not overlap the target.
1266
1267 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1268
1269         * Makefile.in (debug.o): Depend on debug.h.
1270         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
1271         * debug.c (do_nothing_debug_hooks): Likewise.
1272         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
1273         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
1274         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
1275         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1276         * dwarfout.c (dwarf_debug_hooks): Likewise.
1277         * integrate.c (output_inline_function): Likewise.
1278         * objc/objc-act.c (synth_module_prologue): Likewise.
1279         * sdbout.c (sdb_debug_hooks): Likewise.
1280         * toplev.c (debug_hooks): Likewise.
1281         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1282
1283 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1284
1285         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
1286         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
1287         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
1288         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
1289         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
1290         * defaults.h (POINTER_SIZE): Define.
1291         * doc/tm.texi (POINTER_SIZE): Document default.
1292
1293 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1294
1295         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
1296
1297 2002-03-11  Richard Henderson  <rth@redhat.com>
1298
1299         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
1300         if rebuild_label_notes_after_reload.
1301
1302 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
1303
1304         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
1305         emit pic register load if "internal" visibility.
1306         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
1307         (cris_expand_builtin_va_arg): Do all computations on trees.
1308
1309 2002-03-11  Richard Henderson  <rth@redhat.com>
1310
1311         * rtlanal.c: Include recog.h.
1312         (keep_with_call_p): Fix thinko.
1313         * Makefile.in (rtlanal.o): Update dependencies.
1314
1315 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
1316
1317         * genflags.c (gen_insn): Use IS_VSPACE.
1318         * genoutput.c (output_insn_data): Likewise.
1319         (process_template): Likewise.
1320
1321 2002-03-11  Richard Henderson  <rth@redhat.com>
1322
1323         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
1324
1325 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
1326
1327         * Makefile.in: Update.
1328         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
1329         Update documentation.
1330         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
1331         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
1332
1333 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
1334
1335         * Makefile.in: Give texi2pod its input file as a command line
1336         argument, not on stdin.
1337
1338 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
1339             Daniel Berlin  <dan@dberlin.org>
1340
1341         C++ alias analysis improvement.
1342         * alias.c (record_component_aliases): Record aliases for base
1343         classes too.
1344
1345 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
1346
1347         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
1348
1349 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
1350
1351         * toplev.c (vms_fopen): Remove, not needed.
1352
1353         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
1354
1355         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
1356
1357         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
1358         for FP, already done later.
1359
1360         * toplev.c (debug_args): Add entry for VMS_DEBUG.
1361         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
1362
1363 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
1364
1365         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
1366         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
1367         LARGEST_EXPONENT_IS_NORMAL for the given mode.
1368         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
1369         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
1370         (ediv, emul, eldexp, esqrt): Likewise.
1371         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
1372         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
1373         (saturate): New function.
1374         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
1375         (make_nan): Use a saturation value instead of a NaN if
1376         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
1377         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
1378         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
1379         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
1380         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
1381         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
1382         !ROUND_TOWARDS_ZERO.
1383         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
1384         (ROUND_TOWARDS_ZERO): Document.
1385
1386 2002-03-11  Andreas Jaeger  <aj@suse.de>
1387
1388         * cfg.c (dump_flow_info): Remove unused variable.
1389
1390 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
1391
1392         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
1393         computations on trees.
1394
1395 2002-03-10  Richard Henderson  <rth@redhat.com>
1396
1397         PR 5693:
1398         * reload.c (copy_replacements_1): New.
1399         (copy_replacements): Use it to recurse through the rtx.
1400
1401 2002-03-10  Richard Henderson  <rth@redhat.com>
1402
1403         * loop.c (strength_reduce): Compute number of iterations as
1404         unsigned HOST_WIDE_INT.
1405
1406 2002-03-10  Richard Henderson  <rth@redhat.com>
1407
1408         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
1409         to move away from the end of the block.
1410
1411 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
1412
1413         PR preprocessor/5899
1414         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
1415
1416 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1417
1418         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
1419
1420         * attribs.c (decl_attributes): Fix signed/unsigned warning.
1421
1422 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
1423
1424         * config/mmix/mmix.c: Improve comments.
1425         (mmix_target_asm_function_prologue): Drop variable
1426         empty_stack_frame.  Don't allocate unused slot above fp.
1427         (mmix_target_asm_function_epilogue): Mirror prologue changes.
1428         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
1429         brace in first column.
1430         (enum reg_class): Ditto.
1431         (FIRST_PARM_OFFSET): Now 0.
1432         (USER_LABEL_PREFIX): Remove #if 0:d definition.
1433
1434 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1435
1436         * combine.c (make_extraction): Fix error in last change.
1437
1438 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1439
1440         * c4x.c (c4x_fp_reglist): Const-ify.
1441         * cris.c (cris_print_operand): Likewise.
1442         * i386.c (ix86_va_arg): Likewise.
1443         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
1444         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
1445         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
1446         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
1447         * mcore.h (regno_reg_class): Likewise.
1448         * mips.c (gen_int_relational): Likewise.
1449         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
1450         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
1451         * pdp11.c (move_costs): Likewise.
1452         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
1453         * s390.c (s390_branch_condition_mnemonic, regclass_map):
1454         Likewise.
1455         * s390.h (regclass_map): Likewise.
1456         * sh.c (shift_amounts): Likewise.
1457         * sh.md (rotlsi3): Likewise.
1458
1459 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
1460
1461         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
1462         (ne0+5): Use new clobber to generate proper shift pattern.
1463         Patch by Michael Matz <matz@kde.org>.
1464
1465 2002-03-09  Andreas Schwab  <schwab@suse.de>
1466
1467         * gcc.c (validate_all_switches): Also handle `%W{...}'.
1468
1469 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
1470
1471         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
1472
1473 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
1474
1475         PR middle-end/5877
1476         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
1477         even for non-representable constants.
1478
1479 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1480
1481         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
1482         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
1483         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
1484         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
1485         (pop_function_context): Compute MAY_SHARE parameter for
1486         fixup_var_refs.
1487         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
1488         (gen_mem_addressof): Call fixup_var_refs with new parm.
1489
1490         * combine.c (make_extraction): Don't make extension of CONST_INT.
1491
1492 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
1493
1494         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
1495         in o32 and o64 ABIs.
1496         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
1497         but getting fixed-size structs passed in registers regardless of
1498         padding in o32 and o64 ABIs.
1499
1500         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
1501         offset before loading address of argument passed by transparent
1502         reference.
1503
1504 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1505
1506         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
1507
1508 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
1509
1510         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
1511         marker such that registers after it are saved.
1512
1513 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1514
1515         * sparc.c (arith_4096_operand): Fix error in last change.
1516
1517 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
1518
1519         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
1520         defaults for MEABI.
1521
1522 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
1523
1524         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
1525         vectors.
1526
1527 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
1528
1529         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
1530
1531 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
1532
1533         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
1534         removed; fix return value.
1535         * combine.c (combine_instructions): Dirtify blocks where we failed to
1536         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
1537         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
1538
1539 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1540
1541         * gcse.c (insert_insn_end_bb): Fix typo in last change.
1542
1543 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
1544
1545         * recog.c (peephole2_optimize): Re-distribute EH edges.
1546
1547 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1548
1549         * expr.c (expand_expr): Use unsave lang hook.
1550         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
1551         (LANG_HOOKS_INITIALIZER): Update.
1552         * langhooks.h (struct lang_hooks): New hook unsave.
1553         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
1554         (unsave_expr_1): Remove unused lang_unsave_expr_now.
1555         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
1556         (unsave_expr_now): Remove.
1557         * tree.h (unsave_expr_now, lang_unsave,
1558         lang_unsave_expr_now): Remove.
1559         (lhd_unsave): New.
1560
1561 2002-03-08  Andreas Jaeger  <aj@suse.de>
1562
1563         * flow.c (propagate_block_delete_insn): Remove unused variable.
1564
1565 2002-03-08  Kazu Hirata  <kazu@hxi.com>
1566
1567         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
1568         insn length for memory load/store.
1569
1570 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1571
1572         * doc/install.texi (--with-libiconv-prefix): Document.
1573
1574 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
1575
1576         * doc/sourcebuild.texi: Fix typo.
1577
1578 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
1579
1580         PR c/3711
1581         * builtins.c (std_expand_builtin_va_arg): Do all computations on
1582         trees.
1583
1584 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1585
1586         * rtl.c (copy_most_rtx): Move from here ...
1587         * emit-rtl.c (copy_most_rtx): ... to here.
1588
1589 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
1590
1591         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
1592         SUBTARGET_CPP_SIZE_SPEC.
1593         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
1594
1595         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
1596
1597 2002-03-07  Matt Hiller  <hiller@redhat.com>
1598
1599         * gensupport.c (first_dir_md_include): Renamed from include;
1600         change all references.
1601         (last_dir_md_include): Renamed from last_include; change all
1602         references.
1603         (init_md_reader): Unconditionally initialize base_dir whether or
1604         not filename is a relative path.
1605
1606 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
1607
1608         * config/fp-bit.c (_unord_f2): Compile it in even if
1609         US_SOFTWARE_GOFAST is enabled.
1610
1611         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
1612         NULL_RTX.  Set all HFmode operations as NULL_RTX.
1613         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
1614         NULL_RTX, try reversing the comparison and the operands.
1615
1616 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
1617
1618         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
1619         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
1620         and MATCH_OP_DUP.
1621
1622 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
1623
1624         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
1625
1626 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
1627
1628         * basic-block.h (fixup_abnormal_edges): Declare.
1629         * reload1.c (fixup_abnormal_edges): New function.
1630         * reg-stack.c (convert_regs): Use it.
1631
1632         * gcse.c (insert_insn_end_bb): Handle trapping insns.
1633
1634         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
1635
1636 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
1637
1638         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
1639         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
1640         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
1641         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
1642         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
1643         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
1644         unless x and y could be infinite.
1645         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
1646         Check that the common type of both arguments is a real, even for
1647         targets without unordered comparisons.  Allow an integer argument
1648         to be compared against a real.
1649         (expand_tree_builtin): Use expand_unordered_cmp.
1650         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
1651         * cse.c (fold_rtx): Likewise.  Fix indentation.
1652         * fold-const.c (fold_real_zero_addition_p): New.
1653         (fold): Use it, and the new HONOR_... macros.
1654         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
1655         * jump.c (reversed_comparison_code_parts): After searching for
1656         the true comparison mode, use HONOR_NANS to decide whether it
1657         can be safely reversed.
1658         (reverse_condition_maybe_unordered): Remove IEEE check.
1659         * simplify-rtx.c (simplify_binary_operation): Use the new macros
1660         to decide which simplifications are valid.  Allow the following
1661         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
1662         and (a - -b) to (a + b).
1663         (simplify_relational_operation): Use HONOR_NANS.
1664         * doc/tm.texi: Document the MODE_HAS_... macros.
1665
1666 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
1667
1668         * combine.c (simplify_comparison): If simplifying a logical shift
1669         right and compare with constant, force the comparison to unsigned.
1670
1671 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
1672
1673         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
1674
1675         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
1676         -mabi=no-altivec
1677         (alt_reg_names): Remove % for vrsave.
1678
1679 2002-03-06  Richard Henderson  <rth@redhat.com>
1680
1681         PR optimization/5844
1682         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
1683         if used indicates we've already emitted one copy of an operand.
1684         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
1685         (gen_split): Supply a non-null used.
1686
1687 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
1688
1689         * reload1.c (reload): Unshare all rtl after reload is done.
1690
1691         * simplify-rtx.c (simplify_plus_minus): Do not abort,
1692         but simply fail if the expression is too complex to simplify.
1693         (simplify_gen_binary): Handle simplify_plus_minus failures.
1694
1695 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
1696
1697         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
1698         consistently call delete_trivially_dead_insns after CSE and GCSE;
1699         fix DFI_life dumping; do jump threading after liveness; do crossjumping
1700         after liveness2; update comment in last crossjumping.
1701         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
1702
1703 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
1704
1705         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
1706         after completing fast dead code elimination.
1707
1708         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
1709         COMPARE operator.
1710
1711 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
1712
1713         * version.c:  Fix misplaced leading blanks on first line.
1714
1715 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
1716
1717         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
1718
1719 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
1720
1721         * cfgcleanup.c (mentions_nonequal_regs): New function.
1722         (thread_jump): Use it.
1723         * toplev.c (rest_of_compilation): Run jump threading after
1724         liveness.
1725
1726 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
1727
1728         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
1729         patch.
1730
1731 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
1732
1733         * predict.c (estimate_bb_frequencies): Do not reload the
1734         frequencies from notes.
1735
1736 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
1737
1738         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
1739         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
1740
1741         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
1742         delete_noop_moves): Return indeger.
1743         * flow.c (ndead): New variable.
1744         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
1745         BB argument; update callers.
1746         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
1747         (life_analysis): Do not call purge_all_dead_edges.
1748         (update_life_info): Return number of deleted insns; print statistics.
1749         (update_life_info_in_dirty_blocks): likewise.
1750         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
1751         return number of insns deleted.
1752
1753         * cse.c: Include timevar.h
1754         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
1755         iterate until stabilizes; print statistics; return number of killed
1756         insns.
1757         * Makefile.in: (cse.o): Add timevar.h dependency
1758         * rtl.h (delete_trivially_dead_insns): New.
1759         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
1760         * toplev.c (rest_of_compilation): Update callers.
1761
1762         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
1763         (try_optimize_cfg): Do not update liveness.
1764         (cleanup-cfg): Loop until try_optimize_cfg and dead code
1765         removal stabilizes; use delete_trivially_dead_insns.
1766
1767         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
1768
1769 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
1770
1771         * cppmain.c (setup_callbacks): Disable #pragma and #ident
1772         callbacks when processing assembly language.
1773
1774 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1775
1776         * pa.h (ASM_FILE_END): Define.
1777         * som.h (ASM_FILE_END): Delete.
1778
1779         * pa.c (function_arg): Don't pass floats in general registers in
1780         indirect calls if TARGET_ELF32.
1781
1782 2002-03-05  Richard Henderson  <rth@redhat.com>
1783
1784         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
1785
1786 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
1787
1788         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
1789
1790 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
1791
1792         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
1793         -r command line.  Don't hide any symbols if not building
1794         shared libgcc.
1795
1796 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
1797
1798         * cfg.c (dump_flow_info): Warn about profile mismatches.
1799         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
1800         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
1801
1802 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
1803
1804         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
1805         wide volatile memory by parts.
1806
1807 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
1808
1809         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
1810         is NULL.
1811
1812 2002-03-05  Richard Henderson  <rth@redhat.com>
1813
1814         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
1815
1816 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
1817
1818         * toplev.c (documented_lang_options): Document more
1819         language-specific options.
1820         * doc/invoke.texi (Warning Options): Correct documentation for
1821         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
1822         * c-decl.c (c_decode_option): Use a table to handle warning options.
1823
1824 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
1825
1826         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
1827         parameter to mmix_encode_section_info.
1828         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
1829         relocatably.  Always produce ELF, not mmo if linking relocatably.
1830         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
1831         first is non-zero, don't add symbol prefix.
1832         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
1833         prototype accordingly.
1834
1835 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
1836
1837         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
1838
1839 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
1840
1841         * configure.in: Increase required makeinfo version to 4.1.
1842         * configure: Regenerate.
1843
1844 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
1845
1846         * .cvsignore: Remove *.info* and genrtl*; these files are generated
1847         elsewhere now.
1848
1849 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
1850
1851         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
1852         * doc/invoke.texi: Fix @math uses.
1853
1854 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
1855
1856         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
1857         removal
1858
1859 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
1860
1861         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
1862         (powerpc-*-eabisimaltivec*): Same.
1863
1864         * config/rs6000/t-ppcendian: New.
1865
1866 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1867
1868         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
1869         nonimmediate_src_operand and nonimmediate_lsrc_operand to
1870         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
1871
1872 2002-03-03  Richard Henderson  <rth@redhat.com>
1873
1874         * toplev.c (rest_of_decl_compilation): Revert last two changes.
1875
1876 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
1877
1878         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
1879         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
1880         tree.c, config/m68k/m68k.c:
1881         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
1882         REAL_ARITHMETIC blocks unconditional.  Delete some further
1883         #ifdef blocks predicated on REAL_ARITHMETIC.
1884         * flags.h, toplev.c: Delete remaining references to
1885         flag_pretend_float.
1886
1887         * doc/invoke.texi: Remove documentation of -fpretend-float.
1888         * doc/tm.texi: Describe the various REAL_* macros as provided by
1889         real.h, not by the target configuration files.
1890
1891         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
1892         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
1893         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
1894         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
1895         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
1896         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
1897         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
1898         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
1899         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
1900         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
1901         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
1902         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
1903         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
1904         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
1905         config/xtensa/xtensa.h:
1906         Do not define, undefine, or mention in comments any of
1907         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
1908         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
1909         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
1910         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
1911         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
1912         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
1913         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
1914         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
1915         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
1916
1917 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1918
1919         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
1920         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
1921         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
1922         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
1923         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
1924         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
1925         Delete.
1926         * defaults.h (BITS_PER_WORD): Define.
1927         * doc/tm.texi (BITS_PER_WORD): Document default value.
1928
1929         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
1930         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
1931         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
1932
1933 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1934
1935         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
1936         lieu of explicit sizeof/sizeof.
1937         * i386.c (override_options, ix86_init_mmx_sse_builtins,
1938         ix86_expand_builtin): Likewise.
1939         * mips.c (mips_add_gc_roots): Likewise.
1940         * mmix.c (mmix_output_condition): Likewise.
1941         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
1942         altivec_init_builtins): Likewise.
1943         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
1944         * cppexp.c (Nsuff, parse_number): Likewise.
1945         * cppinit.c (builtin_array_end): Likewise.
1946         * gcc.c (n_default_compilers, process_command): Likewise.
1947         * genpreds.c (output_predicate_decls): Likewise.
1948         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
1949         * lcm.c (N_ENTITIES): Likewise.
1950         * stor-layout.c (set_sizetype): Likewise.
1951
1952 2002-03-03  Richard Henderson  <rth@redhat.com>
1953
1954         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
1955         for types or labels.
1956
1957 2002-03-03  Richard Henderson  <rth@redhat.com>
1958
1959         * c-decl.c (start_decl): Initialized variables are not common.
1960
1961 2002-03-02  Per Bothner  <per@bothner.com>
1962
1963         * gcc.c (option_map):  Suport new --bootclasspath option.
1964         --CLASSPATH is now just an alias for --classpath.
1965
1966 2002-03-02  Richard Henderson  <rth@redhat.com>
1967
1968         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
1969         load if "internal" visibility.
1970         * doc/extend.texi: Document visibility meanings.
1971
1972 2002-03-02  Richard Henderson  <rth@redhat.com>
1973
1974         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
1975         to functions as well.
1976
1977 2002-03-02  Richard Henderson  <rth@redhat.com>
1978
1979         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
1980         (handle_visibility_attribute): Don't call assemble_visibility.
1981         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
1982         without asmspec.  Invoke assemble_alias when needed.
1983         * varasm.c (maybe_assemble_visibility): New.
1984         (assemble_start_function, assemble_variable, assemble_alias): Use it.
1985
1986 2002-03-02  Richard Henderson  <rth@redhat.com>
1987
1988         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
1989         invoke ENCODE_SECTION_INFO with first call flag.
1990
1991         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
1992         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
1993         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
1994         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
1995         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
1996         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
1997         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
1998         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
1999         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
2000         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
2001         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
2002         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
2003         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
2004         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
2005         config/mcore/mcore-protos.h, config/mcore/mcore.c,
2006         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
2007         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
2008         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
2009         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
2010         config/sh/sh.h, config/sparc/sparc.h,
2011         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
2012         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
2013         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
2014         FIRST argument.  As needed, examine it and do nothing.
2015
2016         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
2017         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
2018         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
2019
2020         * config/arm/t-pe (pe.o): Add dependencies.
2021
2022 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2023
2024         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
2025         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
2026         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
2027         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
2028         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
2029         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
2030         * defaults.h (BITS_PER_UNIT): Define.
2031         * doc/tm.texi (BITS_PER_UNIT): Document default value.
2032
2033 2002-03-02  Kazu Hirata  <kazu@hxi.com>
2034
2035         * config/h8300/h8300-protos.h: Add a prototype for
2036         compute_a_shift_length.
2037         * config/h8300/h8300.c (h8300_asm_insn_count): New.
2038         (compute_a_shift_length): Likewise.
2039         (h8300_adjust_insn_length): Do not adjust insn length of shift
2040         insns.
2041         * config/h8300/h8300.md (anonymous shift patterns): Use
2042         compute_a_shift_length.
2043
2044 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2045
2046         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
2047         trunc_int_for_mode.
2048
2049         * emit-rtl.c (offset_address): Call update_temp_slot_address.
2050
2051 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2052
2053         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
2054         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
2055         * flags.h (flag_zero_initialized_in_bss): Declare.
2056         * toplev.c (flag_zero_initialized_in_bss): New flag.
2057         (lang_independent_options): Add flag_zero_initialized_in_bss.
2058         * tree.c (initializer_zerop): New function.
2059         * tree.h (initializer_zerop): Declare.
2060         * varasm.c (assemble_variable): If we can emit bss, put zero
2061         initializers in the bss section.
2062
2063 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
2064
2065         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
2066         like more than one symbol per .weak directive.
2067
2068 2002-03-01  Richard Henderson  <rth@redhat.com>
2069
2070         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
2071         adjust argument_pointer by pretend_args_size.
2072         (ia64_va_start): Adjust va_start address by -pretend_args_size.
2073
2074 2002-03-01  Kazu Hirata  <kazu@hxi.com>
2075
2076         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
2077
2078 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
2079
2080         * toplev.c (rest_of_compilation): Delete dead jumptables before
2081         loop.
2082         * flow.c (delete_dead_jumptables): Make global.
2083         * rtl.h (delete_dead_jumptables): Declare.
2084
2085 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
2086
2087         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
2088         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
2089         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
2090
2091 2002-03-01  Kazu Hirata  <kazu@hxi.com>
2092
2093         * config/h8300/h8300-protos.h: Fix formatting.
2094         * config/h8300/h8300.c: Likewise.
2095         * config/h8300/h8300.h: Likewise.
2096
2097 2002-03-01  Kazu Hirata  <kazu@hxi.com>
2098
2099         * config/h8300/h8300.c (print_operand): Support 16-bit
2100         constant addresses.
2101         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
2102
2103 2002-02-28  Richard Henderson  <rth@redhat.com>
2104
2105         * expmed.c (store_bit_field): Prevent generation of CONCATs;
2106         pun complex values as integers; use gen_lowpart instead of
2107         gen_rtx_SUBREG.
2108         (extract_bit_field): Likewise.
2109
2110 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
2111             David Edelsohn  <edelsohn@gnu.org>
2112
2113         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
2114         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
2115         (SUPPORTS_WEAK): Likewise.
2116         * output.h (add_weak): Add tree param.
2117         * varasm.c (add_weak): Likewise.  Save decl.
2118         (struct weak_syms): Add decl field.
2119         (mark_weak_decls): New function.
2120         (init_varasm_once): ggc_add_root mark_weak_decls.
2121         (assemble_start_function): Use ASM_WEAKEN_DECL.
2122         (assemble_variable): Likewise.
2123         (assemble_alias): Likewise.
2124         (declare_weak): Pass decl to add_weak.
2125         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
2126         (remove_from_pending_weak_list): Declare and define for
2127         ASM_WEAKEN_DECL.
2128         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
2129         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
2130         * defaults.h (SUPPORTS_WEAK): Likewise.
2131         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
2132         .weak for code sym.  Do emit .size for descriptor sym.
2133         (ASM_DECLARE_FUNCTION_SIZE): Define.
2134         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
2135         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
2136         .lglobl unless TARGET_XCOFF.  Formatting fixes.
2137         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
2138         .weak for code sym.
2139         (HANDLE_PRAGMA_WEAK): Remove.
2140         (ASM_WEAKEN_LABEL): Remove.
2141         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
2142
2143 2002-03-01  Jason Merrill  <jason@redhat.com>
2144
2145         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
2146         (TARGET_EXPR_CLEANUP): New macro.
2147
2148 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
2149
2150         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
2151         to take ptr_extend into account as third type of extension.
2152         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
2153         fields used by SUBREG_PROMOTED_UNSIGNED_P.
2154         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
2155         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
2156         * calls.c (precompute_arguments): Use new macro.
2157         (expand_call): Ditto.
2158         * combine.c (nonzero_bits): Ditto.
2159         (record_promoted_value): Ditto.
2160         * expr.c (store_expr): Ditto.
2161         (expand_expr): Ditto.
2162         * function.c (assign_parms): Ditto.
2163
2164 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
2165
2166         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
2167         override -shared and -shared-libgcc.
2168
2169 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
2170
2171         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
2172         of "ultrasparc".
2173         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
2174         to be broken.
2175
2176 2002-02-28  Richard Henderson  <rth@redhat.com>
2177
2178         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
2179         4 cycle latency from MM producers.
2180         (ia64_internal_sched_reorder): Likewise with pipeline flush.
2181
2182 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
2183
2184         * mklibgcc.in: Don't use GNU make extension.
2185
2186 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2187
2188         * c-parse.in (STATIC): New terminal.
2189         (scspec): New non-terminal.  Update productions accordingly.
2190         (program): Remove bogus ifc / end ifc.
2191         (array_declarator): Simplify production using STATIC.
2192
2193 2002-02-28  Jim Meyering  <meyering@lucent.com>
2194
2195         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
2196         \a still means TARGET_BELL.
2197
2198 2002-02-28  Richard Henderson  <rth@redhat.com>
2199
2200         * haifa-sched.c (sched_emit_insn): New.
2201         (schedule_block): Use last_scheduled_insn to track last insn.
2202         * sched-int.h (sched_emit_insn): Prototype.
2203         * config/ia64/ia64.c (last_issued): Remove.
2204         (ia64_variable_issue): Don't set it.
2205         (nop_cycles_until): Use sched_emit_insn.
2206
2207 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
2208
2209         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
2210         extended constants.
2211
2212 2002-02-28  Kazu Hirata  <kazu@hxi.com>
2213
2214         * config/h8300/h8300.c: Fix formatting.
2215         * config/h8300/h8300.h: Likewise.
2216
2217 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2218
2219         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
2220         which may overwrite the high byte of the frame pointer.
2221
2222 2002-02-28  Bo Thorsen  <bo@suse.de>
2223
2224         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
2225         (STARTFILE_SPEC): Add 64 bit files.
2226         (ENDFILE_SPEC): Likewise.
2227
2228 2002-02-28  Jason Merrill  <jason@redhat.com>
2229
2230         * c-decl.c (finish_function): Only warn about missing return
2231         statement with -Wreturn-type.
2232
2233 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
2234
2235         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
2236
2237         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
2238         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
2239
2240 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2241
2242         * basic-block.h (BB_REACHABLE): Renumber.
2243         (BB_DIRTY, BB_NEW): New flags.
2244         (clear_bb_flags): Declare.
2245         (update_life_info_in_dirty_blocks): Declare.
2246         * cfg.c (clear_bb_flags): New function.
2247         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
2248         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
2249         reorder_insns, emit_insn_after): Mark block as dirty.
2250         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
2251         (update_life_info_in_dirty_blocks): New function.
2252         * recog.c (apply_change_group): Dirtify block.
2253
2254         * cse.c (cse_insn): Reorder emitting of jump insn to keep
2255         cfg consistent.
2256         * gcse.c (delete_null_pointer_checks): Likewise.
2257
2258         * toplev.c (dump_file_index): Move cse2 after bp,
2259         add DFI_null
2260         (dump_file_info): Similary.
2261         (rest_of_compilation): Avoid most of CFG rebuilds;
2262         do first if converision after null pointer checks, do cse2
2263         after branch prediction; avoid full liveness rebuild after
2264         initializing subregs.
2265         * invoke.texi (-d options): Document -du, renumber.
2266
2267         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
2268         (notice_new_block): Do not set BB_UPDATE_LIFE.
2269         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
2270          merge_blocks_move_successor_nojumps, merge_blocks,
2271          try_crossjump_to_edge): Likewise.
2272         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
2273         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
2274         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
2275         (merge_of_block): Do not use life_data_ok.
2276         (find_if_case_1): Do not use SET_UPDATE_LIFE.
2277         (if_convert): Use BB_DIRTY mechanizm to update life.
2278         * lcm.c (optimize_mode_switching): Update
2279         update_life_info_in_dirty_blocks
2280
2281 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2282
2283         * Makefile.in (integrate.o): Update.
2284         * c-decl.c (copy_lang_decl): Rename.
2285         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
2286         * integrate.c: Include langhooks.h.
2287         (copy_decl_for_inlining): Update to use langhook.
2288         * langhooks-def.h (lhd_do_nothing_t,
2289         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
2290         (LANG_HOOKS_INITIALIZER): Update.
2291         * langhooks.c (lhd_do_nothing_t): New.
2292         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
2293         * tree.h (copy_lang_decl): Remove.
2294 objc:
2295         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
2296
2297 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
2298
2299         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
2300         POST_DEC, and POST_MODIFY.
2301
2302 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
2303
2304         * c-typeck.c (digest_init): Remove unused parameter; all
2305         callers changed.
2306
2307 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
2308
2309         * expmed.c (expand_shift): Correctly test for low part of a
2310         subreg.
2311
2312 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
2313
2314         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
2315         insn UIDs with insn addresses.
2316
2317 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
2318
2319         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
2320         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
2321         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
2322         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
2323         gcc.c, toplev.c: Delete code implementing -traditional mode.
2324
2325         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
2326         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
2327         Document removal of -traditional mode for compilation, and
2328         remove documentation only relevant to that mode.
2329
2330         * config/nextstep.h, config/ptx4.h, config/svr4.h,
2331         config/convex/convex.h, config/d30v/d30v.h,
2332         config/i386/dgux.h, config/i386/osf1elf.h,
2333         config/i386/osfelf.h, config/i386/osfrose.h,
2334         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
2335         config/m68k/hp310.h, config/m88k/dgux.h,
2336         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
2337         config/m88k/m88k.h, config/m88k/openbsd.h,
2338         config/mips/abi64.h, config/mips/osfrose.h,
2339         config/mips/svr4-5.h, config/mips/svr4-t.h,
2340         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
2341         config/stormy16/stormy16.h: Remove all references to
2342         -traditional from target specs.  Delete all mention of the
2343         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
2344         delete a couple of commented-out definitions of
2345         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
2346         to -traditional.
2347
2348         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
2349         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
2350
2351 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
2352
2353         * mklibgcc.in: Don't use \n in a line subject to
2354         interpretation by echo.
2355
2356 2002-02-27  Graham Stott  <grahams@redhat.com>
2357
2358         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
2359         Constify NAME.
2360
2361         * loop.c (prescan_loop): Handle PARALLEL.
2362
2363         * unroll.c (loop_iterations): Return 0 if the add_val for
2364         a BIV is REG.
2365
2366         * final.c (output_operand_lossage): Constify PFX_STR.
2367
2368         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
2369
2370 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
2371
2372         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
2373         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
2374
2375 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
2376
2377         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
2378
2379 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2380
2381         * cpplex.c (_cpp_lex_token): Handle directives in macro
2382         arguments.
2383         * cpplib.c (_cpp_handle_directive): Save and restore state
2384         if parsing macro args when entering a directive.
2385         * cppmacro.c (collect_args): No need to handle directives
2386         in macro arguments.
2387         (enter_macro_context, replace_args): Use the original macro
2388         definition in case it was redefined whilst collecting arguments.
2389 doc:
2390         * cpp.texi: Update.
2391
2392 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
2393
2394         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
2395         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
2396         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
2397         method on AIX.
2398         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
2399         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
2400         (load_toc_v4_PIC_2): Same.
2401
2402 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
2403
2404         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
2405
2406 2002-02-26  Richard Henderson  <rth@redhat.com>
2407
2408         * config/alpha/alpha.md (ashldi_se): Re-enable.
2409
2410 2002-02-26  Richard Henderson  <rth@redhat.com>
2411
2412         * config/alpha/alpha.c (alpha_encode_section_info): Examine
2413         MODULE_LOCAL_P; improve commentary.
2414
2415 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
2416
2417         * doc/cpp.texi: Clarify documentation of relationship between
2418         #line and #include.
2419
2420 2002-02-26  Kazu Hirata  <kazu@hxi.com>
2421
2422         * config/h8300/h8300-protos.h: Update the prototype for
2423         compute_logical_op_length.  Add the prototype for
2424         compute_logical_op_cc.
2425         * config/h8300/h8300.c (compute_logical_op_length): Figure out
2426         code from operands.
2427         (compute_logical_op_cc): New.
2428         * config/h8300/h8300.md: Combine all the logical op patterns
2429         in HImode and SImode.  Use compute_logical_op_cc.
2430
2431 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
2432
2433         * config/i386/i386.c (print_operand): Don't append ATT-style
2434         length suffixs to x87 opcodes when in Intel mode.
2435
2436 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
2437
2438         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
2439         (init_emit_once): Update calls.
2440         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
2441         (init_syntax_once): Prototype.
2442
2443 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2444
2445         * pa-linux.h (LIB_SPEC): Update definition.
2446         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
2447
2448 2002-02-26  Richard Henderson  <rth@redhat.com>
2449
2450         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
2451         if we emitted a stop bit.
2452
2453 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
2454
2455         * configure.in (libgcc_visibility): Substitute.
2456         * configure: Rebuilt.
2457         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
2458         defined symbols .hidden.
2459
2460 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
2461
2462         * attribs.c (c_common_attribute_table): Add visibility.
2463         (handle_visibility_attribute): New function.
2464         * varasm.c (assemble_visibility): New function.
2465         * output.h (assemble_visibility): Add prototype.
2466         * tree.h (MODULE_LOCAL_P): Define.
2467         * crtstuff.c (__dso_handle): Use visibility attribute.
2468         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
2469         for MODULE_LOCAL_P symbols too.
2470         * config/ia64/ia64.c (ia64_encode_section_info): Handle
2471         MODULE_LOCAL_P symbols the same way as local symbols.
2472         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
2473         into .sdata/.sbss by the user.
2474         * doc/extend.texi (Function Attributes): Document visibility
2475         attribute.
2476
2477 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
2478
2479         PR debug/5770
2480         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
2481         STRING_CST initializer spanning the whole variable without
2482         embedded zeros.
2483         If expand_expr returned MEM, don't use it.
2484
2485 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
2486
2487         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
2488         generate a die for the lexical block.
2489
2490 2002-02-26  Kazu Hirata  <kazu@hxi.com>
2491
2492         * config/h8300/h8300-protos.h: Add a prototype for
2493         compute_logical_op_length.
2494         * config/h8300/h8300.c (compute_logical_op_length): New.
2495         * config/h8300/h8300.md (anonymous logical patterns): Use
2496         compute_logical_op_length for length.
2497
2498 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
2499
2500         * dwarf2out.c (modified_type_die): Do not call type_main_variant
2501         for vectors.
2502         (gen_type_die): Same.
2503
2504         * attribs.c (handle_vector_size_attribute): Set debug information.
2505
2506 2002-02-26  Daniel Egger  <degger@fhm.edu>
2507
2508         * config/rs6000/rs6000.md: Swap define_insn attributes to
2509         fix incorrect generation of merge high instructions instead
2510         of merge low.
2511
2512 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
2513
2514         * c-typeck.c (really_start_incremental_init): Use
2515         bitsize_zero_node for vectors.
2516
2517 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
2518
2519         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
2520         ("*set_vrsave_internal"): Same.
2521
2522 2002-02-25  Richard Henderson  <rth@redhat.com>
2523
2524         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
2525         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
2526
2527 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
2528
2529         PR target/5755
2530         * config/i386/i386.c (ix86_return_pops_args): Only pop
2531         fake structure return argument if it was passed on the stack.
2532
2533 2002-02-25  Jason Merrill  <jason@redhat.com>
2534
2535         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
2536         RESULT_DECL.
2537
2538 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
2539
2540         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
2541         link with shared_name only.
2542         * doc/invoke.texi (Link Options): Document new behavior.
2543
2544 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
2545
2546         * c-typeck.c (push_init_level): Handle vectors.
2547
2548 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
2549
2550         * config/sparc/sparc.c (const64_high_operand): Zero-extend
2551         operands of SPARC_SETHI_P.
2552         (input_operand): Likewise.
2553         (sparc_emit_set_const32): Likewise.
2554         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
2555         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
2556         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
2557         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
2558         (movdi_insn_sp64_vis): Likewise.
2559         (movdi split, movdf split): Use SETHI32.
2560         * doc/md.texi: Document SPARC constraints L, M and N.
2561
2562 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
2563
2564         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
2565         ("*set_vrsave_internal"): use mfspr for Darwin.
2566
2567         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
2568         gen_get_vrsave_internal.
2569
2570 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2571
2572         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
2573
2574 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2575
2576         * cpplex.c (cpp_interpret_charconst): Get signedness or
2577         otherwise of wide character constants correct.
2578         * cppexp.c (lex): Get signedness of wide charconsts correct.
2579
2580 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2581
2582         * optabs.c (widen_operand): Only call convert_modes for
2583         promoted SUBREG if signedness matches.
2584         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
2585
2586 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
2587
2588         * cpplib.c (glue_header_name): Use local buffer to build up
2589         header name.
2590
2591 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
2592
2593         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
2594
2595 2002-02-23  Kazu Hirata  <kazu@hxi.com>
2596
2597         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
2598         H8/300[HS] separately.
2599         * config/h8300/h8300.md: Remove the early clobber constraint
2600         from bit field patterns.
2601
2602 2002-02-23  Kazu Hirata  <kazu@hxi.com>
2603
2604         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
2605         register_operand.
2606         (mulhisi3): Likewise.
2607         (umulqisi3): Likewise.
2608         (umulhisi3): Likewise.
2609
2610 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
2611
2612         * cppinit.c (output_deps): Correct test for stdout output.
2613         (init_dependency_output): Cure warning.
2614
2615 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2616
2617         * expr.c (store_expr): When converting expression to promoted
2618         equivalent type, allow using SUBREG_REG of TARGET as the target
2619         of the expansion of EXP.
2620         * loop.c (basic_induction_var, case SUBREG): Always look inside.
2621         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
2622         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
2623         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
2624         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
2625
2626 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
2627
2628         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
2629         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
2630         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
2631
2632 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
2633
2634         PR optimization/5747
2635         * loop.c (scan_loop): Update reg info if move_movables created new
2636         pseudos.
2637
2638 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
2639
2640         * gcc.c (init_gcc_spec): Revert last change.
2641
2642 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
2643
2644         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
2645         gpc_reg_operand constraint.
2646
2647 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
2648
2649         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
2650         Simplify comparison of `low'.
2651         (add_operand): Fix formatting.
2652         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
2653         (mask_operand): Disallow mask to wrap in 64-bit mode.
2654         (rs6000_stack_info): Remove redundant test setting push_p.
2655         (output_toc): Fix formatting.
2656         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
2657         cc_reg_not_cr0_operand constraint.
2658         (booldi3, boolcdi3 splitters): Same.
2659
2660 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
2661
2662         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
2663
2664 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
2665
2666         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
2667         gcc invoked with -shared-libgcc.
2668
2669 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
2670
2671         PR c++/5748
2672         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
2673         decl if any of elements was TREE_USED.
2674
2675 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
2676
2677         * config/sparc/sol2.h: Don't include sys/mman.h.
2678         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
2679         (arith_4096_operand): Don't throw high bits away.
2680         (const64_operand): Take sign extension of CONST_INTs into account.
2681         (const64_high_operand, sparc_emit_set_const32): Likewise.
2682         (GEN_HIGHINT64): Likewise.
2683         (sparc_emit_set_const64_quick1): Likewise.
2684         (const64_is_2insns): Likewise.
2685         (print_operand): Use trunc_int_for_mode for sign extension.
2686         * config/sparc/sparc.h (SMALL_INT32): Likewise.
2687         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
2688         chars.  Assume CONST_INT is already properly sign-extended.
2689         (movdi split): Sign-extend each SImode part.
2690         (andsi3 split): Don't mask high bits off, so that result
2691         remains properly sign-extend.
2692         (iorsi3 split): Likewise.
2693         (xorsi3 split): Likewise.
2694
2695 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
2696
2697         * fold-const.c (fold): Fix typo in comments.
2698
2699 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
2700
2701         * Makefile.in (langhooks.o): Update dependencies.
2702
2703 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
2704
2705         * langhooks.c: Include flags.h.
2706
2707 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
2708
2709         * testsuite/gcc.dg/attr-alwaysinline.c: New.
2710
2711         * c-common.c (c_common_post_options): Set inline trees by
2712         default.
2713
2714         * doc/extend.texi (Function Attributes): Document always_inline
2715         attribute.
2716         Update documentation about inlining when not optimizing.
2717
2718         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
2719
2720         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
2721         unless DECL_ALWAYS_INLINE.
2722
2723         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
2724         unless DECL_ALWAYS_INLINE.
2725         (c_disregard_inline_limits): Disregard if always_inline set.
2726
2727         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
2728         Disregard if always_inline set.
2729         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
2730         unless DECL_ALWAYS_INLINE.
2731
2732         * attribs.c (handle_always_inline_attribute): New.
2733         (c_common_attribute_table): Add always_inline.
2734
2735         * config/rs6000/altivec.h: Add prototypes for builtins
2736         requiring the always_inline attribute.
2737
2738 2002-02-21  Eric Christopher  <echristo@redhat.com>
2739
2740         * expmed.c (store_bit_field): Try to simplify the subreg
2741         before generating a new one when when the mode size of
2742         value is less than maxmode.
2743
2744 2002-02-21  Richard Henderson  <rth@redhat.com>
2745
2746         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
2747         than gen_rtx_PLUS to form the sum.
2748         * explow.c (force_reg): Rearrange to not allocate new pseudo
2749         when force_operand returns a register.
2750         * expr.c (expand_assignment): Allow offset_rtx expansion to
2751         return a sum.  Do not force addresses into registers.
2752         (expand_expr): Likewise.
2753         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
2754         to canonicalize arithmetic that didn't simpify.
2755         (simplify_plus_minus): New argument force; update
2756         all callers.  Don't split CONST unless we can do something with it,
2757         and wouldn't lose the constness of the operands.
2758
2759         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
2760         that we generated earlier.
2761
2762 2002-02-21  Tom Tromey  <tromey@redhat.com>
2763
2764         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2765         (output_line_info): Use constant `1', with a long explanatory
2766         comment.
2767         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
2768
2769 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
2770
2771         * jump.c (redirect_jump): If old label has no UID, don't try to
2772         delete it.
2773
2774 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
2775
2776         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
2777         If input is constant, do shifts at compile time.
2778
2779 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
2780
2781         * doc/extend.texi: Fix some more overfull hboxes.
2782
2783 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
2784
2785         PR optimization/4994
2786         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
2787         register moves.
2788
2789 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
2790
2791         PR c++/4574
2792         * expr.h (expand_and): Add mode argument.
2793         * expmed.c (expand_and): Add mode argument.
2794         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
2795         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
2796         * except.c (expand_builtin_extract_return_addr): Likewise.
2797         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
2798         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
2799         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
2800         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
2801         * config/c4x/c4x.md: Use GEN_INT (x) instead of
2802         gen_rtx (CONST_INT, VOIDmode, x).
2803
2804 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
2805
2806         PR c/4697:
2807         * stmt.c (warn_if_unused_value): Move side effects test once more.
2808
2809 2002-02-20  Torbjorn Granlund  <tege@swox.com>
2810
2811         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
2812         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
2813
2814 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
2815
2816         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
2817         SUBREG or ZERO_EXTEND.
2818
2819 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
2820
2821         * sh.h (current_function_anonymous_args): Remove.
2822         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
2823         of current_function_varargs and current_function_stdarg is set.
2824         * sh.c (sh_expand_prologue): Check current_function_varargs /
2825         current_function_stdarg / TARGET_SH5 instead of
2826         current_function_anonymous_args.
2827
2828         * sh64.h (TARGET_VERSION): Define.
2829
2830 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
2831
2832         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
2833         VRSAVE_REGNO on TARGET_ALTIVEC.
2834
2835 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
2836
2837         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
2838         bits of SImode const_int.
2839         (includes_rshift_p): Likewise.
2840         (print_operand): Call mask_operand and mask64_operand with correct
2841         mode.
2842         (rs6000_output_function_epilogue): Pad traceback table to word.
2843         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
2844         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
2845         mask64_operand with correct mode.
2846         (FUNCTION_ARG_REGNO_P): Correct parentheses.
2847
2848 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
2849
2850         PR debug/4461
2851         * varasm.c (get_pool_constant_mark): New.
2852         * rtl.h (get_pool_constant_mark): Add prototype.
2853         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
2854         be represented if it has not been output.
2855
2856 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
2857
2858         * combine.c (do_SUBST): Sanity check substitutions of
2859         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
2860         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
2861         CONST_INT into its operand.
2862         (known_cond): Likewise, for ZERO_EXTEND.
2863         * simplify-rtx.c (simplify_unary_operation): Fix condition to
2864         allow for simplification of wide modes.  Reject CONST_INTs in
2865         ZERO_EXTEND when their actual mode is not given.
2866
2867 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
2868
2869         * c-decl.c (pushdecl): If no global declaration is found for an
2870         extern declaration in block scope, try a limbo one.
2871
2872 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
2873
2874         PR c++/4401
2875         * c-common.c (pointer_int_sum): Moved from...
2876         * c-typeck.c (pointer_int_sum): ...here.
2877         * c-common.h (pointer_int_sum): Add prototype.
2878
2879 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
2880
2881         PR c++/5713
2882         * c-decl.c (duplicate_decls): Return 0 if issued error about
2883         redeclaration.
2884
2885 2002-02-20  Roger Sayle  <roger@eyesopen.com>
2886             Jakub Jelinek  <jakub@redhat.com>
2887
2888         PR c/4389
2889         * tree.c (host_integerp): Ensure that the constant integer is
2890         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
2891         when pos is zero or non-zero respectively.  Clarify comment.
2892         * c-format.c (check_format_info_recurse): Fix host_integerp
2893         usage; the pos argument should be zero when assigning to a
2894         signed HOST_WIDE_INT.
2895
2896 2002-02-20  Richard Henderson  <rth@redhat.com>
2897
2898         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
2899         of the operand, rather than assuming TImode.
2900         (ix86_expand_binop_builtin): Cope with commutative patterns
2901         using nonimmediate_operand for both operands.
2902         (ix86_expand_timode_binop_builtin): Likewise.
2903         (ix86_expand_store_builtin): Validate operand 1.
2904         (ix86_expand_unop1_builtin): Likewise.
2905
2906 2002-02-20  Philip Blundell  <philb@gnu.org>
2907
2908         PR 5705
2909         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
2910
2911 2002-02-20  Richard Henderson  <rth@redhat.com>
2912
2913         PR c/5615
2914         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
2915
2916 2002-02-20  Tom Tromey  <tromey@redhat.com>
2917
2918         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2919         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2920         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2921         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
2922         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
2923         unconditionally.
2924
2925 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
2926
2927         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
2928           for (const_int 0) in X not just INTVAL.
2929
2930 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
2931
2932         * doc/extend.texi: Avoid or reduce overfull hboxes.
2933
2934 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
2935
2936         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
2937         operations if the field does not start at a mode boundary.
2938
2939 2001-02-20      Joel Sherrill <joel@OARcorp.com>
2940
2941         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
2942         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
2943         Also done for -Acpu and -Amachine.
2944
2945 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2946
2947         * cppinit.c (init_dependency_output): Take deps output file
2948         from -o if none given with -MF.  Suppress normal output.
2949         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
2950         * doc/cpp.texi, doc/invoke.texi: Update.
2951
2952 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
2953
2954         * toplev.c (output_quoted_string): Write unprintable
2955         characters with octal escapes.
2956
2957 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
2958
2959         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
2960         really_call_used[VRSAVE_REGNO] if not Altivec.
2961
2962 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
2963
2964         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
2965         MODE_MASK.
2966         (constant_pool_expr_1): Fix formatting.
2967         (rs6000_legitimize_reload_address): Likewise.
2968
2969 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2970
2971         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
2972         now that we have one.
2973
2974 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
2975
2976         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
2977         end of first block of bitfields (which was only seven bits);
2978         rename dummy to unused_1; remove comment which is no longer true.
2979
2980 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
2981
2982         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
2983
2984 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
2985
2986         PR 5399
2987         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
2988         if generating PIC.
2989
2990         PR 5054
2991         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
2992         arm_is_longcall_p rather than inspecting call-type cookie
2993         directly.
2994         (call_value_insn) [TARGET_THUMB]: Likewise.
2995
2996 2002-02-19  Graham Stott  <grahams@redhat.com>
2997
2998         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
2999
3000 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
3001
3002         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
3003         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
3004         (FP_SAVE_INLINE): Delete.
3005
3006         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
3007         * config/rs6000/eabi.asm: Remove ABI save restore routines.
3008         * config/rs6000/t-ppccomm: Build crtsavres.o.
3009         * config/rs6000/crtsavres.asm: New file.
3010
3011 2002-02-19  Philip Blundell  <philb@gnu.org>
3012
3013         * config/arm/arm.c (use_return_insn): Don't reject interrupt
3014         functions.
3015         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
3016         (output_return_instruction): Allow interrupt functions to return with
3017         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
3018         (arm_expand_prologue): Subtract 4 before stacking LR in an
3019         interrupt function.
3020
3021 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
3022
3023         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
3024         decl, not just FUNCTION_DECL.
3025         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
3026         (arm_assemble_integer): Likewise.
3027         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
3028         marked local.
3029
3030 2002-02-19  matthew green  <mrg@eterna.com.au>
3031
3032         * config.gcc (sparc-*-netbsdelf*): Enable target.
3033         (sparc64-*-netbsd*): New target.
3034         * config/sparc/netbsd-elf.h: New file.
3035         * config/sparc/t-netbsd64: New file.
3036
3037 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
3038
3039         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
3040
3041 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
3042
3043         * doc/invoke.texi: explicitly list the style guidelines that
3044         -Weffc++ checks for.
3045
3046 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
3047
3048         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
3049
3050 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
3051
3052         PR other/5718
3053         * gcc.c (cpp_unique_options): Treat -o as indicating object file
3054         only if not -E.  If -E, pass -o through to the preprocessor.
3055
3056 2002-02-19  Kazu Hirata  <kazu@hxi.com>
3057
3058         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
3059         register number with an appropriate macro.
3060
3061 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
3062
3063         * doc/rtl.texi (Constants): Close @code tag.
3064
3065 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
3066
3067         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
3068         ("mmx_uavgv4hi3"): Same.
3069         ("pmulhrwv4hi3"): Same.
3070
3071         * tree-inline.c (walk_tree): Handle vectors.
3072
3073         * c-common.c (constant_expression_warning): Handle vectors.
3074         (overflow_warning): Same.
3075
3076         * sched-deps.c (sched_analyze_2): Handle vectors.
3077
3078         * rtlanal.c (rtx_unstable_p): Handle vectors.
3079         (rtx_varies_p): Same.
3080         (count_occurrences): Same.
3081         (regs_set_between_p): Same.
3082         (modified_between_p): Same.
3083         (modified_in_p): Same.
3084         (volatile_insn_p): Same.
3085         (volatile_refs_p): Same.
3086         (side_effects_p): Same.
3087         (may_trap_p): Same.
3088         (inequality_comparisons_p): Same.
3089         (replace_regs): Same.
3090         (computed_jump_p_1): Same.
3091
3092         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
3093         argument.
3094         (inner_mode_array): New.
3095         (copy_rtx): Handle vectors.
3096         (copy_most_rtx): Same.
3097         (rtx_equal_p): Same.
3098         (get_mode_alignment): Adjust for vectors.
3099
3100         * resource.c (mark_referenced_resources): Handle vectors.
3101         (mark_set_resources): Same.
3102
3103         * reload1.c (eliminate_regs): Handle vectors.
3104         (elimination_effects): Same.
3105         (scan_paradoxical_subregs): Same.
3106
3107         * reload.c (subst_reg_equivs): Handle vectors.
3108
3109         * regrename.c (scan_rtx): Handle vectors.
3110
3111         * regclass.c (reg_scan_mark_refs): Handle vectors.
3112
3113         * recog.c (find_single_use_1): Handle vectors.
3114
3115         * local-alloc.c (equiv_init_varies_p): Handle vectors.
3116         (contains_replace_regs): Same.
3117         (memref_referenced_p): Same.
3118
3119         * integrate.c (copy_rtx_and_substitute): Handle vectors.
3120         (subst_constants): Same.
3121
3122         * genattrtab.c (attr_copy_rtx): Handle vectors.
3123         (encode_units_mask): Same.
3124         (clear_struct_flag): Same.
3125         (count_sub_rtxs): Same.
3126
3127         * gcse.c (want_to_gcse_p): Handle vectors.
3128         (oprs_unchanged_p): Same.
3129         (hash_expr_1): Same.
3130         (oprs_not_set_p): Same.
3131         (expr_killed_p): Same.
3132         (compute_transp): Same.
3133         (store_ops_ok): Same.
3134
3135         * function.c (purge_addressof_1): Do not allow paradoxical subregs
3136         of vectors.
3137         (fixup_var_refs_1): Same.
3138         (instantiate_virtual_regs_1): Same.
3139
3140         * fold-const.c (operand_equal_p): Handle vectors.
3141         (fold): Same.
3142         (rtl_expr_nonnegative_p): Same.
3143
3144         * flow.c (mark_used_regs): Handle vectors.
3145
3146         * df.c (df_uses_record): Handle vectors.
3147
3148         * cselib.c (cselib_subst_to_values): Handle vectors.
3149         (cselib_mem_conflict_p): Same.
3150         (hash_rtx): Same.
3151
3152         * cse.c (canon_reg): Handle vectors.
3153         (fold_rt): Same.
3154         (cse_process_notes): Same.
3155         (count_reg_usage): Same.
3156         (canon_hash): Same.
3157
3158         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
3159
3160         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
3161
3162         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
3163         (gen_rtx): Handle CONST_VECTOR.
3164         (gen_const_vector_0): New.
3165         (copy_rtx_if_shared): CONST_VECTORs can be shared.
3166         (reset_used_flags): Same.
3167         (copy_insn_1): Same.
3168         (initializer_constant_valid_p): Handle VECTOR_CST.
3169
3170         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
3171
3172         * doc/rtl.texi (Constants): Document const_vector.
3173         (CONST0_RTX): Update for vectors.
3174         (RTL sharing): Same.
3175
3176         * print-tree.c (print_node): Add case for VECTOR_CST.
3177
3178         * tree.h (TREE_VECTOR_CST_ELTS): New.
3179         (struct tree_vector): New.
3180         (union tree_node): Add vector node.
3181         (build_vector): Add prototype.
3182
3183         * tree.def (VECTOR_CST): New.
3184
3185         * tree.c (build_vector): New.
3186
3187         * expmed.c (make_tree): Handle CONST_VECTOR.
3188
3189         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
3190         (CONST_VECTOR_ELT): New.
3191         (CONST_VECTOR_NUNITS): New.
3192
3193         * machmode.h (GET_MODE_INNER): New.
3194         (DEF_MACHMODE): Accept 8th arg.
3195
3196         * machmode.def: Add 8th argument for vector inner mode.
3197         Add inner vector modes for vectors.
3198
3199         * rtl.def (VEC_CONST): Remove.
3200         (CONST_VECTOR): New.
3201
3202         * expr.c (clear_storage): Allow vectors.
3203         (is_zeros_p): Handle VECTOR_CST.
3204
3205         * varasm.c (output_constant_pool): Handle vectors.
3206         (rtx_const): Add veclo and vechi fields.
3207         (kind): Add RTX_VECTOR.
3208         (decode_rtx_const): Add case for vector.
3209
3210         * config/rs6000/rs6000-protos.h: Add zero_constant.
3211
3212         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
3213         constants.  Force easy vector constants into memory.
3214         (easy_vector_constant): New.
3215         (emit_easy_vector_constant): New.
3216         (rs6000_legitimize_reload_address): Do not generate bad reloads on
3217         darwin.
3218
3219         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
3220         instruction does.
3221         ("altivec_lvxl"): Same.
3222         (altivec_lvebx): Same.
3223         (altivec_lvehx): Same.
3224         (altivec_lvewx): Same.
3225         ("*movv4si_const0"): New.
3226         ("*movv4sf_const0"): New.
3227         ("*movv8hi_const0"): New.
3228         ("*movv16qi_const0"): New.
3229
3230 2002-02-18  Kazu Hirata  <kazu@hxi.com>
3231
3232         * config/h8300/h8300.c (notice_update_cc): Use
3233         cc_status.value2.
3234
3235 2002-02-18  Kazu Hirata  <kazu@hxi.com>
3236
3237         * config/h8300/h8300.md (divmod patterns): Change the
3238         constraints for operands[1] to register_operand.
3239
3240 2002-02-18  Kazu Hirata  <kazu@hxi.com>
3241
3242         * config/h8300/h8300-protos.h: Remove the prototype for
3243         p_operand.
3244         * config/h8300/h8300.c (p_operand): Remove.
3245         * config/h8300/h8300.md: Replace p_operand with
3246         const_int_operand.
3247
3248 2002-02-18 Philip Blundell <pb@nexus.co.uk>
3249
3250         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
3251         comment.
3252         (output_return_instruction): Allow use of LDR to unstack
3253         return addresss even for interrupt handlers or when
3254         interworking.  If compiling for ARMv5, use interworking-safe
3255         return instructions by default.  Remove duplicated code and
3256         lengthy "strcat" sequences.
3257
3258 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3259
3260         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
3261         (LINK_EH_SPEC): Define.
3262         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
3263
3264 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
3265
3266         * config/s390/s390.c (s390_emit_prologue): Do not set the
3267         frame_related flag for call-clobbered registers.
3268
3269 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
3270
3271         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
3272         (construct_container): Fix handling of SSE operands.
3273         (ix86_expand_builtin): Fix handling of 64bit pointers.
3274         (mmx_maskmovq_rex): New pattern.
3275
3276 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
3277
3278         * regrename.c (kill_set_value): Handle subregs properly.
3279
3280 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
3281
3282         * objc/objc-act.c (handle_impent): Remove leading '*'
3283         from objc_class_name.
3284
3285 2002-02-17  Richard Henderson  <rth@redhat.com>
3286
3287         * config/alpha/alpha.c (some_small_symbolic_operand,
3288         some_small_symbolic_operand_1, split_small_symbolic_operand,
3289         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
3290         Handle small SYMBOL_REFs anywhere, not just inside memories.
3291         * config/alpha/alpha-protos.h: Update.
3292         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3293         * config/alpha/alpha.md (small symbolic operand splitter): Update.
3294
3295 2002-02-17  Roland McGrath  <roland@frob.com>
3296
3297         * config.gcc (powerpc-*-gnu-gnualtivec*,
3298         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
3299         * config/rs6000/gnu.h: New file.
3300         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
3301         Grok "gnu" in rs6000_abi_name.
3302         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
3303         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
3304         Grok -mcall-gnu analogous to -mcall-linux et al.
3305         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
3306         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
3307         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
3308
3309 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
3310
3311         PR c/3444:
3312         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
3313         shortening.
3314
3315 2002-02-17  Philipp Thomas  <pthomas@suse.de>
3316
3317         * config/cris/cris.h: Undefine STARTFILE_SPEC and
3318         ENDFILE_SPEC before (re)defining them.
3319
3320 2002-02-17  Kazu Hirata  <kazu@hxi.com>
3321
3322         * config/h8300/h8300.c: Fix formatting.
3323         * config/h8300/h8300.h: Likewise.
3324
3325 2002-02-17  Philipp Thomas  <pthomas@suse.de>
3326
3327         * doc/tm.texi: Explain why empty strings should not be
3328         marked for translation.
3329
3330 2002-02-17  Philipp Thomas  <pthomas@suse.de>
3331
3332         * final.c (output_operand_lossage): Changed to accept
3333         printf style arguments. Change calls where necessary.
3334         * output.h (output_operand_lossage): Change declaration
3335         accordingly. Update copyright.
3336         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
3337         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
3338         Update copyright date where necessary.
3339
3340         * config/i386/i386.c (print_operand): Likewise. Remove use of
3341         sprintf.
3342
3343         * config/cris/cris.c (cris_operand_lossage): Likewise.
3344         Rename parameter so that exgettext recognizes it as
3345         translatable message.
3346         (LOSE_AND_RETURN): Rename parameter to msgid.
3347
3348 2002-02-17  Kazu Hirata  <kazu@hxi.com>
3349
3350         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
3351         hard coded register number with an appropriate macro.
3352         (HARD_REGNO_MODE_OK): Likewise.
3353         (ARG_POINTER_REGNUM): Likewise.
3354         (STATIC_CHAIN_REGNUM): Likewise.
3355         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
3356         * config/h8300/h8300.md (define_constants): Define more
3357         register numbers.
3358
3359 2002-02-17  Philipp Thomas  <pthomas@suse.de>
3360
3361         * config/i386/i386.h: Don't mark empty strings for translation.
3362
3363 2002-02-16  H.J. Lu <hjl@gnu.org>
3364
3365         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
3366
3367 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
3368
3369         * cppinit.c (merge_include_chains): Check for brack being
3370         NULL before attempting to merge it with qtail.
3371
3372 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
3373
3374         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
3375         DBX_DEBUG.
3376
3377 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3378
3379         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
3380
3381 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3382
3383         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
3384         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
3385         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
3386
3387 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3388
3389         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
3390         now only if !TARGET_FIX.
3391         (*movsi_nt_vms_fix): New pattern.
3392
3393 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
3394
3395         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
3396         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
3397         (alpha_sa_mask, alpha_sa_size): Reflect above change.
3398         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
3399         (alpha_start_function, alpha_expand_epilogue): Likewise.
3400         (unicosmk_gen_dsib): Likewise.
3401
3402 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3403
3404         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
3405
3406 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
3407
3408         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
3409         check_and_change_labels, s390_final_chunkify): Delete.
3410         (s390_split_branches, s390_chunkify_pool): New functions.
3411         (s390_function_prologue): Call them.
3412
3413         * config/s390/s390.h (S390_REL_MAX): Delete.
3414         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
3415
3416         * config/s390/s390.md (cjump, icjump, jump): Fix length
3417         attribute calculation.
3418
3419
3420 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
3421
3422         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
3423         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
3424
3425 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3426
3427         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
3428         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
3429         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
3430
3431 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
3432
3433         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
3434
3435 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
3436
3437         * reload.c (find_dummy_reload): Check that an output register
3438         is valid for its mode.
3439
3440 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
3441
3442         * combine.c (known_cond): After replacing the REG of a SUBREG, try
3443         to simplify it.
3444
3445         * function.c (assign_parms): Demote promoted argument passed by
3446         transparent reference.
3447
3448 2001-02-14      Joel Sherrill <joel@OARcorp.com>
3449
3450         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
3451         -Acpu() and -Amachine() to eliminate warnings.
3452
3453 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
3454
3455         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
3456
3457 2002-02-14  Kazu Hirata  <kazu@hxi.com>
3458
3459         * config/h8300/h8300-protos.h: Update the prototype for
3460         const_costs.
3461         * config/h8300/h8300.c (const_costs): Treat SET as a little
3462         more expensive operation.
3463         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
3464         reference to const_costs.
3465
3466 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
3467
3468         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
3469
3470 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
3471
3472         PR c/5503:
3473         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
3474         use arguments from newtype.
3475
3476 2002-02-13  Eric Christopher  <echristo@redhat.com>
3477
3478         * config/mips/mips.c (override_options): Add check for march/mipsX
3479         on the same command line. Fix error message in cpu processing.
3480         Remove architecture and ISA checks.
3481
3482 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
3483
3484         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
3485
3486         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
3487
3488 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
3489
3490         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
3491         alternatives.
3492         ("*movv8hi_internal1"): Same.
3493         ("*movv16qi_internal1"): Same.
3494         ("*movv4sf_internal1"): Same.
3495
3496         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
3497         not push_reload for altivec modes.
3498
3499 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
3500
3501         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
3502         all RTEMS targets including removal of #includes from config/*/rtems*.h
3503         file and adding them to tm_file setting. Added xm_defines=POSIX to
3504         many targets.
3505         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
3506         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
3507         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
3508         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
3509         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
3510         config/m68k/rtemself.h: Ditto.
3511         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
3512         config/mips/rtems64.h: Ditto.
3513         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
3514         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
3515         Ditto.
3516         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
3517         config/sparc/rtemself.h: Ditto.
3518         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
3519         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
3520         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
3521         more like arm-elf.
3522         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
3523         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
3524         target made more similar to i386-elf.
3525         * config/i386/t-rtems-i386: Added soft float support and multilibs.
3526         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
3527         be similar to config/m68k/t-m68kelf.
3528         * gthr-rtems.h: Encapsulate with extern "C" for C++.
3529
3530 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
3531
3532         * regmove.c (kill_value): Handle subregs.
3533
3534 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
3535
3536         * i386.md (mul patterns): Allow memory operand to be first;
3537         add expanders where needed; fix constraints.
3538         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
3539         Allow memory operand to be the first.
3540
3541         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
3542         operands.
3543
3544 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
3545
3546         PR c/5681:
3547         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
3548         GET_MODE (x).
3549
3550 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
3551
3552         PR optimization/5547:
3553         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
3554         all valid IA-32 address modes involving non-scaled %ebx and
3555         GOT/GOTOFF as displacement.
3556
3557 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
3558
3559         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
3560         after emitting ltorg insns.
3561
3562         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
3563         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
3564         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
3565         *abssf2): Fix "op_type" attribute.
3566
3567 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
3568
3569         * mkconfig.sh: Avoid using a subshell redirect.
3570         ($output.T): Change to $(output)T.
3571         (ENABLE_NLS): Remove unneeded undef.
3572
3573         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
3574         * config/alpha/x-vms (libsubdir): Define.
3575
3576         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
3577         register frame procedures. Optimize retrieving context.
3578
3579         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
3580         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
3581         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
3582
3583 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3584
3585         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
3586         Make same change as for find_base_value.
3587
3588 2002-02-13  Kazu Hirata  <kazu@hxi.com>
3589
3590         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
3591         of QImode and SImode.
3592
3593 2002-02-13  Kazu Hirata  <kazu@hxi.com>
3594
3595         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
3596         length computation of movsi.
3597         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
3598
3599 2002-02-13  Kazu Hirata  <kazu@hxi.com>
3600
3601         * config/h8300/h8300.md (subqi3): Tighten the predicate for
3602         operands[2] to register_operand.
3603
3604 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
3605
3606         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
3607
3608 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
3609
3610         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
3611         for altivec_lvx* and altivec_stvx*.
3612         ("*movv4si_internal"): Add constraint for loading from GPRs.
3613         ("*movv8hi_internal1"): Same.
3614         ("*movv16qi_internal1"): Same.
3615         ("*movv4sf_internal1"): Same.
3616
3617         * config/rs6000/rs6000.c (altivec_register_operand): New.
3618
3619         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
3620         altivec_register_operand.
3621
3622 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
3623
3624         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
3625         handle SYMBOL_REF.
3626
3627 2002-02-13  Stan Shebs  <shebs@apple.com>
3628
3629         * c-typeck.c (digest_init): Handle vectors.
3630         (really_start_incremental_init): Same.
3631         (pop_init_level): Same.
3632         (process_init_element): Same.
3633
3634         * varasm.c (output_constant): Same.
3635
3636         * expr.c (clear_storage): Same.
3637         (store_constructor): Same.
3638
3639 2002-02-12  Eric Christopher  <echristo@redhat.com>
3640
3641         * explow.c (hard_function_value): Add comment explaining
3642         signed/unsigned comparison.
3643
3644 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
3645
3646         * jump.c (never_reached_warning): Add finish argument.
3647         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
3648         real insn after end.
3649         * rtl.h (never_reached_warning): Adjust prototype.
3650         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
3651         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
3652         never_reached_warning.
3653
3654 2002-02-12  Graham Stott  <grahams@redhat.com>
3655
3656         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
3657
3658 2002-02-12  Kazu Hirata  <kazu@hxi.com>
3659
3660         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
3661         logical shifts on H8/300.
3662         (shift_alg_si): Improve several shifts on H8/300.
3663         (get_shift_alg): Likewise.
3664
3665 2002-02-12  Graham Stott  <grahams@redhat.com>
3666
3667         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
3668
3669 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3670
3671         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
3672         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
3673
3674 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
3675
3676         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
3677         non-CONST_INT through default_assemble_integer.
3678         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
3679         <case 8>: Abort for CONST_DOUBLE.
3680
3681 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3682
3683         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
3684         is specified.
3685         * config/pa/pa-linux.h (LIB_SPEC): Delete.
3686         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
3687
3688 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
3689
3690         * config/stormy16/stormy16.md (zero_extendqihi2): New.
3691
3692 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
3693
3694         * regrename.c (regrename_optimize): Don't accept a
3695         part-clobbered register if the replaced register is not part
3696         clobbered.
3697
3698         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
3699         take padding into account when computing the argument value.
3700
3701         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
3702
3703         * combine.c (try_combine): Apply substitutions in
3704         CALL_INSN_FUNCTION_USAGE too.
3705
3706 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
3707
3708         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
3709         __builtin_altivec_abs*.
3710         (bdesc_abs): New.
3711
3712         * config/rs6000/rs6000.h (rs6000_builtins): Add
3713         ALTIVEC_BUILTIN_ABS*.
3714
3715         * config/rs6000/altivec.h: Use const char for builtins expecting
3716         literals.
3717         (vec_abs): New versions for C and C++.
3718         (vec_abss): Same.
3719
3720 2002-02-10  Kazu Hirata  <kazu@hxi.com>
3721
3722         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
3723         using Pmode.
3724
3725 2002-02-10  Kazu Hirata  <kazu@hxi.com>
3726
3727         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
3728         constant definition from h8300.md.
3729         (FRAME_POINTER_REGNUM): Likewise.
3730         * config/h8300/h8300.md (define_constants): Add FP_REG.
3731
3732 2002-02-10  Kazu Hirata  <kazu@hxi.com>
3733
3734         * config/h8300/h8300.c (print_operand): Remove redundant code.
3735
3736 2002-02-10  Kazu Hirata  <kazu@hxi.com>
3737
3738         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
3739         * config/h8300/h8300.c (byte_reg): Make it static.
3740
3741 2002-02-10  Richard Henderson  <rth@redhat.com>
3742
3743         PR c/5623
3744         * c-typeck.c (incomplete_type_error): Handle flexible array members.
3745
3746 2002-02-10  Richard Henderson  <rth@redhat.com>
3747
3748         PR c++/5624
3749         * tree.c (append_random_chars): Don't abort if main_input_filename
3750         does not exist.
3751
3752 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
3753
3754         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
3755
3756 2002-02-10  Kazu Hirata  <kazu@hxi.com>
3757
3758         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
3759         (pushhi1): Likewise.
3760
3761 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3762
3763         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
3764         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
3765
3766 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
3767
3768         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
3769         remove MASK_VIS.
3770         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
3771
3772 2002-02-09  Kazu Hirata  <kazu@hxi.com>
3773
3774         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
3775         a half of an SImode register on H8/300.
3776
3777 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
3778
3779         * i386.md (movdi_2): Add missing '!'.
3780
3781 2002-02-09  Kazu Hirata  <kazu@hxi.com>
3782
3783         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
3784         definitions.
3785
3786 2002-02-09  Kazu Hirata  <kazu@hxi.com>
3787
3788         * config/h8300/h8300.md (length): Correct the distance valid
3789         for the short branch.
3790
3791 2002-02-09  Kazu Hirata  <kazu@hxi.com>
3792
3793         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
3794
3795 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
3796
3797         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
3798         registers in SImode.
3799         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
3800         part-clobbered.
3801
3802         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
3803         patch.
3804
3805         Contribute sh64-elf.
3806         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
3807         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
3808         (sh_cannot_modify_jumps_p): New function.
3809         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
3810         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
3811         (sh_ms_bitfield_layout_p): New function.
3812         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
3813                     Zack Weinberg  <zack@codesourcery.com>
3814         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
3815         expand_simple_binop instead of expand_binop.
3816         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
3817         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
3818         use of .quad and .uaquad.
3819         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
3820         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
3821         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
3822         * config/sh/sh.md (movdi_const, movdi_const_32bit,
3823         movdi_const_16bit): Make sure all CONSTs have modes.
3824         (sym2PIC): Ditto, but by adjusting all callers.
3825         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
3826         if the prologue calls the SHmedia argument decoder or register
3827         saver.
3828         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
3829         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
3830         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
3831         (sh_expand_epilogue): Don't emit USE of return target register.
3832         (prepare_move_operands): Legitimize DImode PIC addresses.
3833         (sh_media_register_for_return): Skip tr0, used to initialize the
3834         PIC register.
3835         (sh_expand_prologue): Remove explicit USE of return register.
3836         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
3837         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
3838         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
3839         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
3840         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
3841         EXTRA_CONSTRAINT_T.
3842         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
3843         (MOVI_SHORI_BASE_OPERAND_P): New.
3844         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
3845         (EXTRA_CONSTRAINT_T): Define in terms of them.
3846         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
3847         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
3848         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
3849         alternatives supporting TARGET_REGS.
3850         (UNSPEC_GOTPLT): New constant.
3851         (movdi split): Move incrementing of LABEL_NUSES...
3852         (movdi_const, movdi_const_32bit): Here.  Use
3853         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
3854         (movdi_const_16bit): New.
3855         (call, call_value) [flag_pic]: Use GOTPLT.
3856         (call_pop, call_value_pop): New expands.
3857         (call_pop_compact, call_pop_rettramp): New insns.
3858         (call_value_pop_compact, call_value_pop_rettramp): New insns.
3859         (sibcall) [flag_pic]: Use GOT.
3860         (builtint_setjmp_receiver): Remove bogus, unused expand.
3861         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
3862         (*pt, *ptb, ptrel): New insns.
3863         (sym2GOT): Handle DImode GOT.
3864         (sym2GOTPLT, symGOTPLT2reg): New expands.
3865         (sym2PIC): New expand.
3866         (shcompact_return_tramp): Use GOTPLT to return trampoline.
3867         (shcompact_return_tramp_i): Use return register explicitly.
3868         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
3869         disable flag_reorder_blocks.
3870         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
3871         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
3872         clobbers, for clarity.
3873         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
3874         restoring of r0 in macl as MAYBE_DEAD.
3875         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
3876         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
3877         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
3878         alter_subreg all over.
3879         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
3880         reload, instead of emitting instructions that would require
3881         reloading.
3882         (casesi_load_media): Add missing modes.
3883         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
3884         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
3885         as used if the argument decoder is called.
3886         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
3887         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
3888         Pmode, then extend it to DImode if necessary.
3889         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
3890         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
3891         constants in FPU-enabled SHmedia, let them be loaded from memory.
3892         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
3893         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
3894         Adjust whitespace in assembly output templates.
3895         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
3896         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
3897         mode of if_then_else.
3898         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
3899         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
3900         sh.h.
3901         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
3902                     Joern Rennecke <amylaar@redhat.com>
3903         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
3904         (SUBTARGET_CPP_PTR_SPEC): New.
3905         (SUBTARGET_CPP_SPEC): Remove.
3906         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
3907         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
3908         Fix typo in previous checkin.
3909         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
3910         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
3911         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
3912                     Alexandre Oliva  <aoliva@redhat.com>
3913         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
3914         what single FP register can hold for SHmedia target.
3915         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
3916                     Alexandre Oliva  <aoliva@redhat.com>
3917         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
3918         Do not split into SUBREG.
3919         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
3920         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
3921         and added new functions as specified in SH5 ABI r9.
3922         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
3923         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
3924         8-byte boundary.
3925         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
3926         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
3927         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
3928         and consttable_window_ends.
3929         2001-06-03  Graham Stott  <grahams@redhat,com>
3930         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
3931         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
3932         * config/sh/sh.c (print_operand): Handle floating-point pair,
3933         vector and matrix registers.
3934         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
3935         vector modes into account.
3936         * config/sh/sh.md (movv2sf): Split move between registers into
3937         movdf.
3938         (movv4sf, movv16sf): Introduce insns that get split only after
3939         reload.
3940         * config/sh/shmedia.h: Fix Copyright dates.
3941         * config/sh/ushmedia.h: Likewise.  Move loop counter
3942         declarations into conditionals that uses them.
3943         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
3944         loop boundary.
3945         * config/sh/sshmedia.h: Fix Copyright dates.
3946         (sh_media_PUTCFG): Fix constraints.
3947         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
3948         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
3949         ptrmemfunc_vbit_in_delta for SH5.
3950         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
3951         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
3952         * invoke.texi: Likewise.
3953         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
3954         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
3955         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
3956         GCC_pop_shmedia_regs_nofpu): New global symbols.
3957         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
3958         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
3959         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
3960         compact function with nonlocal labels.
3961         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
3962         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
3963         (initial_elimination_offset): Account for their stack space.
3964         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
3965         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
3966         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
3967         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
3968         least one of the operands to be a register.
3969         (movv2sf): Likewise.  Renamed to movv2sf_i.
3970         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
3971         prepare_move_operands() before emitting SHmedia insns.
3972         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
3973         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
3974         Don't save nor initialize r12.  Don't mis-align the stack.
3975         Pad the code with a nop.
3976         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
3977         stack.
3978         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
3979         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
3980         [__SHMEDIA__]: Implement.
3981         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
3982         * config/sh/sh.md: Set latency of `pt' closer to reality.
3983         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
3984         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
3985         Set move, load and store type attributes.
3986         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
3987         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
3988         profiling.
3989         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
3990         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
3991         * config/sh/sh.c (sh_media_register_for_return): New function.
3992         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
3993         branch-target register.
3994         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
3995         * config/sh/sh.md (return_media_i): Use any call-clobbered
3996         branch-target register.
3997         (return_media): If r18 wasn't copied in the prologue, copy it
3998         here.
3999         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
4000         Clear class FP0_REGS.
4001         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
4002         from elf.h.
4003         2001-03-08  DJ Delorie  <dj@redhat.com>
4004         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
4005         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
4006         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
4007         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
4008         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
4009         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
4010         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
4011         return value correctly for call_cookie.
4012         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
4013         * config/sh/crt1.asm (start): Modified so as to call
4014         ___setup_argv_and_call_main.
4015         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
4016         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
4017         SHmedia mode.
4018         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
4019         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
4020         (STRIP_NAME_ENCODING): Use it.
4021         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
4022         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
4023         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
4024         prepare_scc_operands().
4025         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
4026         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
4027         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
4028         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
4029         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
4030         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
4031         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
4032         used in shcompact_incoming_args.
4033         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
4034         change.
4035         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
4036         mode.
4037         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
4038         Adjust accordingly.
4039         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
4040         Simplify.  Adjust.  Add sanity check.
4041         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
4042         FPU_SINGLE_BIT.
4043         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
4044         TARGET_SHCOMPACT.
4045         (udivsi3, divsi3): Use them.
4046         (force_mode_for_call): New insn.
4047         (call, call_value, sibcall_value): Emit it before SHcompact
4048         calls.
4049         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
4050         * config/sh/sh.md (call, call_value, sibcall): Make sure the
4051         call cookie is non-NULL before taking its value.
4052         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
4053         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
4054         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
4055         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
4056         block.
4057         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
4058         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
4059         temporary for stack adjusts.  Use MACL and MACH to pass
4060         arguments to shcompact_incoming_args.
4061         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
4062         clobber r1.
4063         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
4064         (nested_trampoline): Load static chain address into r1.
4065         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
4066         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
4067         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
4068         fp_arith_reg_operand().
4069         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
4070         * config/sh/sh.md (casesi): Sign-extend the first two operands,
4071         and use signed compares for them.
4072         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
4073         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
4074         ones properly aligned.
4075         (find_barrier): Account for extra alignment needed for 8-byte wide
4076         constants.
4077         (machine_dependent_reorg): Require a label for the second 4-byte
4078         constant after an 8-byte one.
4079         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's