15020fff59ce399af2f6609c9a3b377ab60951ab
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
2
3         * dwarf2out.c (SECTION_ASM_OP,
4         ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
5         * system.h (SECTION_ASM_OP): Poison.
6         * tree.c (FILE_FUNCTION_PREFIX_LEN): Remove.
7         * config/alpha/alpha-interix.h, config/mips/linux.h
8         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
9         * config/mmix/mmix-protos.h, config/mmix/mmix.c
10         (mmix_asm_output_define_label_difference_symbol): Remove.
11         * config/mmix/mmix.h
12         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
13         * doc/tm.texi: Remove documentation.
14
15 Tue Jul 23 21:49:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
16
17         * recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
18         (constrain_operands): Likewise.
19         * regclass.c (record_reg_classes): Likewise.
20         * reload.c (find_reloads): Likewise.
21         * doc/md.texi: Likewise.
22
23         * reload.c (find_reloads_toplev): Use simplify_gen_subreg.
24         * simplify-rtx.c (simplify_subreg): When converting to a non-int
25         mode, try to convert to an integer mode of matching size first.
26
27         * simplify-rtx.x (simplify_subreg): When constructing a CONST_VECTOR
28         from individual subregs, check that each subreg has been generated
29         sucessfully.
30
31 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
32
33         * genautomata.c (VLA_HWINT_SHORTEN, VLA_HWINT_LAST): Remove.
34         * df.c (HANDLE_SUBREG, FOR_EACH_BB_IN_BITMAP_REV,
35         FOR_EACH_BB_IN_SBITMAP): Remove.
36         * gcse.c (NEVER_SET, FOLLOW_BACK_EDGES): Remove.
37         * haifa-sched.c (DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY,
38         LAUNCH_PRIORITY, DONE_PRIORITY_P, LOW_PRIORITY_P): Remove.
39         * loop.c (PREFETCH_BLOACK_IN_LOOP_MIN,
40         PREFETCH_LIMIT_TO_SIMULTANEOUS): Remove.
41         * regrename.c (REGNO_MODE_OK_FOR_BASE_P): Remove.
42
43 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
44
45         * pretty-print.h: New file.
46
47 2002-07-23      Paul Koning     <pkoning@equallogic.com>
48
49         * real.c (REAL_WORDS_BIG_ENDIAN): Make 1 for DEC.
50         (LARGEST_EXPONENT_IS_NORMAL): Ditto.
51         (VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise).
52         (TARGET_G_FLOAT): Default to 0 if not defined.
53         (ieeetoe): New, common routine to convert target format floats 
54         to internal form.
55         (e24toe, e53toe): Change to use ieeetoe, distinguish DEC
56         vs. others.
57         (e113toe): Change to use ieeetoe.
58
59 2002-07-23  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
60
61         * real.c (REAL_WORDS_BIG_ENDIAN): Make sure it is 0 for DEC and 1 for
62         IBM.
63         (e53toe): Assume IEEE if non of DEC, IBM and C4X is defined.
64         (e64toe): Remove special cases for DEC and IBM. Remove support for
65         ARM_EXTENDED_IEEE_FORMAT.
66         (e24toe): Remove special cases for DEC.
67         (significand_size): Simplify. Indent.
68         (ieee_format, ieee_24, ieee_53, ieee_64, ieee_113): New.
69         (etoieee, toieee): New.
70         (etoe113, toe113, etoe64, toe64, etoe53, toe53, etoe24, toe24): Use
71         etoieee and toieee for IEEE arithmetic.
72
73 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
74
75         * doc/extend.texi: Say ISO C90, not ISO C89.
76         * doc/invoke.texi: Likewise.
77         * doc/standards.texi: Likewise.
78
79 2002-07-23  Steve Ellcey  <sje@cup.hp.com>
80
81         * gcc/explow.c (convert_memory_address): Fix conversion of CONSTs.
82         Fix permutation of conversion and plus/mult.
83         * gcc/builtins.c (expand_builtin_memcpy) Ensure return pointer is
84         ptr_mode and not Pmode when POINTERS_EXTEND_UNSIGNED is defined.
85         (expand_builtin_strncpy) Ditto.
86         (expand_builtin_memset) Ditto.
87
88 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
89
90         Fix PR/7363:
91         * c-common.c (c_sizeof_or_alignof_type): New function.
92         (c_alignof): Remove definition.
93         * c-common.h (c_sizeof, c_alignof): Define as macros.
94         (c_sizeof_or_alignof_type): Declare.
95         (my_friendly_assert): Moved from cp/cp-tree.h
96         * c-typeck.c (c_sizeof): Remove definition.
97
98 2002-07-23  Jan Hubicka  <jh@suse.cz>
99
100         * gcse.c (try_replace_reg): Use num_changes_pending.
101         * recog.c (num_changes_pending): New function.
102         (validate_replace_src): Use validate_repalce_src_group.
103         (validate_replace_src_group): New.
104         * recog.h (validate_repalce_src_group): New.
105         (num_changes_pending): Likewise.
106
107 Tue Jul 23 12:16:58 2002  J"orn Rennecke <joern.rennecke@superh.com>
108
109         * calls.c (emit_library_call_value_1): If
110         FUNCTION_ARG_PASS_BY_REFERENCE is true, pretend this is neither
111         libcall, const call nor pure call.
112
113 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
114
115         * config/m88k/m88k.h (SECTION_ASM_OP): Remove.
116
117 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
118
119         * vmsdbgout.c (SECTION_ASM_OP): Remove.
120
121 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
122
123         * config/i386/i386.c (AT_BP): Remove.
124
125 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
126
127         * defaults.h (obstack_chunk_alloc, obstack_chunk_free):
128         Default definition.
129         * gcse.c: Don't define obstack_chunk_free.
130         * collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c,
131         flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c,
132         integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c,
133         reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c:
134         Don't define obstack macros.
135
136 2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>
137
138         PR target/6744
139         * config/m68hc11/m68hc11.c (m68hc11_z_replacement): Also replace
140         ASM_OPERANDS instructions.
141
142 2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>
143
144         PR target/7361
145         * config/m68hc11/m68hc11.c (go_if_legitimate_address_internal): Accept
146         constant addresses only on 68HC12.
147
148 2002-07-22  Neil Booth  <neil@daikokuya.co.uk>
149
150         * cppfiles.c (stack_include_file): Correct test of whether
151         a dependency should be output.
152
153 2002-07-22  David Edelsohn  <edelsohn@gnu.org>
154
155         * collect2.c (is_ctor_dtor): Add other possible JOINER values.
156
157 2002-07-22  Richard Earnshaw  <rearnsha@arm.com>
158
159         * arm.md (movqi): If optimizing and we can create pseudos, use
160         a ZERO_EXTEND to load from memory, then copy the result into the
161         target.
162         (movhi): Likewise, but only for ARMv4.
163
164 2002-07-22  Neil Booth  <neil@daikokuya.co.uk>
165
166         * ssa-ccp.c (PHI_PARMS): Remove.
167
168 2002-07-22  Richard Sandiford  <rsandifo@redhat.com>
169
170         * config/mips/mips.h (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS
171         on big-endian targets.
172
173 2002-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
174
175         * hwint.h (HOST_WIDE_INT_PRINT_DEC_SPACE,
176         HOST_WIDE_INT_PRINT_UNSIGNED_SPACE,
177         HOST_WIDEST_INT_PRINT_DEC_SPACE, HOST_WIDEST_INT_PRINT_DEC_SPACE):
178         New formatting macros.
179
180         * ra-debug.c (dump_static_insn_cost): Avoid string concatenation.
181
182 Mon Jul 22 15:27:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
183
184         * rtlanal.c (subreg_regno_offset): Return correct offset for
185         big endian paradoxical subregs.
186
187         * optabs.c (expand_vector_unop): Don't expand using sub_optab
188         if we got the wrong mode.
189
190         * hwint.c (define HOST_WIDE_INT_PRINT_DEC_C): New define.
191         * genrecog.c (write_switch, write_cond): Use it.
192         * genemit.c (gen_exp): Likewise.
193
194 2002-07-22  Jakub Jelinek  <jakub@redhat.com>
195
196         * c-decl.c (build_compound_literal): Set decl TREE_READONLY from TYPE.
197
198 2002-07-22  Jakub Jelinek  <jakub@redhat.com>
199
200         * c-decl.c (build_compound_literal): Defer compound literal decls
201         until until file end to emit them only if they are actually used.
202
203 2002-07-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
204
205         * ra-build.c (check_conflict_numbers): Hide unused function.
206         (livethrough_conflicts_bb): Avoid automatic aggregate
207         initialization.
208         (parts_to_webs_1): Avoid `U' integer constant modifier.
209         (conflicts_between_webs): Wrap a variable in the macro controlling
210         its usage.
211         * ra-debug.c (ra_debug_msg): Use VA_OPEN/VA_CLOSE.
212         (dump_igraph, dump_graph_cost): Avoid string concatenation
213         (dump_static_insn_cost): Avoid automatic aggregate
214         initialization.
215         * ra-rewrite.c (insert_stores): Avoid automatic aggregate
216         initialization.
217         (dump_cost): Avoid string concatenation
218
219 2002-07-21  Richard Henderson  <rth@redhat.com>
220
221         * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Don't use
222         GOTO_SUBROUTINE_EXPR when finally_block can be re-expanded.
223
224 2002-07-21  Richard Henderson  <rth@redhat.com>
225
226         * unroll.c (find_splittable_givs): Do not split DEST_ADDR givs
227         that are not unrolled completely.
228
229 2002-07-21  Richard Henderson  <rth@redhat.com>
230
231         * loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS.
232         * loop.c (strength_reduce): Update.
233         * toplev.c (rest_of_compilation): Do unrolling in the first
234         loop pass, not the second.
235
236 2002-07-21  Richard Henderson  <rth@redhat.com>
237
238         * emit-rtl.c (set_mem_attributes): Preserve indirection of PARM_DECL
239         when flag_argument_noalias == 2.
240         * alias.c (nonoverlapping_memrefs_p): Handle that.
241         * print-rtl.c (print_mem_expr): Likewise.
242
243 2002-07-21  Hartmut Schirmer  <hartmut.schirmer@arcor.de>
244
245         * libgcc2.c (__divdi3, __moddi3): Use unary minus operator
246         instead of __negdi2 directly.
247
248 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
249
250         * gengenrtl.c (gencode): Don't define obstack_alloc_rtx.
251         * function.c (SYMBOL__MAIN): Remove definition.
252         * global.c (SET_CONFLICT, REGBITP, ALLOCNO_LIVE_P): Remove.
253         * predict.c (PROB_NEVER, PROB_LIKELY, PROB_UNLIKELY): Remove.   
254         * profile.c (GCOV_INDEX_TO_BB): Remove.
255         * sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): Remove.
256         * simplify-rtx.c (FIXED_BASE_PLUS_P): Remove.
257
258 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
259
260         * c-lex.c (GET_ENVIRONMENT): Remove.
261         * collect2.c (GET_ENV_PATH_LIST): Remove.
262         (prefix_from_env): Use GET_ENVIRONMENT.
263         * cppinit.c (GET_ENV_PATH_LIST): Remove.
264         (init_standard_includes): Use GET_ENVIRONMENT.
265         * defaults.h (GET_ENVIRONMENT): Define here if not already.
266         * gcc.c (GET_ENV_PATH_LIST): Remove.
267         (make_relative_prefix, process_command): Update.
268         * protoize.c (GET_ENV_PATH_LIST): Remove.
269         (do_processing): Update.
270
271 2002-07-21  Gabriel Dos Reis  <gdr@nerim.net>
272
273         * c-decl.c (build_array_declarator): Say 'ISO C90', not 'ISO C89'.
274         (grokdeclarator): Likewise.
275         * c-format.c (C_STD_NAME): Likewise.
276         * c-lex.c (interpret_integer): Likewise.
277         * c-typeck.c (build_array_ref): Likewise.
278         * cpplex.c (_cpp_lex_direct): Likewise.
279         * toplev.c (documented_lang_options): Likewise.
280
281 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
282
283         * c-format.c (T99_I, T99_UI): Remove.
284
285 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
286
287         * c-typeck.c (SAVE_SPELLING_DEPTH): Remove.
288
289 Sun Jul 21 21:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
290
291         * gcse.c (do_local_cprop): Do not extend lifetimes of registers set by
292         do_local_cprop.
293
294 2002-07-21  Andreas Jaeger  <aj@suse.de>
295
296         * reload1.c (fixup_abnormal_edges): Remove unused variable.
297
298 2002-07-21  Bernd Schmidt  <bernds@redhat.com>
299
300         Improvements for the ifcvt pass from Michael Meissner, with patches
301         by Richard Sandiford <rsandifo@redhat.com>
302         * basic-block.h (struct ce_if_block, ce_if_block_t): New types.
303         * ifcvt.c (cond_exec_changed_p): New static variable.
304         (last_active_insn): New function, renamed from last_active_insn_p
305         and changed to return the last active insn in a basic block. All
306         callers updated.
307         (block_fallthru): New function.
308         (cond_exec_process_insns): New argument CE_INFO.  Pass it to
309         IFCVT_MODIFY_INSN.  All callers updated.
310         Return false if START or END are NULL.
311         Handle case where we're processing an insn that is already
312         conditional.
313
314         (noce_process_if_block): CE_INFO argument rather than
315         multiple args containing the involved basic blocks.  All callers
316         changed.
317         (process_if_block, merge_if_block, find_if_block,
318         cond_exec_process_if_block): Likewise.
319
320         (cond_exec_process_if_block): New arg DO_MULTIPLE_P.  All callers
321         changed.
322         Use new function last_active_insn to simplify some code.
323         New code to handle multiple tests.
324         Call IFCVT_MODIFY_CANCEL in all failure cases, otherwise set
325         cond_exec_changed_p to TRUE.
326
327         (process_if_block): New code to handle multiple tests.
328         (merge_if_block): Likewise.
329         (find_if_header): New arg PASS.  Changed to return the currently
330         processed basic block or NULL instead of true/false. All callers
331         changed.
332         Call IFCVT_INIT_EXTRA_FIELDS.
333         (block_jumps_and_fallthru_p): New function.
334         (find_if_block): Discover opportunities to convert multiple tests.
335         Add additional debugging output.
336         Update the ce_info structure before returning.
337
338         (if_convert): Run multiple passes of if-conversion.
339         * doc/tm.texi (IFCVT_MODIFY_TESTS, IFCVT_MODIFY_INSN,
340         IFCVT_MODIFY_FINAL, IFCVT_MODIFY_CANCEL, IFCVT_MODIFY_MULTIPLE_TESTS,
341         IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS): Update documentation for
342         these macros.
343
344 Sun Jul 21 00:54:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
345
346         * gcse.c: Include cselib.h
347         (constptop_register): Break out from ...
348         (cprop_insn): ... here; kill basic_block argument.
349         (do_local_cprop, local_cprop_pass): New functions.
350         (one_cprop_pass): Call local_cprop_pass.
351
352 2002-07-20  Roger Sayle  <roger@eyesopen.com>
353
354         * simplify-rtx.c (simplify_relational_operation): Optimize
355         abs(x) < 0.0 (and abs(x) >= 0.0 when using -ffast-math).
356
357 2002-07-20  Michae Matz  <matz@suse.de>
358
359         * ra-build.c: (remember_web_was_spilled): Use GENERAL_REGS.
360
361 2002-07-20  Neil Booth  <neil@daikokuya.co.uk>
362
363         * cppexp.c (struct op): Add token pointer.
364         (check_promotion, CHECK_PROMOTION): New.
365         (optab): Update.
366         (_cpp_parse_expr): Update, use token pointer of struct op.
367         (reduce): Warn about change of sign owing to promotion.
368         * cppinit.c (cpp_handle_option): New warning if -Wall.
369         * cpplib.h (struct cpp_options): New member.
370
371 2002-07-19  David Edelsohn  <edelsohn@gnu.org>
372
373         * config/rs6000/rs6000.md: Remove ppc630 fpcompare from single
374         fpu list.  Separate Power4 compare and delayed_compare.  Correct
375         Power4 fpcompare.
376         (fix_truncdfsi2_internal): Restore FPR preference.
377         * config/rs6000/t-aix43 (MULTILIB_MATCHES): Add mcpu?power3,
378         mcpu?power4, mcpu?604e.  Remove mpower, mpower2, mpowerpc.
379
380 2002-07-19  Momchil Velikov <velco@fadata.bg>
381
382         * reload1.c (reload_as_needed): Duplicate oldpat.
383
384 2002-07-20  Alan Modra  <amodra@bigpond.net.au>
385
386         PR optimization/7130
387         * loop.h (struct loop_info): Add "preconditioned".
388         * unroll.c (unroll_loop): Set it.
389         * doloop.c (doloop_modify_runtime): Correct count for unrolled loops.
390
391 2002-07-19  Zack Weinberg  <zack@codesourcery.com>
392
393         * rtl.def (CODE_LABEL): Remove slot 8.
394         * rtl.h (struct rtx_def): Document new uses of jump and call fields.
395         (LABEL_ALTERNATE_NAME): Delete.
396         (LABEL_KIND, SET_LABEL_KIND, LABEL_ALT_ENTRY_P): New.
397         * defaults.h: Remove default for ASM_OUTPUT_ALTERNATE_LABEL_NAME.
398
399         * final.c (output_alternate_entry_point): New.
400         (final_scan_insn): Use it instead of
401         ASM_OUTPUT_ALTERNATE_LABEL_NAME.  Do not consider possibility
402         of a case label being an alternate entry point.
403
404         * cfgbuild.c (make_edges, find_bb_boundaries): Use LABEL_ALT_ENTRY_P.
405         * emit-rtl.c (gen_label_rtx): Adjust call to gen_rtx_CODE_LABEL.
406         Do not clear LABEL_NUSES (unnecessary) or LABEL_ALTERNATE_NAME
407         (field deleted).
408         * print-rtl.c, ra-debug.c: Update code to output CODE_LABELs.
409
410         * doc/rtl.texi: Document LABEL_KIND, SET_LABEL_KIND, and
411         LABEL_ALT_ENTRY_P; not LABEL_ALTERNATE_NAME.
412         * doc/tm.texi: Delete documentation of
413         ASM_OUTPUT_ALTERNATE_LABEL_NAME.
414
415 2002-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
416
417         * config/mips/iris5gas.h (DWARF2_DEBUGGING_INFO): Define.
418         (PREFERRED_DEBUGGING_TYPE): Use DWARF2_DEBUG.
419         (LINK_SPEC): Define.
420         (STARTFILE_SPEC): Define.
421         (ENDFILE_SPEC): Define.
422
423         * config/mips/iris6-o32.h (LINK_SPEC): Move ...
424         * config/mips/iris6-o32-as.h (LINK_SPEC): ... here.
425
426         * config/mips/iris6-o32-gas.h: New file.
427         * config.gcc (mips-sgi-irix6*o32): Use it.
428
429         * config/mips/t-iris5-gas: New file.
430         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
431
432 2002-07-19  Neil Booth  <neil@daikokuya.co.uk>
433
434         * cppexp.c (ALWAYS_EVAL): Remove.
435         (optab, reduce): Always evaluate.
436         (num_unary_op, num_binary_op, num_div_op): Issue diagnostics
437         only if not skipping evaluation.
438
439 2002-07-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
440
441         * config/avr/avr.c (debug_hard_reg_set): Remove.
442
443 2002-07-19  Chris Demetriou  <cgd@broadcom.com>
444
445         * gcc.c (cpp_options): Include "%1" (cc1_spec).
446
447 2002-07-19  Richard Henderson  <rth@redhat.com>
448
449         * loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.
450
451 2002-07-19  Alan Modra  <amodra@bigpond.net.au>
452
453         * prefix.c (update_path): Don't zap single `.' path components
454         unless followed by another `.' and fix typo last patch.
455
456 2002-07-18  Neil Booth  <neil@daikokuya.co.uk>
457
458         * cppexp.c (cpp_num_mul): Remove unused parameter.
459         (UNARY, BINARY, OTHER, binary_handler): Remove.
460         (ALWAYS_EVAL): New.
461         (optab): Update.
462         (reduce): Refactor to a large switch, don't use a function
463         pointer.
464
465 2002-07-18  Bo Thorsen  <bo@berlioz.suse.de>
466
467         * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Define this always.
468
469 Thu Jul 18 19:39:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
470
471         * sh-protos.h (sh_expand_unop_v2sf): Move inside #ifdef RTX_CODE guard.
472         (sh_expand_binop_v2sf): Likewise.
473         * sh.c (machine_dependent_reorg): Add move for UNSPEC_MOVA.
474         (int_gpr_dest, trunc_hi_operand): New functions.
475         * sh.h (PREDICATE_CODES): Add any_register_operand, int_gpr_dest and
476         trunc_hi_operand.
477         (SPECIAL_MODE_PREDICATES, any_register_operand): Define.
478         * sh.md (cmpeqdi_t+1): Remove comments that genrecog warns about.
479         (adddi3_compact+1, subdi3_compact+1, ashlsi3_n+1, ashlhi3+1): Likewise.
480         (ashrsi2_16+1, ashrsi2_31+1, lshrsi3_n+1, ashrdi3+[12]): Likewise.
481         (and_shl_scratch+[12], zero_extendhidi2+1): Likewise.
482         (zero_extendhisi2_media+1, extendhidi2+1, extendqidi2+1): Likewise.
483         (extendhisi2_media+1, extendqisi2_media+1): Likewise.
484         (movsi_media_nofpu+[12], movhi_media+1, movdi_media_nofpu+1): Likewise.
485         (movdi_const_16bit+[12], movdf_i4+[123], reload_outdf+[2-5]): Likewise.
486         (movsf_ie+1): Likewise.
487         (loaddi_trunc): Use int_gpr_dest predicate.
488         (use_sfunc_addr, indirect_jump_scratch, sibcall_compact): Add mode(s).
489         (mova, mova_const, GOTaddr2picreg, ptrel, casesi_worker_0): Likewise.
490         (casesi_worker_0+[12], casesi_worker): Likewise.
491         (shcompact_preserve_incoming_args): Likewise.
492         (mov_nop): Use any_register_operand predicate.
493         (mperm_w0): Use trunc_hi_operand predicate.
494
495 2002-07-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
496
497         * pa-linux.h (DWARF2_UNWIND_INFO): Delete define.
498         * pa.h (EH_RETURN_DATA_REGNO): Revise TARGET_64BIT and correct
499         numbering.
500
501 2002-07-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
502
503         * pa.c (output_deferred_plabels): Remove unused millicode enum mulU.
504
505 2002-07-18  Richard Henderson  <rth@redhat.com>
506
507         PR optimization/7147
508         * ifcvt.c (noce_get_condition): Make certain that the condition
509         is valid at JUMP.
510
511 Thu Jul 18 13:44:51 2002  J"orn Rennecke <joern.rennecke@superh.com>
512
513         * sh.c (barrier_align, push): Shut up compiler warnings.
514         (initial_elimination_offset,sh_media_init_builtins): Likewise.
515         (reg_no_subreg_operand): Delete.
516
517 2002-07-17  Bo Thorsen  <bo@suse.de>
518
519         * config/i386/linux64.h (LINK_SPEC): Remove bogus -Y option.
520         (STARTFILE_PREFIX_SPEC): Define for NATIVE_CROSS compilations.
521         (STARTFILE_SPEC): Remove hardcoded library paths.
522         (ENDFILE_SPEC): Likewise.
523
524 Thu Jul 18 09:38:59 CEST 2002  Jan Hubicka  <jh@suse.cz>
525
526         * gcse.c (hoist_expr_reaches_here_p):  Stop once expr_bb is reached.
527
528         * gcse.c (try_replace_reg): Do not return false positives.
529
530 2002-07-18  Alan Modra  <amodra@bigpond.net.au>
531
532         * prefix.c: (update_path): Strip ".." components when prior dir
533         doesn't exist.  Pass correct var to UPDATE_PATH_HOST_CANONICALIZE.
534
535         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Remove 64-bit support.
536         (ASM_OUTPUT_REG_POP): Likewise.
537
538 2002-07-18  Alan Modra  <amodra@bigpond.net.au>
539
540         * config/rs6000/rs6000.c (first_reg_to_save): Remove bogus
541         adjustments to first_reg for profiling case.
542         (output_function_profiler): Correct lr save slot for ABI_AIX_NODESC.
543         Disable profiling for 64 bit code on both ABI_V4 and ABI_AIX_NODESC.
544         Save static chain reg to sp + 12 on ABI_AIX_NODESC.
545         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Define.
546         (ASM_OUTPUT_REG_POP): Define.
547         * config/rs6000/linux64.h (ASM_OUTPUT_REG_PUSH): Undef.
548         (ASM_OUTPUT_REG_POP): Undef.
549
550 2002-07-17  Neil Booth  <neil@daikokuya.co.uk>
551
552         * cpplib.c (do_sccs): Handle #sccs on all systems.
553         * system.h (SCCS_DIRECTIVE): Poison.
554         * config/darwin.h, config/freebsd.h, config/netbsd.h,
555         config/ptx4.h, config/svr3.h, config/svr4.h, config/alpha/elf.h,
556         config/arm/linux-elf.h, config/c4x/c4x.h, config/d30v/d30v.h,
557         config/i370/i370.h, config/i386/gas.h, config/i386/sco5.h,
558         config/i960/i960.h, config/m68hc11/m68hc11.h, config/m68k/3b1.h,
559         config/m68k/3b1g.h, config/m68k/crds.h, config/m68k/mot3300.h,
560         config/m68k/pbb.h, config/m88k/m88k.h, config/mips/mips.h,
561         config/sparc/pbd.h, config/stormy16/stormy16.h, config/vax/vaxv.h:
562         Remove all references to SCCS_DIRECTIVE.
563         * doc/cpp.texi, doc/tm.texi: Update.
564
565 Wed Jul 17 19:23:32 2002  J"orn Rennecke <joern.rennecke@superh.com>
566
567         * regrename.c (maybe_mode_change): New function.
568         (find_oldest_value_reg, copyprop_hardreg_forward_1): Use it.
569
570 2002-07-17  Rodney Brown  <rbrown64@csc.com.au>
571
572         * config/i386/i386.c (ix86_expand_int_movcc): In the general case
573         suppress addition when either ct or cf are zero.
574
575 2002-06-17  Eric Botcazou <ebotcazou@multimania.com>
576             Glen Nakamura <glen@imodulo.com>
577
578         PR optimization/6713
579         * loop.c (loop_givs_rescan): Explicitly delete the insn that
580         sets a non-replaceable giv after issuing the new one.
581
582 2002-07-17  Neil Booth  <neil@daikokuya.co.uk>
583
584         * cppexp.c (cpp_interpret_integer, append_digit, parse_defined,
585         eval_token): Clarify and correct use of "bool" variables.
586         * cpplib.h (struct cpp_options): Similarly.
587         * cppmacro.c (parse_params, _cpp_save_parameter): Ditto.
588         * cpptrad.c (recursive_macro): Similarly.
589
590 Wed Jul 17 17:08:06 2002  J"orn Rennecke <joern.rennecke@superh.com>
591
592         * config/sh/lib1funcs.asm (udivsi3_i4): Implement SHcompact version in
593         SHmedia code.
594
595         * sh.md (cmpgtudi_media): Remove spurious @.
596
597         * config/sh/lib1funcs.asm (FMOVD_WORKS): Don't define for little endian.
598         * sh.h (OVERRIDE_OPTIONS): Don't set FMOVD_BIT for little endian.
599
600         * config/sh/lib1funcs.asm (init_trampoline): New entry point.
601         * sh-protos.h (sh_initialize_trampoline): Declare.
602         * sh.c (sh_initialize_trampoline): New function.
603         * sh.h (TRAMPOLINE_SIZE): Only 24 for TARGET_SHMEDIA32.
604         (TRAMPOLINE_ALIGNMENT): Need cache-line alignment for TARGET_SHMEDIA.
605         (INITIALIZE_TRAMPOLINE): Call sh_initialize_trampoline.
606         (TRAMPOLINE_ADJUST_ADDRESS): Not needed for SHcompact.
607         * sh.md (initialize_trampoline, double_shori): New patterns.
608         (initialize_trampoline_compact): Likewise.
609         (shmedia32_initialize_trampoline_big): Remove.
610         (shmedia32_initialize_trampoline_little): Likewise.
611
612         * sh-protos.h (binary_float_operator): Remove declaration.
613         (sh_expand_unop_v2sf, sh_expand_binop_v2sf): Declare.
614         * sh.c (print_operand, case 'N'): Check against CONST0_RTX.
615         (unary_float_operator, sh_expand_unop_v2sf): New functions.
616         (sh_expand_binop_v2sf): Likewise.
617         (zero_vec_operand): Delete.
618         (SH_BLTIN_UDI): New builtin shared signature define.  Renumbered
619         all non-shared ones.
620         (bdesc): Change all the mextr builtins to use SH_BLTIN_UDI.
621         Enable nsb and byterev.
622         * sh.h (CONDITIONAL_REGISTER_USAGE): Initialize DF_HI_REGS.
623         (HARD_REGNO_MODE_OK): Allow TImode in fp regs.  Allow V2SFmode
624         in general regs.
625         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add DF_HI_REGS.
626         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.  Remove clause for
627         immediate operands.
628         (SECONDARY_INPUT_RELOAD_CLASS): Add clause for immediate operands.
629         Add DF_HI_REGS.
630         (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Allow
631         lowpart fp regs - only for big endian for now.
632         (LEGITIMATE_CONSTANT_P): Don't allow non-zero float vectors
633         when FPU is in use.
634         (EXTRA_CONTRAINT_U): Check against CONST0_RTX.
635         (LOAD_EXTEND_OP): NIL for SImode.
636         (REGISTER_MOVE_COST): Add DF_HI_REGS.  Const for moves between
637         general and fp registers is 4.
638         PREDICATE_CODES: Amend binary_float_operator entry.
639         Remove zero_vec_operand.  Add unary_float_operator.
640         * sh.md (udivsi3_i4_media): Use truncate instead of paradoxical
641         subreg SET_DEST.
642         (truncdisi2, truncdihi2, movv2sf): Allow memory destinations.
643         (truncdiqi2): Do sign extension.
644         (movsi_media, movdi_media): Allow to use r63 to an fp register.
645         (movdf_media, movsf_media): Likewise.
646         (movv2sf_i, movv2sf_i+1): Don't use f{ld,st}.p or SUBREGS.
647         Collapse to one define_insn_and_split.  Allow immediate sources.
648         (addv2sf3, subv2sf3, mulv2sf3, divv2sf3): New patterns.
649         (movv4sf_i): Allow immediate sources.  Use simplify_gen_subreg.
650         (movv4sf): Allow immediate sources.
651         (movsf_media_nofpu+1): Don't split moves to FP registers.
652         (unary_sf_op, binary_sf_op, mshflo_w_x, concat_v2sf): New patterns.
653         (movv8qi_i+3): Check against CONST0_RTX.
654         (mextr1, mextr2. mextr3. mextr4, mextr5, mextr6, mextr7): Use DImode
655         for input and output operands.  Fix argument 3 to gen_mextr_rl.
656         (mmul23_wl, mmul01_wl, mmulsum_wq_i): s/const_vector/parallel/
657         (msad_ubq_i, mshf4_b, mshf0_b, mshf4_l, mshf0_l, mshf4_w): Likewise.
658         (mshf0_w, fipr, ftrv): Likewise.
659         (mshfhi_l_di): Now insn_and_split.  Can handle FP regs.
660
661 2002-07-17  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
662
663         * arm.h (ARM_NUM_INTS, ARM_NUM_REGS, ARM_NUM_REGS2): Renamed from
664         NUM_INTS, NUM_REGS and ARM_NUM_REGS2 respectively.  All uses changed.
665         * arm.c: Similarly.
666
667 2002-07-17  Richard Sandiford  <rsandifo@redhat.com>
668
669         * config/mips/mips-protos.h (mips_sign_extend): Declare.
670         * config/mips/mips.h (MASK_DEBUG_H, TARGET_DEBUG_H_MODE): Remove.
671         (TARGET_SWITCHES): Remove debugh.
672         (ISA_HAS_TRUNC_W): New macro.
673         (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS if TARGET_FLOAT64.
674         (PREDICATE_CODES): Remove se_nonimmediate_operand.
675         * config/mips/mips.c (movdi_operand): Allow sign-extensions of
676         any SImode move_operand.
677         (se_nonimmediate_operand): Remove.
678         (mips_sign_extend): New.
679         (mips_move_2words): Use it for sign-extended source operands.
680         (override_options): Allow integers to be put into single FPRs.
681         (mips_secondary_reload_class): Handle integers in float registers.
682         * config/mips/mips.md (extendsidi2): Turn into a define_expand.
683         (fix_truncsfsi2, fix_truncdfsi2): Likewise.
684         (fix_truncdfsi2_insn, fix_truncdfsi2_macro): New.
685         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): New.
686         (fix_truncdfdi2): Provide only a single alternative, in which the
687         integer is in a float register.  Depend on TARGET_FLOAT64 rather
688         than TARGET_64BIT.
689         (fix_truncsfdi2, floatdidf2, floatdisf2): Likewise.
690         (floatsidf2, floatsisf2): Likewise, but no TARGET_FLOAT64 dependency.
691         (movdi_internal2): Don't allow the source operand to be sign-extended.
692         Add alternatives for float registers.
693         (*movdi_internal2_extend): New.  Version of movdi_internal2 that
694         allows sign-extension.
695         (*movdi_internal2_mips16): Name the existing mips16 movdi pattern.
696         (movsi_internal2): Rename to movsi_internal.  Add alternatives for
697         float registers.  Remove TARGET_DEBUG_H_MODE test.
698         (movhi_internal1): Rename to movhi_internal.  Don't check
699         TARGET_DEBUG_H_MODE.  Fix transposed *d and *f source constraints.
700         (movqi_internal1): Rename to movqi_internal and remove
701         TARGET_DEBUG_H_MODE dependency.
702         (movsi_internal1, movhi_internal2, movqi_internal2): Remove.
703
704 2002-07-16  Jim Wilson  <wilson@redhat.com>
705
706         * toplev.c (lang_dependent_init): Create function context for
707         init_expr_once.
708
709 2002-07-16  Hans-Peter Nilsson  <hp@axis.com>
710
711         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Don't
712         --gc-sections if -r.
713         * config/cris/cris.h: Ditto.
714
715 2002-07-16  Rodney Brown  <rbrown64@csc.com.au>
716
717         * config/i386/i386.c (ix86_expand_int_movcc): In the case where
718         the comparison directly gives a mask suppress addition when cf is
719         zero by complementing the mask.
720
721 2002-07-16  Nathanael Nerode  <neroden@gcc.gnu.org>
722
723         * Makefile.in: Delete references to enquire.
724         * enquire.c: Move to contrib.
725
726 2002-07-16  Stan Shebs  <shebs@apple.com>
727
728         * config/darwin.h (ASM_OUTPUT_LABEL): Move to here from
729         config/rs6000/darwin.h.
730         (ASM_OUTPUT_SKIP): Ditto.
731         (TEXT_SECTION_ASM_OP): Ditto.
732         (DATA_SECTION_ASM_OP): Ditto.
733         (ASM_APP_ON): Define.
734         (ASM_APP_OFF): Define.
735         * config/rs6000/darwin.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_SKIP,
736         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Remove.
737
738         * config/darwin.c (func_name_maybe_scoped): Remove unused decl.
739         (machopic_function_base_name): Declare result to be const.
740         (machopic_non_lazy_ptr_name): Ditto.
741         (machopic_stub_name): Ditto.
742         * config/darwin-protos.h: Ditto for the prototypes.
743
744 Wed Jul 17 00:22:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
745
746         * m68hc11.c (m68hc11_reorg): Do not rebuild CFG.
747
748 Wed Jul 17 00:20:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
749
750         * i386.md (prefetch): Fix for 64bit mode.
751         (prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
752
753 Wed Jul 17 00:19:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
754
755         * i386.h (MACHINE_DEPENDENT_REORG): New macro.
756         * i386.c (x86_machine_dependent_reorg): New function.
757         * i386-protos.h (x86_machine_dependent_reorg): Declare.
758
759 2002-07-16  Zack Weinberg  <zack@codesourcery.com>
760
761         * builtins.c (std_expand_builtin_va_start): Remove unused
762         first argument.
763         (expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and
764         std_expand_builtin_va_start with just two arguments.
765         * expr.h: Update prototypes.
766
767         * alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h,
768         arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h,
769         i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h,
770         m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h,
771         mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c,
772         rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h,
773         s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h,
774         sparc.c, stormy16-protos.h, stormy16.h, stormy16.c,
775         xtensa-protos.h, xtensa.h, xtensa.c:  Remove unused first
776         argument from all implementations of EXPAND_BUILTIN_VA_START
777         and all uses of std_expand_builtin_va_start.
778
779 Tue Jul 16 19:32:58 2002  J"orn Rennecke <joern.rennecke@superh.com>
780
781         * regrename.c (copy_value): Don't record high part copies.
782
783 2002-07-16  Steve Ellcey  <sje@cup.hp.com>
784
785         * gcc/config/pa/long_double.h (FIXUNS_TRUNCTFDI2_LIBCALL): New define.
786         (fixunstfdi_libfunc): Change to use FIXUNS_TRUNCTFDI2_LIBCALL.
787         * gcc/config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_udbl): New function.
788
789 2002-07-16  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
790
791         * doc/invoke.texi (NS32K Options): Document -mieee-compare option
792
793         * config/ns32k/ns32k.md (addsi3, *frame_addr, *stack_addr): merge
794         into addsi3 using register class "x" and "y".
795
796         * config/ns32k/ns32k.md (*madddf, *maddsf, *msubdf, *msubsf):
797         "earlyclobber" constraint modifier for some alternative.
798
799         * config/ns32k/ns32k.md (tstdf, tstsf, cmpdf, cmpsf, blt, ble)
800         (*ble, *blt): Flag to indicate bCOND and sCOND should check for
801         unordered.
802         config/ns32k/ns32k.h (CC_UNORD): define corresponding mask.
803
804         * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE, MASK_IEEE_COMPARE)
805         (TARGET_SWITCHES): Add -mieee-compare option.
806         (OVERRIDE_OPTIONS): 32332 is a subset of
807         32532. Don't use IEEE_COMPARE -funsafe-math-optimizations.
808         (TARGET_SWITCHES): Fix description of bitfield option.
809         * config/ns32k/netbsd.h (TARGET_DEFAULT): Add
810         -mieee-compare option. Remove 32332 flag.
811
812 2002-07-16  Steve Ellcey  <sje@cup.hp.com>
813
814         * explow.c (convert_memory_address): Remove special handling
815         when POINTERS_EXTEND_UNSIGNED < 0.
816         * config/ia64.md (movsi_symbolic): New instruction for ILP32 mode.
817         (movedi_symbolic): Fix typo.
818         (load_fptr): Remove mode restriction so it works for SI and DI.
819         (load_fptr_internal1): Ditto.
820         (load_gprel): Ditto.
821         (load_symptr_internal1): Ditto.
822         (call_pic): Ditto.
823         * config/ia64.c (call_operand): Modify mode check.
824         (ia64_expand_load_address): Handle DI and SI addresses and symbols.
825         (ia64_expand_move): Ditto.
826         (ia64_assemble_integer): Handle SImode function pointers.
827         (ia64_expand_fetch_and_op): Handle SImode mem addresses.
828         (ia64_expand_op_and_fetch): Ditto.
829         (ia64_expand_compare_and_swap): Ditto.
830         (ia64_expand_lock_test_and_set): Ditto.
831         (ia64_expand_lock_release): Ditto.
832
833 2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
834
835         * arm.c (emit_sfm): Don't set RTX_FRAME_RELATED_P on DWARF.
836
837 2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
838             Richard Earnshaw  <rearnsha@arm.com>
839
840         * arm.h (LEGITIMATE_PIC_OPERAND_P): Only test
841         CONSTANT_POOL_ADDRESS_P if a SYMBOL_REF.  Simplify logic.
842
843 2002-07-16  Richard Earnshaw  <rearnsha@arm.com>
844
845         * arm.md (stack_tie): New insn.  Use an idiom that the alias code
846         understands to be a memory clobber.
847         * arm.c (arm_expand_prologue): Use it.
848
849 2002-07-16  Daniel Berlin  <dberlin@dberlin.org>
850
851         * ra-rewrite.c: #include reload.h, insn-config.h
852         * ra-build.c: #include reload.h
853         * Makefile.in: Update ra-rewrite.o, ra-build.o dependencies to
854         depend on reload.h, insn-config.h.
855
856 Tue Jul 16 11:57:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
857
858         * expr.c (emit_move_insn_1): Handle arbitrary moves that are
859         the same size as a word.
860
861         * regrename.c (find_oldest_value_reg): Take WORDS_BIG_ENDIAN /
862         BYTES_BIG_ENDIAN into account.
863
864 Tue Jul 16 12:22:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
865
866         * i386.md (prefetch): Fix for 64bit mode.
867         (prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
868
869         * i386.md (movss, movsd): Use xorps/xorpd for Athlon.
870
871 2002-07-16  Marek Michalkiewicz  <marekm@amelek.gda.pl>
872
873         * hard-reg-set.h (TEST_HARD_REG_BIT): Return 1 if the bit is set.
874
875 2002-07-15  Zack Weinberg  <zack@codesourcery.com>
876
877         * ginclude/varargs.h: Replace with stub which issues #error.
878         * ginclude/stdarg.h: __builtin_stdarg_start is renamed
879         __builtin_va_start.
880
881         * builtins.def (BUILT_IN_VARARGS_START): Delete.
882         (BUILT_IN_VA_START): New.
883         * builtins.c (expand_builtin_va_start): Eliminate first
884         argument and code to implement pre-ISO varargs.
885         (std_expand_builtin_va_start): Ignore first argument; it is
886         always 1.
887         (expand_builtin): Handle BUILT_IN_VA_START and
888         BUILT_IN_STDARG_START identically.  Delete
889         BUILT_IN_VARARGS_START case.
890
891         * function.c (assign_parms): Delete hide_last_arg and all
892         its uses.
893         (mark_varargs): Delete function.
894         * function.h (struct function): Delete 'varargs' bit.
895         (current_function_varargs): Delete macro.
896         * tree.h: Don't declare mark_varargs.
897
898         * c-decl.c (c_function_varargs, c_mark_varargs): Delete.
899         (c_expand_body): Don't call mark_varargs.
900         * c-objc-common.c: Handle BUILT_IN_VA_START and
901         BUILT_IN_STDARG_START identically.  Delete
902         BUILT_IN_VARARGS_START case.
903         * c-tree.h: Don't declare c_mark_varargs.
904         * c-parse.in: Remove grammar rules for '&...' (which has been
905         commented out since before 2.7.2) and for '...' in K+R
906         argument declarations.
907
908         * builtins.c, function.c, integrate.c, sibcall.c,
909         config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h,
910         config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c,
911         config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c,
912         config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h,
913         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
914         config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c,
915         config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h,
916         config/stormy16/stormy16.c: Delete all references to
917         current_function_varargs, and code predicated on that flag.
918
919         * config/alpha/alpha.c (alpha_va_start),
920         config/arc/arc.c (arc_va_start),
921         config/i386/i386.c (ix86_va_start),
922         config/mips/mips.c (mips_va_start),
923         config/mn10300/mn10300.c (mn10300_va_start),
924         config/rs6000/rs6000.c (rs6000_va_start),
925         config/s390/s390.c (s390_va_start),
926         config/sh/sh.c (sh_va_start),
927         Ignore first argument; it is always 1.
928
929         * config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start.
930         * config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start.
931         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
932         Delete m68hc11_va_start.
933         * config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h:
934         No need to define EXPAND_BUILTIN_VA_START.
935
936         * doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi,
937         doc/trouble.texi: Remove references to GCC-provided <varargs.h>.
938
939 2002-07-15  Eric Botcazou  <ebotcazou@multimania.com>
940
941         PR optimization/7153
942         * regmove.c (optimize_reg_copy_3): Don't optimize if the register
943         dies in more than one insn.
944
945 2002-07-15  Jason Thorpe  <thorpej@wasabisystems.com>
946
947         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove.
948
949 2002-07-15  Michael Matz  <matz@suse.de>,
950             Daniel Berlin  <dberlin@dberlin.org>,
951             Denis Chertykov  <denisc@overta.ru>
952
953         Add a new register allocator.
954
955         * ra.c: New file.
956         * ra.h: New file.
957         * ra-build.c: New file.
958         * ra-colorize.c: New file.
959         * ra-debug.c: New file.
960         * ra-rewrite.c: New file.
961
962         * Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
963         (ra-rewrite.o): New .o files for libbackend.a.
964         (GTFILES): Add basic-block.h.
965
966         * toplev.c (flag_new_regalloc): New.
967         (f_options): New option "new-ra".
968         (rest_of_compilation): Call initialize_uninitialized_subregs()
969         only for the old allocator.  If flag_new_regalloc is set, call
970         new allocator, instead of local_alloc(), global_alloc() and
971         friends.
972
973         * doc/invoke.texi: Document -fnew-ra.
974         * basic-block.h (FOR_ALL_BB): New.
975         * config/rs6000/rs6000.c (print_operand): Write small constants
976         as @l+80.
977
978         * df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg.
979         (df_reg_table_realloc): Make size at least as large as max_reg_num().
980         (df_insn_table_realloc): Size argument now is absolute, not relative.
981         Changed all callers.
982
983         * gengtype.c (main): Add the pseudo-type "HARD_REG_SET".
984         * regclass.c (reg_scan_mark_refs): Ignore NULL rtx's.
985
986         2002-06-20  Michael Matz  <matz@suse.de>
987
988         * df.h (struct ref.id): Make unsigned.
989         * df.c (df_bb_reg_def_chain_create): Remove unsigned cast.
990
991         2002-06-13  Michael Matz  <matz@suse.de>
992
993         * df.h (DF_REF_MODE_CHANGE): New flag.
994         * df.c (df_def_record_1, df_uses_record): Set this flag for refs
995         involving subregs with invalid mode changes, when
996         CLASS_CANNOT_CHANGE_MODE is defined.
997
998         2002-05-07  Michael Matz  <matz@suse.de>
999
1000         * reload1.c (fixup_abnormal_edges): Don't insert on NULL edge.
1001
1002         2002-05-03  Michael Matz  <matz@suse.de>
1003
1004         * sbitmap.c (sbitmap_difference): Accept sbitmaps of different size.
1005
1006         Sat Feb  2 18:58:07 2002  Denis Chertykov  <denisc@overta.ru>
1007
1008         * regclass.c (regclass): Work with all regs which have sets or
1009         refs.
1010         (reg_scan_mark_refs): Count regs inside (clobber ...).
1011
1012         2002-01-04  Michael Matz  <matzmich@cs.tu-berlin.de>
1013
1014         * df.c (df_ref_record): Correctly calculate SUBREGs of hardregs.
1015         (df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only
1016         add new refs.
1017         (df_bb_refs_update): Don't clear insns_modified here, ...
1018         (df_analyse): ... but here.
1019
1020         * sbitmap.c (dump_sbitmap_file): New.
1021         (debug_sbitmap): Use it.
1022
1023         * sbitmap.h (dump_sbitmap_file): Add prototype.
1024
1025         2001-08-07  Daniel Berlin  <dan@cgsoftware.com>
1026
1027         * df.c (df_insn_modify): Grow the UID table if necessary, rather
1028         than assume all emits go through df_insns_modify.
1029
1030         2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
1031
1032         * regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS,
1033         increase REG_N_REFS (like flow does), so that regclass doesn't
1034         think a reg is useless, and thus, not calculate a class, when it
1035         really should have.
1036
1037         2001-01-28  Daniel Berlin  <dberlin@redhat.com>
1038
1039         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for
1040         dataflow analysis.
1041
1042 2002-07-15  Jakub Jelinek  <jakub@redhat.com>
1043
1044         PR middle-end/7245
1045         * config/i386/i386.c (const_int_1_31_operand): New.
1046         * config/i386/i386.h (PREDICATE_CODES): Add it.
1047         * config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp,
1048         ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp,
1049         lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it.
1050
1051 2002-07-14  Alan Modra  <amodra@bigpond.net.au>
1052
1053         PR target/7282
1054         * config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64.
1055         (floatunssidf2): Likewise.
1056         (floatsidf_ppc64): New insn_and_split.
1057         (floatunssidf_ppc64): Likewise.
1058
1059 2002-07-14  Andreas Jaeger  <aj@suse.de>
1060
1061         * config.gcc (sh64): Remove unused
1062         target_requires_64bit_host_wide_int.
1063
1064 2002-07-12  Roger Sayle  <roger@eyesopen.com>
1065
1066         * expr.c [CLEAR_RATIO]: New macro defining the maximum number
1067         of move instructions to use when clearing memory, c.f. MOVE_RATIO.
1068         [CLEAR_BY_PIECES]: New macro, using CLEAR_RATIO, to determine
1069         whether clear_by_pieces should be used to clear storage.
1070         (clear_storage): Use CLEAR_BY_PIECES instead of MOVE_BY_PIECES.
1071
1072         * doc/tm.texi: Document these two new target macros.
1073
1074 2002-07-12  Stephane Carrez  <stcarrez@nerim.fr>
1075
1076         * config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for
1077         the scratch register.
1078         ("*movhi2_push"): Accept Z_REG because a split pattern can make use
1079         of it, forbid reload to use it.
1080
1081 2002-07-12  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1082
1083         * config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT
1084         usage on 64-bit hosts, return value was truncated to 32 bits.
1085
1086 Fri Jul 12 00:49:36 2002  J"orn Rennecke <joern.rennecke@superh.com>
1087
1088         * simplify-rtx.c (simplify_subreg): Handle floating point
1089         CONST_DOUBLEs.  When an integer subreg of a smaller mode than
1090         the element mode is requested, compute a subreg with an
1091         integer mode of the same size as the element mode first.
1092
1093 Thu Jul 11 22:02:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
1094
1095         * combine.c (try_combine): When converting a paradoxical subreg
1096         to an extension, take LOAD_EXTEND_OP into account.
1097
1098 2002-07-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1099
1100         * config.gcc (mips-sgi-irix6*o32): New configuration.
1101
1102         * configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32
1103         configurations.
1104         * configure: Regenerate.
1105
1106         * config/mips/iris6-o32-as.h: New file.
1107         * config/mips/iris6-o32.h: New file.
1108
1109         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define.
1110         (NM_FLAGS): Define.
1111         (HAVE_AS_SHF_MERGE): Undefine.
1112
1113         * config/mips/t-iris5-as: New file.
1114         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
1115
1116         * config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME,
1117         SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK,
1118         SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT,
1119         dp-bit.c, fp-bit.c): Move ...
1120         * config/mips/t-iris5-6: ... here.
1121         New file, shared by IRIX 5 and IRIX 6.
1122         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*,
1123         mips-sgi-irix5*): Use it.
1124
1125         * config/mips/iris6.h: Remove duplicate comment.
1126
1127         * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
1128         !TARGET_IRIX6]: Define.
1129         (mips_asm_file_start): Don't emit mdebug.<ABI> sections on IRIX 5/6.
1130
1131         * config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment.
1132
1133 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1134
1135         * pa.md (adddi3): Change predicate of operand 2 to adddi3_operand
1136         and delete code to force constant to register.
1137         * pa-protos.h (adddi3_operand): Add prototype.
1138         * pa.c (adddi3_operand): New function.
1139
1140 2002-07-11  Roger Sayle  <roger@eyesopen.com>
1141
1142         * c-decl.c (duplicate_decls): Preserve the noreturn attribute on
1143         non-ANSI builtin functions.
1144
1145 Thu Jul 11 11:31:12 2002  J"orn Rennecke <joern.rennecke@superh.com>
1146
1147         * rtl.h (gen_rtx_CONST_VECTOR): Declare.
1148         * gengenrtl.c (special_rtx): Check for CONST_VECTOR.
1149         * emit-rtl.c (gen_rtx_CONST_VECTOR): New function.
1150         (gen_const_vector_0): Use it.
1151
1152 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1153
1154         * pa.md (adddi3): For 32-bit targets, force constants to a register
1155         if they don't fit in an 11-bit immediate.  Change insn predicate to
1156         arith11_operand.  Remove comment.
1157         * pa.c (cint_ok_for_move): Fix comment.
1158         (emit_move_sequence):  Don't directly split DImode constants on 32-bit
1159         targets.
1160
1161 2002-07-11  Tim Josling  <tej@melbpc.org.au>
1162
1163         Remove front end hard coding from gengtype.c.
1164
1165         * Makefile.in
1166         (STAGESTUFF): add gtyp-gen.h
1167         (GTFILES): Remove front end specific files.
1168         (GTFILES_FILES_LANGS): New, from configure..
1169         (GTFILES_FILES_FILES): Likewise.
1170         (GTFILES_LANG_DIR_NAMES): Likewise.
1171         (GTFILES_SRCDIR): Likewise.
1172         (gtyp-gen.h): Build from configure information.
1173         (s-gtype): Remove command line parameters from gengtype.
1174         (gengtype.o): Remove dependency on GTFILES. Depend on gtyp-gen.h.
1175         (mostlyclean): Delete files generated by and for gengtype.
1176
1177         * c-config-lang.in: New file.
1178
1179         * configure.in (all_gtfiles_files_langs): New. Accumulate files
1180         for each language.
1181         (all_gtfiles_files_files): New. Accumulate language for each file
1182         accumulated.
1183         (gtfiles): Pick up value for C.
1184         (srcdir): AC-SUBST this variable.
1185         (all_gtfiles_files_langs): AC-SUBST this variable.
1186         (all_gtfiles_files_files): AC-SUBST this variable.
1187
1188         * configure: Regenerate.
1189
1190         * gengtype-lex.l (parse_file): Make parameter const.
1191
1192         * gengtype.c (toplevel): include gtyp-gen.h.
1193         (BASE_FILE_<language> unnamed enum): Delete.
1194         (lang_names): Delete (replaced by gtyp-gen.h)
1195         (lang_dir_names): From gtyp-gen.h, replaces lang_names; changed
1196         all references.
1197         (NUM_GT_FILES): New.
1198         (NUM_LANG_FILES): New.
1199         (srcdir_len): New.
1200         (NUM_BASE_FILES): Change calculation.
1201         (open_base_files): Change prototype to avoid warning.
1202         (startswith): Delete.
1203         (get_file_basename): Iterate through generated language list not
1204         hard coded list.
1205         (get_base_file_bitmap): Use generated list of files and languages.
1206         (close_output_files): Add prototype to rmove warning.
1207         (main): Iterate through list of generated files from gtyp-gen.h
1208         rather than command line paramaters.  Ignore duplicated file
1209         names.
1210
1211         * gengtype.h (parse_file): Amend prototype for const parameter.
1212
1213         * doc/sourcebuild.texi: Document gtfiles variable.
1214
1215         * doc/gty.texi: Document changes to gtfiles variable for front
1216         ends.
1217
1218         * objc/config-lang.in (gtfiles): Add files needed for objc front
1219         end.
1220
1221 2002-07-10  Roger Sayle  <roger@eyesopen.com>
1222
1223         PR c/2454
1224         * combine.c (nonzero_bits): LOAD_EXTEND_OP should only apply
1225         to SUBREGs of MEMs.  (num_sign_bit_copies): Likewise.
1226
1227 2002-07-10  Roger Sayle  <roger@eyesopen.com>
1228             Zack Weinberg <zack@codesourcery.com>
1229
1230         * builtins.def: Make the argument types of abort and exit
1231         independent of the front-end.
1232
1233 2002-07-11  Alan Modra  <amodra@bigpond.net.au>
1234
1235         * config/rs6000/linux64.h (ASM_SPEC): Define.
1236
1237 2002-07-10  Aldy Hernandez  <aldyh@redhat.com>
1238
1239         * config/rs6000/rs6000.c (emit_frame_save): New.
1240         (rs6000_frame_related): Replace reg2 before reg.
1241         (rs6000_emit_prologue): Use emit_frame_save for saving gprs, fprs,
1242         and eh_return registers.
1243
1244 2002-07-10  Toon Moene  <toon@moene.indiv.nluug.nl>
1245
1246         Revert all patches for optimization of Complex .op. Real.
1247         * complex_part_zero_p: Remove
1248         * expand_cmplxdiv_straight: Replace complex_part_zero_p(x)
1249         with x.
1250         * expand_cmplxdiv_wide: Ditto.
1251         * expand_binop: Ditto.
1252
1253 2002-07-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1254
1255         * config/avr/avr.md: Fix two 0x80000000 constants to make them
1256         negative also on 64-bit hosts.
1257
1258         Default to -fno-reorder-blocks when optimizing for size.
1259         * config/avr/avr-protos.h (avr_optimization_options): Declare.
1260         * config/avr/avr.c (avr_optimization_options): New function.
1261         * config/avr/avr.h (OPTIMIZATION_OPTIONS): New.
1262
1263         Optimize returning from simple functions.
1264         * config/avr/avr-protos.h (avr_simple_epilogue): Declare.
1265         * config/avr/avr.c (avr_simple_epilogue): New function.
1266         * config/avr/avr.md (return): New insn.
1267
1268 2002-07-10  Douglas B Rupp  <rupp@gnat.com>
1269
1270         * config/i386/i386.c  (ix86_svr3_asm_out_constructor): Add
1271         HAS_INIT_SECTION to protection.
1272
1273 2002-07-10  Mark Mitchell  <mark@codesourcery.com>
1274
1275         * doc/invoke.texi (Debugging Options): Mention that -gdwarf is
1276         deprecated.
1277
1278 Wed Jul 10 19:50:03 2002  J"orn Rennecke <joern.rennecke@superh.com>
1279
1280         * combine.c (gen_lowpart_for_combine): Handle vector modes.
1281         Supply non-VOID mode to simplify_gen_subreg.
1282
1283 Wed Jul 10 18:48:55 CEST 2002  Jan Hubicka  <jh@suse.cz>
1284
1285         * i386.c (ix86_init_mmx_sse_builtins): Fix thinko.
1286
1287 2002-07-10  Jeffrey A Law  <law@redhat.com>
1288
1289         * mn10200.c (expand_prologue): Create REG_MAYBE_DEAD notes
1290         as appropriate.
1291
1292         * mn10200.c (expand_epilogue): Fix test to determine which scratch
1293         register to use.
1294
1295 Wed Jul 10 16:06:00 2002  J"orn Rennecke <joern.rennecke@superh.com>
1296
1297         * cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg.
1298         Get mode from dest.
1299         If simplify_gen_subreg fails, try next equivalent.
1300
1301 2002-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
1302
1303         * diagnostic.h: #include location.h
1304         (location_t): Move definition to..
1305         * location.h: ... here.  New file.
1306         * tree.h: #include location.h
1307         (DECL_SOURCE_LOCATION): New macro.
1308         (DECL_SOURCE_FILE): Use.
1309         (DECL_SOURCE_LINE): Likewise.
1310         (struct tree_decl): REplace filename and linenum with locus.
1311         * Makefile.in (TREE_H): add location.h
1312         (diagnostic.o): Depends on gt-location.h
1313         (gt-location.h): Depends on s-gtype
1314
1315 2002-07-09  Matt Kraai  <kraai@alumni.cmu.edu>
1316
1317         * config/rs6000/aix.h: Convert CPP_PREDEFINES to
1318         TARGET_OS_CPP_BUILTINS.
1319         * config/rs6000/aix31.h: Likewise.
1320         * config/rs6000/aix41.h: Likewise.
1321         * config/rs6000/aix43.h: Likewise.
1322         * config/rs6000/aix51.h: Likewise.
1323         * config/rs6000/beos.h: Likewise.
1324         * config/rs6000/darwin.h: Likewise.
1325         * config/rs6000/eabi.h: Likewise.
1326         * config/rs6000/eabisim.h: Likewise.
1327         * config/rs6000/linux.h: Likewise.
1328         * config/rs6000/linux64.h: Likewise.
1329         * config/rs6000/lynx.h: Likewise.
1330         * config/rs6000/mach.h: Likewise.
1331         * config/rs6000/rtems.h: Likewise.
1332         * config/rs6000/sysv4.h: Likewise.
1333         * config/rs6000/vxppc.h: Likewise.
1334
1335 2002-07-09 Devang Patel <dpatel@apple.com>
1336         * objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch.
1337         Do not allow ObjC objects as a parameter type for Objective-C methods.
1338         My previous patch restricted  'struct' also.
1339
1340 2002-07-09  Neil Booth  <neil@daikokuya.co.uk>
1341
1342         * cpperror.c (cpp_error): Default to directive_line within
1343         directives here.
1344         * cppexp.c (cpp_interpret_integer): Only use traditional
1345         number semantics in directives.
1346         * cpplib.c (prepare_directive_trad): Don't reset pfile->line.
1347         (do_include_common): Similarly.
1348         * cpptrad.c (scan_out_logical_line): Implement accurate
1349         quoting of <> in #include.
1350         * doc/cpp.texi: Update.
1351
1352 Tue Jul  9 22:37:44 2002  Stephen Clarke <stephen.clarke@superh.com>
1353                           J"orn Rennecke <joern.rennecke@superh.com>
1354
1355         * sh.c (sh_adjust_cost): Special handling of SHMEDIA code.
1356         * sh.md (attribute issues): Replace with:
1357         (attribute pipe_model).  All users changed.
1358         (attribute type): Change pt / ptabs to pt_media / ptabs_media.
1359         All users changed.
1360         (function units sh5issue, sh5fds): New.
1361         (attribute is_mac_media): New.
1362         (adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type.
1363         (andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise.
1364         (ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise.
1365         (movhi_media, shori_media, movv2sf_i, jump_media): Likewise.
1366         (call_media, call_value_media, sibcall_media): Likewise.
1367         (casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise.
1368         (return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise.
1369         (mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise.
1370         (fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise.
1371         (cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise.
1372         (sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise.
1373         (muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise.
1374         (fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise.
1375         (cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise.
1376         (sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise.
1377         (truncdfsf2_media): Likewise.
1378         (movsi_media, movsi_media_nofpu, movdi_media): Use new types.
1379         (movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise.
1380
1381 Tue Jul  9 21:39:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
1382
1383         * sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
1384         * sh.c (general_extend_operand, inqhi_operand): New functions.
1385         * sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse
1386         alternatives using 'N' modifier.  Add type.
1387         (adddi3z_media): Likewise.  Enable generator function generation.
1388         (movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more
1389         exact predicates / constraints.  Add type.
1390         (subsi3): Allow 0 for SHMEDIA.
1391         (udivsi3_i4_media): Use match_operand for input values
1392         rather than hard registers.
1393         (udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
1394         unnecessarily through hard registers.  Keep copies of pseudo
1395         registers outside of the libcall sequence.
1396         (mulsidi3_media, umulsidi3_media): Use more exact predicates.  Add type.
1397         (ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise.
1398         (zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise.
1399         (extendhidi2, extendqidi2): Likewise.
1400         (andsi3_compact): Name.
1401         (andcdi3): Enable generator function generation.
1402         (zero_extendhisi2, zero_extendqisi2): Rename to
1403         (zero_extendhisi2_compact, zero_extendqisi2_compact).
1404         (extendhisi2, extendqisi2): Rename to
1405         (extendhisi2_compact, extendqisi2_compact).
1406         (rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns.
1407         (loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise.
1408         (zero_extendhisi2_media+1, zero_extendqisi2): Likewise.
1409         (zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise.
1410         (extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise.
1411         (extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise.
1412         (truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise.
1413         (shmedia32_initialize_trampoline_big): Likewise.
1414         (shmedia32_initialize_trampoline_little): Likewise.
1415         (nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise.
1416         (negdi2): Remove spurious T clobber.
1417         (zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE.
1418         (movsi_media, movsi_media_nofpu): Remove spurious *k after b.
1419         (movdi_media, movdi_media_nofpu, pt, ptb): Likewise.
1420         (movsi_media_nofpu+2, movhi_media+1): Only do split after reload.
1421         (ic_invalidate_line_media): Write back data cache before invalidating
1422         instruction cache.  Add type.
1423         (movsf_media): Sign-extend when the destination is a general
1424         purpose register.  Add type.
1425         (bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0.
1426         (casesi_worker_0+1): Only increment ref count for proper label.
1427         (casesi_worker_0+2): Likewise.
1428
1429 2002-07-09  Mark Mitchell  <mark@codesourcery.com>
1430
1431         * dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated.
1432
1433 2002-07-09  Steve Ellcey  <sje@cup.hp.com>
1434
1435         * gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer
1436         from Pmode to ptr_mode.
1437         (get_exception_pointer): Ditto.
1438         (connect_post_landing_pads): Ditto.
1439         (dw2_build_landing_pads): Ditto.
1440
1441 2002-07-08  Steve Ellcey  <sje@cup.hp.com>
1442         * gcc/c-pragma.h (add_to_renaming_pragma_list): New function.
1443         * gcc/c-pragma.c (add_to_renaming_pragma_list): New function.
1444         (handle_pragma_redefine_extname): Change to use new function.
1445
1446 2002-07-08  Roger Sayle  <roger@eyesopen.com>
1447
1448         * combine.c (combine_simplify_rtx): Add an explicit cast
1449         to avoid signed/unsigned comparison warning.
1450         (simplify_if_then_else): Likewise.
1451         (extended_count): Likewise.
1452         (simplify_shift_const): Likewise.
1453         (simplify_comparison): Likewise.
1454
1455 2002-07-08  Richard Sandiford  <rsandifo@redhat.com>
1456
1457         * config/mips/mips.md: Add imadd type.  Update scheduler description
1458         to use imadd as well as imul.
1459         (*mul_acc_si, *madsi): Change imul alternatives to imadd.
1460         (*mul_acc_di, *mul_acc_64bit_di): Likewise.
1461         (*mul_sub_si): Likewise for first alternative.  Change second
1462         alternative from imul to multi.
1463
1464 2002-07-07  Neil Booth  <neil@daikokuya.co.uk>
1465
1466         * c-common.c (c_common_post_options): Update prototype;
1467         don't init backends if preprocessing only.
1468         * langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update.
1469         * langhooks.h (struct lang_hooks): Update post_options to
1470         return a boolean.
1471         * toplev.c (parse_options_and_default_flags, do_compile,
1472         lang_independent_init): Update prototypes.  Allow the
1473         front end to specify that there is no need to initialize
1474         the back end.
1475         (general_init): Move call to hex_init here...
1476         (toplev_main): ...from here.  Pass flag for back end init
1477         suppression.
1478
1479 Sun Jul  7 20:38:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
1480
1481         * sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
1482         (PREDICATE_CODES): Add entries for equality_comparison_operator,
1483         greater_comparison_operator and less_comparison_operator.
1484         * sh.c (print_operand): Add '\'' code.  Make 'o' handle
1485         more operators.
1486         (equality_comparison_operator): New function.
1487         (greater_comparison_operator, less_comparison_operator): Likewise.
1488         * sh.md (beq_media_i): Disable generator function generation.
1489         Use match_operator to handle a whole class of comparisons.  Add
1490         modifier in output template to provide branch prediction.  Add type.
1491         (bgt_media_i, ble_media_i): Likewise.  Allow zero operands.
1492         (bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete.
1493         (blt_media_i, bleu_media_i, bltu_media_i): Likewise.
1494         (bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands.
1495
1496 2002-07-07  Hans-Peter Nilsson  <hp@bitrange.com>
1497
1498         Emit MMIX function prologue and epilogue as rtl.
1499         * config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val,
1500         not unprototyped get_hard_reg_initial_val.
1501         ("call_value", "nonlocal_goto_receiver"): Ditto.
1502         ("return"): Make define_expand.  Move real insn to...
1503         ("*expanded_return"): New pattern.
1504         ("prologue", "epilogue"): New define_expands.
1505         * config/mmix/mmix.h (MMIX_rO_REGNUM): New macro.
1506         (struct machine_function): New member in_prologue.
1507         (FIRST_PSEUDO_REGISTER): Adjust for including rO as register.
1508         (FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto.
1509         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto.
1510         (MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto.
1511         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto.
1512         (LOCAL_REGNO): Define.  Adjust comment.
1513         * config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS):
1514         Consider regs_ever_live[MMIX_rJ_REGNUM], not just
1515         leaf_function_p.
1516         (MMIX_OUTPUT_REGNO): Don't translate registers while outputting
1517         the prologue.
1518         (mmix_target_asm_function_prologue): Make static.  Just mark that
1519         the prologue is being emitted.  Move guts to...
1520         (mmix_expand_prologue): New function.  Adjust for emitting
1521         prologue as rtl.  For sizes, use HOST_WIDE_INT only.
1522         (mmix_target_asm_function_epilogue): Make static.  Simply emit a
1523         \n.  Move guts to...
1524         (mmix_expand_epilogue): New function.  Adjust for emitting
1525         epilogue as rtl.  For sizes, use HOST_WIDE_INT only.
1526         (mmix_target_asm_function_end_prologue): Mark that the prologue
1527         has ended.
1528         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
1529         (mmix_conditional_register_usage): Improve comments.
1530         (mmix_local_regno): New function.
1531         (mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto.
1532         * config/mmix/mmix-protos.h (mmix_local_regno): Prototype.
1533         (mmix_expand_prologue, mmix_expand_epilogue): Ditto.
1534         (mmix_get_hard_reg_initial_val): Ditto.
1535
1536 2002-07-06  Andreas Jaeger  <aj@suse.de>
1537
1538         * toplev.c (set_fast_math_flags): Don't use ISO C style function
1539         definitions.
1540         * gengtype.c (open_base_files): Likewise.
1541         (close_output_files): Likewise.
1542         * tracer.c (find_best_predecessor): Likewise.
1543         (find_best_successor): Likewise.
1544         (ignore_bb_p): Likewise.
1545
1546 2002-07-05  Roger Sayle  <roger@eyesopen.com>
1547
1548         PR c++/7099
1549         * builtin-attrs.def: Define new attribute lists for use in
1550         builtins.def.
1551         * builtins.def [DEF_BUILTIN]: Modify to take an additional
1552         ATTRS argument, an enumerated value defined in builtin-attrs.def
1553         that represents the attribute list for the builtins.  Modify
1554         all builtin functions to pass an appropriate attribute list.
1555         Specify "abort", "exit", "_exit" and "_Exit" builtins here with
1556         their required noreturn attributes.
1557         * tree.h (enum_builtin_function): Ignore the additional parameter
1558         to DEF_BUILTIN.
1559         * builtins.c (built_in_names): Likewise.
1560         * c-common.c: (builtin_function_2): Replace the "int noreturn_p"
1561         argument with a tree representing the functions attribute list.
1562         Pass this "attrs" argument to builtin_function.  No longer handle
1563         the noreturn_p processing manually.
1564         (built_in_attributes): Move the definitions from builtin-attrs.def
1565         before c_common_nodes_and_builtins.
1566         (c_common_nodes_and_builtins): Handle the new ATTRS parameter in
1567         DEF_BUILTIN, passing it to both builtin_function and the changed
1568         builtin_function_2.
1569
1570         * doc/extend.texi: Document __builtin_abort, __builtin_exit,
1571         __builtin__exit and __builtin__Exit.
1572
1573 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
1574
1575         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating
1576         QI mode registers in soft registers.
1577         ("zero_extendqihi2"): Do not take into account soft registers
1578         for register allocation (use '*' constraint).
1579
1580 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
1581
1582         * config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know
1583         it is dead.
1584         ("*ashrsi3"): Likewise.
1585         ("*lshrsi3"): Likewise.
1586
1587 2002-07-05  Vladimir Makarov  <vmakarov@redhat.com>
1588
1589         * genautomata.c (output_max_insn_queue_index_def): Take latencies
1590         into account.
1591
1592 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
1593
1594         * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize
1595         address computation and memory moves.
1596
1597 2002-07-03  Mark Mitchell  <mark@codesourcery.com>
1598
1599         PR c++/6706
1600         * dwarfout.c (output_reg_number): Fix warning message.
1601         (output_bound_representation): Check SAVE_EXPR_RTL is not NULL
1602         before using it.
1603
1604 2002-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1605
1606         * gcc/gcc.c (asm_debug): Move initialization ...
1607         (init_spec): ... here.
1608
1609 2002-07-05  Nathan Sidwell  <nathan@codesourcery.com>
1610
1611         * c-parse.in (extdef): Append ';'.
1612         (old_style_parm_decls): Append ';'.
1613
1614 2002-07-04  Daniel Jacobowitz  <drow@mvista.com>
1615
1616         * configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to
1617         gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag
1618         to gcc_cv_as_gstabs_flag.
1619         * configure: Rebuilt.
1620
1621 2002-07-04  Geoffrey Keating  <geoffk@redhat.com>
1622
1623         * ggc.h (ggc_add_root): Document as obsolete.
1624
1625 Thu Jul  4 07:58:01 2002  J"orn Rennecke <joern.rennecke@superh.com>
1626
1627         * sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE.
1628         (mshflo_w): Likewise.
1629
1630 Thu Jul  4 07:36:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
1631
1632         * simplify-rtx.c (simplify_subreg): Reduce problem of finding
1633         vector mode subregs of constants to finding integer mode
1634         subregs of constants.
1635         * cse.c (cse_insn): Use simplify_gen_subreg.
1636         * convert.c (convert_to_integer): Don't strip a NOP_EXPR
1637         From a vector mode expression of different size than the
1638         target mode.
1639
1640 2002-07-03  Eric Christopher  <echristo@redhat.com>
1641
1642         * config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC.
1643         * config/mips/mips.h: Remove deprecated -m<processor> options
1644         and cc1_cpu_spec associated.
1645         (CONSTANT_ADDRESS_P): Fix last patch.
1646         (ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment.
1647         * config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df,
1648         sunge_sf): Remove.
1649
1650 2002-07-03  Stan Shebs  <shebs@apple.com>
1651
1652         * config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.
1653         (STRINGIFY_THIS, REALLY_STRINGIFY): Remove.
1654         (CPP_SPEC): Remove insertion of APPLE_CC definition.
1655
1656 2002-07-03  Roger Sayle  <roger@eyesopen.com>
1657
1658         * combine.c (struct_undo): Change types of recorded substitutions
1659         to be either "int" or "rtx", instead of "unsigned int" and "rtx".
1660         (do_SUBST_INT): Change types of the substitution from unsigned int
1661         to int, to avoid compilation warning from SUBST_INT's only caller.
1662
1663         (make_extraction): Add cast to avoid compilation warning.
1664         (force_to_mode): Remove cast to avoid compilation warning.
1665
1666 2002-07-03  Eric Botcazou  <ebotcazou@multimania.com>
1667             Jeff Law  <law@redhat.com>
1668
1669         * i386.md (length_immediate attribute): Fix typo.
1670         (length_address attribute): Likewise.
1671         (modrm attribute): Set it to 0 for immediate call instructions.
1672         (jcc_1 pattern): Set modrm attribute to 0.
1673         (jcc_2 pattern ): Likewise.
1674         (jump pattern): Likewise.
1675         (doloop_end_internal pattern): Explicitly set length.
1676         (leave pattern): Fix typo.
1677         (leave_rex64 pattern): Likewise.
1678
1679 2002-07-03  David Edelsohn  <edelsohn@gnu.org>
1680
1681         * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode
1682         in FPR as preference.
1683         (fctiwz): Same.
1684         (floatdidf2, fix_truncdfdi2): Same.
1685         (floatdisf2, floatditf2, fix_trunctfdi2): Same.
1686         (floatditf2): Same.
1687         (floatsitf2, fix_trunctfsi2): SImode in GPR.
1688         (ctrdi): Remove FPR alternative and splitter.
1689
1690 2002-07-03  Will Cohen  <wcohen@redhat.com>
1691
1692         * config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro.
1693
1694 Wed Jul  3 10:24:16 2002  J"orn Rennecke <joern.rennecke@superh.com>
1695
1696         * optabs.c (expand_vector_binop): Don't store using a SUBREG smaller
1697         than UNITS_PER_WORD, unless this is little endian and the first unit
1698         in this word.  Let extract_bit_field decide how to load an element.
1699         Force arguments to matching mode.
1700         (expand_vector_unop): Likewise.
1701
1702         * simplify-rtx.c (simplify_subreg): Don't assume that all vectors
1703         consist of word_mode elements.
1704         * c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR,
1705         BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
1706         (build_unary_op): Allow vector types for BIT_NOT_EPR.
1707         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for
1708         CONST_VECTOR.
1709         * optabs.c (expand_vector_binop): Try to perform operation in
1710         smaller vector modes with same inner size.  Add handling of AND, IOR
1711         and XOR.  Reject expansion to inner-mode sized scalars when using
1712         OPTAB_DIRECT.  Use simplify_gen_subreg on constants.
1713         (expand_vector_unop): Try to perform operation in smaller vector
1714         modes with same inner size.  Add handling of one's complement.
1715         When there is no vector negate operation, try a vector subtract
1716         operation.  Use simplify_gen_subreg on constants.
1717         * simplify-rtx.c (simplify_subreg): Add capability to convert vector
1718         constants into smaller vectors with same inner mode, and to
1719         integer CONST_DOUBLEs.
1720
1721 2002-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1722
1723         * c-parse.in (parsing_iso_function_signature): New variable.
1724         (extdef_1): New, copied from...
1725         (extdef): ... here.  Reset parsing_iso_function_signature.
1726         (old_style_parm_decls):  Reset parsing_iso_function_signature.
1727         (old_style_parm_decls_1): New, copied from old_style_parm_decls.
1728         Warn about ISO C style function definitions.
1729         (nested_function, notype_nested_function): Reset
1730         parsing_iso_function_signature.
1731         (parmlist_2): Set parsing_iso_function_signature.
1732
1733         * doc/invoke.texi (-Wtraditional): Document new behavior.
1734
1735 2002-07-02  Chris Demetriou  <cgd@broadcom.com>
1736
1737         * config.gcc (mips*el-*-*): Use tm_defines to set
1738         TARGET_ENDIAN_DEFAULT, rather than including mips/little.h.
1739         * config/mips/little.h: Remove.
1740
1741 2002-07-02 Devang Patel <dpatel@apple.com>
1742
1743         * objc/objc-act.c (adjust_type_for_id_default): Do not allow an
1744         object as parameter. Prevent something like 'NSObject' to be
1745         used as the type for a method argument.
1746
1747 2002-07-03  Neil Booth  <neil@daikokuya.co.uk>
1748
1749         * cpptrad.c: Update comment.
1750
1751 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
1752
1753         * doc/cpp.texi: Update for traditional preprocessing changes.
1754         * goc/cppopts.texi: Similarly.
1755
1756 2002-07-02  Ziemowit Laski  <zlaski@apple.com>
1757
1758         * c-parse.in (designator): Enable designated initializers if ObjC.
1759         (objcmessageexpr): Remove references to objc_receiver_context.
1760         * objc/objc-act.h (objc_receiver_context): Remove decl.
1761         * objc/objc-act.c (objc_receiver_context): Remove.
1762         (lookup_objc_ivar): Test objc_method_context instead of
1763         objc_receiver_context.
1764
1765 Tue Jul  2 18:45:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
1766
1767         * sh.c (print_operand, case 'N'): Allow zero vector.
1768         (arith_reg_or_0_operand): Likewise.
1769         (zero_vec_operand): Check for CONST_VECTOR, not PARALLEL.
1770         * sh.h (CONST_COSTS): 0 has 0 cost.  Check OUTER_CODE for
1771         IOR, XOR, PLUS and SET and take their respective constant
1772         ranges into account.
1773         (PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR.
1774         * sh.md (subdi3, subdi3_media): Allow zero operand.
1775         (movv8qi_i+3): Only vector that is not split is the zero vector.
1776         Fix operand 3 to simplify_subreg.
1777         (movv2si_i): Split alternative 1.
1778         (mshfhi_l_di_rev+1): New splitter.
1779
1780 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
1781
1782         PR preprocessor/7029
1783         * cppinit.c (cpp_handle_option):  Suppress warnings with an
1784         implicit "-w" for "-M" and "-MM".
1785         * doc/cppopts.texi: Update.
1786
1787 2002-07-01  Roger Sayle  <roger@eyesopen.com>
1788
1789         * config/sh/sh.c (sh_media_init_builtins): Change use of poisoned
1790         identifier "bzero" to "memset".  Pass extra NULL_TREE argument to
1791         builtin_function.
1792
1793 2002-07-02  Alan Modra  <amodra@bigpond.net.au>
1794
1795         * README.Portability: Fix typos.
1796
1797 2002-07-01  Hans-Peter Nilsson  <hp@axis.com>
1798
1799         PR target/7177
1800         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number
1801         of indirections for register inside sign-extended mem part.
1802
1803 2002-07-01  Roger Sayle  <roger@eyesopen.com>
1804
1805         * tree.h:  Modify builtin_function interface to take an extra
1806         argument ATTRS, which is a tree representing an attribute list.
1807
1808         * c-decl.c (builtin_function): Accept additional parameter.
1809         * objc/objc-act.c (builtin_function): Likewise.
1810         * f/com.c (builtin_function): Likewise.
1811         * java/decl.c (builtin_function): Likewise.
1812         * ada/utils.c (builtin_function): Likewise.
1813         * cp/decl.c (builtin_function): Likewise.
1814         (builtin_function_1): Likewise.
1815
1816         * c-common.c (c_common_nodes_and_builtins): Pass an additional
1817         NULL_TREE argument to builtin_function.  (builtin_function_2):
1818         Likewise.
1819         * cp/call.c (build_java_interface_fn_ref): Likewise.
1820         * objc/objc-act.c (synth_module_prologue): Likewise.
1821         * java/decl.c (java_init_decl_processing): Likewise.
1822         * f/com.c (ffe_com_init_0): Likewise.
1823
1824         * config/alpha/alpha.c (alpha_init_builtins): Pass an additional
1825         NULL_TREE argument to builtin_function.
1826         * config/arm/arm.c (def_builtin): Likewise.
1827         * config/c4x/c4x.c (c4x_init_builtins): Likewise.
1828         * config/i386/i386.c (def_builtin): Likewise.
1829         * config/ia64/ia64.c (def_builtin): Likewise.
1830         * config/rs6000/rs6000.c (def_builtin): Likewise.
1831
1832 2002-07-01  Zack Weinberg  <zack@codesourcery.com>
1833
1834         * config/ip2k/t-ip2k: Remove LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST.
1835         * config/mips/t-isa3264: Likewise.
1836         * config/mmix/t-mmix: Likewise.
1837
1838 2002-07-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1839
1840         * emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT.
1841
1842 2002-07-01  Roger Sayle  <roger@eyesopen.com>
1843
1844         PR opt/4046
1845         * fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A,
1846         A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and
1847         B are truth values.
1848
1849 2002-07-01  Nathanael Nerode  <neroden@gcc.gnu.org>
1850
1851         * config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST.
1852
1853 2002-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
1854
1855         * README.Portability (Function prototypes): Give an example of
1856         declaring and defining a function with no arguments.
1857
1858         * README.Portability (Function prototypes): Document new
1859         variable-argument function macros.
1860
1861 Mon Jul  1 19:55:17 2002  J"orn Rennecke <joern.rennecke@superh.com>
1862
1863         * sh.c (langhooks.h): Include.
1864         (sh_init_builtins, sh_media_init_builtins): New functions.
1865         (sh_expand_builtin, arith_reg_dest,and_operand): Likewise.
1866         (mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise.
1867         (sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise.
1868         (builtin_description): New struct tag.
1869         (signature_args, bdesc): New arrays.
1870         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define.
1871         (print_operand): Add 'N' modifier.
1872         * sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes.
1873         (EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros.
1874         (EXTRA_CONSTRAINT): Add 'U' and 'W' cases.
1875         (CONST_COSTS): Add special case for SHmedia AND.
1876         (PREDICATE_CODES): Add and_operand, arith_reg_dest,
1877         extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset,
1878         sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand.
1879         target_operand can also be const or unspec.
1880         * sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants.
1881         (UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise.
1882         (attribute type): Add new types.
1883         (anddi3): Add splitter.
1884         (movdi_const_16bit+1): Add code to handle vector constants and
1885         bitmasks efficiently.
1886         (shori_media): Have generator function made.
1887         (movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns.
1888         (movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise.
1889         (movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise.
1890         (ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise.
1891         (negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise.
1892         (negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise.
1893         (mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise.
1894         (mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise.
1895         (mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise.
1896         (mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise.
1897         (mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise.
1898         (mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise.
1899         (mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise.
1900         (mshflo_b,  mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie.
1901         (mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise.
1902         (mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise.
1903         (mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise.
1904         (lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise.
1905         (ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise.
1906         (ftrv): Likewise.
1907
1908         (fpu_switch+1, fpu_switch+2): Remove constraint.
1909
1910 2002-07-01  Aldy Hernandez  <aldyh@redhat.com>
1911
1912         * tree.c (build_function_type_list): Update function comment.
1913         Rename first argument to return_type.
1914
1915 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
1916
1917         * Makefile.in: Remove all trace of tradcpp.c, tradcpp.h,
1918         tradcif.y and related files.
1919
1920 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
1921
1922         * cpptrad.c (skip_whitespace): Pass pointer to prior char.
1923
1924 2002-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1925
1926         * mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses.
1927
1928 2002-06-30  Devang Patel  <dpatel@apple.com>
1929
1930         * objc/objc-act.c (finish_file): Avoid finish_objc() if
1931         -fsyntax-only.
1932
1933 Fri Jun 28 17:22:37 2002  Denis Chertykov  <denisc@overta.ru>
1934                           Frank Ch. Eigler  <fche@redhat.com>
1935                           Matthew Green  <mrg@redhat.com>
1936                           Richard Henderson <rtl@redhat.com>
1937                           Dave Hudson  <dave.hudson@ubicom.com>
1938                           Jeff Johnston  <jjohnstn@redhat.com>
1939                           Alan Lehotsky <apl@alum.mit.edu>
1940                           Bernd Schmidt  <bernds@redhat.com>
1941                           Graham Stott  <grahams@redhat.com>
1942
1943         * doc/extend.texi: Add ip2k port to description of attribute
1944         naked.
1945         * doc/install.texi (Specific): Add ip2k description.
1946         * doc/install-old.texi (Configurations): Add ip2k to possible
1947         cpu types.
1948         * doc/md.texi: Document ip2k constraints.
1949         * config/ip2k/crt0.S: New file.
1950         * config/ip2k/ip2k-protos.h: New file.
1951         * config/ip2k/ip2k.c: New file.
1952         * config/ip2k/ip2k.h: New file.
1953         * config/ip2k/ip2k.md: New file.
1954         * config/ip2k/libgcc.S: New file.
1955         * config/ip2k/t-ip2k: New file.
1956
1957 2002-06-30  Hans-Peter Nilsson  <hp@bitrange.com>
1958
1959         * config/mmix/mmix.md ("return"): New pattern.
1960         * config/mmix/mmix.h (TARGET_MASK_USE_RETURN_INSN)
1961         (TARGET_USE_RETURN_INSN): New macros.
1962         (TARGET_DEFAULT): Include TARGET_MASK_USE_RETURN_INSN.
1963         (TARGET_SWITCHES): Add -msingle-exit and -mno-single-exit.
1964         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Fix spacing.
1965         (MMIX_POP_ARGUMENT): New macro.
1966         (mmix_target_asm_function_prologue): When no epilogue is executed,
1967         just emit a blank line.  Use MMIX_POP_ARGUMENT with final POP insn.
1968         (mmix_print_operand) <case '.'>: New case.
1969         (mmix_print_operand_punct_valid_p): Match '.'.
1970         (mmix_use_simple_return): New function.
1971         * config/mmix/mmix-protos.h (mmix_use_simple_return): Prototype.
1972         * doc/invoke.texi (Option Summary) <MMIX Summary>: Add
1973         -msingle-exit, -mno-single-exit.
1974         (MMIX Options): Ditto.
1975
1976 2002-06-30  Aldy Hernandez  <aldyh@redhat.com>
1977
1978         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix typos.
1979
1980 2002-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1981
1982         * gengtype.c (oprintf): Move VA_CLOSE after all fixedarg uses.
1983
1984 2002-06-30  Alan Modra  <amodra@bigpond.net.au>
1985
1986         * unroll.c (loop_iterations): Handle EQ loops.
1987
1988 2002-06-29  David Edelsohn  <edelsohn@gnu.org>
1989
1990         * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR
1991         constraint in define_expand, not splitter.
1992         Formatting.
1993
1994 2002-06-29  Aldy Hernandez  <aldyh@redhat.com>
1995
1996         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
1997         build_function_type_list instead of build_function_type.
1998
1999         * config/ia64/ia64.c (ia64_init_builtins): Same.
2000
2001         * config/alpha/alpha.c (alpha_init_builtins): Same.
2002
2003         * config/rs6000/rs6000.c (altivec_init_builtins): Same.
2004
2005         * config/arm/arm.c (arm_init_builtins): Same.
2006
2007         * tree.h: Add build_function_type_list prototype.
2008
2009         * tree.c (build_function_type_list): New.
2010
2011 2002-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2012
2013         * collect2.c (scan_prog_file): Fix typo in message.
2014
2015 2002-06-28  Aaron Lehmann  <aaronl@vitelus.com>
2016
2017         * fold-cont.c: Remove unused CHARMASK.
2018
2019 2002-06-29  Neil Booth  <neil@daikokuya.co.uk>
2020
2021         PR preprocessor/7150
2022         * cppmain.c (scan_translation_unit_trad): Simplify.
2023         * cppmacro.c (cpp_scan_nooutput): Handle traditional case.
2024
2025 2002-06-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2026
2027         * config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS.
2028         Don't use CPP_PREDEFINES.
2029         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): New.
2030         Used TARGET_OS_CPP_BUILTINS in preference to CPP_PREDEFINES.
2031         * config/i386/djgpp.h, config/i386/i386-coff.h,
2032         config/i386/i386-interix.h, config/i386/i386-interix3.h,
2033         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
2034         config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/sysv3.h,
2035         config/i386/uwin.h: Similarly.
2036
2037 2002-06-29  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2038
2039         * c4x.h: (TARGET_CPU_CPP_BUILTINS): Check flag_inline_functions and
2040         flag_inline_trees to enable inlining.
2041
2042 2002-06-28  Phil Edwards  <pme@gcc.gnu.org>
2043
2044         * configure.in (gcc_gxx_include_dir):  Change to match versioned
2045         C++ headers if --enable-version-specific-runtime-libs is used.
2046         * configure:  Regenerate.
2047
2048 2002-06-28  Jan Hubicka  <jh@suse.cz>
2049
2050         * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move.
2051
2052 2002-06-28  Stephen Clarke  <stephen.clarke@superh.com>
2053
2054         * combine.c (combine_simplify_rtx): Pass the mode of the
2055         shift count, not the shift operation when trying to simplify
2056         a shift on a SHIFT_COUNT_TRUNCATED target.
2057
2058 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
2059
2060         * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to
2061         avoid the auto increment addressing modes.
2062         ("*subsi3"): Likewise.
2063         (split for add/sub on address): For 68HC12 push the value on
2064         the stack and do the operation with a pop.
2065
2066 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
2067
2068         * cpplib.c (_cpp_handle_directive): Move #define-specific
2069         code to the #define handler...
2070         (do_define): ...here.
2071         (lex_macro_node): No longer a need to check for comments here.
2072
2073 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
2074
2075         * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define.
2076         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
2077         Declare.
2078         * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New,
2079         do not reorder basic blocks at the end when optimizing for size.
2080
2081 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
2082
2083         * config/m68hc11/m68hc11.c (autoinc_mode): New function.
2084         (m68hc11_make_autoinc_notes): New function.
2085         (m68hc11_split_move): Be very cautious when spliting a move with
2086         auto increment/decrement modes because this may result in incompatible
2087         directions; add REG_INC notes to the resulting insn for CSE reg.
2088
2089 2002-06-28  Stephane Carrez  <Stephane.Carrez@nerim.fr>
2090
2091         * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant
2092         can be a valid address.
2093
2094 2002-06-28  Aldy Hernandez  <aldyh@redhat.com>
2095
2096         * config/rs6000/rs6000.c: Remove unusued variables from last
2097         patch.
2098
2099 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
2100
2101         Revert:
2102         * config/rs6000/rs6000.c (rs6000_override_options): Move
2103         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
2104
2105 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
2106
2107         * config/rs6000/rs6000.c (altivec_expand_builtin): Move
2108         lvx/stv/dst builtins...
2109         (altivec_expand_ld_builtin): ...to here.
2110         (altivec_expand_st_builtin): ...here.
2111         (altivec_expand_dst_builtin): ...and here (respectively).
2112
2113 2002-06-28  Bob Wilson  <bob.wilson@acm.org>
2114
2115         * config/xtensa/xtensa.h (RETURN_IN_MEMORY): Update comment.
2116
2117 2001-06-08  Bernd Schmidt  <bernds@redhat.com>
2118
2119         * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE
2120         subregs.
2121         * recog.c (general_operand, register_operand): Disallow them.
2122
2123 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
2124
2125         PR preprocessor/7138
2126         * cpplib.c (_cpp_handle_directive): Do traditional
2127         preparation after setting state.angled_headers.
2128         * cpptrad.c (scan_out_logical_line): Fix potential
2129         quote bug.
2130
2131 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
2132
2133         * config/rs6000/rs6000.c (rs6000_override_options): Move
2134         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
2135
2136 2002-06-27  Bob Wilson  <bob.wilson@acm.org>
2137
2138         * config/xtensa/xtensa.md: Give "*xxx" names to all unnamed insn's.
2139         (*lsiu, *ssiu, movstrsi_internal, zero_cost_loop_start,
2140         zero_cost_loop_end): Remove unnecessary "parallel" from insns.
2141
2142 2002-06-27  Roger Sayle  <roger@eyesopen.com>
2143
2144         * config/d30v/d30v.h: Remove commented out STACK_REGS #defines.
2145         * config/stormy16/stormy16.h: Likewise.
2146
2147         * config/stormy16/stormy16.h (CUMULATIVE_ARGS): Replace typedef
2148         with #define.
2149
2150 2002-06-26  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2151
2152         * doc/install.texi (Binaries): Add Sinix/Reliant Unix.  Move
2153         Hitachi entry.  Make punctuation more consistent.
2154
2155 2002-06-27  Matt Kraai  <kraai@alumni.cmu.edu>
2156
2157         * doc/install.texi: Change ` bit' to `-bit'.
2158         * doc/md.texi: Change `-bits' to `-bit'.
2159         * doc/tm.texi: Change `-bits' to ` bits'.
2160
2161 2002-06-27  Daniel Berlin  <dberlin@dberlin.org>
2162
2163         * gcse.c (hoist_code): Rewrite to only get list of dominated
2164         blocks once per BB. Also fix reversed test (by removing need for
2165         the test at all).
2166
2167 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
2168
2169         * cpphash.h (_cpp_set_trad_context): Remove.
2170         * cpplib.c (prepare_directive_trad): Do nothing for #define.
2171         (cpp_push_buffer, _cpp_pop_buffer): Don't call _cpp_set_trad_context.
2172         * cpptrad.c: Update comments.
2173         (_cpp_read_logical_line_trad): Let scan_logical_line handle
2174         updating the current context.
2175         (scan_logical_line): Update the current context.
2176         (_cpp_create_trad_definition): Similarly.
2177         (_cpp_set_trad_context): Remove.
2178
2179 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
2180
2181         PR preprocessor/7070
2182         * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF.
2183
2184 2002-06-26  Bob Wilson  <bob.wilson@acm.org>
2185
2186         * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare.
2187         config/xtensa/xtensa.c (xtensa_return_addr): New function.
2188         config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr.
2189         config/xtensa/xtensa.md (fix_return_addr): New pattern.
2190
2191 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2192
2193         * mips.c (coprocessor_operand, coprocessor2_operand,
2194         symbolic_operand): Move prototypes from here...
2195         * mips-protos.h (coprocessor_operand, coprocessor2_operand,
2196         symbolic_operand): ...to here.
2197
2198 Wed Jun 26 16:32:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
2199
2200         * config/sh/crt1.asm: remove _stack label definition
2201         and sentinel value.
2202
2203 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2204
2205         * varasm.c: Include real.h before output.h.
2206
2207 2002-06-26  Aldy Hernandez  <aldyh@redhat.com>
2208
2209         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Revert change to
2210         check for TARGET_ALTIVEC.
2211
2212 2002-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>
2213
2214         * config.gcc (vax-*-vms*): Make obselete.
2215
2216 2002-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2217
2218         * gcc.c (warn_std): Delete.
2219
2220 2002-06-25  Loren J. Rittle  <ljrittle@acm.org>
2221
2222         * doc/extend.texi: Fix formatting of last checkin.
2223
2224 2002-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2225
2226         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Remove leading
2227         underscore from __IEEE_FP and __IEEE_FP_INEXACT.
2228
2229 2002-06-25  Aldy Hernandez  <aldyh@redhat.com>
2230
2231         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2232         discrepancies from motorola's documentation.
2233
2234 Tue Jun 25 21:51:13 2002  J"orn Rennecke <joern.rennecke@superh.com>
2235
2236         * optabs.c (expand_vector_binop, expand_vector_unop): Don't assume
2237         GET_MODE_UNIT_SIZE (mode) == UNITS_PER_WORD.
2238
2239         * config/sh/lib1funcs.asm (udivdi3): Make first divide step
2240         produce a 32 bit result before normalization, then normalize with a
2241         left shift.  Compute approximative error of 2nd reciprocal
2242         approximation in 2's complement.  Fix mask generation from upper
2243         longword of second divide stage result.
2244         For large divisor, fix shift count used to truncate first stage
2245         divide result; make decision if to adjust upwards based on comparison
2246         of higher parts of normalized values.
2247         (udivdi): Likewise.  Undo normalization of result for large divisor
2248         case.
2249
2250 2002-06-25  David S. Miller  <davem@redhat.com>
2251
2252         * config/sparc/sparc.md: Change \\{t,n} to \{t,n}.
2253
2254 2002-06-25  Neil Booth  <neil@daikokuya.co.uk>
2255
2256         * cpplib.c (do_include_common): Revert to correct line number
2257         if -traditional.
2258         * cpptrad.c (scan_out_logical_line): Treat null directive as
2259         white space.  Invlidate MI optimization for non-whitespace
2260         text outside a directive.
2261
2262 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2263
2264         * Makefile.in (SHELL): Set to @SHELL@.
2265         * fixinc/Makefile.in (SHELL): Likewise.
2266
2267         * mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2,
2268         fixuns_truncsfsi2, fixuns_truncsfdi2): Avoid automatic aggregate
2269         initialization.
2270
2271 2002-06-24  Jeff Law <law@redhat.com>
2272
2273         * flow.c (propagate_one_insn): When removing an insn
2274         with a REG_LIBCALL note but not the entire libcall sequence,
2275         delete the associated REG_RETVAL note.
2276
2277 Mon Jun 24 21:05:09 2002  J"orn Rennecke <joern.rennecke@superh.com>
2278
2279         * lib1funcs.asm (sdivsi3): Add optimized SH64 implementations.
2280         (udivsi3): Likewise.  Rewrite SH1 implementation.
2281         (udivdi3, divdi3, umoddi3, moddi3): New SHmedia functions.
2282         * sh.md (R20_REG, R21_REG, R22_REG, R23_REG, FR23_REG): New constants.
2283         (udivsi3_i1_media, divsi3_i1_media): Fix clobber list.
2284         * config/sh/t-sh64 (LIB1ASMFUNCS): (_udivdi3, _divdi3, _umoddi3): Add.
2285         (_moddi3): Likewise.
2286
2287         * lib1funcs.asm (ic_invalidate): Add data cache line writeback.
2288
2289         * sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK
2290         arguments into account for stack_regs.
2291
2292 2002-06-24  Matt Kraai  <kraai@alumni.cmu.edu>
2293
2294         * doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */'
2295         in examples.
2296
2297 2002-06-24  Art Haas  <ahaas@neosoft.com>
2298
2299         * doc/extend.texi (Other Builtins): Change `...' to `@dots{}'.
2300         * doc/tm.texi (Frame Layout): Likewise.
2301
2302 2002-06-20  Steve Ellcey  <sje@cup.hp.com>
2303
2304         * gcc/config.gcc (ia64*-*-hpux*): Set use_collect2 to no.
2305         Set float_format to i128.
2306
2307 2002-06-24  David S. Miller  <davem@redhat.com>
2308
2309         * config/sparc/sparc.c (INIT_TARGET_OPTABS): If ARCH64, set the
2310         32-bit ABI libfuncs to NULL.
2311
2312         * config/sparc/sparc.md: Use define_insn_and_split.  Use braced
2313         strings instead of quoted strings for code blocks.
2314
2315         * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift
2316         optabs if op1 is const0_rtx.
2317
2318         * Makefile.in (GTFILES): Add basic-block.h
2319         * basic-block.h (label_value_list, tail_recursion_label_list):
2320         Mark with GTY.
2321
2322 2002-06-24  Neil Booth  <neil@daikokuya.co.uk>
2323
2324         * cpptrad.c (scan_out_logical_line): Check recursing only when
2325         we know we have a macro invocation in the function-like case.
2326         Only call _cpp_handle_directive if we know we have a good
2327         directive, or we want to reject a bad directive.
2328
2329 2002-06-24  Alan Modra  <amodra@bigpond.net.au>
2330
2331         * doloop.c (doloop_valid_p): Correct comment.
2332         (doloop_modify_runtime <abs_inc != 1>): Simplify.
2333         (doloop_modify_runtime <do-while>): Don't emit code when NE.
2334
2335 Thu Jun 20 00:26:53 2002  Denis Chertykov  <denisc@overta.ru>
2336
2337         * config.gcc: Add support for ip2k.
2338
2339 2002-06-23  Jan Hubicka  <jh@suse.cz>
2340             Jeff Law <law@redhat.com>
2341
2342         * function.h (struct emit_status): Clarify potential contents
2343         of regno_reg_rtx array.
2344         * integrate.c (copy_rtx_and_substitute): Update comments.  Make
2345         sure entry in regno_reg_rtx is a REG before checking REG_POINTER.
2346
2347         * reg-stack.c (convert_regs_exit): Push the registers to stack in
2348         proper order.
2349
2350 2002-06-22  Ulrich Weigand  <uweigand@de.ibm.com>
2351
2352         PR middle-end/6963
2353         * function.c (assign_stack_temp_for_type): Do not return
2354         the same MEM rtx for multiple uses of a stack slot.
2355
2356 2002-06-22  David S. Miller  <davem@redhat.com>
2357
2358         PR target/6841 target/6770 target/6719
2359         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return
2360         NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or
2361         GENERAL_OR_EXTRA_FP_REGS.
2362
2363 2002-06-22  Neil Booth  <neil@daikokuya.co.uk>
2364
2365         * cpptrad.c (struct fun_macro): Add line number.
2366         (scan_out_logical_line): Set it, and use it to report unterminated
2367         macro invocations.
2368
2369 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2370
2371         * genautomata.c (copy_node, VLA_PTR_CREATE, VLA_PTR_EXPAND,
2372         VLA_PTR_ADD, VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD,
2373         DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, DECL_PRESENCE,
2374         DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, REGEXP_UNIT,
2375         REGEXP_RESERV, REGEXP_SEQUENCE, REGEXP_REPEAT, REGEXP_ALLOF,
2376         REGEXP_ONEOF, check_name): Const-ify.
2377
2378 2002-06-21  Matt Thomas  <matt@3am-software.com>
2379
2380         * config/vax/vax.c (vax_output_function_prologue): Use
2381         REGISTER_PREFIX.  Fix some indentation.
2382         * config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[].
2383         (VAX_ISTREAM_SYNC): Define.
2384         (INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC.  Move the
2385         i-stream sync to the end.
2386         (REGISTER_PREFIX): Define as "".
2387         (ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX.
2388
2389 2002-06-21  Jason Thorpe  <thorpej@wasabisystems.com>
2390
2391         * config.gcc (ns32k-*-netbsd*): Remove from list of obsolete
2392         configurations.
2393
2394 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2395
2396         * tree.c (tree_node_kind, tree_node_counts, tree_node_sizes,
2397         tree_node_kind_names): Wrap in GATHER_STATISTICS macro.
2398
2399 2002-06-21  Matt Thomas  <matt@3am-software.com>
2400
2401         * config/vax/netbsd.h: Adjust a comment.
2402         (TARGET_DEFAULT): Redefine as 0.
2403
2404 2002-06-21  Richard Henderson  <rth@redhat.com>
2405
2406         * bb-reorder.c (make_reorder_chain_1): Search harder for the
2407         vax casesi fallthru edge.
2408         * cfglayout.c (cleanup_unconditional_jumps): Use
2409         redirect_edge_succ_nodup.  Do not delete ADDR_VEC insns as dead.
2410         * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection
2411         block after ADDR_VEC.
2412
2413 2002-06-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2414
2415         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
2416
2417 2002-06-21  Neil Booth  <neil@daikokuya.co.uk>
2418
2419         * cpperror.c (cpp_error): For traditional CPP, default to
2420         diagnostics on pfile->line.
2421         * cpplib.c (prepare_directive_trad): Set line number for
2422         diagnostics for #define too.
2423         * cpptrad.c (skip_whitespace): Skip comments properly.
2424         (_cpp_expansions_different_trad): Initialize quote2.
2425
2426 2002-06-21  Hans-Peter Nilsson  <hp@bitrange.com>
2427
2428         * config/mmix/mmix.md: Change GNU CC to GCC in file header comment.
2429         * config/mmix/mmix.h: Ditto.
2430         * config/mmix/mmix-protos.h: Ditto.
2431         * config/mmix/mmix.c: Ditto.  Fix typo in comment.
2432         * config/mmix/mmix-modes.def: Change GNU CC to GCC in file header
2433         comment.  Comment extra CC modes.
2434
2435 2002-06-20 Jan Hubicka  <jh@suse.cz>
2436
2437         * cfglayout.c (scope_to_insns_initialize): Call set_block_levels.
2438         (scope_to_insns_finalize): Do not call set_block_levels; handle
2439         sequences.
2440         (choose_inner_scope): New.
2441         * rtl.h (choose_inner_scope): Declare.
2442
2443 2002-06-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2444
2445         * pa-protos.h (pa_asm_output_mi_thunk): Change third argument to
2446         HOST_WIDE_INT.
2447         * pa.c (pa_asm_output_mi_thunk): Likewise.
2448         (n_deferred_plabels): Change type to size_t.
2449         (output_deferred_plabels, output_call): Use size_t instead of int.
2450
2451 2002-06-20  Richard Henderson  <rth@redhat.com>
2452
2453         PR target/4041
2454         * config/m68k/m68k.md (zero_extendsidi2): Create expander; duplicate
2455         pattern and adjust constraints for coldfire.
2456
2457 2002-06-20  Richard Henderson  <rth@redhat.com>
2458
2459         * explow.c (probe_stack_range): Use gen_rtx_fmt_ee.
2460
2461 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
2462
2463         * config.gcc (mipsisa64-*-elf*, mipsisa64el-*-elf*): New targets.
2464
2465 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
2466
2467         * config/mips/mips.h (ISA_HAS_FP4): Fix comment to reflect use.
2468
2469 2002-06-20  Stan Shebs  <shebs@apple.com>
2470
2471         * dominance.c: Include errors.h instead of error.h.
2472
2473 2002-06-20  Neil Booth  <neil@daikokuya.co.uk>
2474
2475         * cppexp.c (cpp_interpret_integer): Don't force traditional
2476         numbers to be unsigned.
2477         * cpplib.c (prepare_directive_trad): Set line number for
2478         diagnostics.
2479         * cpptrad.c (scan_out_logical_line): Continue scanning out
2480         at start of buffer.
2481         * gcc.c (trad_capable_cpp): Use cc1 always.
2482
2483 2002-06-20  Jeffrey Law  <law@redhat.com>
2484
2485         * i386.h (TARGET_DEFAULT): Do not turn on frame pointer
2486         elimination in leaf functions by default yet.
2487
2488 2002-06-20  Richard Sandiford  <rsandifo@redhat.com>
2489
2490         * combine.c (make_extraction): Reapply to the argument of an ASHIFT.
2491
2492 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2493
2494         * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for
2495         multilibs.
2496         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
2497         Fixes PR other/6836.
2498
2499 Thu Jun 20 19:42:21 CEST 2002  Jan Hubicka  <jh@suse.cz>
2500                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
2501
2502         Mon Jun 10 20:42:34 CEST 2002  Jan Hubicka  <jh@suse.cz>
2503
2504         * basic-block.h: Do not include et-forest.h
2505         (dominance_info): Declare as struct dominance-info.
2506         * cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
2507         deleting block.
2508         * dominance.c (struct dominance_info): Define.
2509         (BB_NODE, SET_BB_NODE): New macros.
2510         (bb_hash_func, bb_eq_func): Kill.
2511         (calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
2512         nearest_common_dominator, dominated_by_p, recount_dominator,
2513         add_to_dominance_info, delete_from_dominance_info): update for new
2514         representation.
2515         (get_dominated_by, redirect_immediate_dominators): Rewrite using
2516         enumerate_sons.
2517         * ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
2518         find_if_case_1, find_if_case_2): Remove killed blocks from dominance
2519         structure.
2520
2521         * et-forest.h: Update copyright; revamp all function to operate on
2522         nodes
2523         (et_forest_value): Kill.
2524         (et_forest_enumerate_sons, et_forest_node_value): New.
2525         * et-forest.c: Update copyright.
2526         * et-forest.h: Update copyright; revamp all function to operate on
2527         nodes
2528         (et_forest_value): Kill.
2529         (et_forest_enumerate_sons, et_forest_node_value): New.
2530
2531         Thu Jun  6 22:43:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
2532
2533         * basic-block.h: Inlude et-forest.h
2534         (basic_block_def): Kill dominator.
2535         (dominance_info): New type.
2536         (loops): Use dominace_info.
2537         (dominace handling functions): Take dominace_info as argument
2538         instead of bitmaps.
2539         (create_preheader): Likewise.
2540         * cfg.c (entry_exit_blocks): Kill dominator.
2541         (dump_flow_info): Do not dump dominators.
2542         * cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
2543         dominators.
2544         * cfgloop.c (flow_pre_header_find): Use dominacne_info.
2545         (flow_loops_pre_header_scan, make_forwarder_block,
2546         canonicale_loop_headers, flow_loops_find): Likewise.
2547         * dominance.c: Include error.h
2548         (idoms_to_doms): Kill.
2549         (bb_hash_func, bb_eq_func): New static functions.
2550         (debug_dominace_info): New global function.
2551         (calculate_dominance_info): Use new et forest structure.
2552         (free_dominace_info, get_immediate_dominator, set_immediate_dominator,
2553         get_dominated_by, redirect_immediate_dominators,
2554         nearest_common_dominator, dominated_by_p, verify_dominators,
2555         recount_dominator, iterate_fix_dominators, add_to_dominace_info,
2556         delete_from_dominance_info): New global functions.
2557         * gcse.c (domnators): CHange to dominance_info.
2558         (alloc_hoist_mem): Do not alloc dominators
2559         (free_code_hoist_mem): Use free_dominance_info.
2560         (compute_code_hoist_data): Use dominance_info.
2561         (hoist_code): Likewise.
2562         * ifcvt.c (post_dominators): Likewise.
2563         (find_if_case_2, if_convert): Likewise.
2564         * predict.c (process_note_predictions, process_note_prediction,
2565         estimate-probability): Likewise.
2566         * sched-rgn.c (find_rgns, init_regions): Likewise.
2567         * ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
2568         find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
2569         * ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
2570         find_evaluations, convert_to_ssa): Likewise.
2571         * ssa.h (compute_dominance_frontiers): Likewise.
2572
2573         Thu Jun  6 22:57:34 CEST 2002  Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
2574
2575         * Makefile.in (et-forest.c): Add.
2576         * et-forest.c: New file.
2577         * at-forest.h: New file.
2578
2579 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2580
2581         * c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit
2582         array size calculation.
2583         * gengtype.c (NUM_BASE_FILES, create_file, write_gc_root):
2584         Likewise.
2585
2586         * diagnostic.c (diagnostic_kind_text): Const-ify.
2587         * gengtype.c (lang_names): Likewise.
2588
2589 Thu Jun 20 17:25:29 CEST 2002  JAn HUbicka  <jh@suse.cz>
2590
2591         * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode.
2592
2593 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2594
2595         * config/sol2.h: New file.
2596         * config.gcc (i?86-*-solaris2*): Include it before i386/sol2.h.
2597         (sparc64-wrs-vxworks*): Include it before sparc/sol2.h.
2598         (sparc-*-chorusos*): Likewise.
2599         (sparc-*-elf*): Likewise.
2600         (sparc-*-rtems*, sparc-*-rtemself*): Likewise.
2601         (sparc64-*-solaris2*, sparcv9-*-solaris2*): Likewise.
2602         (sparc-hal-solaris2*): Likewise.
2603         (sparc-*-solaris2*): Likewise.
2604         (sparclite-*-elf*): Likewise.
2605         (sparc86x-*-elf*): Likewise.
2606         (sparc64-*-elf*): Likewise.
2607
2608         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Moved to
2609         config/sol2.h.
2610         (ASM_SPEC): Override config/sol2.h version for now.
2611         Removed obsolete GAS_REJECTS_MINUS_S variant.
2612         (WINT_TYPE, WINT_TYPE_SIZE): Moved to config/sol2.h.
2613         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
2614         (TARGET_OS_CPP_BUILTINS): Likewise.
2615         Assert system=unix.
2616         (CPP_SPEC): Simplified using new CPP_SUBTARGET_SPEC.
2617         (LIB_SPEC, ENDFILE_SPEC, STARTFILE_SPEC, LINK_SPEC): Moved to
2618         config/sol2.h.
2619         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
2620         (ASM_CPU_SPEC): Define.
2621         (SUBTARGET_EXTRA_SPECS): Define.
2622
2623         * config/sparc/sol2-bi.h (LONG_DOUBLE_TYPE_SIZE): Removed, already
2624         in config/sparc/sol2.h.
2625         (ASM_SPEC): Moved to config/sol2.h.
2626         (CPP_CPU_SPEC): Simplified.
2627         (STARTFILE_SPEC32): Likewise, renamed to STARTFILE_ARCH32_SPEC for
2628         consistency.
2629         (STARTFILE_SPEC64): Renamed to STARTFILE_ARCH64_SPEC.
2630         (STARTFILE_ARCH_SPEC): Use new names STARTFILE_ARCH32_SPEC,
2631         STARTFILE_ARCH64_SPEC.
2632         (STARTFILE_SPEC): Moved to config/sol2.h
2633         (SUBTARGET_EXTRA_SPECS): Add startfile_arch.
2634         (LINK_ARCH32_SPEC): Moved to config/sol2.h.
2635         (LINK_ARCH64_SPEC): Simplified.
2636         (LINK_ARCH_SPEC): Redefined config/sol2.h version for 64-bit support.
2637         (LINK_SPEC): Moved to config/sol2.h
2638
2639         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Moved to
2640         config/sol2.h.
2641         Use BITS_PER_WORD for size.
2642         (WINT_TYPE, WINT_TYPE_SIZE): Likewise.
2643         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
2644         (CPP_PREDEFINES): Removed OS-specific part handled by
2645         TARGET_OS_CPP_BUILTINS.
2646         (CPP_SUBTARGET_SPEC): Moved to config/sol2.h.
2647         (CPLUSPLUS_CPP_SPEC): Removed, handled by TARGET_OS_CPP_BUILTINS.
2648         (ASM_SPEC): Moved to config/sol2.h.
2649         (PREFERRED_DEBUGGING_TYPE): Likewise.
2650         (STARTFILE_SPEC, LIB_SPEC, LINK_SPEC): Likewise.
2651         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
2652         (TARGET_DEFAULT): Reordered to match config/sparc/sol2-bi.h version.
2653         (TRANSFER_FROM_TRAMPOLINE): Moved to config/sol2.h
2654
2655         * config.gcc (i?86-*-solaris2*): Removed obsolete gas support.
2656         * config/i386/sol2gas.h: Removed.
2657
2658 Thu Jun 20 12:14:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
2659
2660         * i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.
2661
2662 2002-06-16  Aldy Hernandez  <aldyh@redhat.com>
2663
2664         * gcc.c-torture/execute/simd-1.c: New.
2665
2666         * gcc.dg/simd-1.c: New.
2667
2668         * doc/extend.texi (Vector Extensions): Document that we can
2669         specify simd types not specifically supported by the hardware.
2670         Document that simd types can be used as function arguments.
2671         Document that signness does make a difference in SIMD types.
2672         Misc cleanups and revisions to the vector extensions section.
2673
2674         * simplify-rtx.c (simplify_subreg): Simplify subregs of vector
2675         constants.
2676
2677         * expr.c (vector_mode_valid_p): New.
2678
2679         * expr.h: Add vector_mode_valid_p.
2680
2681         * defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.
2682
2683         * c-common.c (type_for_mode): Always build vector nodes regardless
2684         of VECTOR_MODE_SUPPORTED_P.
2685         (handle_mode_attribute): Error if we can't emulate a nonexisting
2686         vector mode.
2687         (handle_vector_size_attribute): Same.
2688
2689         * optabs.c (expand_binop): Open-code vector operations.
2690         (expand_unop): Open-code vector unops.
2691         (expand_vector_binop): New.
2692         (expand_vector_unop): New.
2693
2694         * c-typeck.c (build_binary_op): Allow vectors in binops.
2695         Allow vectors in conditional operatiors.
2696         (build_unary_op): Allow vectors in unary minus.
2697
2698         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on
2699         TARGET_ALTIVEC.
2700
2701 2002-05-20  Richard Henderson  <rth@redhat.com>
2702
2703         * c-common.c (c_common_get_alias_set): Correctly handle characters.
2704         Rearrange order of expressions; don't handle vectors here.
2705         * alias.c (get_alias_set): Let vectors match their components.
2706
2707 2002-06-19  Chris Demetriou  <cgd@broadcom.com>
2708
2709         * config/mips/mips.c (mips_emit_prefetch): Use hints which
2710         match desired locality.
2711
2712 2002-06-19  Dhananjay R. Deshpande  <dhananjayd@kpit.com>
2713
2714         * config/h8300/h8300.c (TARGET_INSERT_ATTRIBUTES): Define.
2715         (h8300_insert_attributes): New.
2716
2717 2002-06-19  Akim Demaille  <akim@epita.fr>
2718
2719         * c-parse.in (initelt: identifier ':' initval): Add an empty
2720         action to fix a type clash.
2721         (aliasdecl, classdef): Add the missing closing `;'.
2722         Whitespace changes.
2723         * gengtype-yacc.y (typedef_struct): Add an empty action to preevnt
2724         $$ = $1 type clashes.
2725
2726 2002-06-19  Eric Christopher  <echristo@redhat.com>
2727
2728         * config/mips/mips.c (symbol_operand): New function.
2729         (mips_emit_prefetch): Ditto.
2730         * config/mips/mips-protos.h: Define.
2731         * config/mips/mips.h (ISA_HAS_PREFETCH): Define.
2732         (CONSTANT_ADDRESS_P): Adjust, use TARGET_GAS.
2733         (LEGITIMIZE_ADDRESS): Ditto.
2734         * config/mips/mips.md (prefetch, prefetch_si_address,
2735         prefetch_si, prefetch_di_address, prefetch_di): New patterns.
2736
2737 2002-06-19  Eric Christopher  <echristo@redhat.com>
2738
2739         * config/fp-bit.h: Add unordered defines for gofast.
2740
2741 2002-06-19  Vladimir Makarov  <vmakarov@redhat.com>
2742
2743         * genautomata.c (DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON,
2744         DECL_EXCL, DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV,
2745         DECL_INSN_RESERV, REGEXP_UNIT, REGEXP_RESERV, REGEXP_SEQUENCE,
2746         REGEXP_REPEAT, REGEXP_ALLOF, REGEXP_ONEOF): New macros with
2747         checking and without it.
2748         (decl_name, decl_mode_check_failed, regexp_name,
2749         regexp_mode_check_failed): New functions.
2750         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
2751         gen_presence_set, gen_absence_set, gen_automaton,
2752         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
2753         gen_regexp_sequence, gen_reserv, gen_insn_reserv,
2754         automaton_decl_hash, automaton_decl_eq_p): Use the macros.
2755         (find_automaton_decl): Ditto.  Set up mode of work_automaton_decl.
2756         (insn_decl_hash, insn_decl_hash, insn_decl_eq_p): Use the macros.
2757         (find_insn_decl): Ditto.  Set up mode of work_insn_decl.
2758         (decl_hash, decl_eq_p): Use the macros.
2759         (find_decl): Ditto.  Set up mode of work_decl.
2760         (process_excls, process_presence_absence, process_decls,
2761         check_automaton_usage, process_regexp, process_regexp_decls,
2762         check_usage, loop_in_regexp, check_loops_in_regexps,
2763         process_regexp_cycles, add_advance_cycle_insn_decl,
2764         initiate_states, initiate_excl_sets,
2765         initiate_presence_absence_sets, copy_insn_regexp, transform_1,
2766         transform_2): Use the macros.
2767         (transform_3): Ditto.  Check mode before making transformations of
2768         ALLOF.
2769         (regexp_transform_func, transform_insn_regexps,
2770         process_unit_to_form_the_same_automaton_unit_lists,
2771         form_the_same_automaton_unit_lists_from_regexp,
2772         form_the_same_automaton_unit_lists,
2773         process_seq_for_forming_states, process_alts_for_forming_states,
2774         create_alt_states, form_ainsn_with_same_reservs, make_automaton,
2775         form_arcs_marked_by_insn, NDFA_to_DFA, set_new_cycle_flags,
2776         estimate_one_automaton_bound, compare_max_occ_cycle_nums,
2777         units_to_automata_heuristic_distr, create_ainsns,
2778         units_to_automata_distr, create_automata): Use the macros.
2779         (form_regexp): Ditto.  Fix typo in access to fields of ALLOF.
2780         (longest_path_length, min_issue_delay_pass_states,
2781         output_dead_lock_vect, output_tables, output_insn_code_cases,
2782         output_internal_insn_latency_func, output_print_reservation_func,
2783         output_description, output_automaton_units, generate): Use the
2784         macros.
2785         (make_insn_alts_attr): Ditto.  Check case when there are not
2786         alternatives in the reservation.
2787         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr,
2788         make_bypass_attr, form_important_insn_automata_lists,
2789         expand_automata): Use the macros.
2790
2791 2002-06-20  Tim Josling  <tej@melbpc.org.au>
2792
2793         * Makefile.in: Clean up code to check for misspecified languages
2794         in enable-languages.
2795
2796 2002-06-19  Andrew Pinski <pinskia@physics.uc.edu>
2797
2798         * cpptrad.c (_cpp_replacement_text_len): initialize len.
2799
2800 2002-06-19  Jason Merrill  <jason@redhat.com>
2801
2802         * Makefile.in (unstrap, restrap): New targets.
2803         (bootstrap): Mention restrap.
2804
2805 2002-06-19  Matt Kraai  <kraai@alumni.cmu.edu>
2806
2807         * except.c (ehl_free): Remove.
2808
2809         * doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Correct misnamings of
2810         builtin_define and builtin_define_std.
2811
2812 2002-06-19  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
2813
2814         * config/ns32k/ns32k.md: Give "*xxx" names to all unnamed insn's.
2815         (sCOND): Restrict operand class so that gcc knows how to reload them.
2816         (bitfield_set): Merge two unnamed insn's using alternatives.
2817         (call_value): Remove constraint on unused uperand.
2818         (udivmodhi4, udivmodsi4, udivmoddihi4_internal): Remove.
2819         (udivmoddiqi4_internal, udivmoddihi4, udivmoddiqi4): Remove.
2820
2821         * longlong.h (count_trailing_zeros): Escape newline and beautify.
2822
2823 2002-06-19  Mark Mitchell  <mark@codesourcery.com>
2824
2825         * Makefile.in (QMTEST_DIR): Simplify definition.
2826
2827 2002-06-19  Nick Clifton  <nickc@cambridge.redhat.com>
2828
2829         * config/d30v/d30v.h (CUMULATIVE_ARGS): Replace typedef with
2830         #define.
2831
2832 2002-06-19  Neil Booth  <neil@daikokuya.co.uk>
2833
2834         * cpphash.h (struct cpp_reader): Make date and time strings.
2835         (_cpp_builtin_macro_text, _cpp_copy_replacement_text,
2836         _cpp_replacement_text_len): New.
2837         * cppinit.c (cpp_create_reader): Update.
2838         (init_builtins): Register appropriate builtins for -traditional-cpp.
2839         * cppmacro.c (new_number_token): Remove.
2840         (_cpp_builtin_macro_text): New.
2841         (builtin_macro): Use it.
2842         (cpp_macro_definition): Update to handle traditional macros.
2843         * cppmain.c (cb_line_change): Don't do column positioning for
2844         traditional output.
2845         * cpptrad.c (enum ls): Rename ls_fun_macro to ls_fun_open.  New
2846         state ls_fun_close.
2847         (skip_whitespace): Fix.
2848         (maybe_start_funlike): Don't set state.parsing_args.
2849         (scan_out_logical_line): Remove duplicate error.  Use lex_state
2850         rather than state.parsing_args.
2851         (push_replacement_text): Handle builtins.
2852         (_cpp_replacement_text_len, _cpp_copy_replacement_text): New.
2853
2854 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
2855             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2856
2857         * config/fp-bit.c (_fpmul_parts, _fpdiv_parts): Mark with
2858         attribute __always_inline__.
2859
2860 2002-06-18  Bob Wilson  <bob.wilson@acm.org>
2861
2862         * config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic
2863         when generating the call to _mcount.
2864         (NO_PROFILE_COUNTERS): Define.
2865
2866 2002-06-18  Richard Henderson  <rth@redhat.com>
2867
2868         * print-rtl.c (print_rtx): Adjust NOTE argument numbers for
2869         2002-06-02 change.
2870
2871 Tue Jun 18 20:53:32 2002  J"orn Rennecke <joern.rennecke@superh.com>
2872
2873         * t-sh (MULTILIB_EXCEPTIONS): Set to ml.
2874         config/sh/t-linux (MULTILIB_EXCEPTIONS): Clear.
2875         * config/sh/t-netbsd (MULTILIB_EXCEPTIONS): Likewise.
2876         * config/sh/t-sh64 (MULTILIB_EXCEPTIONS): Likewise.
2877
2878         * sh-protos.h (sh_pr_interrupt): Declare.
2879         * sh.c (sh_pr_interrupt): New function.
2880         (print_operand, calc_live_regs, sh_expand_prologue): Use it.
2881         (sh_hard_regno_rename_ok): Likewise.
2882         * sh.h (NORMAL_MODE): FP_MODE_NONE for interupt handlers.
2883
2884 2002-06-18  Vladimir Makarov  <vmakarov@redhat.com>
2885
2886         * rtl.def (DEFINE_AUTOMATON): Add description of new options
2887         `time' and `v'.  Fix incorrect description of option `w'.
2888
2889         * doc/md.texi: Ditto.
2890
2891         * genautomata.c (TIME_OPTION, V_OPTION): New macros.
2892         (gen_automata_option): Process the new options.
2893         (transform_2, transform_3): Initialize some variables.
2894         (initiate_automaton_gen): Use the new macros.
2895
2896 2002-06-18  Richard Sandiford  <rsandifo@redhat.com>
2897
2898         * config/mips/mips-protos.h (mips_initial_elimination_offset): Declare.
2899         (mips_set_return_address, mips_restore_gp): Declare.
2900         * config/mips/mips.h (struct mips_frame_info): Move to mips.c
2901         (current_frame_info): Remove.
2902         (INITIAL_ELIMINATION_OFFSET): Use mips_initial_elimination_offset.
2903         * config/mips/mips.c: Remove uses of current_frame_info.
2904         (struct mips_frame_info): Moved from mips.h.  Remove 'insns_len'.
2905         (struct machine_function): Add 'frame' and 'insns_len'.
2906         (current_frame_info, zero_frame_info): Remove.
2907         (mips_restore_gp, mips_set_return_address): New.
2908         (mips_initial_elimination_offset): New.
2909         * config/mips/mips.md (exception_receiver): Use mips_restore_gp.
2910         (eh_return define_split): Use mips_set_return_address.
2911
2912 2002-06-18  Neil Booth  <neil@daikokuya.demon.co.uk>
2913
2914         * cpplib.c (dtable): Update.
2915         (end_directive): Decrement expansion prevention count.
2916         Clear state.in_expression.
2917         (prepare_directive_trad): Set state.in_expression.
2918         Increment expansion prevention count.
2919         * cpptrad.c (enum ls): New.
2920         (_cpp_overlay_buffer): Set overlaid_buffer.
2921         (_cpp_remove_overlay): Use overlaid_buffer.
2922         (_cpp_read_logcial_line_trad): Update buffer when it might
2923         have changed.
2924         (scan_out_logical_line): Handle state transitions for assertions
2925         and defined() in #if, and for funlike invocations including the
2926         directive case.  Handle '<' and '>' as a quote mechanism in
2927         #include.  Warn about unterminated macro invocations.
2928         * cpphash.h (struct lexer_state): New member in_expression.
2929         (struct cpp_reader): New member overlaid buffer.
2930
2931 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
2932
2933         * config/cris/arit.c (do_31div, __Udiv, __Umod): Mark prototype
2934         __always_inline__.
2935
2936 2002-06-18  Alan Modra  <amodra@bigpond.net.au>
2937
2938         * config/ia64/ia64.md (doloop_end_internal): Correct rtl.
2939
2940         * doloop.c (doloop_optimize): Extract pattern from insn.
2941
2942 2002-06-17  Matt Kraai  <kraai@alumni.cmu.edu>
2943
2944         * doc/extend.texi (Function Attributes): Remove `,...' from @var.
2945
2946 2002-06-17  Jeff Law <law@redhat.com>
2947
2948         * libgcc2.c: Do not include symcat.h or machmode.h.
2949
2950 2002-06-17  Richard Henderson  <rth@redhat.com>
2951
2952         PR target/6922
2953         * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
2954
2955 2002-06-17  Tom Tromey  <tromey@redhat.com>
2956
2957         * dwarfout.c: Include function.h.
2958
2959 2002-06-17  Andreas Schwab  <schwab@suse.de>
2960
2961         * print-rtl.c (print_rtx): Print space before vector, not after.
2962         (debug_rtx): Clear sawclose before printing.
2963         (debug_rtx_list): Print newline after each list element.
2964         (debug_rtx_range): Likewise.
2965
2966 2002-06-17  Richard Henderson  <rth@redhat.com>
2967
2968         * function.h (struct function) [funcdef_no]: Rename profile_label_no.
2969         (current_function_funcdef_no): Similarly.
2970         * function.c (funcdef_no): Similarly.
2971         (prepare_function_start): Set current_function_funcdef_no.
2972         (expand_function_start): Don't set current_function_profile_label_no.
2973         * dwarf2out.h (current_funcdef_number): Remove.
2974         * dwarf2out.c (current_funcdef_number): Remove.  Replace with
2975         current_function_funcdef_no throughout.
2976         * dwarfout.c, vmsdbgout.c: Similarly.
2977         * except.c (sjlj_funcdef_number): Remove.
2978         (sjlj_emit_function_enter): Use current_function_funcdef_no instead.
2979         (output_function_exception_table): Likewise.
2980         * final.c (profile_function): Use current_function_funcdef_no
2981         instead of current_function_profile_label_no.
2982
2983 2002-06-17  Vladimir Makarov  <vmakarov@redhat.com>
2984
2985         * sched-ebb.c (init_ready_list): Check INSN_P first.
2986
2987 Mon Jun 17 17:26:15 2002  J"orn Rennecke <joern.rennecke@superh.com>
2988
2989         * sh.md (divsi3): Update way how to find insns in a sequence.
2990
2991         * reload1.c (merge_assigned_reloads): Don't change reloads
2992         other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
2993         to RELOAD_OTHER when there are conflicting input reloads.
2994
2995 2002-06-17  Richard Earnshaw  (rearnsha@arm.com)
2996
2997         * function.c (epilogue_done): Correctly build a sequence of insns for
2998         a sibcall epilogue.
2999
3000 2002-06-17  Nick Clifton  <nickc@cambridge.redhat.com>
3001
3002         * config/fr30/fr30.h (CUMULATIVE_ARGS): Replace typedef with
3003         #define.
3004
3005         * config/m32r/m32r.md: Replace gen_sequence with get_insns.
3006
3007 2002-06-16  Richard Henderson  <rth@redhat.com>
3008
3009         * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead
3010         of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS.
3011
3012 2002-06-16  Richard Henderson  <rth@redhat.com>
3013
3014         PR opt/6722
3015         * regclass.c (globalize_reg): Update regs_invalidated_by_call.
3016
3017 2002-06-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3018
3019         * config.gcc: Add i386/sysv4-cpp.h; remove i386-aout.h from vxworks.
3020         * config/i386/i386-aout.h, config/i386/i386elf.h,
3021         config/i386/sysv4.h: Remove CPP_PREDEFINES.
3022         * config/i386/linux64.h, config/i386/i386elf.h, config/i386/mach.h,
3023         config/i386/netware.h, config/i386/rtemself.h, config/i386/sco5.h,
3024         config/i386/sol2.h, config/i386/vsta.h, config/i386/vxi386.h,
3025         config/i386/win32.h: Use TARGET_OS_CPP_BUILTINS rather than
3026         CPP_PREDEFINES and part of CPP_SPEC.
3027         * config/i386/sysv4-cpp.h: New.
3028
3029 2002-06-16  Richard Henderson  <rth@redhat.com>
3030
3031         PR c/7030
3032         * dwarf2out.c (modified_type_die): Don't assign the qualified die
3033         to the unqualified type.
3034
3035 Sun Jun 16 22:16:10 CEST 2002  Jan Hubicka  <jh@suse.cz>
3036
3037         * i386-protos.h (x86_field_alignment): Declare.
3038         * i386.c (x86_field_alignment): Define.
3039         * i386.h (ADJUST_FIELD_ALIGNMENT): New.
3040         (BIGGEST_FIELD_ALIGNMENT): Kill.
3041
3042 2002-06-16  Richard Henderson  <rth@redhat.com>
3043
3044         * vax.md (casesi): Use emit_jump_insn.  Tidy expander pattern.
3045
3046 2002-06-16  Richard Henderson  <rth@redhat.com>
3047
3048         * c-common.c (flag_ms_extensions): Move from c++ front end.
3049         * c-common.h (flag_ms_extensions): Declare.
3050         * c-decl.c (c_decode_option): Add -fms-extensions.
3051         (grokfield): Don't accept anonymous structures in ISO C mode;
3052         accept only unnamed anonymous structures in GNU C mode; accept
3053         Plan 9 extensions in MS mode.
3054         * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from
3055         SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers.
3056         (extension): Clear flag_iso.
3057         * doc/invoke.texi (C Dialect Options): Add -fms-extensions.
3058
3059 2002-06-16  Hans-Peter Nilsson  <hp@axis.com>
3060
3061         PR target/7042
3062         * reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit
3063         early if current_function_epilogue_delay_list is non-empty.
3064         * config/cris/cris.md ("return"): Add sanity check asserting that
3065         current_function_epilogue_delay_list is empty.
3066
3067 2002-06-16  Jeff Law <law@redhat.com>
3068
3069         * emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic
3070         sharing of hard registers.
3071
3072         * toplev.c (rest_of_compilation): Remove redundant conditional.
3073
3074         * toplev.c (rest_of_compilation): Perform a simpler, less costly
3075         cleanup of the CFG when not optimizing.
3076
3077 2002-06-16  Alan Modra  <amodra@bigpond.net.au>
3078
3079         * gcc.c (main): Correct startfile_prefix_spec check.
3080
3081 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
3082
3083         * config.gcc: Revert rth's patch of 2002-05-18.  Instead,
3084         include both darwin.o and rs6000-c.o.
3085
3086 2002-06-15  Roger Sayle  <roger@eyesopen.com>
3087
3088         * expr.c (compare_from_rtx): Call simplify_relational_operation
3089         on all comparisons, not just those between integer constants,
3090         with the correct (possibly unsigned) comparison code.
3091         (do_compare_rtx_and_jump): Likewise.
3092
3093 2002-06-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3094
3095         * Makefile.in (tm_defines): New configuration variable.
3096         (cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES.
3097         Pass tm_defines in TM_DEFINES.
3098         (cs-tm_p.h): Rename DEFINES to XM_DEFINES.  Pass TM_DEFINES.
3099         * config.gcc (tm_defines): New configuration variable.
3100         (hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and
3101         pa-7100.h headers.  Change hppa1* scheduling default to 7100LC.
3102         * configure.in: Substitute tm_defines.
3103         * configure: Rebuilt.
3104         * mkconfig.sh: Rename DEFINES to XM_DEFINES.  Output TM_DEFINES.
3105         * doc/install.texi: Update.
3106         * pa/pa-700.h: Delete file.
3107         * pa/pa-7100.h: Delete file.
3108
3109 2002-06-15  Roger Sayle  <roger@eyesopen.com>
3110
3111         * fold-const.c (comparison_to_compcode): New function to convert
3112         an comparison TREE CODE into a bit-based representation.
3113         (compcode_to_comparison): New function to convert from this bit
3114         based representation back to a comparison TREE CODE.
3115         (fold_truthop): Simplify (x<y) && (x==y) and related composite
3116         comparisons.
3117
3118 2002-06-15  Aldy Hernandez  <aldyh@redhat.com>
3119
3120         * tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument.
3121
3122         * stor-layout.c (compute_record_mode): Remove check for
3123         FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for
3124         MEMBER_TYPE_FORCES_BLK.  Pass new mode field to
3125         MEMBER_TYPE_FORCES_BLK.
3126
3127         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same.
3128
3129         * config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same.
3130
3131 2002-06-14  Jeff Sturm  <jsturm@one-point.com>
3132
3133         * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS.
3134
3135 2002-06-14  Steve Ellcey  <sje@cup.hp.com>
3136
3137         * configure.in (USE_UNWIND_EXCEPTIONS): Add support to set
3138         USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set.
3139         * configure, config.in: Regenerate.
3140
3141 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
3142
3143         * loop.c (check_final_value): Use v->always_executed
3144         instead of v->always_computable.
3145         * unroll.c (final_giv_value): Don't calculate the final
3146         value as a function of the biv if the giv is not computed
3147         for every loop iteration.
3148
3149 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
3150
3151         * loop.c (for_each_insn_in_loop): Fix formatting and comments.
3152
3153 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
3154
3155         PR c/6677
3156         * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass
3157         the truncation down when the target type is signed.
3158         [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR.
3159         * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through
3160         the conversion if the target type is a smaller type.
3161
3162 2002-06-14  Richard Henderson  <rth@redhat.com>
3163
3164         * fold-const.c (fold) [compare ops]: Move X>=C / X<C transfomation
3165         earlier.  Re-factor comparisons vs extrema.
3166
3167 2002-06-14  Richard Henderson  <rth@redhat.com>
3168
3169         * config/alpha/alpha.md (builtin_zapnot): Fix op2 mode.
3170
3171 2002-06-14  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3172
3173         * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
3174         * sched-deps.c (add_dependence): Likewise.
3175         (group_leader): Likewise.
3176         * sched-rgn.c (init_ready_list): Likewise.
3177         * doc/rtl.texi: Adjust accordingly.
3178
3179 2002-06-13  Jeffrey Law  <law@redhat.com>
3180
3181         * gcse.c (delete_null_pointer_checks_1): Inform caller if any
3182         null pointer checks were eliminated.  Update prototype.
3183         (delete_null_pointer_checks): Similarly.
3184         * rtl.h (delete_null_pointer_checks): Update prototype.
3185         * toplev.c (rest_of_compilation): Only run cleanup_cfg if
3186         delete_null_pointer_checks deletes one or more null
3187         pointer checks.  Do not run cleanup_cfg before gcse, the
3188         CFG is accurate and optimized at that point..
3189
3190         * rs6000.c (rs6000_frame_related): Avoid unwanted sharing
3191         of hard registers.
3192
3193 2002-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
3194
3195         * Makefile.in (libgcc.mk): Depend on specs.
3196
3197 Fri Jun 14 12:15:11 2002  J"orn Rennecke <joern.rennecke@superh.com>
3198
3199         * sh.md (mulsi3): Update way how to find insns in a sequence.
3200
3201 Fri Jun 14 12:04:02 2002  Dhananjay R. Deshpande <dhananjayd@kpit.com>
3202
3203         * sh.h: Define HARD_REGNO_RENAME_OK
3204         * sh.c: sh_hard_regno_rename_ok: New. If current function has
3205         interrupt_handler attribute, only registers saved on stack are OK.
3206         * sh-protos.h: Declare sh_hard_regno_rename_ok.
3207
3208 2002-06-14  Kaz Kojima  <kkojima@gcc.gnu.org>
3209
3210         * config/sh/sh.md (jump): Emit jump insn.
3211         (call_pcrel): Get pattern of the result of gen_call_site.
3212         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
3213
3214 2002-06-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3215
3216         * cpphash.h (struct cpp_buffer): Remove saved_line_base.
3217         * cpptrad.c: Update comments.
3218         (skip_whitespace, copy_comment): Take a new parameter.
3219         (skip_escaped_newlines): Don't duplicate escaped newline test.
3220         (copy_comment): Different location for CUR, decide here how
3221         to copy / replace the comment.
3222         (skip_whitespace): Copy whitespace.
3223         (_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base.
3224         (scan_out_logical_line): Let copy comment handle keeping or
3225         replacing comments.
3226         (scan_parameters, _cpp_create_trad_definition): Update.
3227
3228 2002-06-13  Alan Lehotsky  <apl@alum.mit.edu>
3229
3230         * reload.c (get_secondary_mem,find_reloads_address,
3231         find_reloads_address_1): Pass reference to MEM to find_reloads_address
3232         so that LEGITIMIZE_RELOAD_ADDRESS will be called.
3233
3234 2002-06-13  Jessica Han  <jessica@cup.hp.com>
3235
3236         * defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New.
3237         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
3238         * doc/tm.texi: Document them.
3239         * config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New.
3240         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
3241         (TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode.
3242         (ASM_OUTPUT_FDESC): Likewise.
3243
3244 2002-06-13  Eric Christopher  <echristo@redhat.com>
3245
3246         * diagnostic.c (output_format): Fix thinko.
3247
3248 Thu Jun 13 22:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>
3249
3250         * config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define.
3251         (DWARF2_UNWIND_INFO): Define to 0.
3252
3253         * config/sh/sh.c (calc_live_regs): Don't use initial_value
3254         optimization for PR_MEDIA_REG.
3255
3256 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3257
3258         * cpphash.h (_cpp_lex_identifier_trad): Remove.
3259         * cpplib.c (end_directive): Don't skip, always remove overlay
3260         apart from #define.
3261         (prepare_directive_trad): Handle NULL pfile->directive.
3262         (_cpp_handle_directive): Always call prepare_directive_trad
3263         if traditional.
3264         * cppmain.c (check_multiline_token): Rename account_for_newlines,
3265         generalize inputs.
3266         (scan_translation_unit_trad): Use it.
3267         * cpptrad.c (skip_comment): Rename copy_comment, copy comment to
3268         output, get escaped newline in comment close correct.
3269         (check_output_buffer, skip_whitespace): Update.
3270         (_cpp_lex_identifier_trad): Remove.
3271         (scan_out_logical_line): Handle -C and comments in directives
3272         properly.
3273
3274 Thu Jun 13 20:18:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
3275
3276         * config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*.
3277         * config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
3278         * sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros.
3279         (SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise.
3280         (SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise.
3281         (SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise.
3282         (SELECT_SH5_COMPACT_NOFPU): Likewise.
3283         (TARGET_SWITCHES): Use them.
3284         (TARGET_CPU_DEFAULT): Define if not already defined.
3285         (TARGET_DEFAULT): Use it.
3286         (LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT.
3287         * config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN.
3288         * config/sh/t-monolib: New file.
3289
3290 2002-06-13  Roger Sayle  <roger@eyesopen.com>
3291
3292         * toplev.c (rest_of_compilation): Simplify (and correct) the
3293         logic of the first delete-null-pointer-checks pass.
3294
3295 Thu Jun 13 18:24:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
3296
3297         * i386.c (ix86_expand_movstr):  Fix pasto.
3298
3299 Thu Jun 13 18:18:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
3300
3301         * reload.c (find_valid_class):  Fix thinko in my previous patch.
3302
3303 2002-06-13  Ulrich Weigand  <uweigand@de.ibm.com>
3304
3305         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro.
3306         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro.
3307         (CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove.
3308         (EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64.
3309
3310 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
3311
3312         * tree-inline.c (expand_call_inline): Don' mess with _DECL
3313         fields.
3314
3315 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
3316
3317         * diagnostic.c (output_format): Recognize "%H" as a format
3318         specifier for a location_t.
3319         (text_specifies_location): New function.
3320         (diagnostic_set_info): Use it.
3321
3322 2002-06-13  Jeffrey Law  <law@redhat.com>
3323
3324         * emit-rtl.c (static_regno_reg_rtx): Define.
3325         (init_emit_once): Initialize static_regno_reg_rtx.
3326         (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
3327         of building new hard reg objects once per function.
3328         (gen_rtx_REG): Try to share hard regs.
3329         * regclass.c (init_fake_stack_mems): New function broken out from
3330         init_regs.
3331         * rtl.h (init_fake_stack_mems): Declare.
3332         * toplev.c (lang_independent_init): Call init_regs before
3333         init_emit_once.  Call init_fake_stack_mems after init_emit_once.
3334
3335         * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko.
3336
3337         * alias.c (argument_registers): Remove.
3338         (init_alias_once): Initialize static_reg_base_value here.  Remove
3339         initialization of argument_registers.
3340         (init_alias_once_per_function): Remove.
3341         (init_alias_analysis): Copy all the entries from static_reg_base_value
3342         into new_reg_base_value all at once.
3343         * rtl.h (init_alias_once_per_function): Remove declaration.
3344         * function.c (prepare_function_start): Do not call
3345         init_alias_once_per_function.
3346
3347         * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
3348         starting a sequence and emitting an INSN.
3349
3350 2002-06-13  Richard Sandiford  <rsandifo@redhat.com>
3351
3352         * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.
3353
3354 2002-06-13  David S. Miller  <davem@redhat.com>
3355
3356         * expmed.c (init_expmed): Remove duplicate init of 'reg'.
3357
3358 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3359
3360         * cpplib.c (end_directive): Handle line skipping.  Only remove
3361         the rest of the line if the directive was valid.
3362         * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
3363         expanding a traditional macro.
3364         * cpptrad.c (recursive_macro): New.
3365         (read_logical_line_trad): Handle skipping.
3366         (scan_out_logical_line): Continue after a successful directive.
3367         Don't expand macros whilst skipping, or if recursing.
3368         (_cpp_create_trad_definition): scan_out_logical_line now sets
3369         the output current position.
3370
3371 2002-06-12  Eric Christopher  <echristo@redhat.com>
3372
3373         From Chris Demetriou  <cgd@broadcom.com>
3374         * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix
3375         comment.
3376         (ISA_HAS_MADD_MSUB): Ditto.
3377         (ISA_HAS_NMADD_NMSUB): Ditto.
3378
3379 2002-06-12  Eric Christopher  <echristo@redhat.com>
3380
3381         * config.gcc: Consolidate little endian handling and
3382         little/big endian targets.
3383         * config/mips/elfl.h: Remove file.
3384         * config/mips/elfl64.h: Ditto.
3385         * config/mips/ecoffl.h: Ditto.
3386         * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove.
3387
3388 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
3389
3390         * gengtype.h (xvasprintf): New prototype.
3391         (xasprintf): New prototype.
3392         (struct outf): New.
3393         (get_output_file): Return an outf_p.
3394         (header_file): Is now an outf_p.
3395         (base_files): Now are outf_p.
3396         (oprintf): New.
3397         * gengtype.c: Replace all output FILE * with outf_p; use oprintf
3398         rather than stdio operations.  Use xasprintf in a few places,
3399         when appropriate.
3400         (xvasprintf): New.
3401         (xasprintf): New.
3402         (struct filemap): Delete.
3403         (files): Delete.
3404         (output_files): New.
3405         (oprintf): New.
3406         (create_file): Create an outf_p.  Add parameter to indicate output
3407         file name, change all callers.
3408         (open_base_files): Create gtype-desc.c here.
3409         (get_output_file_with_visibility): Rewrite.
3410         (get_output_file_name): Just look at 'name' field in struct outf.
3411         (close_output_files): Rewrite.
3412
3413 2002-06-12  Jason Thorpe  <thorpej@wasabisystems.com>
3414
3415         * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
3416         (MASK_G_FLOAT): Define.
3417         (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them.
3418         (TARGET_SWITCHES): Likewise.
3419         (TARGET_DEFAULT): Likewise.
3420
3421 2002-06-12  Daniel Jacobowitz  <drow@mvista.com>
3422
3423         * config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
3424         * config/mips/mips.c (mips_output_filename): Don't print a
3425         ".file" directive if we are using DWARF-2.
3426         (mips_output_function_prologue): Do not emit source file
3427         name for TARGET_GAS.
3428
3429 Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>
3430
3431         * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
3432         decide whether emit the short opcode.
3433         * i386.h (x86_shift1): Declare.
3434         (TARGET_SHIFT1): New macro.
3435         * i386.c (x86_shift1): New global variable.
3436
3437         * toplev.c (rest_of_compilation): Call find_basic_block pre-loop
3438         unconditionally; make loop to rebuild CFG; kill unnecesary
3439         find_basic_block calls; kill compute_bb_for_insn call.
3440         * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
3441         * haifa-sched.c (sched_init): Likewise.
3442         * ssa-ccp.c (ssa_const_prop): Likewise.
3443         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3444
3445 2002-06-11  David S. Miller  <davem@redhat.com>
3446
3447         * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
3448         active_insn_p.
3449
3450 2002-06-11  Richard Henderson  <rth@redhat.com>
3451
3452         * c-common.c (builtin_define_type_max): New.
3453         (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__,
3454         __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__.
3455
3456         From Joseph S. Myers:
3457         * glimits.h: Rewrite to expect the double underscore definitions
3458         from the compiler.
3459
3460         * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h,
3461         config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h,
3462         config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h,
3463         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
3464         config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h,
3465         config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h,
3466         config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__,
3467         __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__.
3468
3469 2002-06-11  Richard Henderson  <rth@redhat.com>
3470
3471         * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New.
3472         (ALPHA_BUILTIN_SET_THREAD_POINTER): New.
3473         (code_for_builtns): Update.
3474         (alpha_init_builtins): Add __builtin_thread_pointer and
3475         __builtin_set_thread_pointer.
3476         (alpha_expand_builtin): Handle void builtins.
3477         * doc/extend.texi (Alpha Built-in Functions): Update.
3478
3479 2002-06-11  Hans-Peter Nilsson  <hp@axis.com>
3480
3481         PR target/6997
3482         * config/cris/cris.md ("sleu"): Set attribute "cc" to "none".
3483
3484 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
3485
3486         * config.gcc: Make the name of the extra-modes file adjustable
3487         by target stanzas.
3488         (s390x, strongarm, xscale stanzas): Use this facility.
3489         * configure.in: Update to match.
3490         * configure: Regenerate.
3491
3492 2002-06-11  Aldy Hernandez  <aldyh@redhat.com>
3493
3494         * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned
3495         max/mins as unsigned GE compares.
3496
3497 2002-06-11  Jason Thorpe  <thorpej@wasabisystems.com>
3498
3499         * config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}.
3500         * config/vax/bsd.h: New file.
3501         * config/vax/netbsd.h: Add missing notice.
3502         (CPP_PREDEFINES): Remove.
3503         (TARGET_OS_CPP_BUILTINS): Define.
3504         (CPP_SPEC): Use NETBSD_CPP_SPEC.
3505         * config/vax/openbsd.h: Update copyright years.
3506         (CPP_PREDEFINES): Remove.
3507         (TARGET_OS_CPP_BUILTINS): Define.
3508         * config/vax/ultrix.h: Likewise.
3509         * config/vax/vaxv.h: Likewise.
3510         * config/vax/vms.h: Likewise.
3511         * config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define.
3512         (CPP_PREDEFINES, CPP_SPEC): Remove.
3513
3514 Wed Jun 12 01:50:28 CEST 2002  Jan Hubicka  <jh@suse.cz>
3515
3516         * i386.md (addqi_1_slp, subqi_1_slp
3517         (andqi_ext0, testqi_ext0): Remove unnecesary check.
3518         (addhi*, addqi*): Simplify "dec" condition.
3519         (testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check.
3520         (and, or, xor to QImode splitters): New.
3521         (iorqi_ext*): New.
3522         (xorqi_ext_0): New.
3523         (xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions.
3524         (andqi_ext_1_rex64): New.
3525         (ashrqi*_slp): New.
3526         (ashlqi*_slp): New.
3527         (lshlqi*_slp): New.
3528         (rotrqi3*_slp): New.
3529         (rotlqi3*_slp): New.
3530
3531 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
3532
3533         * config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including
3534         softfloat.h.
3535         * config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete.
3536         (CPP_ENDIAN_LITTLE_SPEC): Delete.
3537         * config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete.
3538         * config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting,
3539         __LONG_DOUBLE_128__ setting, _CALL_* setting.
3540         (CPP_DEFAULT_SPEC): Delete.
3541         (CPP_FLOAT_DEFAULT_SPEC): Delete.
3542         (CPP_LONGDOUBLE_DEFAULT_SPEC): Delete.
3543         (CPP_SYSV_DEFAULT_SPEC): Delete.
3544         (CPP_ENDIAN_BIG_SPEC): Delete.
3545         (CPP_ENDIAN_LITTLE_SPEC): Delete.
3546         (CPP_ENDIAN_SPEC): Delete.
3547         (CPP_SPEC): Don't include cpp_endian, cpp_cpu.
3548         (SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default,
3549         cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default,
3550         cpp_longdouble_default.
3551         * config/rs6000/softfloat.h: Delete.
3552         * config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete.
3553         (EXTRA_SPECS): Delete cpp_cpu.
3554         (TARGET_CPU_CPP_BUILTINS): New.
3555         * config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New
3556         prototype.
3557         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New.
3558         * config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines.
3559         (CPP_DEFAULT_SPEC): Delete.
3560         * config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete.
3561         * config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__.
3562         * config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu.
3563         (CPP_DEFAULT_SPEC): Delete.
3564         * config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
3565         (CPLUSPLUS_CPP_SPEC): Likewise.
3566         (CPP_CPU_SPEC): Delete.
3567         (CPP_DEFAULT_SPEC): Delete.
3568         * config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
3569         (CPLUSPLUS_CPP_SPEC): Likewise.
3570         (CPP_CPU_SPEC): Delete.
3571         (CPP_DEFAULT_SPEC): Delete.
3572         * config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu.
3573         (CPP_DEFAULT_SPEC): Delete.
3574         * config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu.
3575         (CPP_DEFAULT_SPEC): Delete.
3576
3577         * doc/gty.texi: Small updates.
3578
3579 2002-06-12  Gabriel Dos Reis  <gdr@codesourcery.com>
3580
3581         * objc/objc-act.c (warn_with_ivar): Adjust calls to
3582         diagnostic_count_error.
3583         (warn_with_method): Likewise.
3584
3585         * diagnostic.h (warnings_are_errors_message): New field of
3586         diagnostic_context.
3587         (diagnostic_count_error): Rename to diagnostic_count_diagnostic to
3588         match semantics.
3589         * diagnostic.c: Adjust calls to diagnostic_count_error through out.
3590         (diagnostic_count_diagnostic): Make aware of other kinds of
3591         diagnostics.
3592         (diagnostic_initialize): Initialize warnings_are_errors_message field.
3593
3594 2002-06-11  Tom Tromey  <tromey@redhat.com>
3595
3596         For PR java/6520:
3597         * fold-const.c (fold_convert): Don't modify existing tree's type.
3598
3599 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
3600
3601         * config/rs6000/ppc-asm.h: Remove some Windows NT leftovers.
3602
3603 2002-06-11  Richard Henderson  <rth@redhat.com>
3604
3605         * caller-save.c (init_caller_save): Clear INSN_CODE each iteration.
3606
3607 2002-06-11  Richard Henderson  <rth@redhat.com>
3608
3609         * defaults.h (EH_FRAME_SECTION_NAME): Don't define if
3610         DWARF2_UNWIND_INFO is false.
3611
3612 2002-06-11  Bob Wilson  <bob.wilson@acm.org>
3613
3614         * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.
3615
3616         * config/s390/s390.c (emit_prologue): gen_store_multiple
3617         returns an insn now, not a pattern.
3618
3619 2002-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3620
3621         * Makefile.in (gccinstall.dvi): Pass absolute pathnames to
3622         $(TEXI2DVI) -o.
3623
3624 Tue Jun 11 21:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
3625
3626         * i386.c (x86_promote_QImode): Set for Athlon
3627         (x86_fast_prefix): New global variable.
3628         (x86_arch_always_fancy_math_387): Fix formating.
3629         * i386.h (x86_fast_prefix): Declare
3630         (TARGET_FAST_PREFIX): define.
3631         * i386.md (and to strict_low_part, HI to SI
3632         promoting splitter): Use new macro.
3633
3634         * i386.h (RTX_COSTS): float_extend is not for free for SSE.
3635
3636 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
3637
3638         * Makefile.in (distclean): Delete junk left in testsuite
3639         directory, too.
3640
3641 2002-06-11  Jeffrey Law <law@redhat.com>
3642
3643         * emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the
3644         last insn created by the splitter.
3645
3646         * caller-save.c (init_caller_save): Move creation of SAVEINSN
3647         and RESTINSN into into the scope of the sequence.
3648
3649         * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
3650         RETURN insns.
3651
3652         * loop.c (loop_regs_scan): Avoid useless generation of REG objects.
3653
3654         * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now,
3655         not the pattern.  So extract the pattern from the insn.
3656
3657         * mips.c (embedded_pic_fnaddr_reg): Fix typo.
3658
3659 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
3660
3661         * config/s390/s390.md (movsi): Only use floating point
3662         register alternatives when operands are already fprs.
3663         (movdi_31, movdi_64): Likewise.
3664
3665 2002-06-11  David S. Miller  <davem@redhat.com>
3666
3667         * emit-rtl.c (try_split): Do not abort on non-INSN_P.
3668         Only run RTX equality checks on INSN_P rtl.
3669
3670 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
3671
3672         * config/s390/s390.md (reload_base, ltorg): Remove.
3673         * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool,
3674         s390_asm_output_pool_prologue, s390_pool_start_insn): Remove.
3675         * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool,
3676         s390_asm_output_pool_prologue): Likewise.
3677         * s390.h (s390_pool_start_insn): Likewise.
3678
3679         * s390.c (s390_output_symbolic_const): Remove support for
3680         old-style pool chunks.
3681         (s390_function_epilogue): Likewise.
3682         (s390_output_constant_pool): Likewise.  Also, fix incorrect
3683         alignment for 64-bit literal pools.
3684         (print_operand_address): Remove 'y' and 'Y' format flags.
3685         * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for
3686         old-style pool chunks.
3687         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
3688         (ASM_OUTPUT_POOL_EPILOGUE): Remove.
3689         (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.
3690
3691         * s390.c (consttable_operand): New function.
3692         * s390-protos.h (consttable_operand): Declare it.
3693         * s390.h (PREDICATE_CODES): Add consttable_operand.
3694         * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di,
3695         consttable_sf, consttable_df, pool_start_31, pool_end_31,
3696         pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
3697         * s390.c (struct constant, struct constant_pool): New data types.
3698         (constant_modes, gen_consttable): New variables.
3699         (s390_start_pool, s390_end_pool, s390_add_pool,
3700         s390_dump_pool, s390_free_pool): New functions.
3701         (s390_chunkify_pool): Completely reimplement literal pool
3702         overflow handling.
3703
3704         * s390.c (s390_pool_overflow): New variable.
3705         * s390.h (s390_pool_overflow): Declare it.
3706         * s390.md (cjump, icjump): Use it to adapt length for out-of-range
3707         jumps in literal pool overflow situations.
3708
3709         * s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
3710         (s390_frame_info): Account for possible use of RETURN_REGNUM
3711         by new literal pool overflow code.
3712         (s390_emit_prologue): Likewise.
3713
3714 2002-06-05  David S. Miller  <davem@redhat.com>
3715
3716         Delete SEQUENCE rtl usage outside of reorg and ssa passes.
3717         * rtl.h (gen_sequence, emit_insns, emit_insns_before,
3718         emit_insns_before_scope, emit_insns_after,
3719         emit_insns_after_scope): Delete declaration.
3720         * ada/misc.c (insert_code_for): Use emit_insn* instead of
3721         emit_insns_foo.
3722         * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
3723         (alpha_set_memflags): Fix comment.
3724         (set_frame_related_p): Use get_insns instead of gen_sequence.
3725         * config/alpha/alpha.md (setjmp receiver splitter): Avoid
3726         emitting no insns.
3727         * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
3728         gen_sequence.
3729         (arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
3730         * config/fr30/fr30.c (fr30_move_double): Likewise.
3731         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
3732         Likewise.
3733         * config/ia64/ia64.c (spill_restore_mem): Likewise.
3734         * config/ia64/ia64.md (conditional move spliiter): Avoid emitting
3735         no insns.
3736         * config/m32r/m32r.c (gen_split_move_double): Use get_insns
3737         instead of gen_sequence.
3738         * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
3739         (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
3740         * config/sh/sh.c (sh_need_epilogue): Likewise.
3741         * config/sparc/sparc.md (current_function_calls_alloca, flat): New
3742         attributes.
3743         (setjmp pattern and split): Use them to avoid splitter which emits
3744         no RTL.
3745         * genattrtab.c (main): Emit include of function.h
3746         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
3747         get_insns instead of gen_sequence.
3748         * config/cris/cris.c (cris_split_movdx): Likewise.
3749         * emit-rtl.c (emit_insns*): Kill.
3750         (try_split): Expect insn list instead of SEQUENCE.
3751         (make_jump_insn_raw, make_call_insn_raw): Fix comments.
3752         (emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
3753         Make them abort if a SEQUENCE is given and RTL checking is
3754         enabled.
3755         (emit_*_scope): Don't forget to set scope on final insn.
3756         (gen_sequence): Move from here...
3757         * ssa.c (gen_sequence): To here as private function.
3758         * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
3759         comments.
3760         (expand_builtin_return, expand_builtin_mathfn): Likewise.
3761         (expand_builtin_strlen): Use get_insns instead of gen_sequence.
3762         (expand_builtin_saveregs): Use emit_insn_foo, fix comments.
3763         (expand_builtin_expect_jump): Use get_insns and fix comments.
3764         * calls.c (try_to_integrate): Use emit_insn_foo.
3765         (expand_call, emit_library_call_value_1): Likewise.
3766         * expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
3767         (emit_move_insn_1): Use get_insns instead of gen_sequence.
3768         (expand_expr): Use emit_insn_foo.
3769         * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
3770         * except.c (build_post_landing_pads): Likewise.
3771         * flow.c (attempt_auto_inc): Likewise.
3772         * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
3773         expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
3774         * function.c (fixup_var_refs_insn): Use get_insns instead of
3775         gen_sequence.
3776         (fixup_var_refs_1): Likewise and expect insn list from gen_foo.
3777         (fixup_memory_subreg): Use get_insns instead of gen_sequence.
3778         (fixup_stack_1, purge_addressof_1, expand_main_function,
3779         get_arg_pointer_save_area): Likewise.
3780         (optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
3781         expand_function_end): Use emit_insn_foo.
3782         (record_insns, keep_stack_depressed): Work with insn list instead
3783         of SEQUENCE, fix comments.
3784         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
3785         noce_try_store_flag_constants, noce_try_store_flag_inc,
3786         noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
3787         noce_try_minmax, noce_try_abs): Use emit_insn_foo.
3788         (noce_process_if_block): Use get_insns instead of gen_sequence.
3789         * optabs.c (add_equal_note): Work with insn list, fix comments.
3790         (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
3791         (expand_unop, expand_complex_abs, expand_unop_insn,
3792         expand_no_conflict_block): Likewise.
3793         (gen_move_insn): Use get_insns instead of gen_sequence.
3794         (gen_cond_trap): Likewise.
3795         * integrate.c (copy_rtx_and_substitute): Likewise.
3796         (emit_initial_value_sets): Use emit_insn_foo.
3797         * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
3798         (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
3799         now that RTL generators give insn lists.
3800         * sibcall.c (replace_call_placeholder): Use emit_insn_foo.
3801         * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
3802         instead of gen_sequence.
3803         (doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
3804         * explow.c (emit_stack_save, emit_stack_restore): Use get_insns
3805         instead of gen_sequence.
3806         * loop.c (move_movables, emit_prefetch_instructions,
3807         gen_add_mult, check_dbra_loop, gen_load_of_final_value):
3808         Likewise.
3809         (loop_regs_update): Work with insn list instead of SEQUENCE rtl.
3810         (product_cheap_p): Likewise, and add commentary about RTL wastage
3811         here.
3812         * lcm.c (optimize_mode_switching): Use get_insns instead of
3813         gen_sequence.
3814         * profile.c (gen_edge_profiler): Likewise.
3815         * regmove.c (copy_src_to_dest): Likewise.
3816         * reg-stack.c (compensate_edge): Likewise and fix comment.
3817         * gcse.c (process_insert_insn): Likewise.
3818         (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
3819         * jump.c (delete_prior_computation): Update comment.
3820         * genemit.c (gen_expand, gen_split, main): Use get_insns instead
3821         of gen_sequence, update comments to match.
3822         * recog.c (peephole2_optimize): Work with insn lists instead of
3823         SEQUENCE rtl.
3824         * sched-vis.c (print_pattern): Abort on SEQUENCE.
3825         * unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
3826         Use get_insns instead of gen_sequence.
3827         (copy_loop_body): Likewise and don't emit dummy NOTE.
3828         * genrecog.c: Don't mention SEQUENCE rtl in comments.
3829         * combine.c (try_combine): Expect insn lists from split generator.
3830         * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
3831         hand.
3832
3833 2002-06-11  Roger Sayle  <roger@eyesopen.com>
3834             Andreas Jaeger <aj@suse.de>
3835
3836         * cfgbuild.c: Update copyright years.
3837
3838 2002-06-11  Andreas Schwab  <schwab@suse.de>
3839
3840         * config/m68k/m68k.h (PREDICATE_CODES): Define.
3841
3842 2002-06-11  Eric Christopher  <echristo@redhat.com>
3843
3844         * doc/tm.texi (Run-time Target): Add comment about flag_iso
3845         and strict ANSI.
3846         * config/mips/ecoff.h (CPP_PREDEFINES): Remove.
3847         * config/mips/ecoffl.h: Ditto.
3848         * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove.
3849         (CPP_PREDEFINES): Ditto.
3850         * config/mips/elfl64.h: Ditto.
3851         * config/mips/elfl.h: Ditto.
3852         * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0
3853         out until irix header consolidation.
3854         * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace
3855         with SUBTARGET_OS_CPP_BUILTINS.
3856         * config/mips/iris6.h: Ditto.
3857         (CPLUSPLUS_CPP_SPEC): Remove.
3858         * config/mips/linux.h: Ditto.
3859         * config/mips/netbsd.h: Ditto.
3860         * config/mips/openbsd.h: Ditto.
3861         * config/mips/rtems.h: Ditto.
3862         * config/mips/rtems64.h: Ditto.
3863         * config/mips/sni-svr4.h: Ditto.
3864         * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4,
3865         ISA_MIPS32, ISA_MIPS64): New defines.
3866         (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS,
3867         ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4,
3868         ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
3869         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use.
3870         (TARGET_CPU_CPP_BUILTINS): Define.
3871         (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove.
3872         * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64.
3873         (movdicc): Remove check for ISA_MIPS32.
3874          (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle,
3875         sunordered_df, sunordered_sf, sordered_df, sordered_sf,
3876         sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df,
3877         sunge_sf, sunle_df, sunle_sf): New patterns.
3878
3879 2002-06-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3880
3881         * Makefile.in: Update cppmain.o.
3882         * cpphash.h (struct cpp_reader): Move some members to a
3883         nested structure.
3884         (trad_line): Rename saved_line.
3885         (_cpp_read_logical_line_trad): Update.
3886         (_cpp_remove_overlay): New.
3887         * cppinit.c (cpp_create_reader): No need to set saved_line.
3888         (cpp_destroy): Update.
3889         (cpp_read_main_file): Only overlay if compiling.
3890         * cpplex.c (continue_after_nul): Return false if in directive.
3891         * cpplib.c (EXPAND): New.
3892         (directive_table, SEEN_EOL): Update.
3893         (end_directive): Remove overlay if traditional; don't skip
3894         line in traditional #define.
3895         (prepare_directive_trad): New.
3896         (_cpp_handle_directive, run_directive): Update for traditional
3897         directives.
3898         (lex_macro_node): Simplify, don't use lex_identifier_trad.
3899         * cpplib.h (struct options): Add preprocess_only.
3900         * cppmain.c: Don't include intl.h.
3901         (cpp_preprocess_file): Set options->preprocess_only.
3902         (scan_translation_unit_trad): Fix, and print line numbers.
3903         * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
3904         maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
3905         save_replacement_text, _cpp_create_trad_definition): Update for
3906         variable renaming.
3907         (_cpp_overlay_buffer): Save line number.
3908         (_cpp_remove_overlay): Rename from restore_buff, restore line.
3909         (_cpp_read_logical_line_trad): Don't handle overlays here.
3910         (scan_out_logical_line): Process directives.
3911
3912 2002-06-11  Danny Smith  <dannysmith@users.sourforge.net>
3913
3914         * gthr-win32.h: Wrap functions in extern "C".
3915         (__gthread_key_t): Typedef as unsigned long,
3916         not win32 DWORD.
3917         (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
3918         (__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
3919         (__gthr_win32_once, __gthr_win32_key_create,
3920         __gthr_win32_key_delete, __gthr_win32_getspecific,
3921         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
3922         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
3923         __gthr_win32_mutex_unlock): Declare.
3924         (__gthread_once,__gthread_key_create,
3925         __gthread_key_delete, __gthread_getspecific,
3926         __gthread_setspecific, __gthread_mutex_init_function,
3927         __gthread_mutex_lock,__gthread_mutex_trylock,
3928         __gthread_mutex_unlock): Call corresponding
3929         __gthr_win32_* extern implementations if #defined
3930         __GTHREAD_HIDE_WIN32API.
3931         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
3932         $(srcdir)/config/i386/gthr-win32.c
3933         * config/i386/gthr-win32.c: New implementation file.
3934         (__gthr_win32_once, __gthr_win32_key_create,
3935         __gthr_win32_key_delete, __gthr_win32_getspecific,
3936         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
3937         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
3938         __gthr_win32_mutex_unlock): New functions, based on
3939         static inlines in gthr-win32.h.
3940
3941 2002-06-10  Bob Wilson  <bob.wilson@acm.org>
3942
3943         * config/xtensa/xtensa.c (override_options): Don't warn about
3944         using -fpic or -fPIC when PIC is enabled by default.
3945
3946 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3947
3948         * toplev.c (rest_of_compilation): Revert flag_if_conversion change.
3949
3950 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
3951
3952         * Makefile.in (MACHMODE_H): Add @extra_modes_file@.
3953         * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
3954         exists, substitute its pathname as @extra_modes_file@, define
3955         EXTRA_MODES_FILE to be an appropriate string to #include it
3956         with, and define EXTRA_CC_MODES to 1.
3957
3958         * machmode.def: Update comments.  Include EXTRA_MODES_FILE if
3959         it's defined.  Get rid of redundancy in calling sequence for
3960         CC; don't use it to define CCmode, to avoid a warning.
3961         * libgcc2.c: Include symcat.h for the sake of machmode.def.
3962
3963         * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
3964         i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
3965         pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
3966         New files.
3967         * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
3968         pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
3969
3970         * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
3971         defining extra CC modes.
3972
3973 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3974             Andreas Jaeger <aj@suse.de>
3975
3976         * cfgrtl.c (create_basic_block_structure):  Remove index argument
3977         and use last_basic_block++ instead.  (create_basic_block): Update.
3978         * cfgbuild.c (find_basic_blocks_1): Likewise.
3979
3980         * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
3981         * haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
3982         * sched-ebb.c (schedule_ebbs): Likewise.
3983         * sched-rgn.c (schedule_insns): Likewise.
3984         * ssa-ccp.c (ssa_const_prop): Likewise.
3985         * ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
3986         * toplev.c (rest_of_compilation): Likewise.
3987         * config/ia64/ia64.c (ia64_reorg): Likewise.
3988
3989 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3990
3991         * simplify-rtx.c (simplify_replace_rtx): Allow replacement
3992         of matching registers.
3993
3994 2002-06-10  Roger Sayle  <roger@eyesopen.com>
3995
3996         * toplev.c (rest_of_compilation): Disable early if-conversion pass.
3997         * gcse.c (bypass_conditional_jumps): Fix typo in setcc test.
3998
3999 2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>
4000
4001         * config/mmix/mmix.h: Improve comments.
4002         (CPP_SPEC, CPP_PREDEFINES): Don't define.
4003         (TARGET_CPU_CPP_BUILTINS): Define.
4004         (CANONICALIZE_COMPARISON): Don't define, replace with comment.
4005         (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
4006         unused predicate.
4007         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
4008         compiler warning.
4009         (mmix_constant_address_p): Remove another
4010         redundant test before case.
4011         (mmix_canonicalize_comparison): Remove unused function.
4012         (mmix_print_operand_address): Don't test and adjust for operand in
4013         non-canonical format.
4014         (mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
4015         (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
4016
4017 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
4018
4019         * config/m32r/m32r.h: Don't define SELECT_CC_MODE.
4020         * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
4021         * config/m32r/m32r.c: Don't define m32r_select_cc_mode.
4022         (gen_compare): Use CCmode unconditionally.
4023
4024 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
4025
4026         PR optimization/6759
4027         * cse.c (cse_insn): Fold src_eqv just once, store it folded back into
4028         the REQ_EQUAL note.
4029
4030 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
4031
4032         PR c/6660
4033         * c-decl.c (grokfield): Allow user defined types if they declare
4034         structs or unions for unnamed fields.
4035
4036 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
4037
4038         PR c/6809
4039         * print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
4040
4041 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
4042
4043         PR optimization/6842
4044         * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
4045         operand subreg cannot be simplified.
4046
4047 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
4048
4049         * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
4050         (compare_constant): Likewise.
4051         (output_addressed_constants): Likewise.
4052
4053 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
4054
4055         * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
4056         merge bb with itself.
4057
4058 2002-06-10  Richard Henderson  <rth@redhat.com>
4059
4060         * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
4061         (builtin_zapnot): Likewise.
4062
4063         * config/alpha/ev5.md: Don't combine shift and mvi insns in one
4064         reservation.
4065
4066 2002-06-10  Eric Christopher  <echristo@redhat.com>
4067
4068         * config/i386/i386.c (ix86_osf_output_function_prologue): Remove
4069         prototype and function.
4070         (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
4071         (call_insn_operand): Remove half pic references.
4072         (legitimate_address_p): Ditto.
4073         * config/i386/i386.h: Remove half pic defines.
4074
4075 2002-06-10  Eric Christopher  <echristo@redhat.com>
4076
4077         * doc/extend.texi (Return Address): Add note explaining the side-
4078         effects of inlining on __builtin_return_address.
4079
4080 2002-06-10  Tom Tromey  <tromey@redhat.com>
4081
4082         * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
4083         (c-common.o): Depend on langhooks.h.
4084
4085 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
4086
4087         * cpphash.h (_cpp_read_logical_line_trad,
4088         _cpp_expansions_different_trad): Update prototypes.
4089         * cpplex.c (continue_after_nul): New.
4090         * cppmain.c: Include cpphash.h.
4091         (scan_translation_unit_trad): New.
4092         (cpp_preprocess_file): Call it.
4093         * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
4094         overlay.
4095         (_cpp_expansions_different_trad): Update prototype.
4096
4097 Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
4098
4099         Fix cfi generation for SH[1-4]:
4100
4101         * sh.c (frame_insn): New function.
4102         (output_stack_adjust): Add parameter emit_fn.  All callers changed.
4103         (push): Now returns rtx.  Use frame_insn.
4104         (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
4105         of a DF register.
4106         * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
4107
4108 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
4109
4110         * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
4111         and gtype-desc.c.
4112         (mostlyclean): Delete specs.h, options.h, gencheck.h here...
4113         (distclean): ... not here.  But do delete all testsuite/*.log,
4114         testsuite/*.sum files here.  Delete mkheaders.  Delete
4115         po/*.gmo and the testsuite directory in a split tree build.
4116
4117 2002-06-10  Jeffrey Law  <law@redhat.com>
4118
4119         * alias.c (static_reg_base_value): New to hold RTL for
4120         items allocated once per function for the aliasing code.
4121         (init_alias_once_per_function): Initialize static_reg_base_value.
4122         (init_alias_analysis): Avoid throw-away allocations of RTL by
4123         using pre-computed values in static_reg_base_value.
4124         * function.c (prepare_function_start): Call
4125         init_alias_once_per_function appropriately.
4126         * rtl.h (init_alias_once_per_function): Declare.
4127         * caller-save (init_caller_save): Restructure slightly to
4128         avoid lots of silly RTL generation.
4129         * expr.c (init_expr_once): Likewise.
4130         * reload1.c (reload_cse_regs_1): Allocate throw-away register
4131         RTL object here.  Pass it into children.
4132         (reload_cse_simplify_operands): Use passed-in register RTL
4133         object.
4134         (reload_cse_simplify): Pass through throw-away register
4135         RTL object.
4136
4137 2002-06-10  Daniel Berlin  <dberlin@dberlin.org>
4138
4139         * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.
4140
4141 2002-06-10  Richard Sandiford  <rsandifo@redhat.com>
4142
4143         * gcc.c (process_command): Avoid assignment to read-only location.
4144         Fix sizeof calculation.
4145
4146 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
4147
4148         * cpphash.h (struct cpp_macro): Put comments on their own lines.
4149         (_cpp_expansions_different_trad): New.
4150         * cppmacro.c (warn_of_redefinition): Fix for traditional case.
4151         * cpptrad.c (canonicalize_text): New.
4152         (scan_out_logical_line): Handle no arguments correctly.
4153         (save_replacement_text): Commit memory when finished.
4154         (_cpp_expansions_different_trad): New.
4155
4156 2002-06-10  Tim Josling  <tej@melbpc.org.au>
4157
4158         * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
4159         TREELANG and COBOL.
4160         (lang_names): Add treelang and cobol.
4161         (get_file_basename): Add code to support treelang and cobol as
4162         4th and 5th users of c-common.c.
4163
4164 2002-06-09  Geoffrey Keating  <geoffk@redhat.com>
4165
4166         * Makefile.in (install-driver): Install driver as
4167         $(target_alias)-gcc-$(version).
4168         * gcc.c (spec_version): Make const.
4169         (process_command): Handle -V and -b by using exec.
4170         * doc/invoke.texi (Target Options): Restore -V option,
4171         update docs for -b option.
4172
4173 2002-06-10  Tim Josling  <tej@melbpc.org.au>
4174
4175         * configure.in (remaining_languages_check):
4176         Added check that all languages specified were found.
4177         Exit if not found. Previous behaviour was silent failure.
4178         * configure: Regenerated.
4179
4180 2002-06-10  Tim Josling  <tej@melbpc.org.au>
4181
4182          First steps to making treelang documentation compliant, based on
4183          instructions in sourcebuild.texi. Also add to gcc.c list of
4184          default languages.
4185
4186         * doc/contrib.texi: Add self as contributor of treelang.
4187
4188         * doc/frontends.texi: Add mention of treelang.
4189
4190         * doc/invoke.texi (Overall Options): Add mention of treelang.
4191
4192         * doc/standards.texi:  Add mention of treelang.
4193
4194 2002-06-09  Hans-Peter Nilsson  <hp@axis.com>
4195
4196         * config/cris/cris.c: Include ggc.h
4197
4198 2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>
4199
4200         * cpphash.h (_cpp_push_text_context): Update.
4201         (_cpp_arguments_ok): New.
4202         * cppmacro.c (_cpp_arguments_ok): New, split out from...
4203         (collect_args): ...here.
4204         (_cpp_push_text_context): Change inputs.
4205         * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
4206         replace_args_and_push): New.
4207         (lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
4208         Don't use IS macros directly.
4209         (scan_out_logical_line): Handle function-like macro argument
4210         collection.
4211         (push_replacement_text): Update.
4212         (replacement_length): Remove.
4213         (_cpp_create_trad_definition): Don't skip whitespace before
4214         checking for '('.
4215
4216 2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4217
4218         * config/avr/avr.c (avr_mcu_types): Update for new devices.
4219         * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
4220         (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
4221         * config/avr/avr.md ("type" and "length" attributes): New type
4222         "xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
4223         output a single "call" or "rcall" insn depending on device size.
4224         * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.
4225
4226 2002-06-09  David Edelsohn  <edelsohn@gnu.org>
4227
4228         * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
4229         synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
4230         assembler option.
4231         (CPP_CPU_SPEC): Add power3 and power4.
4232         (PROCESSOR_DEFAULT): Change to 604e.
4233         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
4234         (CPP_CPU_SPEC): Similar additions.
4235         (enum process_type): Add POWER4.
4236         (RTX_COSTS): Add POWER4.
4237         (CPP_CPU_SPEC): Similar additions.
4238         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
4239         (PROCESSOR_DEFAULT64): Define.
4240         * config/rs6000/rs6000.c (rs6000_override_options): Add power4.
4241         (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
4242         branch adjustment.
4243         (rs6000_issue_rate): Add Power4.
4244         * config/rs6000/rs6000.md (cpu attr): Add power4.
4245         (iu compare): Remove 604, 604e, 620, 630.
4246         Add basic Power4 scheduling information.
4247         (mfcr/mtcrf): Change type attribute to cr_logical.
4248
4249 2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4250
4251         * gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
4252         ATTRIBUTE_PRINTF_2.
4253         * gengtype-lex.l: Fix format specifier warning.
4254
4255         * genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
4256         not isspace.
4257         * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
4258         lieu of isspace/IDchar.
4259         * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
4260         * read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
4261         ISSPACE.
4262
4263 2002-06-08  Zack Weinberg  <zack@codesourcery.com>
4264
4265         * Makefile.in (LIBCPP_OBJS): Take out version.o.
4266         * cpphash.h (cpp_reader): Take out print_version member.
4267         * cppinit.c: (cpp_handle_option): Don't do anything with
4268         -version.  Just set help_only for --version, --target-help.
4269         Just set verbose option for -v.
4270         (cpp_post_options): Don't print a version string.
4271
4272 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4273
4274         * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
4275         (avr_section_type_flags): New, handle .noinit* sections.
4276
4277 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
4278
4279         * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
4280         and include netbsd_entry_point.
4281         (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
4282         (NETBSD_ENTRY_POINT): Define.
4283
4284 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
4285
4286         * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
4287         if not already defined.
4288         (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.
4289
4290 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4291
4292         * config/avr/avr.c (avr_regs_to_save): No need to save any registers
4293         in a noreturn function.
4294         (avr_output_function_prologue, avr_output_function_epilogue):
4295         Correct function size calculation.  Do not crash on empty function.
4296         (avr_output_function_epilogue): No need for epilogue after a BARRIER.
4297
4298 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
4299
4300         * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
4301         netbsd_link_spec and netbsd_entry_point.
4302         (LINK_SPEC): Use %(netbsd_link_spec).
4303         (NETBSD_ENTRY_POINT): Define.
4304
4305 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
4306
4307         * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
4308         linker emulation.
4309         (LINK_ARCH64_SPEC): Likewise.
4310         (LINK_SPEC, NETBSD_ENTRY_POINT): Define.
4311         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.
4312
4313 2002-06-08  Marc Espie  <espie@openbsd.org>
4314
4315         * lists.c (free_list):  Fix typo in comment.
4316
4317 2002-06-08  Andreas Jaeger  <aj@suse.de>
4318
4319         * lcm.c (optimize_mode_switching): Add unused attribute for
4320         variable.
4321
4322         * sched-deps.c (sched_analyze): Remove unused variable.
4323
4324 2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>
4325
4326         * diagnostic.def: Don't capitalize diagnostict descriptors.
4327
4328 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
4329
4330         * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
4331         (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
4332         (NETBSD_ENTRY_POINT): Define.
4333
4334 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
4335
4336         * config/i386/netbsd-elf.h (LINK_SPEC): Define as
4337         NETBSD_LINK_SPEC_ELF.
4338         (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
4339         (NETBSD_ENTRY_POINT): Define.
4340         * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
4341         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
4342         netbsd_entry_point.
4343         (NETBSD_ENTRY_POINT): Define.
4344
4345 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
4346
4347         * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
4348         netbsd_link_spec and netbsd_entry_point.
4349         (LINK_SPEC): Use %(netbsd_link_spec).
4350         (NETBSD_ENTRY_POINT): Define.
4351
4352 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
4353
4354         * config/netbsd-elf.h (LINK_SPEC): Rename to...
4355         (NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
4356         to specify program entry point.
4357
4358 2002-06-07  Jeff Law <law@redhat.com
4359
4360         * emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
4361         * combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
4362         than creating a new register.
4363         (distribute_notes): Likewise.
4364         * df.c (df_reg_use_gen): Likewise.
4365         (df_reg_clobber_gen): Likewise.
4366         (df_ref_record): Likewise.
4367         * expr.c (use_regs): Likewise.
4368         * flow.c (propagate_one_insn): Likewise.
4369         (mark_set_1): Likewise.
4370         (mark_used_reg): Likewise.
4371         * reload.c (emit_reload_insns): Likewise.
4372
4373 2002-06-07  Roger Sayle  <roger@eyesopen.com>
4374
4375         * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
4376         (ne (comp x y) 0) into (comp x y) where comp is a comparison code.
4377         Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
4378         comparison code comp can be reversed.
4379
4380 2002-06-07  Roger Sayle  <roger@eyesopen.com>
4381
4382         * fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
4383         constants last in comparisons.  Optimize (x+1.0)>0.0 into the
4384         equivalent x > -1.0 when -ffast-math.
4385
4386 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
4387
4388         * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
4389         * config/mips/t-netbsd: New file.
4390
4391 2002-06-07  Zack Weinberg  <zack@codesourcery.com>
4392
4393         * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
4394         options their own entries.
4395         (parse_option): Clarify comment.
4396         (cpp_handle_option): Remove 'ignore' parameter and OPT_W
4397         special case.  Replace if/strcmp chain for -W options with
4398         use of new OPT_* entries for them.
4399         (cpp_handle_options): Update to match.
4400         * cpplib.h: Remove last parameter to cpp_handle_option from prototype.
4401         * c-decl.c: Update call to cpp_handle_option.
4402
4403 2002-06-07  Akim Demaille  <akim@epita.fr>
4404
4405         * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
4406         Whitespace changes.
4407
4408 2002-06-07  Jeffrey Law  <law@redhat.com>
4409
4410         * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
4411         on empty lists.
4412
4413 2002-06-07  H.J. Lu  (hjl@gnu.org)
4414
4415         * configure.in: Add --enable-__cxa_atexit.
4416         * configure: Regenerated.
4417         * config.in: Likewise.
4418
4419         * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
4420         not defined.
4421
4422 2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>
4423
4424         * diagnostic.c (diagnostic_build_prefix): Fix initialization.
4425
4426 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
4427
4428         * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.
4429
4430 2002-06-07  Jason Merrill  <jason@redhat.com>
4431
4432         * cppexp.c (num_equality_op): Use a temporary variable to work
4433         around gcc 3.0.4 bug.
4434
4435 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
4436
4437         * diagnostic.c (diagnostic_build_prefix): Tidy.
4438
4439 2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>
4440
4441         * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
4442         scan_parameters, save_replacement_text, replacement_length): New.
4443         (scan_out_logical_line): Take a macro and save parameters if
4444         non-NULL.
4445         (_cpp_logical_line_trad): Update.
4446         (_cpp_create_trad_definition): Update to handle function-like
4447         macros.
4448         * cpplex.c (new_buff): Update.
4449         (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
4450         * cpphash.h: ...here.
4451         (CPP_ALIGN2, _cpp_save_parameter): New.
4452         * cppmacro.c (save_parameter): Rename, export.
4453         (parse_params): Update.
4454
4455 2002-06-07  Andreas Jaeger  <aj@suse.de>
4456
4457         * config/mmix/mmix.c: Remove extra broken prototype for
4458         mmix_init_machine_status.
4459
4460 2002-06-06  Geoffrey Keating  <geoffk@redhat.com>
4461
4462         * gengtype.c: Add comments before all the routines.
4463
4464 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
4465
4466         * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
4467         from and add t-sh64 to ${tmake_file}.
4468         (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
4469         * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
4470         * config/sh/t-netbsd-sh5-32: Remove.
4471         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
4472         MULTILIB_ENDIAN.
4473         (MULTILIB_DIRNAMES): Define.
4474
4475 Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
4476
4477         * i386.md (and promoting splitters): Disable QI to SImode promoting
4478         when doing so changes immediate to be 32bit.
4479
4480         * rtl.h (emit_*_scope): Declare.
4481         * emit-rtl.c (emit_*_scope): New global functions.
4482         (try_split): Copy scope.
4483         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
4484         noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
4485         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
4486         noce_process_if_block, find_cond_trap): Copy scopes.
4487         * recog.c (peephole2_optimize): likewise.
4488
4489 2002-06-06  Jeffrey Law  <law@redhat.com>
4490
4491         * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.
4492
4493 Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
4494
4495         * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".
4496
4497 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4498
4499         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
4500         ($(docdir)/gccinstall.info): New target.
4501         (info): Depend on it.
4502         (gccinstall.dvi): New target.
4503         (dvi): Depend on it.
4504         * doc/.cvsignore: Ignore new info files.
4505         * doc/install.texi (@setfilename): Reflect new info filename.
4506
4507 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
4508
4509         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
4510         on an UNSPEC.
4511
4512 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
4513
4514         PR objc/6834
4515         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
4516         c_common_get_alias_set.
4517         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.
4518
4519 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4520
4521         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
4522         functions.
4523         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
4524         * avr/avr.c (avr_output_function_epilogue): Use above to determine
4525         function size.
4526         * pa/pa.c (pa_output_function_prologue): Likewise.
4527
4528 2002-06-05  David S. Miller  <davem@redhat.com>
4529
4530         * integrate.c (subst_constants): Handle 'B' RTL format.
4531
4532 2002-06-05  Eric Christopher  <echristo@redhat.com>
4533
4534         * varasm.c (make_decl_rtl): Fix comment for removed
4535         halfpic.c.
4536
4537 2002-06-05  Eric Christopher  <echristo@redhat.com>
4538
4539         * Makefile.in: Remove missed halfpic bits.
4540
4541 2002-06-05  Eric Christopher  <echristo@redhat.com>
4542
4543         * toplev.c: Remove half-pic.
4544         * config/mips/mips.c: Ditto.
4545         * config/mips/mips.h: Ditto. Remove unused defines.
4546         * config/mips/openbsd.h: Update comment to reflect above.
4547         * config/mips/mips.md: Remove half-pic constraints.
4548         * halfpic.h: Delete.
4549         * halfpic.c: Ditto.
4550
4551 2002-06-05  Jeffrey Law  <law@redhat.com>
4552
4553         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
4554         rejects (mem (lo_sum (reg) (unspec))), but will allow
4555         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
4556
4557 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4558
4559         * cpphash.h (_cpp_create_definition): Update prototype.
4560         (_cpp_push_text_context, _cpp_create_trad_definition): New.
4561         ( cpp_lex_identifier_trad): New.
4562         (_cpp_set_trad_context): New.
4563         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
4564         * cpplib.c (SEEN_EOL): Update.
4565         (lex_macro_node): Update for -traditional.
4566         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
4567         * cppmacro.c (_cpp_create_definition): Split into
4568         create_iso_definition() and _cpp_create_trad_definition().
4569         (warn_of_redefinition): Update prototype; handle traditional
4570         macros.
4571         (_cpp_push_text_context): New.
4572         * cpptrad.c (skip_whitespace, push_replacement_text): New.
4573         (lex_identifier): Call ht_lookup with correct start.
4574         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
4575         _cpp_set_trad_context): New.
4576         (scan_out_logical_line): Update to handle changing contexts.
4577
4578 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
4579
4580         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
4581         (shl*-*-elf*): Add.
4582         * config/sh/t-be (MULTILIB_ENDIAN): Set.
4583         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
4584         * t-sh (MULTILIB_ENDIAN): Set.
4585         (MULTILIB_OPTIONS): Use it.
4586         * t-sh64 (MULTILIB_OPTIONS): Likewise.
4587         (MULTILIB_DIRNAMES): Likewise.
4588
4589 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
4590
4591         * toplev.h (report_error_function): Remove.
4592
4593         * diagnostic.h (location_t): New datatype.
4594         (text_info): Likewise.
4595         (diagnostic_info): Likewise.
4596         (output_prefix): New macro.
4597         (diagnostic_last_function_changed): Likewise.
4598         (diagnostic_set_last_function): Likewise.
4599         (diagnostic_last_module_changed): Likewise.
4600         (diagnostic_set_last_module): Likewise.
4601         (report_diagnostic): Now macro.
4602         (diagnostic_set_info): Declare.
4603
4604         * diagnostic.c (report_problematic_module): Rename to
4605         diagnostic_repor_current_module.
4606         (set_diagnostic_context): Remove.
4607         (count_error): Rename to diagnostic_error_count.
4608         (error_function_changed): Remove.
4609         (record_last_error_function): Likewise.
4610         (error_module_changed): Likewise.
4611         (record_last_error_module): Likewise.
4612         (context_as_prefix): Rename to diagnostic_build_prefix.
4613         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
4614         (diagnostic_set_info): New function.
4615
4616         * objc/objc-act.c: #include diagnostic.h
4617         (error_with_ivar): Adjust call to count_error.
4618         (warn_with_method): Likewise.
4619         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
4620
4621 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
4622
4623         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
4624         lang_hooks.types.make_type instead of make_node; set up
4625         __va_list_tag type decl.
4626         (xtensa_builtin_saveregs): Remove broken use of
4627         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
4628         for saved registers; add varargs alias set.
4629
4630 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4631
4632 config:
4633         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
4634         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
4635         CPP_PREDEFINES and part of CPP_SPEC.
4636         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
4637         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
4638
4639 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
4640
4641         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
4642
4643 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
4644
4645         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
4646
4647 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
4648
4649         * gengtype-yacc.y: Make sure all rules end with a semicolon.
4650
4651 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
4652
4653         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
4654         typo in function prototype and include "ggc.h" header.
4655
4656 2002-06-04  Richard Henderson  <rth@redhat.com>
4657
4658         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
4659         (print_operand) ['U']: Likewise.
4660         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
4661         (alpha_expand_unaligned_store_words): Likewise.
4662         (alpha_expand_builtin_vector_binop): Fix typo.
4663         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
4664         umulh, and cix insns.
4665         (one_arg_builtins): Add cix builtins.
4666         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
4667         (alpha_expand_builtin): Fix typo in arity.
4668         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
4669         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
4670         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
4671         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
4672         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
4673         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
4674         builtin_ctlz, builtin_ctpop): New.
4675         * doc/extend.texi (Alpha Built-in Functions): Update.
4676
4677 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
4678
4679         * gengtype.c (write_gc_root): Don't unnecessarily prevent
4680         global variable-length arrays being roots.
4681
4682         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
4683         * configure.in (config_gtfiles): New variable.
4684         (all_gtfiles): Initialise from config_gtfiles.
4685         * configure: Regenerate.
4686
4687 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4688
4689 config/i386:
4690         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
4691         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
4692         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
4693         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
4694         win32.h (CPP_SPEC): Remove cpp_cpu.
4695         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
4696         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
4697
4698 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
4699
4700         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
4701
4702 2002-06-04  Jeff Law <law@redhat.com.
4703             David Edelsohn <edelsohn@gnu.org>
4704             Michael Matz <matz@kde.org>
4705
4706         * sched-int.h (struct deps): New field libcall_block_tail_insn.
4707         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
4708         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
4709         is set, then mark the current insn as being part of a libcall
4710         scheduling group.
4711         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
4712
4713         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
4714         insns against the issue rate.
4715
4716 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
4717
4718         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
4719         * final.c (final_scan_insn): Likewise.
4720         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
4721         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
4722         * haifa-sched.c (unlink_other_notes): Likeewise.
4723         (reemit_notes): Likewise.
4724         * print-rtl.c (print_rtx): Likewise.
4725         * sched-deps (sched-analyze): Likewise.
4726         * rtl.c (note_insn_name): Likewise.
4727         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
4728         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
4729         (RANGE_*): Kill.
4730
4731 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
4732
4733         * varasm.c (mark_constants): Handle RTX format 'B'.
4734
4735 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4736
4737         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
4738         (struct cpp_context): Add traditional fields.
4739         * cppmacro.c (paste_all_tokens, push_ptoken_context,
4740         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
4741         * cpptrad.c (skip_comment, lex_identifier,
4742         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
4743
4744 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
4745
4746         * gbl-ctors.h: Fix formatting.
4747         * gcc.c: Likewise.
4748         * gccspec.c: Likewise.
4749         * gcov.c: Likewise.
4750         * gcov-io.h: Likewise.
4751         * gcse.c: Likewise.
4752         * ggc-common.c: Likewise.
4753         * ggc.h: Likewise.
4754         * ggc-page.c: Likewise.
4755         * ggc-simple.c: Likewise.
4756         * global.c: Likewise.
4757         * graph.h: Likewise.
4758         * gthr-dce.h: Likewise.
4759         * gthr.h: Likewise.
4760         * gthr-posix.h: Likewise.
4761         * gthr-rtems.h: Likewise.
4762         * gthr-solaris.h: Likewise.
4763         * gthr-win32.h: Likewise.
4764
4765 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
4766
4767         Merge from pch-branch:
4768
4769         * gengtype.h (UNION_OR_STRUCT_P): New macro.
4770         * gengtype.c (write_gc_structure_fields): Use it.
4771         (write_gc_root): Use it here too.
4772
4773         * gengtype.c (write_gc_structure_fields): Assume that lengths
4774         of typenames fit into an 'int'; don't pass a size_t to "%d" in
4775         printf.
4776         (write_gc_marker_routine_for_structure): Likewise.
4777         (write_gc_types): Likewise.
4778         (write_gc_root): Likewise.
4779
4780         * varray.h (VARRAY_CLEAR): New.
4781         (varray_clear): Prototype.
4782         * varray.c (varray_clear): New.
4783         * cselib.c (reg_values_old): New.
4784         (used_regs_old): New.
4785         (cselib_init): Use cached varrays if available to avoid
4786         generating large amounts of garbage.
4787         (cselib_finish): Don't throw away old varrays.
4788
4789         * final.c (insn_addresses_): Move out of ifdef.
4790
4791         * varray.c (uses_ggc): Make more varray kinds GCable.
4792         * varray.h (union varray_data_tag): Let gengtype see
4793         fields 'generic' and 'te'.
4794         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
4795         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
4796         (reg_to_stack): Don't call VARRAY_FREE.
4797         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
4798         (insn_addresses_): Use gengtype to mark.
4799         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
4800         pointers; handle generic pointers in unused union fields.
4801         (get_output_file_with_visibility): Include cselib.h,
4802         insn-addr.h in gtype-desc.c.
4803         * function.c (prologue): Use gengtype to mark.
4804         (epilogue): Likewise.
4805         (sibcall_epilogue): Likewise.
4806         * dependence.c: Include gt-dependence.h, ggc.h.
4807         (struct def_use): Use gengtype to mark.
4808         (struct loop): Likewise.
4809         (struct induction): Likewise.
4810         (struct dependence): Likewise.
4811         (def_use_chain): Likewise.
4812         (dep_chain): Likewise.
4813         (loop_chain): Likewise.
4814         (induction_chain): Likewise.
4815         (init_dependence_analysis): Don't free anything, just clear pointers.
4816         (build_def_use): Use GGC to allocate def_use.
4817         (add_loop): Use GGC to allocate loop.
4818         (find_induction_variable): Use GGC to allocate induction.
4819         (check_node_dependence): Use GGC to allocate induction, dependence.
4820         (dump_node_dependence): Don't free varrays.
4821         (end_dependence_analysis): Likewise.
4822         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
4823         (struct elt_loc_list): Likewise.
4824         (struct elt_list): Likewise.
4825         * cselib.c: Don't include obstack.h.
4826         (hash_table): Use gengtype to mark.
4827         (reg_values): Use gengtype to mark.
4828         (used_regs): Use gengtype to mark.
4829         (cselib_obstack): Delete.
4830         (cselib_startobj): Delete.
4831         (empty_vals): Mark as deletable.
4832         (empty_elt_lists): Mark as deletable.
4833         (empty_elt_loc_lists): Mark as deletable.
4834         (new_elt_list): Use GGC to allocate struct elt_list.
4835         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
4836         (clear_table): Don't delete obstack; don't unnecessarily clear
4837         deletable variables.
4838         (new_cselib_val): Use GGC to allocate struct cselib_val.
4839         (cselib_init): Don't set up obstacks.  Use GGC to allocate
4840         hash table.
4841         (cselib_finish): Just clear variables, don't free anything.
4842         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
4843         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
4844         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
4845         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
4846         (gt-reg-stack.h): New rule.
4847         (gt-dependence.h): New rule.
4848         (gtype-desc.o): Add cselib.h, insn-addr.h.
4849
4850         * varray.c: Use only necessary headers.
4851         (element_size): New.
4852         (uses_ggc): New.
4853         (varray_init): Take type, not size.  Use GGC if appropriate.
4854         (varray_grow): Update for change to struct varray_head_tag.
4855         Use GGC if appropriate.
4856         * varray.h (struct const_equiv_data): Use gengtype.
4857         (enum varray_data_enum): New.
4858         (union varray_data_tag): Use gengtype.
4859         (struct varray_head_tag): Use gengtype.  Replace size field with
4860         enum varray_data_enum.
4861         (varray_init): Update prototype.
4862         (VARRAY_SCHED_INIT): Delete.
4863         (VARRAY_*_INIT): Update for change to varray_init.
4864         (VARRAY_SCHED): Delete.
4865         (VARRAY_PUSH_SCHED): Delete.
4866         (VARRAY_TOP_SCHED): Delete.
4867         * tree.h: Update for change to length specifier.
4868         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
4869         (clone_body): Likewise.
4870         * ssa.h (ssa_definition): Use gengtype to mark.
4871         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
4872         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
4873         * rtl.h (struct rtvec_def): Update for change to length specifier.
4874         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
4875         (struct initial_value_struct): Update for change to length specifier.
4876         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
4877         (ggc_add_tree_varray_root): Delete prototype.
4878         (ggc_mark_rtx_varray): Delete prototype.
4879         (ggc_mark_tree_varray): Delete prototype.
4880         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
4881         (ggc_add_tree_varray_root): Delete.
4882         (ggc_mark_rtx_varray): Delete.
4883         (ggc_mark_tree_varray): Delete.
4884         (ggc_mark_rtx_varray_ptr): Delete.
4885         (ggc_mark_tree_varray_ptr): Delete.
4886         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
4887         (create_varray): Delete prototype.
4888         * gengtype.c (varrays): Delete.
4889         (create_varray): Delete.
4890         (adjust_field_type): Detect array of string pointers.
4891         (process_gc_options): Remove code to handle varray_type option.
4892         (set_gc_used_type): Remove TYPE_VARRAY case.
4893         (output_escaped_param): New.
4894         (write_gc_structure_fields): Use output_escaped_param on all
4895         parameters.  Handle 'skip' with 'use_param' option.  Handle
4896         arrays of strings.  Remove TYPE_VARRAY handling.
4897         (write_gc_roots): Use boolean to detect 'length' option.
4898         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
4899         (struct_fields): Call adjust_field_type on array fields.
4900         (type): Remove VARRAY_TYPE case.
4901         (type_option): Likewise.
4902         * gengtype-lex.l: Don't consider varray_type a keyword.
4903         * function.h: Update for change to length specifier.
4904         (free_eh_status): Delete prototype.
4905         * function.c (free_after_compilation): Don't call free_eh_status.
4906         (reorder_blocks): Don't use VARRAY_FREE.
4907         * except.c (struct eh_status): Update for change to length specifier.
4908         remove varray_type specifier.
4909         (free_eh_status): Delete.
4910         * dwarf2out.c: Include gt-dwarf2out.h.
4911         (used_rtx_varray): Use gengtype to mark, move
4912         outside ifdefs.
4913         (incomplete_types): Likewise.
4914         (decl_scope_table): Likewise.
4915         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
4916         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
4917         * c-tree.h (struct lang_type): Update for change to length specifier.
4918         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
4919         * c-objc-common.c: Include gt-c-objc-common.h.
4920         (deferred_fns): Mark for gengtype.
4921         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
4922         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
4923         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
4924         (gtype-desc.o): Update dependencies.
4925         (dwarf2out.o): Add gt-dwarf2out.h.
4926         (varray.o): Update dependencies.
4927         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
4928         (gt-c-objc-common.h): New rule.
4929         (gt-dwarf2out.h): New rule.
4930         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
4931
4932         * doc/gty.texi (GTY Options): Correct spelling.
4933         (GGC Roots): Likewise.
4934         * Makefile.in (TEXI_CPP_FILES): New.
4935         (TEXI_GCC_FILES): New.
4936         (TEXI_GCCINT_FILES): New.
4937         (TEXI_CPPINT_FILES): New.
4938         ($(docdir)/cpp.info): Use new macros.
4939         ($(docdir)/gcc.info): Likewise.
4940         ($(docdir)/gccint.info): Likewise.
4941         ($(docdir)/cppinternals.info): Likewise.
4942         (cpp.dvi): Likewise.
4943         (gcc.dvi): Likewise.
4944         (gccint.dvi): Likewise.
4945         (cppinternals.dvi): Likewise.
4946
4947         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
4948         * doc/gccint.texi (Top): Include gty.texi.
4949         * doc/gty.texi: New file.
4950
4951         * bitmap.c: Include ggc.h, gt-bitmap.h.
4952         (bitmap_ggc_free): New.
4953         (bitmap_elem_to_freelist): New.
4954         (bitmap_element_free): Use bitmap_elem_to_freelist.
4955         (bitmap_element_allocate): Allow use of GGC.
4956         (bitmap_clear): Use bitmap_elem_to_freelist.
4957         (bitmap_copy): Update for change to bitmap_element_allocate.
4958         (bitmap_set_bit): Likewise.
4959         (bitmap_operation): Update for changes elsewhere.
4960         (bitmap_initialize): Allow to create bitmaps that will use GGC.
4961         * bitmap.h (struct bitmap_element_def): Use gengtype.
4962         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
4963         (bitmap_initialize): Add extra parameter.
4964         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
4965         (BITMAP_ALLOCA): Delete.
4966         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
4967         (BITMAP_GGC_ALLOC): New.
4968         * Makefile.in (gtype-desc.o): Add bitmap.h.
4969         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
4970         (GTFILES): Add bitmap.c.
4971         (gt-bitmap.h): New rule.
4972         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
4973         * basic-block.h: Update for changes to bitmap_initialize.
4974         * except.c (exception_handler_label_map): Move into...
4975         (struct eh_status): Here.
4976         (struct eh_region): Make 'aka' GCable.
4977         (free_eh_status): Don't need to specially handle
4978         exception_handler_label_map.
4979         (add_ehl_entry): Update for changes to exception_handler_label_map.
4980         (find_exception_handler_labels): Likewise.
4981         (remove_exception_handler_label): Likewise.
4982         (maybe_remove_eh_handler): Likewise.
4983         (for_each_eh_label): Likewise.
4984         (remove_eh_handler): Allocate 'aka' using GGC.
4985         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
4986         to list of includes.
4987
4988         * gengtype.c (write_gc_marker_routine_for_structure): Name
4989         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
4990         (write_gc_types): Arrange for the tests with NULL to be inlined.
4991         (write_gc_roots): Update uses of procedure pointers.
4992         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
4993
4994         * Makefile.in (explow.o): Add dependency on gt-explow.h.
4995         (sdbout.o): Add dependency on gt-sdbout.h.
4996
4997         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
4998         (mem_attrs_htab): Likewise.
4999         (init_emit_once): Don't call ggc_add_deletable_htab.
5000         * fold-const.c (size_htab): Use gengtype to clear unused entries.
5001         (size_int_type_wide): Don't call ggc_add_deletable_htab.
5002         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
5003         parameters, use them, change callers.
5004         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
5005         (write_gc_roots): Handle 'if_marked' option.
5006         (main): Don't need to call set_gc_used_type any more.
5007         * ggc.h (ggc_htab_marked_p): Delete.
5008         (ggc_htab_mark): Delete.
5009         (struct ggc_cache_tab): New.
5010         (gt_ggc_cache_rtab): New declaration.
5011         * ggc-common.c (struct d_htab_root): Delete.
5012         (d_htab_roots): Delete.
5013         (ggc_add_deletable_htab): Delete.
5014         (ggc_htab_delete): Handle new htab-deleting mechanism.
5015         (ggc_mark_roots): Use new htab-deleting mechanism.
5016         * tree.c (type_hash_table): Use gengtype to clear unused entries.
5017         Make static.
5018         (init_obstacks): Don't call ggc_add_deletable_htab.
5019
5020         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
5021         (struct hashed_entry): Likewise.
5022         (nst_method_hash_list): Likewise.
5023         (cls_method_hash_list): Likewise.
5024         (HASH_ALLOC_LIST_SIZE): Delete.
5025         (ATTR_ALLOC_LIST_SIZE): Delete.
5026         * objc/objc-act.c (hash_init): Use ggc to allocate
5027         nst_method_hash_list, cls_method_hash_list.
5028         (hash_enter): Use ggc to allocate; allocate one entry at a time.
5029         (hash_add_attr): Likewise.
5030         (ggc_mark_hash_table): Delete.
5031         (objc_act_parse_init): Delete.
5032         (objc_init): Delete reference to objc_act_parse_init.
5033         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
5034         obstack.h.  Replace references to 'struct hash_table' with htab_t.
5035         (struct symbol_hash_entry): Replace hash header with key field.
5036         (struct file_hash_entry): Replace hash header with key field.
5037         (struct demangled_hash_entry): Replace hash header with key field.
5038         (hash_string_eq): New.
5039         (hash_string_hash): New.
5040         (symbol_hash_newfunc): Delete.
5041         (symbol_hash_lookup): Modify to use htab_t.
5042         (file_hash_newfunc): Delete.
5043         (file_hash_lookup): Modify to use htab_t.
5044         (demangled_hash_newfunc): Delete.
5045         (demangled_hash_lookup): Modify to use htab_t.
5046         (tlink_init): Modify to use htab_t.
5047         * hash.h: Delete.
5048         * hash.c: Delete.
5049         * ggc.h: Delete forward structure declarations.
5050         Delete prototypes for deleted functions.
5051         * ggc-common.c: Don't include hash.h.
5052         (ggc_add_tree_hash_table_root): Delete.
5053         (ggc_mark_tree_hash_table_entry): Delete.
5054         (ggc_mark_tree_hash_table): Delete.
5055         (ggc_mark_tree_hash_table_ptr): Delete.
5056         * gengtype.c (write_gc_structure_fields): Allow param_is option.
5057         (write_gc_marker_routine_for_structure): Use visibility of
5058         the parameter if there is one.
5059         * function.c: Replace hash.h with hashtab.h.  Replace references
5060         to 'struct hash_table *' with htab_t.
5061         (struct insns_for_mem_entry): Include a plain key.
5062         (fixup_var_refs_insns_with_hash): Update to use htab_t.
5063         (insns_for_mem_newfunc): Delete.
5064         (insns_for_mem_hash): Update to use htab_t.
5065         (insns_for_mem_comp): Likewise.
5066         (insns_for_mem_walk): Likewise.
5067         * c-lang.c: Include ggc.h.
5068         * Makefile.in (OBJS): Remove hash.o.
5069         (c-lang.o): Add GGC_H.
5070         (COLLECT2_OBJS): Remove hash.o.
5071         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
5072         (ggc-common.o): Remove hash.h.
5073         (function.o): Remove hash.h, add HASHTAB_H.
5074         (genautomata.o): Remove hash.h, add HASHTAB_H.
5075
5076         * varasm.c (mark_const_str_htab_1): Delete.
5077         (mark_const_str_htab): Delete.
5078         (const_str_htab_del): Delete.
5079         (const_str_htab): Use gengtype to mark.
5080         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
5081         allocate them.
5082         * tree.c (mark_tree_hashtable_entry): Delete.
5083         (mark_tree_hashtable): Delete.
5084         * tree.h (mark_tree_hashtable): Delete prototype.
5085         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
5086         (ggc_mark): Likewise.
5087         (ggc_calloc): New.
5088         (htab_create_ggc): New.
5089         * ggc-common.c (ggc_calloc): New.
5090         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
5091         (struct type): Add param_struct structure.
5092         * gengtype.c (param_structs): New.
5093         (adjust_field_type): Handle param_is option.
5094         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
5095         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
5096         (write_gc_structure_fields): Add new PARAM parameter.  Update
5097         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
5098         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
5099         Use it to generate function name.  Update callers.
5100         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
5101         Process them.
5102         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
5103         option.
5104         (main): Define PTR as pointer-to-scalar.  Don't specially
5105         mark deferred_string or ehl_map_entry.
5106         * gengtype-yacc.y (PARAM_IS): Add new token.
5107         (externstatic): Use adjust_field_type.
5108         (type_option): Add PARAM_IS.
5109         * gengtype-lex.l: Add rule for typedef of function pointers.
5110         Add rule for PARAM_IS.
5111         (IWORD): Add size_t.
5112         * except.c (exception_handler_label_map): Use gengtype to mark.
5113         (type_to_runtime_map): Likewise.
5114         (mark_ehl_map_entry): Delete.
5115         (mark_ehl_map): Delete.
5116         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
5117         (t2r_mark_1): Delete.
5118         (t2r_mark): Delete.
5119         * Makefile.in (gtype-desc.o): Correct dependencies.
5120         (GTFILES): Add hashtab.h.
5121         (genautomata.o): Actually uses hashtab.h.
5122
5123         * Makefile.in (stringpool.o): Add $(GGC_H).
5124         (dwarf2asm.o): Likewise.
5125         (GTFILES): Add hashtable.h.
5126         * c-common.h (struct c_common_identifier): Use gengtype.
5127         * c-decl.h (c_mark_tree): Delete.
5128         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
5129         * c-tree.h (struct lang_identifier): Use gengtype.
5130         (union lang_tree_node): New.
5131         (c_mark_tree): Delete prototype.
5132         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
5133         dwarf2_debug_hooks.
5134         * gengtype-lex.l (IWORD): Allow 'bool'.
5135         (ptr_alias): Match.
5136         * gengtype-yacc.y (ALIAS): New token.
5137         (type_option): New rule.
5138         (option): Use type_option.
5139         * gengtype.c (process_gc_options): New.
5140         (set_gc_used_type): Use it.
5141         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
5142         Add new variable 't' to hold the type of the field being processed.
5143         Add more error checking.  Use UNION_P when looking at 'desc' option.
5144         Handle language-specific structures containing other
5145         language-specific structures.
5146         (write_gc_types): Handle 'ptr_alias' option.
5147         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
5148         * ggc-common.c (ggc_pending_trees): Delete.
5149         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
5150         (ggc_mark_trees): Delete.
5151         (gt_ggc_m_tree_node): Delete.
5152         * ggc.h (ggc_pending_trees): Delete.
5153         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
5154         * hashtable.h (ht_identifier): Use gengtype.
5155         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
5156         * langhooks.h (struct lang_hooks): Delete mark_tree.
5157         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
5158         anyway.
5159         * system.h: Poison LANG_HOOKS_MARK_TREE.
5160         * tree.c (tree_node_structure): New.
5161         * tree.h (struct tree_common): Use gengtype.
5162         (struct tree_int_cst): Likewise.
5163         (struct tree_real_cst): Likewise.
5164         (struct tree_string): Likewise.
5165         (struct tree_complex): Likewise.
5166         (struct tree_vector): Likewise.
5167         (struct tree_identifier): Likewise.
5168         (struct tree_list): Likewise.
5169         (struct tree_vec): Likewise.
5170         (struct tree_exp): Likewise.
5171         (struct tree_block): Likewise.
5172         (struct tree_type): Likewise.
5173         (struct tree_decl): Likewise.
5174         (enum tree_structure_enum): New.
5175         (union tree_node): Use gengtype, with an alias.
5176         (tree_node_structure): Prototype.
5177         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
5178
5179         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
5180         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
5181         to LANG_HOOKS_FUNCTION_FINAL.
5182         * Makefile.in (GTFILES): Add bitmap.h.
5183         * except.c (struct eh_region): Mark field 'aka' to be skipped.
5184
5185         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
5186         (alpha_init_machine_status): Give proper type.
5187         * Makefile.in (c-lang.o): Depend on gtype-c.h.
5188         (optabs.o): Depend on gt-optabs.h.
5189         (GTFILES): Add optabs.o.
5190         (gt-optabs.h): Add rule.
5191         * optabs.c: Include gt-optabs.h.
5192
5193         * gengtype.c (set_gc_used_type): Correct some errors in last change.
5194         (write_gc_structure_fields): If a field which should be NULL is
5195         not, abort.
5196         * c-pragma.c: Move struct align_stack and variable alignment_stack
5197         out from the ifdef.
5198
5199         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
5200         * config/xtensa/xtensa.c: Include gt-cris.h.
5201         (struct machine_function): Use gengtype to mark.
5202         * config/mmix/mmix.h (struct machine_function): Use gengtype
5203         to mark.
5204         * config/cris/t-cris: Add dependencies for gt-cris.h.
5205         * config/cris/cris.c: Include gt-cris.h.
5206         (struct machine_function): Use gengtype to mark.
5207         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
5208         to mark.
5209         * doc/tm.texi (Per-Function Data): Delete references to
5210         mark_machine_status.
5211         * config/ia64/ia64.c (ia64_override_options): Don't set
5212         mark_machine_status.
5213         * config/i386/i386.c (override_options): Likewise.
5214         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
5215         * config/arm/arm.c (arm_init_expanders): Likewise.
5216         * config/alpha/alpha.c (override_options): Likewise.
5217         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
5218         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
5219         (write_gc_structure_fields): Don't handle 'really' option.
5220         Handle 'maybe_null' option.
5221         (write_gc_types): Handle 'maybe_null' option.
5222         * function.h (struct function): Don't use "really".
5223         (mark_machine_status): Delete declaration.
5224         (mark_lang_status): Delete declaration.
5225         (gt_ggc_mr_machine_function): Delete prototype.
5226         (gt_ggc_mr_language_function): Delete prototype.
5227         * function.c (mark_machine_status): Delete.
5228         (mark_lang_status): Delete.
5229         (gt_ggc_mr_machine_function): Delete.
5230         (gt_ggc_mr_language_function): Delete.
5231         * c-tree.h (mark_c_function_context): Delete prototype.
5232         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
5233         * c-decl.c (struct language_function): Rename from struct
5234         c_language_function.  Update uses.  Use gengtype to mark.
5235         (mark_c_function_context): Delete.
5236         * c-common.h (struct c_language_function): Rename from struct
5237         language_function.
5238         (mark_stmt_tree): Delete prototype.
5239         (c_mark_lang_decl): Delete prototype.
5240         (mark_c_language_function): Delete prototype.
5241         * c-common.c (mark_stmt_tree): Delete.
5242         (c_mark_lang_decl): Delete.
5243         (mark_c_language_function): Delete.
5244
5245         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
5246         (lang_bitmap): New typedef.  Use where appropriate.
5247         (struct type): Add gc_used field, lang_struct field.
5248         (UNION_P): New macro.
5249         (new_structure): New prototype.
5250         (find_structure): Remove 'pos' parameter.  Change all callers.
5251         * gengtype-lex.l: Update for changes to find_structure.
5252         * gengtype-yacc.y (typedef_struct): Use new_structure.
5253         (yacc_ids): Suppress warning.
5254         (type): Use new_structure.
5255         * gengtype.c (string_type): Update for changes to struct type.
5256         (find_structure): Just find a structure, don't worry about
5257         creating one.
5258         (new_structure): New.
5259         (note_yacc_type): Use new_structure.
5260         (set_gc_used_type): New.
5261         (set_gc_used): New.
5262         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
5263         (write_gc_types): Handle TYPE_LANG_STRUCT.
5264         (write_gc_marker_routine_for_structure): New.
5265         (main): Call set_gc_used.  Add some calls to set_gc_used_type
5266         for places where GCC doesn't use gengtype properly yet.
5267         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
5268         (gt_ggc_m_tree_node): Likewise.
5269
5270         * varasm.c (copy_constant): Call expand_constant if we hit
5271         something we can't recognise.
5272
5273         * ggc-common.c (ggc_mark_rtvec_children): Delete.
5274         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
5275         (lang_mark_false_label_stack): Delete.
5276         * rtl.h (struct rtvec_def): Use gengtype to mark.
5277         * ggc.h (ggc_mark_rtvec): Delete.
5278         (gt_ggc_m_rtvec_def): Delete.
5279         (ggc_mark_nonnull_tree): Delete.
5280         (ggc_mark_rtvec_children): Delete prototype.
5281         (lang_mark_false_label_stack): Delete declaration.
5282
5283         * gengtype.h (note_yacc_type): Add prototype.
5284         * gengtype.c (note_yacc_type): New function.
5285         * gengtype-lex.l: Add lexer support for yacc files.
5286         * gengtype-yacc.y (start): Extract union from yacc files.
5287         (yacc_union): New rule.
5288         (yacc_typematch): New rule.
5289         (yacc_ids): New rule.
5290         (enum_items): Tweak for efficiency.
5291         (optionseq): Likewise.
5292
5293         * c-common.h (struct language_function): Use gengtype.
5294         (struct c_lang_decl): Likewise.
5295         * c-tree.h (struct lang_decl): Likewise.
5296         (struct lang_type): Likewise.
5297         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
5298         tree language substructures.
5299
5300         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
5301         ggc_mark_tree.
5302         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
5303
5304         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
5305
5306         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
5307         mark. Remove 'data.block.cleanup_ptr' field.
5308         (struct stmt_status): Use usual technique to mark struct nesting.
5309         (gt_ggc_mr_nesting_cond): Delete.
5310         (gt_ggc_mr_nesting_loop): Delete.
5311         (gt_ggc_mr_nesting_block): Delete.
5312         (gt_ggc_mr_nesting_case_stmt): Delete.
5313         (expand_start_cond): Set discriminator.
5314         (expand_start_loop): Likewise.
5315         (expand_start_null_loop): Likewise.
5316         (expand_start_bindings_and_block): Set discriminator.  Don't set
5317         deleted fields.
5318         (expand_decl_cleanup): Replace 'cleanup_ptr' with
5319         &thisblock->data.block.cleanups.
5320         (expand_start_case): Set discriminator.
5321         (expand_start_case_dummy): Set discriminator.
5322
5323         * ggc-callbacks.c: Remove.
5324
5325         * gengtype.h (struct type): Add 'u.s.bitmap' field.
5326         (find_structure): Add 'pos' parameter.
5327         * gengtype-lex.l: Update callers to find_structure.
5328         * gengtype-yacc.y: Likewise.
5329         * gengtype.c (find_structure): Allow for structures to be defined
5330         in multiple language backends.
5331         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
5332         (counter): Rename to gc_counter.
5333         (write_gc_structure_fields): Fail when writing out fields for
5334         an incomplete structure.  Ignore arrays of scalars.  Handle
5335         'tree_vec' special.
5336         (write_gc_types): Reset counter for each procedure written.
5337
5338         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
5339         (free_case_nodes): Delete.
5340         (expand_end_case_type): Delete call to free_case_nodes.
5341
5342         * Makefile.in (cselib.o): Include gt-<filename>.h.
5343         (gcse.o): Likewise.
5344         (profile.o): Likewise.
5345         (alias.o): Likewise.
5346         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
5347         alphabetize backend files.
5348         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
5349         * alias.c: Use gengtype for roots.
5350         * c-common.h (struct stmt_tree_s): Use gengtype.
5351         * c-decl.c: Use gengtype for roots.
5352         * cselib.c: Use gengtype for roots.
5353         * expr.c: Use gengtype for roots.
5354         * fold-const.c: Use gengtype for roots.
5355         * gcse.c: Use gengtype for roots.
5356         * gengtype-lex.l: Handle typedefs of function types.
5357         Allow for empty array bounds.
5358         Allow processing to stop on initialisers.
5359         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
5360         (semiequal): New rule.
5361         * gengtype.c (create_file): Tidy output files.
5362         (get_output_file_with_visibility): Fix paren warning.  Fix bug
5363         involving multiple input files mapping to one output file.
5364         (write_gc_structure_fields): Skip arrays of scalars.
5365         (write_gc_types): Tidy output files.
5366         (write_gc_root): New function.
5367         (write_gc_roots): Fix bugs, add support for roots that are
5368         structures.
5369         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
5370         (ggc_mark_tree_ptr): Delete.
5371         (ggc_add_rtx_root): Delete.
5372         (ggc_add_tree_root): Delete.
5373         (ggc_del_root): Delete.
5374         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
5375         allocate struct initial_value_struct.
5376         * profile.c: Use gengtype for roots.
5377         * sdbout.c: Use gengtype for roots.
5378         * varasm.c (mark_weak_decls): Delete unused prototype.
5379         (mark_const_hash_entry): Delete unused function.
5380         * config/darwin-protos.h: Use gengtype for roots.
5381         (machopic_add_gc_roots): Delete.
5382         * config/arm/arm.c: Use gengtype for roots.
5383         * config/arm/arm.h: Use gengtype for roots.
5384         * config/c4x/c4x-protos.h: Use gengtype for roots.
5385         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
5386         * config/d30v/d30v-protos.h: Use gengtype for roots.
5387         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
5388         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
5389         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
5390         * config/ia64/ia64-protos.h: Use gengtype for roots.
5391         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
5392         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
5393         * config/m68hc11/m68hc11.c (z_reg): Make global.
5394         (z_reg_qi): Make global.
5395         (m68hc11_add_gc_roots): Delete.
5396         * config/mcore/mcore-protos.h: Use gengtype for roots.
5397         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
5398         * config/mips/mips.c (mips_add_gc_roots): Delete.
5399         * config/mips/mips.h: Use gengtype for roots.
5400         * config/mmix/mmix.c (override_options): Use gengtype for roots.
5401         * config/mmix/mmix.h: Use gengtype for roots.
5402         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
5403         * config/mn10200/mn10200.h: Use gengtype for roots.
5404         * config/pa/pa.c: Use gengtype for roots, marking.
5405         (struct deferred_plabel): Use GGC, gengtype.
5406         (pa_add_gc_roots): Delete.
5407         (mark_deferred_plabels): Delete.
5408         * config/pj/pj-protos.h: Use gengtype for roots.
5409         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
5410         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
5411         machopic_add_gc_roots.
5412         * config/rs6000/rs6000.h: Use gengtype for roots.
5413         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
5414         (gt-darwin.h): Add rule.
5415         * config/sh/sh.c: Use gengtype for roots.
5416         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
5417         (gt-sh.h): Add rule.
5418         * config/sparc/sparc.c: Use gengtype for roots.
5419         (sparc_add_gc_roots): Delete.
5420         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
5421         (mark_ultrasparc_pipeline_state): Delete.
5422         * config/sparc/sparc.h: Use gengtype for roots.
5423
5424         * Makefile.in (c-parse.o): Update dependencies.
5425         (c-common.o): Likewise.
5426         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
5427         Add dependencies for the files they generate.
5428         * c-common.c: Replace ggc_add_* uses with GTY annotations.
5429         * c-common.h: Likewise.
5430         * c-decl.c: Likewise.
5431         (gt_ggc_mp_binding_level): Delete.
5432         * c-lang.c: Include gtype-c.h.
5433         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
5434         gt-c-parse.h.
5435         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
5436         (gt_ggc_mp_align_stack): Delete.
5437         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
5438         * function.c: Replace ggc_add_* uses with GTY annotations.
5439         (gt_ggc_mp_function): Delete.
5440         * function.h: Replace ggc_add_* uses with GTY annotations.
5441         * gengtype.c (lang_names): New.
5442         (NUM_BASE_FILES): New.
5443         (open_base_files): Create language base files.
5444         (startswith): New.
5445         (get_file_basename): New.
5446         (get_base_file_bitmap): New.
5447         (get_output_file_with_visibility): Rename from get_output_file.
5448         Add more mappings for various C/Objc filenames.
5449         (finish_root_table): New.
5450         (write_gc_roots): Handle dependencies and scoping properly.
5451         * gengtype.h: Add prototypes for new functions.
5452         * ggc-common.c (struct deletable_root): Delete.
5453         (deletables): Delete.
5454         (ggc_add_deletable_root): Delete.
5455         (ggc_mark_roots): No need to deal with deleted functionality.
5456         * ggc.h (ggc_add_deletable_root): Delete prototype.
5457         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
5458         (gtype-objc.h): Add rule to create.
5459         * objc/config-lang.in (gtfiles): New.
5460         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
5461         ggc_add_* with GTY markers.  Include gtype-objc.h.
5462         (ggc_mark_imp_list): Delete.
5463         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
5464         * objc/objc-lang.c: Random Whitespace Change.
5465
5466         * except.h (exception_handler_labels): Delete.
5467         (get_exception_handler_labels): New.
5468         * except.c (exception_handler_labels): Delete.
5469         (struct eh_status): Add exception_handler_labels field.
5470         (doing_eh): Don't add exception_handler_labels as root.
5471         (free_eh_status): Don't need to free exception_handler_labels.
5472         (get_exception_handler_labels): New.
5473         (find_exception_handler_labels): Update for move of
5474         exception_handler_labels.
5475         (remove_exception_handler_label): Likewise.
5476         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
5477         * jump.c (rebuild_jump_labels): Likewise.
5478         * loop.c (find_and_verify_loops): Likewise.
5479         * sched-rgn.c (is_cfg_nonregular): Likewise.
5480
5481         * gengtype.c (write_gc_structure_fields): Handle variable-length
5482         TYPE_ARRAYs.
5483
5484         * varasm.c (struct weak_syms): Use GGC, gengtype.
5485         (mark_weak_decls): Delete.
5486         (weak_decls): Likewise.
5487         (add_weak): Likewise.
5488         (remove_from_pending_weak_list): Likewise.
5489         (init_varasm_once): Likewise.
5490
5491         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
5492         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
5493         stor-layout.c, regclass.c, and lists.c.
5494         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
5495         gt-regclass.h and gt-lists.h on s-gtype.
5496         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
5497         * except.c: Use gengtype for roots.
5498         * explow.c: Use gengtype for roots.  Include gt-explow.h.
5499         * expr.h (init_stor_layout_once): Delete prototype.
5500         * function.c: Use gengtype for roots.
5501         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
5502         * gengtype-yacc.y (start): Can also be an externstatic.
5503         (externstatic): New production.
5504         (struct_fields): Correct array bounds inversion for 2-d arrays.
5505         * gengtype.c (variables): New variable.
5506         (note_variable): New function.
5507         (get_output_file): Include libfuncs.h into gtype-desc.c.
5508         (get_output_file_name): New function.
5509         (write_gc_structure_fields): Suppress warnings.
5510         (write_gc_types): Make static.
5511         (put_mangled_filename): New function.
5512         (write_gc_roots): New function.
5513         (main): Call write_gc_roots.
5514         * gengtype.h (note_variable): Prototype.
5515         (get_output_file_name): Prototype.
5516         (write_gc_types): Delete prototype.
5517         * ggc.h: Clean up unnecessary structure predefinitions.
5518         (struct ggc_root_tab): Define.
5519         (gt_ggc_m_rtx_def): Make function, not macro.
5520         (gt_ggc_m_tree_node): Likewise.
5521         * libfuncs.h: Use gengtype for roots.
5522         * lists.c: Use gengtype for roots.  Include gt-lists.h.
5523         (init_EXPR_INSN_LIST_cache): Delete.
5524         * optabs.c: Use gengtype for roots.
5525         (gt_ggc_mp_optab): Delete.
5526         * optabs.h: Use gengtype for roots.
5527         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
5528         * rtl.h: Use gengtype for roots.
5529         (init_EXPR_INSN_LIST_cache): Delete prototype.
5530         * stor-layout.c: Use gengtype for roots.
5531         Include gt-stor-layout.h.
5532         (init_stor_layout_once): Delete.
5533         * toplev.c: Use gengtype for roots.  Delete calls to deleted
5534         routines.
5535         * tree.c: Use gengtype for roots.
5536         * tree.h: Use gengtype for roots.
5537         * varasm.c: Use gengtype for roots.
5538
5539         * Makefile.in (GTFILES): Add @all_gtfiles@.
5540         * configure: Regenerate.
5541         * configure.in: Construct all_gtfiles from the gtfiles definitions
5542         in config-lang.in.
5543         * gengtype-yacc.y (type): Warn about duplicate structure names.
5544         * gengtype.c (get_output_file): Handle .c files in language
5545         subdirectories.
5546
5547         * Makefile.in (GTFILES): Run gengtype on all the config files
5548         and on the target .c file.
5549         * except.c (mark_eh_region): Delete.
5550         (init_eh_for_function): Use GGC on struct eh_status.
5551         (mark_eh_status): Delete.
5552         (free_eh_status): Use GGC.
5553         (expand_eh_region_start): Use GGC to
5554         (collect_eh_region_array): Allocate last_region_number using GGC.
5555         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
5556         (remove_eh_handler): Let GGC free struct eh_region.
5557         (add_call_site): Use GGC to reallocate call_site_record array.
5558         * function.c (init_machine_status): Update calling sequence.
5559         (mark_machine_status): Likewise.
5560         (mark_lang_status): Likewise.
5561         (prepare_function_start): Update init_machine_status call.
5562         (mark_function_status): Delete.
5563         (maybe_mark_struct_function): Delete.
5564         (ggc_mark_struct_function): Delete.
5565         (gt_ggc_mp_function): New.
5566         (gt_ggc_mr_machine_function): New.
5567         (gt_ggc_mr_language_function): New.
5568         (init_function_once): Use canonical names.
5569         * function.h (struct function): Use gengtype.
5570         (init_machine_status): Return the structure.
5571         (mark_machine_status): Take a 'void *'.
5572         (mark_lang_status): Likewise.
5573         * ggc-common.c (ggc_mark_trees): Use canonical name for
5574         ggc_mark_struct_function.
5575         * tree.h (ggc_mark_struct_function): Delete prototype.
5576         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
5577         (alpha_init_machine_status): Likewise.
5578         (override_options): Use canonical name for alpha_mark_machine_status.
5579         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
5580         * config/arm/arm.h (struct machine_function): Use gengtype.
5581         * config/arm/arm.c (arm_mark_machine_status): Delete.
5582         (arm_init_machine_status): Update calling sequence.
5583         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
5584         * config/cris/cris.c (cris_init_machine_status): Update
5585         calling sequence.
5586         * config/d30v/d30v.h (struct machine_function): Use gengtype.
5587         * config/d30v/d30v.c (d30v_init_machine_status): Update
5588         calling sequence.
5589         (d30v_mark_machine_status): Delete.
5590         * config/i386/i386.c: Include gt-i386.h.
5591         (struct machine_function): Use gengtype.
5592         (ix86_init_machine_status): Update calling sequence.
5593         (ix86_mark_machine_status): Delete.
5594         (override_options): Use canonical namke for ix86_mark_machine_status.
5595         * config/ia64/ia64.h (struct machine_function): Use gengtype.
5596         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
5597         sequence.
5598         (ia64_mark_machine_status): Delete.
5599         (ia64_override_options): Use canonical name for
5600         ia64_mark_machine_status.
5601         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
5602         sequence.
5603         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
5604         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
5605         * gengtype.c (get_output_file): Fix warning.
5606         (main): Add prototype to suppress warning.
5607         * tree.c: Remove tree_hash_mark prototype.
5608
5609         * tree.h (init_stmt): Delete prototype.
5610         * toplev.c (lang_independent_init): Don't call init_stmt.
5611         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
5612         (stmt_obstack): Delete.
5613         (POPSTACK): No need to free 'struct nesting'.
5614         (gt_ggc_mr_nesting_cond): Use canonical names.
5615         (gt_ggc_mr_nesting_loop): Use canonical names.
5616         (gt_ggc_mr_nesting_block): Use canonical names.
5617         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
5618         (mark_stmt_status): Delete.
5619         (init_stmt): Delete.
5620         (clear_last_expr): Clear both last_expr_type and last_expr_value.
5621         Use it everywhere that last_expr_type was cleared.
5622         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
5623         (zap_lists): Delete.
5624         * ggc.h (ggc_add_deletable_root): Prototype.
5625         (mark_stmt_status): Remove prototype.
5626         * ggc-common.c (ggc_add_deletable_root): New.
5627         (ggc_mark_roots): Handle deletable roots.
5628         * function.c (ggc_mark_struct_function): Use canonical name
5629         for mark_stmt_status.
5630         * emit-rtl.c (free_sequence_stack): New.
5631         (start_sequence): Use a freelist for sequences.
5632         (end_sequence): Likewise.
5633         (init_emit_once): Add free_sequence_stack as a deleteable root.
5634         * c-pragma.c Include gt-c-pragma.h.
5635         (struct align_stack): Use gengtype.
5636         (push_alignment): Use GGC for struct align_stack.
5637         (mark_align_stack): Delete.
5638         (gt_ggc_mp_align_stack): New.
5639         (init_pragma): Use canonical name for mark_align_stack.
5640         * c-decl.c: Include gt-c-decl.h.
5641         (struct binding_level): Use gengtype.
5642         (make_binding_level): Use GGC; handle the freelist here.
5643         (pop_binding_level): New.
5644         (pushlevel): Move code into make_binding_level.
5645         (push_label_level): Likewise.
5646         (poplevel): Move code into pop_binding_level.
5647         (pop_label_level): Likewise.
5648         (mark_binding_level): Delete.
5649         (gt_ggc_mp_binding_level): New.
5650         (c_init_decl_processing): Use canonical name for mark_binding_level.
5651         Add free_binding_level as deletable root.
5652         (mark_c_function_context): Use canonical name for mark_binding_level.
5653         * Makefile.in (c-decl.o): Add gt-c-decl.h.
5654         (c-pragma.o): Add gt-c-pragma.h.
5655         (GTFILES): Add c-decl.c and c-pragma.c.
5656         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
5657
5658         * tree.c (struct type_hash): Use gengtype.
5659         (init_obstacks): Use canonical name for type_hash_mark.
5660         (type_hash_mark): Delete.
5661         Include gt-tree.h.
5662         * rtl.h (struct mem_attrs): Use gengtype.
5663         * optabs.h (struct optab): Use gengtype.
5664         * optabs.c (expand_binop): Squish signed/unsigned warning.
5665         (mark_optab): Make local, use canonical name, use autogenerated
5666         marker procedure.
5667         (init_optabs): Use canonical name for mark_optab.
5668         (new_optab): Use GGC to allocate optabs.
5669         * ggc.h: Delete mark_optab prototype.
5670         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
5671         mem_attrs marker procedure.
5672         * gengtype.c (get_output_file): Include headers in gtype-desc.c
5673         explicitly rather than deducing them from file names.
5674         (write_gc_structure_fields): Handle arrays of structures.
5675         (main): Return non-zero exit code if errors occur during output.
5676         * emit-rtl.c (mem_attrs_mark): Delete.
5677         (init_emit_once): Use canonical name for mem_attrs marker procedure.
5678         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
5679         (tree.o): Depend on gt-tree.h.
5680         (GTFILES): Add rtl.h, optabs.h, tree.c.
5681         (gt-tree.h): Add it to s-gtype rule.
5682
5683         * .cvsignore: Ignore gengtype flex/bison generated files.
5684         * Makefile.in (GGC_H): Add gtype-desc.h.
5685         (OBJS): Add gtype-desc.o.
5686         (GEN): Add gengtype.
5687         (STAGESTUFF): Add gengtype.
5688         (varasm.o): Add gt-varasm.h.
5689         (stmt.o): Add gt-stmt.h.
5690         (except.o): Add gt-except.h.
5691         (integrate.o): Add gt-integrate.h.
5692         (GTFILES): New.
5693         Add new rules for new files.
5694         * configure: Regenerate.
5695         * configure.in: Correct defaults.h paths.
5696         * emit-rtl.c (mark_sequence_stack): Delete.
5697         (mark_emit_status): Delete.
5698         (start_sequence): Allocate sequence structures using GGC.
5699         (end_sequence): Allocate sequence structures using GGC.
5700         * except.c: Use gengtype for various structures.  Include
5701         gt-except.h.
5702         * expr.c (mark_expr_status): Delete.
5703         * function.c: Use gengtype for various structures.  Include
5704         gt-function.h.
5705         (mark_function_status): Use standard gt_ggc names for marker functions.
5706         (ggc_mark_struct_function): Likewise.
5707         * function.h: Use gengtype for various structures.
5708         * gengtype-lex.l: New file.
5709         * gengtype-yacc.y: New file.
5710         * gengtype.c: New file.
5711         * gengtype.h: New file.
5712         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
5713         the standard names.  Remove some now-unnecessary prototypes.
5714         * integrate.c: Use gengtype for various structures.  Include
5715         gt-integrate.h.
5716         (mark_hard_reg_initial_vals): Delete.
5717         * integrate.h (mark_hard_reg_initial_vals): Delete.
5718         * stmt.c: Use gengtype for various structures.  Include
5719         gt-stmt.h.
5720         (mark_case_node): Delete.
5721         (mark_goto_fixup): Delete.
5722         (mark_stmt_status): Use standard gt_ggc names for marker functions.
5723         * system.h: Define GTY to empty.   In flex/bison files,
5724         don't poison malloc or realloc, instead just define them to
5725         xmalloc and xrealloc.
5726         * varasm.c: Use gengtype for various structures.  Include
5727         gt-varasm.h.  Use standard gt_ggc names for marker functions.
5728         (mark_pool_constant): Delete.
5729         (mark_varasm_status): Delete.
5730         (decode_rtx_const): #if 0 out non-typesafe hack.
5731
5732         * function.h (free_lang_status): Mark as obsolete.
5733         * function.c (free_lang_status): Mark as obsolete.
5734         * c-decl.c (push_c_function_context): Use GC to allocate and free
5735         struct language_function.
5736         (pop_c_function_context): Likewise.
5737         * c-common.c (mark_c_language_function): Mark struct
5738         language_function.
5739
5740         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
5741         Document that the machine_function structures must be allocated
5742         using GC.  Update mark_machine_status documentation.
5743         * function.h: Don't declare free_machine_status.
5744         * function.c (free_machine_status): Don't define.
5745         (free_after_compilation): Don't call free_machine_status.
5746         (ggc_mark_struct_function): Mark f->machine.  Call
5747         mark_machine_status only on non-NULL pointers.
5748         * system.h: Poison free_machine_status.
5749         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
5750         struct machine_function.
5751         (xtensa_free_machine_status): Delete.
5752         (override_options): Don't set free_machine_status.
5753         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
5754         free_machine_status.
5755         (rs6000_init_machine_status): Use GC on struct machine_function.
5756         (rs6000_free_machine_status): Delete.
5757         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
5758         machine_function.
5759         (ia64_mark_machine_status): Likewise.
5760         (ia64_free_machine_status): Delete.
5761         (ia64_override_options): Don't set free_machine_status.
5762         * config/i386/i386.c (override_options): Don't set
5763         free_machine_status.
5764         (ix86_init_machine_status): Use GC on struct machine_function.
5765         (ix86_mark_machine_status): Likewise.
5766         (ix86_free_machine_status): Delete.
5767         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
5768         machine_function.
5769         (d30v_mark_machine_status): Likewise.
5770         (d30v_free_machine_status): Delete.
5771         (d30v_init_expanders): Don't set free_machine_status.
5772         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
5773         machine_function.
5774         (arm_init_machine_status): Likewise.
5775         (arm_free_machine_status): Delete.
5776         (arm_init_expanders): Don't set free_machine_status.
5777         * config/alpha/alpha.c (override_options): Don't set
5778         free_machine_status.
5779         (alpha_init_machine_status): Use GC on struct machine_function.
5780         (alpha_mark_machine_status): Likewise.
5781         (alpha_free_machine_status): Delete.
5782
5783         * varasm.c (compare_constant): Fix typo.
5784
5785         * varasm.c: Don't include obstack.h.
5786         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
5787         (struct rtx_const): Give substructures names, improve formatting.
5788         (struct constant_descriptor): Delete.
5789         (struct constant_descriptor_tree): New, based on constant_descriptor.
5790         (const_hash_table): Is a hash table of trees.
5791         (mark_const_hash_entry): Is used for hashes of trees.  Mark
5792         constant_descriptor_tree structure.
5793         (mark_const_str_htab_1): Mark deferred_string structure.
5794         (compare_constant): Rewrite to compare trees.
5795         (compare_constant_1): Delete.
5796         (record_constant): Delete.
5797         (record_constant_1): Delete.
5798         (output_constant_def): Use struct constant_descriptor_tree.
5799         Don't duplicate trees twice.
5800         (struct constant_descriptor_rtx): New.
5801         (struct pool_constant): Used for rtx constants.
5802         (init_varasm_status): Update for change to struct varasm_status.
5803         (mark_varasm_status): Likewise.
5804         (free_varasm_status): Delete.
5805         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
5806         (record_constant_rtx): Likewise.
5807         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
5808         (force_const_mem): Likewise.
5809         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
5810         * function.c (free_after_compilation): Don't use free_varasm_status.
5811         * function.h: Don't prototype free_varasm_status.
5812
5813         * ggc-common.c (ggc_realloc): Handle X being NULL.
5814
5815         * ggc-common.c (ggc_realloc): New function.
5816         * ggc.h: Prototype it.
5817         * emit-rtl.c (free_emit_status): Delete.
5818         (init_emit): Allocate emit subarrays using GC.
5819         (gen_reg_rtx): Reallocate subarrays using GC.
5820         (init_emit): Use GC to allocate 'struct emit_status' and its
5821         subarrays.
5822         (mark_emit_status): Mark structure and its subarrays.
5823         * stmt.c (free_stmt_status): Delete.
5824         * expr.c (free_expr_status): Delete.
5825         * function.h: Remove prototypes for deleted functions.
5826         * function.c (free_after_compilation): Don't use deleted functions.
5827         Don't call free() on x_parm_reg_stack_loc.
5828         (free_after_parsing): Don't use free_stmt_status.
5829         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
5830         (mark_function_status): Mark x_parm_reg_stack_loc.
5831
5832         * varasm.c (init_varasm_status): Use GC to allocate
5833         'struct varasm_status' and its fields x_const_rtx_hash_table
5834         and x_const_rtx_sym_hash_table.
5835         (mark_varasm_status): Mark them.
5836         (free_varasm_status): Use GC to free them.
5837         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
5838         (mark_expr_status): Mark the structure itself.
5839         (free_expr_status): Use GC to free the structure.
5840         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
5841         (mark_stmt_status): Mark the 'struct stmt_status' itself.
5842         (init_stmt_for_function): Allocate the structure for GC.
5843
5844         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
5845         (equate_type_number_to_die): Likewise.
5846         * tree.h (TYPE_SYMTAB_DIE): New macro.
5847         (struct die_struct): Predeclare.
5848         (struct tree_type): Add field symtab.die.   Add a tag
5849         to the union type of field symtab.
5850
5851         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
5852         'struct rtvec_def *', not 'struct rtvec_def'.
5853
5854         * function.h (original_arg_vector): Make a real rtvec.
5855         * function.c (ggc_mark_struct_function): Adjust.
5856         * integrate.c (expand_inline_function): Adjust.
5857
5858 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
5859
5860         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
5861         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
5862         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
5863         (TARGET_VERSION_CPU): Define according to the
5864         default target.
5865         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
5866         TARGET_VERSION_CPU.
5867         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
5868         if TARGET_SHMEDIA64.
5869         (LINK_DEFAULT_CPU_EMUL): Define according to the
5870         default target.
5871         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
5872         (SUBTARGET_LINK_SPEC): Define.
5873         (LINK_SPEC): Use SH_LINK_SPEC.
5874         (ASM_SPEC): Remove.
5875         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
5876         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
5877         and TARGET_SHMEDIA64 which abort, for now.
5878         * config/sh/t-netbsd-sh5: New file.
5879         * config/sh/t-netbsd-sh5-32: New file.
5880         * config/sh/t-netbsd-sh5-64: New file.
5881
5882 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
5883             Richard Henderson  <rth@redhat.com>
5884
5885         * config/alpha/alpha.c (reg_or_const_int_operand): New.
5886         (some_operand, input_operand): Accept CONST_VECTOR.
5887         (alpha_extra_constraint): Add 'W'.
5888         (alpha_expand_zap_mask): New.
5889         (alpha_expand_builtin_vector_binop): New.
5890         (enum alpha_builtin): New.
5891         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
5892         (alpha_init_builtins, alpha_expand_builtin): New.
5893         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
5894         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
5895         (PREDICATE_CODES): Update.
5896         * config/alpha/alpha-protos.h: Update.
5897         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
5898         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
5899         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
5900         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
5901         (movv2si, movv2si_fix, movv2si_nofix): New.
5902         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
5903         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
5904         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
5905         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
5906         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
5907         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
5908         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
5909         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
5910         builtin_unpkbw, unpkbw): New.
5911         * doc/extend.texi (Alpha Built-in Functions): New.
5912
5913 2002-06-03  Richard Henderson  <rth@redhat.com>
5914
5915         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
5916         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
5917
5918 2002-06-03  Richard Henderson  <rth@redhat.com>
5919
5920         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
5921
5922         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
5923         (const0_operand): New.
5924         (reg_or_fp0_operand, fp0_operand): Remove.
5925         * config/alpha/alpha.h (PREDICATE_CODES): Update.
5926         * config/alpha/alpha-protos.h: Update.
5927         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
5928         and fp0_operand with reg_or_0_operand and const0_operand.
5929
5930 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
5931
5932         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
5933
5934 2002-06-03  Roger Sayle  <roger@eyesopen.com>
5935
5936         * gcse.c (cprop_jump): Use single_set to get the pattern
5937         from the setcc argument.
5938
5939 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
5940
5941         * diagnostic.h (diagnostic_count): Move from output_buffer to
5942         diagnostic_context.
5943         (diagnostic_kind_count): Adjust definition.
5944
5945 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
5946
5947         * except.c (except.c): Do not rebuild CFG.
5948         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
5949         optimization.
5950
5951 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
5952
5953         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
5954         * toplev.c: Include cfglahout.h
5955         * Makefile.in (toplev.c): Add dependnecy.
5956
5957 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
5958
5959         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
5960         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
5961         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
5962
5963 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
5964
5965         * config/ns32k/netbsd.h: Update copyright years.
5966         (TARGET_OS_CPP_BUILTINS): Define.
5967         (CPP_PREDEFINES): Remove.
5968         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
5969         (TARGET_CPU_CPP_BUILTINS): Define.
5970
5971 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
5972
5973         * emit-rtl.c: Fix formatting.
5974         * errors.h: Likewise.
5975         * except.c: Likewise.
5976         * explow.c: Likewise.
5977         * expmed.c: Likewise.
5978         * expr.c: Likewise.
5979         * expr.h: Likewise.
5980
5981 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
5982
5983         * config/h8300/elf.h: Fix formatting.
5984         * config/h8300/rtems.h: Likewise.
5985
5986 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
5987
5988         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
5989
5990 2002-06-02  Tom Tromey  <tromey@redhat.com>
5991
5992         * fixinc/fixincl.x: Rebuilt.
5993         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
5994
5995 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
5996
5997 config/i370:
5998         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
5999         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
6000         * mvs.h: Similarly.
6001         * oe.h: Similarly.
6002
6003 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
6004
6005         * final.c (final):  Allow notes to not have computed addresses;
6006         kill no longer needed STACK_REGS ifdef.
6007
6008 2002-06-02  Richard Henderson  <rth@redhat.com>
6009
6010         * gcse.c (bypass_conditional_jumps): Fix typo last change.
6011
6012 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
6013
6014         * loop.c (emit_prefetch_instructions): Properly place the address
6015         computation.
6016
6017 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
6018
6019         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
6020         (set_block_for_insn): Turn into macro.
6021         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
6022         * cfglayout.c (insn_scopes): Kill.
6023         (scope_to_insns_initialize): Do not use insn_scopes.
6024         (scope_to_insns_finalize): Likewise.
6025         (duplicate_insn_chain): Likewise.
6026         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
6027         * cfgrtl.c (basic_block_for_insn): Kill.
6028         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
6029         (create_basic_block_structure): Use reorder_insns.
6030         (compute_bb_for_insn): Do not use basic_block_for_insn.
6031         (merge_blocks_nomove): Likewise.
6032         (update_bb_for_insn): Likewise.
6033         (verify_flow_info): Likewise.
6034         (set_block_for_insn): Kill.
6035         * combine.c (try_combine): Update gen_rtx_INSN call.
6036         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
6037         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
6038         scopes and BBs.
6039         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
6040         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
6041         Clear BB.
6042         (emit_insns_after): Simplify.
6043         (emit_copy_of_insn_after): Copy scope.
6044         * final.c (final_start_function): Lower scopes.
6045         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
6046         * integrate.c (copy_insn_list): Cope scopes.
6047         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
6048         * loop.c (loop_optimize): Do not care block notes.
6049         * print-rtl.c (print_rtx): Print BB.
6050         * recog.c (apply_change_group): Simplify.
6051         * rtl.c (copy_rtx): Handle 'B'.
6052         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
6053         * rtl.h (Field accessors): Update indexes.
6054         * sched-ebb.c (schedule_ebbs): Do not lower notes.
6055         * sched-rgn.c (schedule_insns): Likewise.
6056         * toplev.c (rest_of_compilation): Lower notes.
6057         * unroll.c (unroll_loop): Do not care scoping notes.
6058         (copy_loop_body): Copy scopes.
6059
6060 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
6061
6062 config/h8300:
6063         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
6064         SUBTARGET_SPEC.
6065         * rtems.h: Similarly.
6066         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
6067         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
6068         (TARGET_CPU_CPP_BUILTINS): Use.
6069
6070 2002-06-02  Richard Henderson  <rth@redhat.com>
6071
6072         * alias.c: Include target.h.
6073         (mark_constant_function): Use targetm.binds_local_p instead
6074         of checking TREE_PUBLIC ourselves.
6075         * Makefile.in (alias.o): Add TARGET_H.
6076
6077 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
6078
6079         * c-lex.c: Update copyright and file description.
6080
6081 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
6082
6083         * config/fr30/fr30.h: Update to new CPP macros.
6084
6085 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
6086
6087         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
6088
6089 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
6090             Zack Weinberg <zack@codesourcery.com>
6091
6092         * c-common.c (c_common_init): Override cpplib's default
6093         warn_long_long setting.
6094         * c-lex.c (lex_number): Replace with interpret_integer,
6095         interpret_float, narrowest_unsigned_type and
6096         narrowest_signed_type, taking advantage of the new
6097         cpplib functionality.
6098         * cpperror.c (_cpp_begin_message): If a warning is turned
6099         into an error, avoid printing "warning:".
6100         * cppexp.c (cpp_num_sign_extend): New.
6101         * cppinit.c: Update comment.
6102         * cpplib.h (cpp_num_sign_extend): New.
6103         * tree.h: Update comment.
6104
6105 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
6106
6107         * diagnostic.h (struct diagnostic_context):  Add new member
6108         internal_error.
6109         (internal_error_function): Remove declaration.
6110         * diagnostic.c (internal_error_function): Remove definition..
6111         (internal_error): Adjust use.
6112
6113 2002-06-02  Richard Henderson  <rth@redhat.com>
6114
6115         * rtl.h (CC0_P): New.
6116         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
6117         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
6118         (bypass_block): Save old dest block for dump text.
6119         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
6120         Allow only true SET insns, not single_set.
6121
6122 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
6123
6124         * diagnostic.c (diagnostic_finish): Rename to output_flush.
6125         (clear_disgnostic_info): Rename to output_clear_data.  Use false
6126         instead of 0 for boolean value.
6127         Adjust function call throughout.
6128
6129 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
6130
6131         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
6132         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
6133
6134 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
6135
6136         * d30v.h (CPP_PREDEFINES): Replace with
6137         (TARGET_CPU_CPP_BUILTINS): New.
6138
6139 2002-06-02  Roger Sayle  <roger@eyesopen.com>
6140
6141         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
6142
6143 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
6144
6145         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
6146
6147 2002-06-02  Richard Henderson  <rth@redhat.com>
6148
6149         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
6150
6151 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6152
6153         Support for C++ constructors/destructors.
6154         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
6155         instead of looping if main() returns.
6156         (asm_file_start): Output global symbols that cause .data and .bss
6157         initialization code to be linked in, unconditionally for now.
6158         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
6159         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
6160         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
6161         (LIBSTDCXX): New.
6162         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
6163         (__tablejump__): New.
6164         (__do_copy_data, __do_clear_bss): New.
6165         (__do_global_ctors, __do_global_dtors): New.
6166         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
6167         _ctors, _dtors.
6168
6169 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
6170
6171         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
6172         (CPP_SPEC, CPP_PREDEFINES): Kill.
6173         * c4x/rtems.h (CPP_PREDEFINES): Kill.
6174         (TARGET_OS_CPP_BUILTINS): New.
6175
6176 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
6177
6178         * Makefile.in (tracer.o): New.
6179         * params.def (TRACER_*): New options.
6180         * rtl.h (tracer): Declare.
6181         * timevar.def (TV_TRACER): New.
6182         * toplev.c (dump_file_index): Add DFI_tracer.
6183         (dump_file_info): Add tracer.
6184         (flag_tracer): New.
6185         (lang_indepdenent_options): Add tracer.
6186         (rest_of_compilation): Call tracer.
6187         * tracer.c: New file.
6188         * invoke.texi (-ftracer): Document.
6189         (--param tracer-*): Document.
6190
6191 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
6192
6193         * tree-inline.c (expand_call_inline): Make the statement
6194         expression we generate have a COMPOUND_STMT.
6195
6196 2002-06-01  Roger Sayle  <roger@eyesopen.com>
6197
6198         * gcse.c (cprop_cc0_jump): Function deleted.
6199         (cprop_jump): Take an additional argument which is the possibly
6200         NULL cc setting insn immediately before the conditional jump.
6201         When a MODE_CC set is present, substitute it into the JUMP_INSN
6202         before attempting the constant propagation.
6203         (cprop_insn):  Recognize cc setters followed by conditional jumps
6204         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
6205         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
6206         (find_bypass_set): New function based upon find_avail_set used by
6207         cprop, but finds constant expressions available at the end of
6208         basic blocks.
6209         (bypass_block): New function.  Given a basic block that begins
6210         with a conditional jump and multiple incoming edges, perform
6211         the jump bypass optimization.
6212         (bypass_conditional_jumps): New function.  Call bypass_block with
6213         each suitable basic block in the CFG using a simple single pass.
6214
6215 2002-06-01  Roger Sayle  <roger@eyesopen.com>
6216
6217         * tree.c (real_minus_onep): New function to test for -1.0.
6218         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
6219
6220 2002-06-01  Roger Sayle  <roger@eyesopen.com>
6221
6222         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
6223         and "!p && !q" into "(p|q) == 0" under suitable conditions.
6224
6225 2002-06-01  Andreas Jaeger  <aj@suse.de>
6226
6227         * cppexp.c (cpp_classify_number): Cast precission to int for
6228         correct printf format.
6229
6230 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6231
6232         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
6233         expected, but don't really exist: atmega83, atmega85, attiny10.
6234         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
6235         emulations for all devices.
6236         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
6237         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
6238
6239 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
6240
6241         * config/h8300/h8300-protos.h: Add a prototype for
6242         h8300_shift_needs_scratch_p.
6243         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
6244         * config/h8300/h8300.h (OK_FOR_R): New.
6245         (OK_FOR_S): Likewise.
6246         (OK_FOR_T): Likewise.
6247         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
6248         * config/h8300/h8300.md (anonymous shift patterns): Use
6249         constraints R, S, and T.
6250
6251 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6252
6253         * basic-block.h (struct basic_block_def): New field loop_father.
6254         (BB_VISITED): New flag.
6255         (struct loop): New field pred, removed field shared.
6256         (struct loops): New field parray.
6257         (LOOP_EXITS_DOMS): Removed.
6258         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
6259         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
6260         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
6261         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
6262         verify_loop_structure): Declare.
6263         * cfg.c (entry_exit_blocks): Initialize loop_father field.
6264         * cfganal.c (dfs_enumerate_from): New function.
6265         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
6266         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
6267         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
6268         flow_loop_dump, flow_loops_dump, flow_loops_free,
6269         flow_loop_tree_node_add, flow_loop_level_compute,
6270         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
6271         flow_loop_outside_edge_p): Modified for new infrastructure.
6272         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
6273         redirect_edge_with_latch_update, flow_loop_free): New static functions.
6274         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
6275         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
6276         find_common_loop, verify_loop_structure, loop_latch_edge,
6277         loop_preheader_edge): New functions.
6278         (flow_loops_cfg_dump): Do not show dominators, as this information
6279         does not remain up to date long.
6280         (flow_loops_find): Store results in new format.
6281         * predict.c (propagate_freq, estimate_probability,
6282         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
6283         infrastructure.
6284
6285 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
6286
6287         * except.c (nothrow_function_p): Walk epilogue delay list
6288         checking the insn, not the chain for potential throws.
6289
6290 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
6291
6292         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
6293         (install): Refer to install-cpp directly.
6294         (uninstall-cpp): Folded into uninstall rule.
6295         * configure.in: Delete all code relating to --disable-cpp.
6296         * configure: Regenerate.
6297         * config/t-install-cpp: Delete.
6298
6299 2002-05-31  Richard Henderson  <rth@redhat.com>
6300
6301         * configure.in (HAVE_AS_TLS): Add alpha tests.
6302         * configure: Rebuild.
6303         * config/alpha/alpha.c (TARGET_AS_TLS): New.
6304         (alpha_tls_size, alpha_tls_size_string): New.
6305         (overide_options): Set it.  Always install machine_status hooks.
6306         (input_operand): Accept got tls predicates.
6307         (local_symbol_p): Merge into ...
6308         (local_symbolic_operand): ... here.  Reject tls symbols.
6309         (global_symbolic_operand): Likewise.
6310         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
6311         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
6312         (tp16_symbolic_operand, tp32_symbolic_operand): New.
6313         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
6314         (alpha_encode_section_info): Handle TLS symbols.
6315         (alpha_strip_name_encoding): Likewise.
6316         (alpha_legitimate_address_p): Likewise.
6317         (alpha_legitimize_address): Likewise.
6318         (alpha_expand_mov): Early exit to avoid nop moves.
6319         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
6320         (alpha_init_machine_status, alpha_mark_machine_status,
6321         alpha_free_machine_status): Always define.
6322         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
6323         (print_operand, print_operand_address): Add TLS relocs.
6324         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
6325         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
6326         (TARGET_SWITCHES): Add -mtls-kernel.
6327         (alpha_tls_size, alpha_tls_size_string): New.
6328         (TARGET_OPTIONS): Add -mtls-size=.
6329         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
6330         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
6331         (ASM_OUTPUT_LABELREF): Skip %.
6332         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
6333         (PREDICATE_CODES): Update.
6334         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
6335         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
6336         UNSPEC_TP, UNSPECV_SET_TP): New.
6337         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
6338         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
6339         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
6340         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
6341         (call_value_osf_2_er): Accept anything as op4.
6342         * config/alpha/alpha-protos.h: Update.
6343         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
6344
6345 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
6346
6347         * cppinit.c (append_include_chain): Always pay attention to
6348         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
6349         marker on argument.
6350
6351 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
6352
6353         * target.h: Fix formatting.
6354         * timevar.h: Likewise.
6355         * tlink.c: Likewise.
6356         * toplev.c: Likewise.
6357         * toplev.h: Likewise.
6358         * tree.c: Likewise.
6359         * tree-dump.h: Likewise.
6360         * tree.h: Likewise.
6361         * tree-inline.h: Likewise.
6362         * unroll.c: Likewise.
6363         * unwind-dw2.c: Likewise.
6364         * unwind-dw2-fde.c: Likewise.
6365         * unwind-dw2-fde-glibc.c: Likewise.
6366         * unwind-dw2-fde.h: Likewise.
6367         * unwind.h: Likewise.
6368         * unwind-sjlj.c: Likewise.
6369         * varasm.c: Likewise.
6370         * varray.h: Likewise.
6371         * vmsdbg.h: Likewise.
6372         * vmsdbgout.c: Likewise.
6373         * xcoffout.h: Likewise.
6374
6375 2002-05-31  Igor Shevlyakov <igor@microunity.com>
6376
6377         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
6378         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
6379
6380 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
6381
6382         * gcc.c (cpp_unique_options): Remove "-d" options.
6383         (cpp_debug_options): New spec string.
6384         (default_compilers): Use it.
6385         * objc/lang-specs.h: Likewise.
6386
6387 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
6388
6389         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
6390         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
6391         * gcc/mklibgcc.in: Likewise.
6392         * gcc/config/arc/t-arc: Likewise.
6393         * gcc/configure.in: Likewise.
6394         * gcc/configure: Regenerate.
6395
6396 2002-05-31  Stan Shebs  <shebs@apple.com>
6397             Turly O'Connor  <turly@apple.com>
6398
6399         * c-decl.c (struct binding_level): Change int field n_incomplete
6400         to tree list incomplete_list.
6401         (clear_binding_level): Init field with NULL.
6402         (pushdecl): Add incomplete type to list.
6403         (mark_binding_level): Mark the incomplete list.
6404         (finish_struct): Scan the incomplete list for types instead
6405         of all decls in the current binding level.
6406
6407 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6408
6409         * pa.c (output_millicode_call): Add missing '%' characters.
6410         (output_call): Likewise.
6411
6412 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
6413
6414         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
6415         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
6416
6417 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
6418
6419         * varasm.c (mark_constant_pool): Walk epilogue delay list
6420         checking the insn, not the chain for potential constants.
6421
6422 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
6423
6424         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
6425
6426 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
6427
6428         * i386.c (classify_argument): Properly handle base types.
6429
6430         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
6431         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
6432         registers.
6433
6434 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
6435
6436         * gcse.c (gcse_emit_move_after): New.
6437         (pre_delete, hoist_store): Use it.
6438
6439         * reload1.c (emit_input_reload_insns): Use constrain_operands
6440         instead of constraint_accepts_reg_p to verify optimization.
6441         (constraint_accepts_reg_p): Kill
6442
6443         * reload1.c (reload_cse_delete_noop_set): Kill.
6444         (reload_cse_simplify): use delte_insn_and_edges.
6445
6446 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6447
6448         * cfgloop.c (flow_loops_find): Initialize first and last fields
6449         correctly.
6450
6451 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
6452
6453         * c-common.c (builtin_define_std): Correct logic.
6454
6455 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6456
6457         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
6458         (output_call): Likewise.
6459
6460 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6461
6462         * pa.c: Move output.h include after tree.h include.
6463         (pa_asm_output_mi_thunk): Constify identifier lab.
6464
6465 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
6466
6467         * config/ns32k/ns32k.h: Define named constants for the
6468         bits in target_flags and use them.
6469         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
6470
6471 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6472
6473         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
6474         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
6475         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
6476         default scheduling model.
6477         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
6478         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
6479         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
6480         * doc/install.texi (hppa*-*-*): Document default scheduling.
6481
6482 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6483
6484         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
6485
6486 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
6487
6488         * config.gcc (ns32k-*-netbsd*): Set tm_file to
6489         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
6490         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
6491         netbsd.h, or netbsd-aout.h.
6492
6493 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
6494
6495         * longlong.h (count_trailing_zeros): Add missing \, and clean up
6496         whitespace in __ns32000__ case.
6497
6498 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
6499
6500         * expr.c (expand_expr): Output partially zeroed out vectors with
6501         output_constant_def.
6502
6503 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
6504
6505         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
6506         (sh-*-netbsdelf*)
6507         (shl*-*-netbsdelf*): New targets.
6508         * config/sh/netbsd-elf.h: New file.
6509         * config/sh/t-netbsd: New file.
6510
6511 2002-05-30  Richard Henderson  <rth@redhat.com>
6512             Eric Botcazou  <ebotcazou@multimania.com>
6513
6514         PR optimization/6822
6515         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
6516         to unsigned int for op1 comparisons.  Use gen_int_mode.
6517
6518 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
6519
6520         * expmed.c (const_mult_add_overflow_p): New.
6521         * expr.h: Declare it.
6522         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
6523         Don't eliminate the biv if the giv has a constant multiplier and
6524         the rhs argument of the comparison does satisfy the predicate.
6525         Use expand_mult_add to compute the replacement constant.
6526
6527 2002-05-30  Osku Salerma  <osku@iki.fi>
6528
6529         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
6530         (c_common_get_alias_set): Handle it.
6531         * doc/extend.texi: Document it.
6532
6533 2002-05-30  Richard Henderson  <rth@redhat.com>
6534
6535         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
6536         * toplev.c (process_options): Don't check it.
6537         * doc/tm.texi: Don't document it.
6538         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
6539         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
6540         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
6541         frame pointer optimization if current_function_profile.
6542
6543 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
6544
6545         * langhooks.c: Fix formatting.
6546         * langhooks.h: Likewise.
6547         * lcm.c: Likewise.
6548         * libgcc2.c: Likewise.
6549         * lists.c: Likewise.
6550         * local-alloc.c: Likewise.
6551         * loop.c: Likewise.
6552         * loop.h: Likewise.
6553
6554 2002-05-30  Marc Espie <espie@openbsd.org>
6555
6556         * config.gcc (sparc64-*-openbsd*): New.
6557         * config/sparc/openbsd1-64.h: New.
6558         * config/sparc/openbsd64.h: New.
6559
6560 2002-05-30  Jeff Law <law@redhat.com>
6561
6562         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
6563         a dead insn with a REG_RETVAL note when the entire libcall is not
6564         dead and remove the associated REG_LIBCALL note at the same time.
6565
6566 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
6567
6568         * lcm.c (output.h): #include.
6569         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
6570         as an ordinary block.
6571         (optimize_mode_switching): Don't pretend that the exit block is
6572         an ordinary block, or handle sucessors of entry block specially.
6573         Instead, split edges from entry block and to exit block, and
6574         put a computing definition on the thus gained post-entry-block,
6575         and a need on the pre-exit-block.
6576
6577 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
6578
6579         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
6580         * rtl.texi: Document 'B'
6581
6582 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
6583
6584         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
6585         at run-time.
6586         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
6587
6588 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
6589
6590         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
6591         const0_rtx instead of NULL_RTX when in error.
6592         (altivec_expand_abs_builtin): Same.
6593         (rs6000_expand_binop_builtin): Same.
6594         (altivec_expand_predicate_builtin): Same.
6595         (altivec_expand_stv_builtin): Same.
6596         (rs6000_expand_ternop_builtin): Same.
6597         (altivec_expand_builtin): Same.
6598
6599 2002-05-29  David S. Miller  <davem@redhat.com>
6600
6601         * rtl.h (clear_emit_caches): Delete.
6602         * integrate.c (output_inline_function): Don't call it.
6603         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
6604         (clear_emit_caches): Delete definition.
6605         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
6606
6607 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
6608
6609         * config/mmix/mmix.c: Include real.h.
6610         (mmix_constant_address_p): Remove redundant test before switch.
6611
6612 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
6613
6614         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
6615         only if not already defined.
6616
6617 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
6618
6619         * config/h8300/h8300-protos.h: Remove prototypes for
6620         ok_for_bclr and small_power_of_two.
6621         * config/h8300/h8300.c (small_power_of_two): Remove.
6622         (ok_for_blcr): Likewise.
6623         (fix_bit_operand): Make WHAT deal with an integer instead of a
6624         constraint character.
6625         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
6626         (CONST_OK_FOR_P): Likewise.
6627         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
6628         CONST_OK_FOR_P any more.
6629         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
6630         of fix_bit_operand.
6631         (iorqi3): Likewise.
6632         (xorqi3): Likewise.
6633
6634 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
6635
6636         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
6637         (CPP_PREDEFINES): Make sure this is undefined.
6638         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
6639         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
6640         or -U__MIPSEB__ before defining one or the other.  Instead,
6641         use %(subtarget_endian_default) if neither -EB nor -EL are
6642         specified.
6643         (SUBTARGET_EXTRA_SPECS): Define.
6644         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
6645         %(netbsd_cpp_spec).
6646
6647 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
6648
6649         * doc/md.texi (Patterns): Note pattern condition pitfall
6650         for unnamed insn.
6651
6652 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
6653
6654         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
6655         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
6656         ternary operations from here...
6657         (rs6000_expand_builtin): ...to here.
6658         New argument expandedp.
6659         Change all instances of altivec_expand_binop_builtin to
6660         rs6000_expand_binop_builtin.
6661         (altivec_expand_unop_builtin): Rename to
6662         rs6000_expand_unop_builtin.
6663         (altivec_expand_binop_builtin): Rename to
6664         rs6000_expand_binop_builtin.
6665         (altivec_expand_ternop_builtin): Rename to
6666         rs6000_expand_ternop_builtin.
6667
6668 2002-05-29  Richard Henderson  <rth@redhat.com>
6669
6670         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
6671         (TARGET_BI_ARCH): Likewise.
6672         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
6673         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
6674         (TARGET_64BIT_DEFAULT): Default to 0.
6675         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
6676
6677 2002-05-29  Richard Henderson  <rth@redhat.com>
6678
6679         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
6680         (get_pc_thunk_name): New.
6681         (output_set_got): Use it.
6682         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
6683         into linkonce sections.
6684
6685 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
6686
6687         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
6688         (CPP_PREDEFINES): Make sure this is undefined.
6689         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
6690         (CPP_SUBTARGET_SPEC): Don't provide different versions for
6691         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
6692         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
6693         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
6694         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
6695         (CPP_PREDEFINES): Make sure this is undefined.
6696         (SUBTARGET_EXTRA_SPECS): Define.
6697         (CPP_SPEC): Use %(netbsd_cpp_spec).
6698
6699 2002-05-29  Jeff Law <law@redhat.com>
6700
6701         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
6702
6703         * flow.c (propagate_one_insn): Do not remove a dead insn if it
6704         contains a REG_RETVAL note.
6705
6706         * haifa-sched (sched_analyze): Remove another useless clearing
6707         of SCHED_GROUP_P I missed yesterday.
6708
6709         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
6710         * pa.c (pa_asm_output_mi_thunk): New function.
6711         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
6712
6713 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6714             Marek Michalkiewicz  <marekm@amelek.gda.pl>
6715
6716         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
6717         (avr_asm_only_p): Make non-static.
6718         (enum avr_arch): Remove.
6719         (avr_arch_types): New.
6720         (avr_mcu_types): Update.
6721         (avr_override_options): Use avr_arch_types table instead of switch.
6722         * avr.h (CPP_PREDEFINES): Die.
6723         (avr_base_arch_macro, avr_extra_arch_macro): New.
6724         (TARGET_CPU_CPP_BUILTINS): New.
6725         (CPP_SPEC, EXTRA_SPECS): Simplify.
6726         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
6727         CPP_AVR5_SPEC): Die.
6728
6729 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
6730
6731         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
6732         NETBSD_OS_CPP_BUILTINS_AOUT.
6733         (SUBTARGET_EXTRA_SPECS): Define.
6734         (CPP_SPEC): Use %(netbsd_cpp_spec).
6735
6736 2002-05-29  Richard Henderson  <rth@redhat.com>
6737
6738         * config/i386/i386.c (ix86_output_function_epilogue): New.
6739         (TARGET_ASM_FUNCTION_EPILOGUE): New.
6740         (pic_label_name): Remove.
6741         (pic_labels_used): New.
6742         (ix86_asm_file_end): Emit one pc load stub for each register used.
6743         (output_set_got): Generate deep pc load to any register.
6744         (ix86_select_alt_pic_regnum): New.
6745         (ix86_save_reg): Don't save pic register if we can find a valid
6746         call-clobbered replacement.
6747         (ix86_expand_prologue): If we found a valid replacement, renumber
6748         pic_offset_table_rtx.
6749         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
6750         pic_offset_table_rtx after reload.
6751         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
6752         * config/i386/i386.md (set_got): Make insn, not expander.
6753         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
6754
6755 2002-05-29  Richard Henderson  <rth@redhat.com>
6756
6757         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
6758         alignment for alloca.
6759
6760 2002-05-29  Richard Henderson  <rth@redhat.com>
6761
6762         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
6763         (print_operand_address): Only add rip for symbolic addresses
6764         for which we do not have another relocation type.
6765
6766 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
6767
6768         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
6769         (EXTRA_SPECS): Add netbsd_cpp_spec.
6770         (CPP_SPEC): Use %(netbsd_cpp_spec).
6771         (CPP_PREDEFINES): Remove.
6772         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
6773         (EXTRA_SPECS): Define.
6774         (CPP_SPEC): Use %(netbsd_cpp_spec).
6775         (CPP_PREDEFINES): Remove.
6776
6777 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6778
6779         PR preprocessor/6844
6780         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
6781         NUL.
6782
6783 2002-05-29  Eric Christopher  <echristo@redhat.com>
6784
6785         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
6786         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
6787
6788 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
6789
6790         * config/fr30/fr30.md: Remove previous restriction on splits.
6791         Enforce conformance through gen_lowpart and cont_int_operand.
6792         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
6793         as the assembler does not support ".bss".
6794
6795 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
6796
6797         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
6798         (CPP_PREDEFINES): Remove.
6799         (SUBTARGET_EXTRA_SPECS): Define.
6800         (CPP_SPEC): Use %(netbsd_cpp_spec).
6801         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
6802         (CPP_PREDEFINES): Remove.
6803         (SUBTARGET_EXTRA_SPECS): Define.
6804         (CPP_SPEC): Use %(netbsd_cpp_spec).
6805         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
6806         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
6807         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
6808         Add netbsd_cpp_spec.
6809         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
6810
6811 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6812             Zack Weinberg <zack@codesourcery.com>
6813
6814         * cppexp.c (cpp_num): Move to cpplib.h.
6815         (CPP_ERROR): Remove.
6816         (interpret_float_suffix, interpret_int_suffix): New.
6817         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
6818         (cpp_classify_number, cpp_interpret_integer): New.
6819         (interpret_number): Remove.
6820         (eval_token): Update to use new routines.
6821         * cpphash.h (cpp_num_part): Move to cpplib.h.
6822         * cppinit.c (cpp_post_options): Set warn_long_long.
6823         * cpplib.h (struct cpp_options): Add warn_long_long.
6824         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
6825         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
6826         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
6827         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
6828         cpp_interpret_integer): New.
6829
6830 2002-05-29  Joel Sherrill <joel@OARcorp.com>
6831
6832         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
6833
6834 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
6835
6836         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
6837         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
6838         (CPP_SUBTARGET_SPEC): Define.
6839         (SUBTARGET_EXTRA_SPECS): Define.
6840         (CPP_SPEC): Remove.
6841
6842 2002-05-29  Chris Lattner  <sabre@nondot.org>
6843
6844         * ssa.c (rename_insn_1): Rename uses of undefined registers to
6845         prevent confusion if/when the register is defined.
6846
6847 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
6848
6849         PR target/6838
6850         * config/cris/cris.md: Fix typos and thinkos in comments.
6851         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
6852         second alternative.
6853         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
6854         ("*mov_sideqi_mem"): Similar, but for operand 3.
6855         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
6856         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
6857         Remove spurious mode specifier on operand 2.
6858
6859 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
6860
6861         * config/h8300/h8300-protos.h: Remove the prototype for
6862         o_operand.
6863         Add prototypes for single_one_operand and single_zero_operand.
6864         * config/h8300/h8300.c (o_operand): Remove.
6865         (single_one_operand): New.
6866         (single_zero_operand): Likewise.
6867         (print_operand): For 'V' operand, and the operand with 0xff.
6868         For 'V' and 'W' operands, do not and the bit position with 7.
6869         * config/h8300/h8300.md (various anonymous patterns): Replace
6870         use of exact_log2 with single_one_operand/single_zero_operand.
6871
6872 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
6873
6874         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
6875
6876 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
6877
6878         * config/s390/s390.c (legitimate_pic_operand_p): Do not
6879         accept symbolic LARL operands.
6880         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
6881         epilogue insns.
6882
6883 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
6884
6885         * config/s390/s390.md (cmpstr_64/31): Mark whole
6886         input registers as used.
6887
6888 2002-05-28  Richard Henderson  <rth@redhat.com>
6889
6890         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
6891         not current_function_uses_pic_offset_table and
6892         current_function_uses_const_pool; examine current_function_profile.
6893         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
6894         input to blockage if needed.
6895         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
6896         (legitimize_pic_address): Likewise.  Set regs_ever_live for
6897         pic_offset_table_rtx when invoked during reload.
6898         * config/i386/i386.h (FINALIZE_PIC): Remove.
6899         * config/i386/i386.md (tablejump): Reformat.  Do not set
6900         current_function_uses_pic_offset_table.
6901         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
6902         (blockage): Accept anything as operand 0.
6903
6904 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
6905
6906         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
6907         common CPP built-ins for all NetBSD a.out targets.
6908         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
6909         common CPP built-ins for all NetBSD ELF targets.
6910         * config/netbsd.h: Add missing notice.
6911         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
6912         for all NetBSD targets.
6913         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
6914         for all NetBSD targets using an LP64 code model.
6915         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
6916         NetBSD targets.
6917
6918 2002-05-28  Richard Henderson  <rth@redhat.com>
6919
6920         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
6921         update if UPDATE_LIFE_LOCAL.
6922
6923 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
6924
6925         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
6926
6927 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
6928                           Jason R. Thorpe <thorpej@wasabisystems.com>
6929
6930         config/sh reorganization to factor out endianness and coff:
6931
6932         * config/sh/little.h: New file.
6933         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
6934         defined, define to 0 to select big-endian.
6935         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
6936         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
6937         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
6938         * config/sh/t-be: New file.
6939         * config/sh/t-le: New file.
6940
6941         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
6942         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
6943         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
6944         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
6945         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
6946         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
6947         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
6948         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
6949         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
6950         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
6951         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
6952         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
6953         (LINK_SPEC): Define to SH_LINK_SPEC.
6954         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
6955         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
6956         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
6957         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
6958         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
6959         * config/sh/coff.h: New file.
6960         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
6961         (TARGET_OBJFMT_CPP_BUILTINS): Define.
6962         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
6963         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
6964         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
6965         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
6966         (PTRDIFF_TYPE): Likewise.
6967         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
6968         (CPP_PREDEFINES): Don't define.
6969         (TARGET_OBJFMT_CPP_BUILTINS): Define.
6970         (LINK_SPEC): Define to SH_LINK_SPEC.
6971         (LINK_EMUL_PREFIX): Redefine.
6972         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
6973         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
6974         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
6975         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
6976         (TARGET_OS_CPP_BUILTINS): Define.
6977         (TARGET_DEFAULT): Redefine.
6978         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
6979         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
6980         (LINK_SPEC): Don't redefine.
6981         (LINK_DEFAULT_CPU_EMUL): Redefine.
6982         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
6983         * sh.c (sh_asm_named_section): Don't declare / define.
6984         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
6985         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
6986         (sh64-*-elf* tm_file): Likewise.
6987         (sh-*-rtemself* tm_file): Likewise.
6988         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
6989         (sh-*-linux* tmake_file): Add sh/t-le.
6990         (sh-*-rtems* tm_file): Add sh/coff.h
6991         (sh-*-* tm_file): Likewise.
6992
6993 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
6994
6995         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
6996         CONSTANT_POOL_ADDRESS_P.
6997
6998         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
6999
7000 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
7001             Jeff Law <law@redhat.com>
7002
7003         * optabs.c (expand_binop): Fix nwords sign warnings.
7004         generate pseudo for add_optab.
7005
7006         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
7007         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
7008
7009 2002-05-28      Marc Espie <espie@openbsd.org>
7010
7011         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
7012         inherited from gas.h.
7013         (ASM_QUAD):  Undef.  OpenBSD does not support it.
7014
7015 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
7016
7017         * doc/install.texi (binaries): Change mingw binaries
7018         link to www.mingw.org.
7019
7020 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7021
7022         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
7023
7024 2002-05-28  Richard Henderson  <rth@redhat.com>
7025
7026         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
7027         bottom alignment for leaf functions.
7028
7029 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
7030
7031         * config/pa/milli32.S, config/pa/lib1funcs.asm,
7032         config/sparc/sol2-g1.asm: Delete unused files.
7033
7034 2002-05-28  Richard Henderson  <rth@redhat.com>
7035
7036         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
7037
7038         * flow.c (calculate_global_regs_live): Rename call_used to
7039         invalidated_by_call.  Initialize from regs_invalidated_by_call
7040         instead of call_used_regs.
7041
7042         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
7043         DECL_EXTERNAL.
7044
7045 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
7046
7047         * tree.h: Don't include real.h.
7048         Forward-declare struct realvaluetype.
7049         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
7050         contain it.
7051         (TREE_REAL_CST_PTR): New accessor.
7052         (TREE_REAL_CST): Update.
7053         * real.h: Include machmode.h.
7054         (realvaluetype): Make it struct realvaluetype, not a typedef.
7055         (build_real): Prototype here.
7056
7057         * tree.c: Include real.h.
7058         (build_real): Allocate the REAL_VALUE_TYPE as a separate
7059         object in GC memory, set TREE_REAL_CST_PTR to point to it.
7060         (build_real_from_int_cst): Use build_real.
7061         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
7062         REAL_CST.
7063
7064         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
7065         fold-const.c, print-tree.c, real.c: Include real.h.
7066         * Makefile.in: Update dependency lists.
7067
7068 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7069
7070         * basic-block.h (last_basic_block): Declare.
7071         (expunge_block_nocompact): Declaration removed.
7072         (compact_blocks): Declare.
7073         * cfg.c (last_basic_block): New variable.
7074         (expunge_block_nocompact): Removed.
7075         (expunge_block): Do not compact basic blocks.
7076         (compact_blocks): New.
7077         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
7078         longer change.
7079         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
7080         last_basic_block.
7081         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
7082         real positions of blocks.
7083         (delete_unreachable_blocks): Simplified -- quadratic behavior now
7084         cannot occur.
7085         (cleanup_cfg): Compact blocks.
7086         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
7087         basic_block_info varray.
7088         (flow_delete_block): Comment update.
7089         (back_edge_of_syntactic_loop_p): Modify position check code.
7090         (verify_flow_info): Update checking.
7091         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
7092         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
7093         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
7094         indices no longer change.
7095         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
7096         last_basic_block.
7097         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
7098         * profile.c (branch_prob): Compact blocks.
7099         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
7100         last_basic_block.
7101
7102 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
7103
7104         * config/h8300/h8300.md (two anonymous patterns): New.
7105
7106 2002-05-28  David S. Miller  <davem@redhat.com>
7107
7108         * config/sparc/sparc.md (cpu): Tidy.
7109         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
7110         'trap'.
7111         (in_call_delay): Delete reference to 'return' type.
7112         (eligible_for_return_delay, in_return_delay, define_delay
7113         referencing those): Delete.
7114         (rest of file): Use new type attributes as appropriate.
7115         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
7116         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
7117         * config/sparc/ultra1_2.md (us1_single): New reservation.
7118         (us1_ialuX): Likewise.
7119         * config/sparc/ultra3.md (us3_single): Likewise.
7120         (us3_ialuX): Likewise.
7121         (us3_imul, us3_idiv): Tweak.
7122
7123 2002-05-28  Richard Henderson  <rth@redhat.com>
7124
7125         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
7126         STRING_CST.
7127
7128 2002-05-28  Richard Henderson  <rth@redhat.com>
7129
7130         * config.gcc: Obsolete mn10200.
7131
7132 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
7133
7134         * cppexp.c (interpret_number): Optimize for single-digit
7135         and less-than-half-precision cases.
7136         (num_trim, num_positive, num_div_op): Cast constants.
7137
7138 2002-05-27  Bo Thorsen  <bo@suse.de>
7139
7140         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
7141         3.1 branch. The file was made by Jakub Jelinek.
7142         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
7143         support so multilib doesn't break. And don't define this at all
7144         when -Dinhibit_libc is used.
7145         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
7146         * config/i386/t-linux64: Implement full multilib support. Patch
7147         originally done by Andreas Jaeger and Jakub Jelinek.
7148
7149 2002-05-27  Roger Sayle  <roger@eyesopen.com>
7150
7151         * c-common.c: Add support for __attribute__((nothrow)) to specify
7152         that a function cannot throw an exception (using TREE_NOTHROW).
7153         (handle_nothrow_attribute): New function to process this attribute.
7154
7155         * doc/extend.texi: Document the new nothrow function attribute.
7156
7157 2002-05-27  H.J. Lu  (hjl@gnu.org)
7158
7159         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
7160         (num_positive): Likewise.
7161         (num_div_op): Likewise.
7162
7163 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7164
7165         * c-common.c (c_common_init): Always use intmax_t.
7166
7167 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7168
7169         * c-common.c (c_common_init): Use intmax_t for now.
7170
7171 2002-05-24  Andrew Haley  <aph@redhat.com>
7172
7173         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
7174         if T is a boolean type.
7175
7176 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7177
7178         * basic-block.h (last_basic_block): Defined as synonym for
7179         n_basic_blocks.
7180         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
7181         flow_depth_first_order_compute, flow_preorder_transversal_compute,
7182         flow_dfs_compute_reverse_init): Replaced relevant occurences of
7183         n_basic_blocks with last_basic_block.
7184         * cfgbuild.c (make_edges): Likewise.
7185         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
7186         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
7187         * combine.c (combine_instructions): Likewise.
7188         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
7189         iterative_dataflow_bitmap): Likewise.
7190         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
7191         calc_idoms, idoms_to_doms): Likewise.
7192         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
7193         Likewise.
7194         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
7195         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
7196         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
7197         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
7198         delete_null_pointer_checks, compute_code_hoist_vbeinout,
7199         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
7200         compute_store_table, build_store_vectors): Likewise.
7201         * haifa-sched.c (sched_init): Likewise.
7202         * ifcvt.c (if_convert): Likewise.
7203         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
7204         pre_edge_lcm, compute_available, compute_nearerout,
7205         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
7206         Likewise.
7207         * predict.c (estimate_probability, process_note_prediction,
7208         note_prediction_to_br_prob): Likewise.
7209         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
7210         * recog.c (split_all_insns, peephole2_optimize): Likewise.
7211         * regrename.c (copyprop_hardreg_forward): Likewise.
7212         * resource.c (init_resource_info): Likewise.
7213         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
7214         init_regions, schedule_insns): Likewise.
7215         * ssa-ccp.c (ssa_const_prop): Likewise.
7216         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
7217         * ssa.c (compute_dominance_frontiers,
7218         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
7219
7220         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
7221         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
7222         sizes consistently.
7223
7224 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
7225
7226         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
7227         new.
7228         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
7229         hoist_insn_after, hoist_insn_to_edge): New.
7230
7231 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
7232
7233         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
7234         (PROP_FINAL): Include.
7235         * flow.c (life_analysis, update_life_info,
7236         init_propagate_block_info, mark_set_1, mark_used_rgs):
7237         Support SCAN_DEAD_STORE.
7238
7239 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7240
7241         * c-common.c (c_common_init): Set CPP arithmetic precision.
7242         * cppexp.c (cpp_num_part): Move typedef ...
7243         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
7244         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
7245         (sanity_checks): Update.
7246
7247 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
7248
7249         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
7250         (mkheaders): New rule.
7251         (install-mkheaders): New rule.
7252         * configure.in (all_outputs): Add mkheaders.
7253         * configure: Regenerate.
7254         * mkheaders.in: New file.
7255
7256 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
7257
7258         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
7259
7260 2002-05-26  Andreas Jaeger  <aj@suse.de>
7261
7262         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
7263
7264 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
7265
7266         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
7267         right_shift): Remove.
7268         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
7269         HIGH_PART): New.
7270         (struct op): Use cpp_num.
7271         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
7272         num_part_mul, num_unary_op, num_binary_op, num_negate,
7273         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
7274         num_div_op, num_lshift, num_rshift, append_digit): New.
7275         (interpret_number, parse_defined, eval_token, reduce): Update
7276         for two-integer arithmetic.
7277         (binary_handler): New typedef.
7278         (optab): Update.
7279         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
7280         (_cpp_parse_expr, reduce): Update to handle two-integers.
7281         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
7282
7283 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7284
7285         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
7286         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
7287         branch insn into account, do not assume 1.
7288         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
7289         over single word insn.  Handle upper half of I/O space too.
7290         * config/avr/avr.md (*sbrx_branch): Use it.
7291         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
7292         (*sbix_branch, *sbix_branch_bit7): Likewise.
7293         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
7294         Use RTL peepholes to optimize register operand sign tests.
7295
7296 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7297
7298         * config/avr/avr.c (avr_asm_only_p): New variable.
7299         (avr_override_options): Set it here if AVR1.
7300         (asm_file_start): Test it here, report an error if set.
7301
7302 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
7303
7304         * alias.c: Fix formatting.
7305         * attribs.c: Likewise.
7306         * bb-reorder.c: Likewise.
7307         * bitmap.c: Likewise.
7308         * bitmap.h: Likewise.
7309         * builtins.c: Likewise.
7310
7311 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
7312
7313         * reload.c (find_valid_class): Accept new argument DEST,
7314         choose class accordingly.
7315         (push_reload): Update callers.
7316
7317 2002-05-26  Andreas Jaeger  <aj@suse.de>
7318
7319         * combine.c (combine_instructions): Do not indent #if for
7320         traditional C.
7321
7322 2002-05-25  Richard Henderson  <rth@redhat.com>
7323
7324         * c-pragma.c (apply_pragma_weak): Convert value identifier to
7325         string for decl_attributes.
7326         (handle_pragma_weak): Call assemble_alias if we're modifying
7327         an existing decl.
7328
7329 2002-05-25  Richard Henderson  <rth@redhat.com>
7330
7331         PR target/6788
7332         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
7333         using rtl instead of fprintf.
7334         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
7335         * config/sparc/sparc-protos.h: Update.
7336
7337 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7338
7339         * Makefile.in (C_COMMON_H): Fix.
7340         Update other targets.
7341         * c-common.c: Don't include c-lex.h.
7342         (builtin_define_with_value): Make static and prototype.
7343         (builtin_define_std): Move from c-lex.h.
7344         * c-common.h (init_c_lex): Move from c-lex.h.
7345         * c-decl.c: Don't include c-lex.h.
7346         (make_pointer_declarator): Move from c-parse.in.
7347         * c-lex.c: Don't include c-lex.h.
7348         * c-lex.h: Remove.
7349         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
7350         (make_pointer_declarator): Move to c-decl.c.
7351         * c-pragma.c: Don't include c-lex.h.
7352         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
7353         * c-tree.h (make_pointer_declarator): New.
7354 doc:
7355         * passes.texi, tm.texi: Update.
7356 objc:
7357         * Make-lang.in: Update and correct.
7358         * objc-act.c: Don't include c-lex.h or cpplib.h.
7359 treelang:
7360         * treetree.c: Don't include c-lex.h.
7361 config:
7362         * darwin-c.c: Don't include c-lex.h.
7363         * c4x/c4x-c.c: Don't include c-lex.h.
7364         * c4x/t-c4x: Update.
7365         * i370/i370-c.c: Don't include c-lex.h.
7366         * i370/t-i370: Update.
7367         * i960/i960-c.c: Don't include c-lex.h.
7368         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
7369         * i960/t-960bare: Update.
7370         * i960/t-vxworks: Update.
7371         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
7372         * rs6000/t-darwin: Update.
7373         * rs6000/t-rs6000-c-rule: Update.
7374         * v850/v850-c.c: Don't include c-lex.h.
7375         * v850/v850.c: Don't include c-lex.h or cpplib.h.
7376
7377
7378 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
7379
7380         * tree.def: Fix typos.
7381         * doc/install.texi: Likewise.
7382
7383 2002-05-25  Richard Henderson  <rth@redhat.com>
7384
7385         * configure.in (HAVE_AS_TLS): Add ia64 test.
7386         * configure: Rebuild.
7387         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
7388         (override_options): Set it.
7389         (TARGET_HAVE_TLS): New.
7390         (sdata_symbolic_operand): Look for 's'.
7391         (tls_symbolic_operand): New.
7392         (ia64_expand_load_address): Abort for tls symbols.
7393         (gen_tls_get_addr): New.
7394         (gen_thread_pointer): New.
7395         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
7396         (rtx_needs_barrier): Add new unspecs.
7397         (ia64_encode_section_info): Handle tls symbols.
7398         (ia64_strip_name_encoding): Strip two encoding chars.
7399         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
7400         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
7401         (TARGET_OPTIONS): Add tls-size.
7402         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
7403         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
7404         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
7405         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
7406         (movsf, movdf): Likewise.
7407         (movdi_symbolic): Use match_scratch.  Don't split if we won't
7408         have a scratch availiable.
7409         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
7410         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
7411         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
7412         * config/ia64/ia64-protos.h: Update.
7413         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
7414         sdata_symbolic_operand.
7415         (ASM_OUTPUT_LABELREF): Strip two characters.
7416
7417 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
7418
7419         * combine.c (simplify_set): Remove an unnecessary subreg.
7420
7421 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7422
7423         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
7424
7425         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
7426
7427 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
7428
7429         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
7430
7431 2002-05-25  Roger Sayle  <roger@eyesopen.com>
7432
7433         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
7434         (cond (compare x y) 0) into the equivalent (cond x y).
7435
7436 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
7437
7438         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
7439
7440 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
7441
7442         * config.gcc: Remove all stanzas for previously obsoleted
7443         systems.  Where necessary, add explicit error stanzas to
7444         prevent removed systems from being misidentified as something
7445         else.  Begin a fresh obsoletions list, with the systems that
7446         were reprieved last round.
7447         * doc/install.texi: Remove all mention of dead targets.
7448         * fixinc/mkfixinc.sh: Likewise.
7449
7450         * config/arm/arm.h: Bit 31 of target_flags is no longer
7451         reserved.
7452
7453         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
7454         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
7455         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
7456         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
7457         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
7458         config/alpha/osf12.h, config/alpha/osf2or3.h,
7459         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
7460         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
7461         config/clipper/clipper-protos.h, config/clipper/clipper.c,
7462         config/clipper/clipper.h, config/clipper/clipper.md,
7463         config/clipper/clix.h, config/convex/convex-protos.h,
7464         config/convex/convex.c, config/convex/convex.h,
7465         config/convex/convex.md, config/convex/fixinc.convex,
7466         config/convex/proto.h, config/elxsi/elxsi-protos.h,
7467         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
7468         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
7469         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
7470         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
7471         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
7472         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
7473         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
7474         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
7475         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
7476         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
7477         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
7478         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
7479         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
7480         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
7481         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
7482         config/m68k/altos3068.h, config/m68k/apollo68.h,
7483         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
7484         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
7485         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
7486         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
7487         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
7488         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
7489         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
7490         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
7491         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
7492         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
7493         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
7494         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
7495         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
7496         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
7497         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
7498         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
7499         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
7500         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
7501         config/mips/dec-osf1.h, config/mips/elflorion.h,
7502         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
7503         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
7504         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
7505         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
7506         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
7507         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
7508         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
7509         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
7510         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
7511         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
7512         config/ns32k/sequent.h, config/ns32k/tek6000.h,
7513         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
7514         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
7515         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
7516         config/sparc/rtems.h, config/we32k/we32k-protos.h,
7517         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
7518         Delete file.
7519
7520 2002-05-24  Richard Henderson  <rth@redhat.com>
7521
7522         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
7523         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
7524         * config/i386/i386.c (tls_model_chars): Add leading space.
7525         (tls_symbolic_operand): Don't bias by 1.
7526         (legitimize_address): Don't unbias by 1.
7527
7528 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
7529
7530         * lcm.c (optimize_mode_switching): Change bb used as indices
7531         to bb->index.
7532
7533 2002-05-24  Richard Henderson  <rth@redhat.com>
7534
7535         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
7536         of update_life_info_in_dirty_blocks.
7537
7538 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
7539
7540         PR other/6782
7541         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
7542
7543 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7544
7545         PR preprocessor/6780
7546         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
7547
7548 2002-05-24  Jim Blandy  <jimb@redhat.com>
7549
7550         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
7551         entry with a type code of zero, marking the end of the compilation
7552         unit's macro info.
7553
7554 2002-05-24  Richard Henderson  <rth@redhat.com>
7555
7556         * varasm.c (asm_output_bss): Always output one byte.
7557         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
7558
7559 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
7560
7561         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
7562         namespace.
7563
7564 2002-05-24  Andreas Jaeger  <aj@suse.de>
7565
7566         * ggc-page.c (alloc_page): Cast variables of type size_t to
7567         unsigned long, adjust printf format string.
7568         (ggc_alloc): Likewise.
7569         (ggc_print_statistics): Likewise.
7570         (ggc_print_statistics): Correct printf format string for SCALE to
7571         use unsigned long.
7572
7573 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
7574
7575         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
7576
7577 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
7578             Zack Weinberg     <zack@codesourcery.com>
7579
7580         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
7581         quoted strings.
7582         * dwarf2out.c (lookup_filename): Properly quote filename in .file
7583         directive in assembly file.
7584         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
7585         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
7586         * config/pj/pj.h (ASM_FILE_START): Likewise.
7587         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
7588         * config/avr/avr.c (asm_file_end): Likewise.
7589         * toplev.c (output_quoted_string): Handle possibly signed plain
7590         char.
7591         * toplev.h (output_clean_symbol_name): Declare
7592         * toplev.c (output_clean_symbol_name): Define.
7593         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
7594         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
7595
7596 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
7597
7598         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
7599
7600 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
7601
7602         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
7603         of size of unsigned.
7604
7605 2002-05-23  Richard Henderson  <rth@redhat.com>
7606
7607         * configure.in (HAVE_AS_TLS): New test.
7608         * config.in, configure: Rebuild.
7609         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
7610         (ix86_tls_dialect_string, ix86_tls_dialect): New.
7611         (override_options): Set it.
7612         (tls_model_chars, tls_symbolic_operand): New.
7613         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
7614         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
7615         (local_exec_symbolic_operand): New.
7616         (get_pic_label_name): Merge into output_set_got.
7617         (ix86_asm_file_end): Emit pic_label_name if defined.
7618         (legitimate_constant_p, constant_address_p): New.
7619         (legitimate_pic_operand_p): New.
7620         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
7621         (legitimate_address_p): Likewise.
7622         (ix86_encode_section_info): Rename from i386_; handle tls decls.
7623         (ix86_strip_name_encoding): New.
7624         (get_thread_pointer): New.
7625         (legitimize_address): Handle tls symbols.
7626         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
7627         Remove UNSPEC_PLT.
7628         (struct machine_function): Add some_ld_name.
7629         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
7630         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
7631         (output_addr_const_extra): New.
7632         (maybe_get_pool_constant): New.
7633         (ix86_split_to_parts): Use it.
7634         (ix86_expand_move): Handle tls symbols.
7635         (ix86_tls_get_addr): New.
7636         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
7637         (TARGET_OPTIONS): Add tls-dialect.
7638         (CONSTANT_ADDRESS_P): Use new out-of-line function.
7639         (LEGITIMATE_CONSTANT_P): Likewise.
7640         (LEGITIMATE_PIC_OPERAND_P): Likewise.
7641         (TARGET_STRIP_NAME_ENCODING): New.
7642         (ASM_OUTPUT_LABELREF): New.
7643         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
7644         (OUTPUT_ADDR_CONST_EXTRA): New.
7645         (PREDICATE_CODES): Update.
7646         (ix86_tls_dialect, ix86_tls_dialect_string): New.
7647         * config/i386/i386.md: Regroup and renumber unspec constants.
7648         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
7649         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
7650         (tls_global_dynamic, tls_local_dynamic_base): New.
7651         (tls_local_dynamic_once): New.
7652         * config/i386/i386-protos.h: Update.
7653
7654 2002-05-23  Richard Henderson  <rth@redhat.com>
7655
7656         * genemit.c (gen_insn): Print file:lineno comment before function.
7657         (main): likewise.
7658         * gensupport.c (struct queue_elem): Add filename member.
7659         (queue_pattern): Initialize it; update all callers.
7660         (process_include): Don't free filename.
7661         (read_md_rtx): Set read_rtx_filename.
7662
7663 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
7664
7665         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
7666
7667 2002-05-23  Richard Henderson  <rth@redhat.com>
7668
7669         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
7670
7671 2002-05-23  Richard Henderson  <rth@redhat.com>
7672
7673         * doc/extend.texi (C++98 Thread-Local Edits): Update with
7674         commentary from Mark.
7675
7676 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7677
7678         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
7679         Use FOR_EACH_BB macros to iterate over basic block chain.
7680         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
7681         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
7682         Likewise.
7683         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
7684         find_unreachable_blocks, create_edge_list, verify_edge_list,
7685         remove_fake_edges, add_noreturn_fake_exit_edges,
7686         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
7687         Likewise.
7688         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
7689         find_sub_basic_blocks): Likewise.
7690         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
7691         Likewise.
7692         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
7693         Likewise.
7694         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
7695         Likewise.
7696         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
7697         commit_edge_insertions, commit_edge_insertions_watch_calls,
7698         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
7699         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
7700         * conflict.c (conflict_graph_compute): Likewise.
7701         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
7702         df_modified_p, df_refs_unlink, df_dump): Likewise.
7703         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
7704         * final.c (compute_alignments): Likewise.
7705         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
7706         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
7707         count_or_remove_death_notes): Likewise.
7708         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
7709         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
7710         classic_gcse, compute_transp, cprop, compute_pre_data,
7711         compute_transpout, invalidate_nonnull_info,
7712         delete_null_pointer_checks_1, delete_null_pointer_checks,
7713         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
7714         compute_store_table, build_store_vectors, store_motion): Likewise.
7715         * global.c (global_conflicts, mark_elimination): Likewise.
7716         * graph.c (print_rtl_graph_with_bb): Likewise.
7717         * haifa-sched.c (sched_init): Likewise.
7718         * ifcvt.c (if_convert): Likewise.
7719         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
7720         compute_available, compute_nearerout, compute_rev_insert_delete,
7721         optimize_mode_switching): Likewise.
7722         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
7723         * predict.c (estimate_probability, note_prediction_to_br_prob,
7724         propagate_freq, counts_to_freqs, expensive_function_p,
7725         estimate_bb_frequencies): Likewise.
7726         * profile.c (instrument_edges, get_exec_counts,
7727         compute_branch_probabilities, compute_checksum, branch_prob,
7728         find_spanning_tree): Likewise.
7729         * recog.c (split_all_insns, peephole2_optimize): Likewise.
7730         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
7731         Likewise.
7732         * regclass.c (scan_one_insn, regclass): Likewise.
7733         * regmove.c (mark_flags_life_zones, regmove_optimize,
7734         record_stack_memrefs): Likewise.
7735         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
7736         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
7737         * resource.c (find_basic_block): Likewise.
7738         * sched-ebb.c (schedule_ebbs): Likewise.
7739         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
7740         find_single_block_region, find_rgns, schedule_insns)
7741         * sibcall.c (optimize_sibling_and_tail_recursive_call)
7742         * ssa-ccp.c (optimize_unexecutable_edges,
7743         ssa_ccp_df_delete_unreachable_insns): Likewise.
7744         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
7745         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
7746         rename_block, convert_to_ssa, compute_conservative_reg_partition,
7747         compute_coalesced_reg_partition, rename_equivalent_regs,
7748         convert_from_ssa): Likewise.
7749         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
7750         process_for_unwind_directive): Likewise.
7751
7752         * df.c (FOR_ALL_BBS): Removed.
7753         * gcse.c (struct null_pointer_info): Type of current_block field
7754         changed.
7755         (struct reg_avail_info): Type of last_bb field changed.
7756         * config/ia64/ia64.c (block_num): Removed.
7757         (need_copy_state): Type changed.
7758         (last_block): New.
7759
7760 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7761
7762         * cppinit.c (mark_named_operators): Split out from init_builtins.
7763         (cpp_finish_options): Call it from here instead.
7764
7765 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
7766
7767         * builtin-attrs.def: Update copyright years.
7768         (ATTR_NONNULL): New attribute identifier.
7769         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
7770         attribute tree lists.
7771         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
7772         format operand.
7773         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
7774         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
7775         attribute lists.  Chain the appropriate nonnull attribute.
7776         * c-format.c (check_format_arg): Remove null format string
7777         warning.
7778         * testsuite/gcc.dg/format/null-1.c: New test.
7779
7780 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7781
7782         * Makefile.in (ADAC): Define.
7783         (SYSLIBS): Define.
7784         (.SUFFIXES): Move before language makefile fragments.
7785         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
7786
7787 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
7788
7789         * varasm.c (make_decl_rtl): Don't allow weak variables to be
7790         placed in common.
7791
7792 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
7793
7794         * cfg.c (dump_flow_info): Print results of
7795         maybe_hot/probably_never_executed predicates.
7796         * toplev.c (open_dump_file): Print function frequency.
7797
7798 2002-05-23  David S. Miller  <davem@redhat.com>
7799
7800         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
7801         regsets.
7802
7803 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
7804
7805         * c-common.c (warn_nonnull): Declare.
7806         (c_common_attribute_table): Add "nonnull" attribute.
7807         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
7808         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
7809         check_function_arguments_recurse): New functions.
7810         * c-common.h (warn_nonnull): Declare extern.
7811         (check_function_arguments, check_function_arguments_recurse): New
7812         prototypes.
7813         * c-decl.c (c_decode_option): Add -Wnonnull option.
7814         * c-format.c (set_Wformat): Set warn_nonnull if enabling
7815         format checking.
7816         (format_check_context): New structure.
7817         (check_format_info_recurse): Remove recursion and rename to...
7818         (check_format_arg): ...this.  Update comment.
7819         (check_format_info): Use check_function_arguments_recurse.
7820         * c-typeck.c (build_function_call): Call check_function_arguments
7821         instead of check_function_format.
7822         * doc/extend.texi: Document "nonnull" attribute.
7823         * doc/invoke.texi: Docuemnt -Wnonnull option.
7824         * testsuite/gcc.dg/nonnull-1.c: New test.
7825         * testsuite/gcc.dg/nonnull-2.c: New test.
7826
7827 2002-05-23  David S. Miller  <davem@redhat.com>
7828
7829         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
7830         * cfgcleanup.c (cleanup_cfg): If it is set do not
7831         attempt to delete trivially dead insns.
7832         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
7833         * toplev.c (rest_of_compilation): Document non-trivial aspect
7834         the RTL before optimize_save_area_alloca is run.
7835
7836 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7837
7838         * c-lex.c (indent_level): Remove.
7839         (cb_file_change, c_lex): Remove indent level handling.
7840         * c-lex.h (indent_level): Remove.
7841         * input.h (struct file_stack): Remove indent_level.
7842         * toplev.c (push_srcloc): Remove indent_level handling.
7843
7844 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
7845
7846         PR target/6753
7847         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
7848         of x in constraints for clarity.
7849         (sse_mov?fcc split): abort if op2 == op3.
7850         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
7851         sse_movsfcc_const0_4): Add earlyclobber.
7852         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
7853         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
7854         Use Y instead of x in constraints.
7855
7856 2002-05-23  Richard Henderson  <rth@redhat.com>
7857
7858         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
7859         (C++98 Thread-Local Edits): New subsection.
7860
7861         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
7862         (ix86_arch): Set type to enum processor_type.
7863
7864         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
7865         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
7866
7867 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
7868
7869         * configure.in: Fix as version test for binutils 2.12.1 releases
7870         (without dates).
7871         * configure: Rebuilt.
7872
7873 2002-05-23  Richard Henderson  <rth@redhat.com>
7874
7875         * config/i386/i386.c (get_pic_label_name): New.
7876         (load_pic_register): Remove.
7877         (output_set_got): New.
7878         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
7879         * config/i386/i386.md (UNSPEC_SET_GOT): New.
7880         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
7881         (prologue_set_got, prologue_get_pc): Remove.
7882         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
7883         (builtin_setjmp_receiver): Use gen_set_got.
7884         * config/i386/i386-protos.h: Update.
7885
7886 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
7887
7888         * gcse.c (hash_expr): Do not use alias set for hashing.
7889
7890 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
7891
7892         * dbxout.c (dbxout_class_name_qualifiers): New function.
7893         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
7894
7895 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7896
7897         * cpperror.c (_cpp_begin_message): No special casing
7898         of CPP_FATAL_LIMIT.
7899         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
7900         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
7901         * cpplib.c (do_include_common): Use DL_ERROR.
7902         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
7903         (DL_ICE): Renumber.
7904         * fix-header.c (read_scan_file): Update.
7905
7906 2002-05-22  Richard Henderson  <rth@redhat.com>
7907
7908         * config/i386/i386.c (ix86_expand_call): New function, extracted
7909         from md call patterns.  Add pic_offset_table_rtx to
7910         CALL_INSN_FUNCTION_USAGE when needed.
7911         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
7912         (call_value_pop, call_value, untyped_call): Likewise.
7913         (call_exp, call_value_exp): Remove.
7914         * config/i386/i386-protos.h: Update.
7915
7916 2002-05-22  Richard Henderson  <rth@redhat.com>
7917
7918         * varasm.c (default_section_type_flags): Check for VAR_DECL
7919         before using DECL_THREAD_LOCAL.
7920
7921 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
7922
7923         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
7924         (STARTFILE_SPEC): Delete PE crt0.o.
7925         * config/rs6000/aix51.h: Same.
7926         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
7927         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
7928         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
7929         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
7930         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
7931
7932 2002-05-22  Richard Henderson  <rth@redhat.com>
7933
7934         * varasm.c (default_section_type_flags): Handle tls data and
7935         default sections.
7936         (default_unique_section): Handle tls sections.
7937
7938 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
7939
7940         * configure.in (CROSS): Define NATIVE_CROSS.
7941         * configure: Regenerate.
7942         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
7943         (startfile_prefix_spec): New var.
7944         (static_specs): Add startfile_prefix_spec.
7945         (do_spec_2): Split out from..
7946         (do_spec): ..here.
7947         (main): Process startfile_prefix_spec.
7948         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
7949         dynamic linker.
7950         (STARTFILE_PREFIX_SPEC): Define.
7951         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
7952         absolute paths.
7953
7954 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
7955
7956         * cpperror.c: Fix formatting.
7957         * cppexp.c: Likewise.
7958         * cppfiles.c: Likewise.
7959         * cpphash.c: Likewise.
7960         * cpphash.h: Likewise.
7961         * cppinit.c: Likewise.
7962         * cpplex.c: Likewise.
7963         * cpplib.c: Likewise.
7964         * cppmacro.c: Likewise.
7965         * cppmain.c: Likewise.
7966         * cppspec.c: Likewise.
7967
7968 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
7969
7970         * combine.c (force_to_mode): Use gen_int_mode.
7971         Don't clear CONST_INT bits outside of mode.
7972
7973 2002-05-22  Richard Henderson  <rth@redhat.com>
7974
7975         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
7976         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
7977
7978 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
7979
7980         PR c/6643
7981         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
7982         if DECL_SIZE_UNIT is INTEGER_CST.
7983
7984 2002-05-22  Richard Henderson  <rth@redhat.com>
7985
7986         * flow.c (life_analysis): Delete broken reg_label check.
7987
7988 2002-05-22  Richard Henderson  <rth@redhat.com>
7989
7990         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
7991         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
7992
7993 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
7994
7995         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
7996         (embed-bb.c): New rule.
7997         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
7998         * config/sh/embed_bb.c: Delete.
7999
8000 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
8001
8002         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
8003
8004 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
8005
8006         * config/h8300/h8300.md (*andorqi3): New.
8007
8008 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8009
8010         PR preprocessor/6517
8011         * Makefile.in: Update.
8012         * c-common.c (c_common_post_options): Add preprocessor
8013         errors to the error count.
8014         * c-lang.c (c_post_options): Kill.
8015         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
8016         * hooks.h: Add header guards.
8017         * langhooks-def.h: Include hooks.h.
8018         (LANG_HOOKS_POST_OPTIONS): Update.
8019         * langhooks.h (struct lang_hooks): Update post_options.
8020         * toplev.c (parse_options_and_default_flags): Update.
8021 objc:
8022         * objc-lang.c (objc_post_options): Kill.
8023         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
8024
8025 2002-05-21  Bruce Korb  <bkorb@gnu.org>
8026
8027         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
8028         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
8029         * fixinc/fixincl.x: regen.
8030
8031 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
8032
8033         * cfgbuild.c: Fix formatting.
8034         * cfg.c: Likewise.
8035         * cfgcleanup.c: Likewise.
8036         * cfglayout.c: Likewise.
8037         * cfgloop.c: Likewise.
8038         * cfgrtl.c: Likewise.
8039
8040 2002-05-21  Richard Henderson  <rth@redhat.com>
8041
8042         * c-common.h (enum rid): Add RID_THREAD.
8043         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
8044         (grokdeclarator): Grok __thread.
8045         * c-parse.in (reswords): Add __thread.
8046         (rid_to_yy): Add RID_THREAD.
8047
8048         * tree.h (DECL_THREAD_LOCAL): New.
8049         (struct tree_decl): Add thread_local_flag.
8050         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
8051         * tree.c (staticp): TLS variables are not static.
8052
8053         * target-def.h (TARGET_HAVE_TLS): New.
8054         * target.h (have_tls): New.
8055         * output.h (SECTION_TLS): New.
8056         * varasm.c (assemble_variable): TLS variables can't be common for now.
8057         (default_section_type_flags): Handle .tdata and .tbss.
8058         (default_elf_asm_named_section): Handle SECTION_TLS.
8059         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
8060
8061         * flags.h (flag_tls_default): Declare.
8062         * toplev.c (flag_tls_default): Define.
8063         (display_help): Display help for it.
8064         (decode_f_option): Set it.
8065
8066         * doc/extend.texi (Thread-Local): New node describing language-level
8067         thread-local storage.
8068         * doc/invoke.texi (-ftls-model): Document.
8069
8070         * fixinc/inclhack.def (thread_keyword): New.
8071         * fixinc/fixincl.x: Rebuild.
8072
8073 2002-05-21  Jeffrey A Law  <law@redhat.com>
8074
8075         * optabs.c (expand_binop): For double-word integer multiplies,
8076         do not compute intermediate results into something that is
8077         not a register (such as a SUBREG or MEM).
8078
8079         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
8080         (ix86_sched_reorder): Make sure to initialize scheduling
8081         data even when there's only one insn in the ready queue.
8082
8083 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
8084
8085         * genautomata.c (reserv_sets_hash_value): Fix a typo.
8086
8087 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
8088
8089         * genautomata.c (reserv_sets_hash_value): Define hash_value as
8090         set_el_t.  Transform the hash value into unsigned.
8091         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
8092         (transform_3): Add code to process `(A,B)+(D,E)'.
8093
8094 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
8095
8096         * reload1.c (do_output_reload): Run delete_output_reload
8097         only if optimizing.
8098
8099 2002-05-21  Roger Sayle  <roger@eyesopen.com>
8100
8101         PR middle-end/6600
8102         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
8103         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
8104         (can_store_by_pieces): ... and here to limit the largest mode used.
8105         Add a comment to document this function.
8106
8107 2002-05-21  Richard Henderson  <rth@redhat.com>
8108
8109         * flow.c (life_analysis): Fix test for deleted label.
8110
8111 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8112
8113         * doc/tm.texi: Fix typo.
8114
8115 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
8116
8117         * c-common.c (c_common_init): Set options->unsigned_char from
8118         flag_signed_char.
8119         (cb_register_builtins): Define __STRICT_ANSI__ and
8120         __CHAR_UNSIGNED__ here...
8121         * cppinit.c (init_builtins): Not here.
8122         (cpp_create_reader): unsigned_char option defaults to 0, not
8123         !DEFAULT_SIGNED_CHAR.
8124         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
8125         and -funsigned-char.
8126
8127         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
8128         * cpphash.c (_cpp_init_hashtable): Don't set it.
8129         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
8130         directly.  Clarify comment.
8131
8132 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8133
8134         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
8135         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
8136         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
8137         BASIC_BLOCK (n_basic_blocks - 1).
8138         * cfganal.c (can_fallthru, flow_call_edges_add,
8139         flow_preorder_transversal_compute): Too.
8140         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
8141         find_sub_basic_blocks): Too.
8142         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
8143         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
8144         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
8145         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
8146         * combine.c (this_basic_block): Type changed to basic_block.
8147         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
8148         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
8149         get_last_value, distribute_notes, distribute_links): Too.
8150         * final.c (compute_alignments): Too.
8151         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
8152         * function.c (thread_prologue_and_epilogue_insns): Too.
8153         * gcse.c (compute_code_hoist_vbeinout): Too.
8154         * global.c (build_insn_chain): Too.
8155         * ifcvt.c (find_if_block, find_cond_trap): Too.
8156         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
8157         * regmove.c (regmove_optimize): Too.
8158         * resource.c (find_basic_block): Too.
8159         * sched-ebb.c (schedule_ebbs): Too.
8160         * ssa-dce.c (find_control_dependence, find_pdom): Too.
8161
8162 2002-05-21  Andreas Jaeger  <aj@suse.de>
8163
8164         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
8165
8166 2002-05-21  Richard Henderson  <rth@redhat.com>
8167
8168         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
8169         unspec names, not numbers.
8170
8171 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8172
8173         * doc/sourcebuild.texi: Mention snapshot-README and
8174         snapshot-index.html as needing updating for new front ends.
8175
8176 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8177
8178         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
8179         disabling checking, and avoid multiple evaluation of RTX.
8180
8181 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
8182
8183         * bitmap.c (bitmap_find_bit): Return early if we have the correct
8184         element cached.
8185
8186 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
8187
8188         * profile.c (gen_edge_profiler):  Set alias set before the memory is
8189         used.
8190
8191 2002-05-20  David S. Miller  <davem@redhat.com>
8192
8193         * cselib.c (max_value_regs): New.
8194         (cselib_lookup, cselib_invalidate_regno): Initialize it when
8195         adding new entries to the REG_VALUES table and we are dealing with
8196         a hard register.
8197         (clear_table): Initialize it.
8198         (cselib_invalidate_regno): Use it to determine which hard
8199         registers to scan when mode is not VOIDmode.
8200
8201 2002-05-20  Duraid Madina   <duraid@fl.net.au>
8202
8203         * tradcpp.c (fixup_newlines): Use old-style function header.
8204
8205 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
8206
8207         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
8208
8209 2002-05-20  H.J. Lu  (hjl@gnu.org)
8210
8211         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
8212
8213         * config/mips/mips.h (DFMODE_NAN): Defined.
8214         (SFMODE_NAN): Likewise.
8215
8216 2002-05-20  Dale Johannesen  <dalej@apple.com>
8217
8218         * combine.c (cant_combine_insn_p):  Back out my
8219         previous patch.
8220
8221 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
8222
8223         * params.c: Fix formatting.
8224         * params.h: Likewise.
8225         * predict.c: Likewise.
8226         * prefix.c: Likewise.
8227         * print-rtl.c: Likewise.
8228         * print-tree.c: Likewise.
8229         * profile.c: Likewise.
8230
8231 2002-05-20  H.J. Lu  (hjl@gnu.org)
8232
8233         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
8234
8235 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
8236
8237         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
8238         switches straight on to the assembler, do not abbreviate them.
8239         * config/arm/elf.h (ASM_SPEC): As above.
8240         * config/arm/semi.h (ASM_SPEC): As above.
8241         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
8242         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
8243         -mcpu=xscale on to the assembler by default.
8244         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
8245
8246 2002-05-20  Richard Henderson  <rth@redhat.com>
8247
8248         * cse.c (canon_hash): Reorder do_not_record test.  Always
8249         allow pic_offset_table_rtx.
8250
8251 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
8252
8253         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
8254         (expand_binop): Ditto (3 times).
8255
8256 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
8257
8258         * Makefile.in (distclean): Remove QMTest stuff.
8259         (QMTEST_PATH): New variable.
8260         (QMTESTFLAGS): Likewise.
8261         (QMTESTRUNFLAGS): Likewise.
8262         (QMTEST): Likewise.
8263         (QMTEST_GPP_TESTS): Likewise.
8264         (QMTEST_DIR): Likewise.
8265         (QMTEST_DIR/context): New target.
8266         (qmtest-g++): Likeise.
8267         (qmtest-gui): Likewise.
8268         (QMTEST_DIR/gpp-expected.qmr): Likewise.
8269
8270 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
8271
8272         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
8273         an altivec register if TARGET_ALTIVEC.
8274
8275         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
8276         to ALTIVEC_VECTOR_MODE.
8277         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
8278         (rs6000_va_arg): Vectors may go in registers if they are not
8279         altivec vectors.
8280
8281 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
8282
8283         * protoize.c: Fix formatting.
8284
8285 2002-05-19  Richard Henderson  <rth@redhat.com>
8286
8287         * gensupport.c (init_include_reader): Merge into ...
8288         (process_include): ... here.  Simplify composite path creation.
8289         Plug memory leaks.  Fix file/line number tracking.  Do not
8290         process_define_cond_exec.  Return void.
8291         (process_rtx): Don't check process_include return value.
8292
8293 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8294
8295         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
8296         fields.
8297         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
8298         traversing basic block chain.
8299         (create_basic_block_structure, create_basic_block): Declaration changed.
8300         (link_block, unlink_block): Declare.
8301         * cfg.c (entry_exit_blocks): Initialize new fields.
8302         (link_block, unlink_block): New.
8303         (expunge_block_nocompact): Unlink basic block.
8304         (dump_flow_info): Print prev_bb/next_bb fields.
8305         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
8306         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
8307         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
8308         * cfgrtl.c (create_basic_block_structure, create_basic_block,
8309         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
8310         (verify_flow_info): Check that list agrees with numbering.
8311
8312 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
8313
8314         * c-common.c (preprocessing_asm): New macro.
8315         * c-lex.h (builtin_define, builtin_assert): Use pfile.
8316 doc:
8317         * tm.texi: Update.
8318 config/alpha:
8319         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
8320         (CPP_SPEC): Simplify.
8321         (TARGET_CPU_CPP_BUILTINS): Update.
8322         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
8323         (CPP_SPEC): Simplify.
8324         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
8325         (TARGET_OS_CPP_BUILTINS): Update.
8326         * osf.h (CPP_XFLOAT_SPEC): Kill.
8327         (TARGET_OS_CPP_BUILTINS): Update.
8328         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
8329         * osf5.h (CPP_XFLOAT_SPEC): Kill.
8330         * vms.h (CPP_SUBTARGET_SPEC): Kill.
8331         (TARGET_OS_CPP_BUILTINS): Update.
8332
8333 2002-05-19  Richard Henderson  <rth@redhat.com>
8334
8335         * varasm.c (default_binds_local_p): Fix typo.
8336
8337 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8338
8339         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
8340         CONST_INT operand to the correct mode after adding 1 to it.
8341
8342 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
8343
8344         * config.gcc (powerpc-wrs-windiss*): New target.
8345
8346 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8347
8348         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
8349         (ashrdi3): Use it.
8350
8351 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
8352
8353         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
8354         alphasort.
8355         * config.in: Regenerated.
8356         * configure: Regenerated.
8357
8358 2002-05-19  Richard Henderson  <rth@redhat.com>
8359
8360         * target-def.h (TARGET_BINDS_LOCAL_P): New.
8361         * target.h (struct gcc_target): Move boolean fields to the end.
8362         Add binds_local_p.
8363         * varasm.c (default_binds_local_p): New.
8364         * output.h: Declare it.
8365
8366         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
8367         * config/cris/cris.c (cris_encode_section_info): Likewise.
8368         * config/i386/i386.c (i386_encode_section_info): Likewise.
8369         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
8370         * config/sh/sh.c (sh_encode_section_info): Likewise.
8371
8372         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
8373         (TARGET_BINDS_LOCAL_P): New.
8374
8375 2002-05-19  Richard Henderson  <rth@redhat.com>
8376
8377         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
8378         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
8379         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
8380
8381         * toplev.c (display_help): Kill -a -ax help.
8382
8383         * config/1750a/1750a.h, config/alpha/alpha.h,
8384         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
8385         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
8386         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
8387         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
8388
8389         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
8390         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
8391
8392         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
8393         (ix86_output_function_block_profiler): Kill.
8394         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
8395         (m68hc11_function_block_profiler): Kill.
8396         * config/m68hc11/m68hc11-protos.h: Update.
8397         * config/m88k/m88k.c (output_block_profiler): Kill.
8398         (output_function_block_profiler): Kill.
8399         * config/m88k/m88k-protos.h: Update.
8400
8401 2002-05-19  Richard Henderson  <rth@redhat.com>
8402
8403         * system.h (STRIP_NAME_ENCODING): Poison it.
8404         * output.h (STRIP_NAME_ENCODING): Remove.
8405         (default_strip_name_encoding): Declare.
8406         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
8407         * target.h (strip_name_encoding): New.
8408         * varasm.c (default_strip_name_encoding): New.
8409
8410         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
8411         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
8412         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
8413         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
8414         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
8415         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
8416         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
8417         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
8418         config/v850/v850.h: Use the hook, not the macro.
8419
8420         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
8421         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
8422         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
8423         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
8424         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
8425         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
8426         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
8427         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
8428         config/v850/v850.c, config/v850/v850.h:
8429         Move STRIP_NAME_ENCODING to out-of-line function and add
8430         TARGET_STRIP_NAME_ENCODING.
8431
8432         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
8433         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
8434         with TARGET_STRIP_NAME_ENCODING referencing existing function;
8435         make function static.
8436
8437         * xcoffout.c: Include target.h
8438         * Makefile.in (xcoffout.o): Update.
8439
8440         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
8441         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
8442         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
8443         reloc argument unused.
8444         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
8445
8446         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
8447         STRIP_NAME_ENCODING docs.
8448
8449 2002-05-19  Andreas Jaeger  <aj@suse.de>
8450
8451         * gengenrtl.c: Add prototype for excluded_rtx.
8452
8453         * real.h: Add prototype for exact_real_truncate.
8454
8455 2002-05-18  Richard Henderson  <rth@redhat.com>
8456
8457         * system.h (ENCODE_SECTION_INFO): Poison it.
8458         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
8459         * target.h (encode_section_info): New.
8460         * varasm.c (make_decl_rtl, output_constant_def): Use it.
8461         * hooks.c (hook_tree_int_void): New.
8462         * hooks.h: Declare it.
8463
8464         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
8465         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
8466         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
8467         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
8468         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
8469         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
8470         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
8471         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
8472         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
8473         config/mcore/mcore-protos.h, config/mcore/mcore.c,
8474         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
8475         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
8476         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
8477         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
8478         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
8479         referencing existing function.  Make function static.
8480
8481         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
8482         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
8483         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
8484         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
8485         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
8486         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
8487         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
8488         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
8489         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
8490         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
8491         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
8492         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
8493         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
8494         Move ENCODE_SECTION_INFO to out-of-line function and add
8495         TARGET_ENCODE_SECTION_INFO.
8496
8497         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
8498         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
8499
8500         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
8501         from SUBTARGET_*
8502         (switch_to_section): Replace in_rdata case with in_readonly_data.
8503
8504         * config/h8300/h8300.c (h8300_encode_label): Make static.
8505         * config/h8300/h8300-protos.h: Update.
8506
8507         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
8508         from rs6000_encode_section_info; make static.
8509         (rs6000_xcoff_encode_section_info): New.
8510
8511         * config/v850/v850.c (v850_encode_data_area): Make static.
8512         * config/v850/v850-protos.h: Update.
8513
8514         * config/vax/vax.c: Include flags.h.
8515         (vms_select_section): Fix typo.
8516
8517         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
8518         ENCODE_SECTION_INFO docs.
8519
8520 2002-05-18  Richard Henderson  <rth@redhat.com>
8521
8522         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
8523         REGISTER_TARGET_PRAGMAS.
8524         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
8525
8526         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
8527
8528 2002-05-18  Richard Henderson  <rth@redhat.com>
8529
8530         * system.h (SELECT_RTX_SECTION): Poison.
8531         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
8532         * target.h (select_rtx_section): New.
8533         * varasm.c (output_constant_pool): Use it.
8534         (default_select_rtx_section, default_elf_select_rtx_section): New.
8535         * output.h: Declare them.
8536
8537         * config/darwin.h (SELECT_RTX_SECTION): Move ...
8538         * config/darwin.c (machopic_select_rtx_section): ... here.
8539         * config/darwin-protos.h: Update.
8540
8541         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
8542         * config/nextstep.c (machopic_select_rtx_section): ... here.
8543         (nextstep_select_section): Rename variable to avoid macro clash.
8544         * config/nextstep-protos.h: Update.
8545
8546         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
8547         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
8548         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
8549         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
8550         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
8551         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
8552         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
8553         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
8554         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
8555         (SELECT_RTX_SECTION): Remove.
8556
8557         * config/darwin.h, config/elfos.h, config/nextstep.h,
8558         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
8559         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
8560         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
8561         config/sparc/lynx.h, config/xtensa/xtensa.c
8562         (TARGET_ASM_SELECT_RTX_SECTION): New.
8563
8564         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
8565         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
8566         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
8567         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
8568         (ia64_aix_select_rtx_section): New.
8569         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
8570         redefining.
8571         * config/mips/mips.c (mips_select_rtx_section): Make static.
8572         Support ELF SHF_MERGE features.
8573         * config/mips/mips-protos.h: Update.
8574         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
8575         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
8576         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
8577         make static, fall back to default_elf_select_rtx_section.
8578         * config/rs6000/rs6000-protos.h: Update.
8579         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
8580         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
8581         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
8582         * config/romp/romp.c (romp_select_rtx_section): New.
8583         * config/s390/s390.c (s390_select_rtx_section): New.
8584         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
8585         declarations before target macro definition.
8586         (xtensa_emit_call): Use static buffer.
8587         (xtensa_select_rtx_section): New.
8588         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
8589         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
8590         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
8591
8592         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
8593         SELECT_RTX_SECTION docs.
8594
8595 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
8596
8597         * i386.md (movsi/movdi): Fix template.
8598         (sse2 patterns): Set attributes consistently.
8599
8600         * i386.md (pushqi2, ashrqi_*): Fix constraint.
8601
8602 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
8603
8604         * optabs.c (complex_part_zero_p): New.
8605         * (expand_cmplxdiv_straight): Use it.
8606         * (expand_cmplxdiv_wide): Ditto.
8607         * (expand_binop): Ditto.
8608
8609 2002-05-18  Richard Henderson  <rth@redhat.com>
8610
8611         * final.c (HAVE_READONLY_DATA_SECTION): New.
8612         (shorten_branches): Use it instead of ifdefs.
8613         * varasm.c (enum in_section): Add in_readonly_data.
8614         (text_section, data_section): Tidy.
8615         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
8616
8617         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
8618         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
8619         (READONLY_DATA_SECTION): Don't undef.
8620
8621         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
8622         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
8623         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
8624
8625         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
8626         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
8627         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
8628         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
8629
8630         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
8631         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
8632         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
8633         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
8634         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
8635         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
8636         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
8637         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
8638         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
8639
8640         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
8641         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
8642         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
8643         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
8644         config/pa/pa64-hpux.h, config/sparc/litecoff.h
8645         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
8646
8647         * config/elfos.h, config/netware.h, config/svr3.h,
8648         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
8649         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
8650         config/h8300/h8300.h, config/i386/i386-interix.h,
8651         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
8652         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
8653
8654         * config/elfos.h, config/netware.h, config/svr3.h,
8655         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
8656         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
8657         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
8658         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
8659
8660         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
8661         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
8662         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
8663         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
8664         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
8665         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
8666         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
8667         config/rs6000/sysv4.h, config/v850/v850.h
8668         (EXTRA_SECTIONS): Remove in_const/in_rdata.
8669         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
8670
8671         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
8672         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
8673         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
8674         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
8675         * config/alpha/alpha.c (alpha_start_function): Likewise.
8676         (alpha_write_linkage): Likewise.
8677         * config/m32r/m32r.c (m32r_select_section): Likewise.
8678         * config/m88k/m88k.c (m88k_select_section): Likewise.
8679         * config/mips/mips.c (mips_select_rtx_section): Likewise.
8680         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
8681         (rs6000_elf_select_section): Likewise.
8682         * config/v850/v850.c (v850_select_section): Likewise.
8683
8684         * config/1750a/1750a.h, config/i860/sysv3.h
8685         (READONLY_DATA_SECTION_ASM_OP): New.
8686         READONLY_DATA_SECTION_ASM_OP.
8687         * config/i386/interix.c, config/i386/winnt.c
8688         (i386_pe_unique_section): Always use .rdata prefix.
8689         * config/pa/som.h (readonly_data): Always switch to read-only section.
8690         (READONLY_DATA_SECTION): Predicate on flag_pic.
8691         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
8692         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
8693         (READONLY_DATA_SECTION): Update.
8694
8695 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
8696
8697         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
8698         is used without -Wformat.
8699         * c-common.h (warn_format_zero_length): Declare extern.
8700         * c-decl.c (warn_options): Add "format-zero-length".
8701         * c-format.c (warn_format_zero_length): Declare.
8702         (set_Wformat): Set warn_format_zero_length for -Wformat.
8703         (check_format_info): Only warn about zero-length formats if
8704         warn_format_zero_length is true.  Include the format type
8705         name in the warning message.
8706         * doc/invoke.texi: Document -Wformat-zero-length.
8707         * testsuite/gcc.dg/format/zero-length-1.c: New test.
8708
8709 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
8710
8711         * timevar.c: Fix formatting.
8712         * tlink.c: Likewise.
8713         * toplev.c: Likewise.
8714         * tree-dump.c: Likewise.
8715         * tree-inline.c: Likewise.
8716
8717 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
8718
8719         * cppinit.c (cpp_post_options): If preprocessed, turn off
8720         traditional.  If traditional, turn off column numbers.
8721         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
8722         * cpptrad.c (handle_newline): Update line_base.
8723         (skip_comment): Handle -Wcomment.
8724
8725 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
8726
8727         * cppinit.c (struct builtin): Remove unused fields.
8728         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
8729         (operator_array): New - was second half of builtin_array.
8730         (init_builtins): Simplify loop over builtin_array/operator_array.
8731
8732 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
8733
8734         * defaults.h (UNIQUE_SECTION): Remove.
8735         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
8736
8737 2002-05-17  Richard Henderson  <rth@redhat.com>
8738
8739         * expr.c (init_expr_once): Don't use start/end_sequence.
8740         Use rtx_alloc instead of emit_insn.
8741         * toplev.c (lang_dependent_init): Run init_expr_once here ...
8742         (lang_independent_init): ... not here.
8743
8744 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
8745
8746         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
8747
8748 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8749
8750         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
8751         for fixed registers, possibly used for global register variables.
8752         (initial_elimination_offset, avr_output_function_prologue,
8753         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
8754
8755 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8756
8757         * Makefile.in: Update for cpptrad.c.
8758         * cpphash.h (struct cpp_buffer): New members for buffer
8759         overlays.
8760         (struct cpp_reader): New members for traditional output.
8761         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
8762         * cppinit.c (cpp_create_reader): Set trad_line.
8763         (cpp_destroy): Free trad_out_base if used.
8764         (cpp_read_main_file): Overlay an empty buffer if traditional.
8765         (cpp_finish_options): Don't do builtins.
8766         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
8767         (cpp_handle_option): Handle it.
8768         * cpplex.c (continue_after_nul): New.
8769         (_cpp_lex_direct): Use handle_nul.
8770         * cpplib.h (struct cpp_options): New traditional option.
8771         * cpptrad.c: New file.
8772
8773 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8774
8775         * c-common.c (c_common_init_options): Use C89 for Objective-C,
8776         and set the options flag.
8777         * cppinit.c (lang_flags): Remove objc.
8778         (lang_defaults): Remove OBJC and OBJCXX.
8779         (set_lang): Update.
8780         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
8781         (cpp_handle_option): Remove -+ and -lang-objc++.
8782         For ObjC, just set a flag.
8783         (print_help): Update.
8784         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
8785
8786 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8787
8788         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
8789         bootstrap with -mips3.
8790
8791 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
8792
8793         * final.c: Fix formatting.
8794         * fix-header.c: Likewise.
8795         * flow.c: Likewise.
8796         * fold-const.c: Likewise.
8797         * function.c: Likewise.
8798
8799 2002-05-17  David S. Miller  <davem@redhat.com>
8800
8801         PR c/6689, PR optimization/6615
8802         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
8803         and make it a pointer to rtx.  Update comments.
8804         (update_equiv_regs): When scanning for equivalences, record
8805         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
8806         it while making the equiv replacements.
8807
8808 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8809
8810         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
8811
8812 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
8813
8814         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
8815         when encoding visibility into SYMBOL_REF_FLAG.
8816
8817 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
8818
8819         * expr.c (force_operand): Fix reversed move.
8820
8821 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
8822
8823         * doc/install.texi (Testing): Mention two common DejaGnu warnings
8824         that can be ignored.
8825
8826 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8827
8828         * doc/install.texi (Final install): Recommend to install into a
8829         "clean" target directory.
8830
8831 2002-05-17  Richard Henderson  <rth@redhat.com>
8832
8833         * config/ia64/ia64.md: Use braced strings instead of quoted strings
8834         for code blocks.  Tidy whitespace.
8835
8836 2002-05-17  Richard Henderson  <rth@redhat.com>
8837
8838         * hooks.c (hook_tree_bool_false): New.
8839         * hooks.h: Declare it.
8840         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
8841         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
8842         * target.h (select_section, unique_section): New.
8843         (in_small_data_p): New.
8844         * varasm.c (resolve_unique_section): Use hooks instead of macros.
8845         (variable_section, output_constant_def_contents): Likewise.
8846         (default_select_section, default_unique_section): New.
8847         (categorize_decl_for_section, default_elf_select_section): New.
8848         * output.h: Declare them.
8849
8850         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
8851         (TARGET_ASM_SELECT_SECTION): New.
8852         (SELECT_SECTION): Move ...
8853         * config/darwin.c (machopic_select_section): ... here.
8854         * config/darwin-protos.h: Update.
8855
8856         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
8857         (SELECT_SECTION): Move ...
8858         * config/nextstep.c (nextstep_select_section): ... here.
8859         * config/nextstep-protos.h: Update.
8860
8861         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
8862         (TARGET_ASM_SELECT_SECTION): New.
8863         * config/svr3.h (SELECT_SECTION): Remove.
8864
8865         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
8866         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
8867         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
8868         (alpha_encode_section_info): Use it.
8869         * config/alpha/alpha-protos.h: Update.
8870         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
8871         (SELECT_SECTION, UNIQUE_SECTION): Remove.
8872         (TARGET_ASM_SELECT_SECTION): New.
8873         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
8874
8875         * config/arm/pe.h (UNIQUE_SECTION): Remove.
8876         (TARGET_ASM_UNIQUE_SECTION): New.
8877
8878         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
8879         (avr_unique_section): Rename from unique_section; make static.
8880         * config/avr/avr-protos.h: Update.
8881         * config/avr/avr.h (UNIQUE_SECTION): Remove.
8882
8883         * config/c4x/c4x.h (SELECT_SECTION): Remove.
8884
8885         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
8886         (TARGET_ASM_UNIQUE_SECTION): New.
8887         * config/i386/i386-interix.h: Likewise.
8888         * config/i386/win32.h: Likewise.
8889         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
8890         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
8891         * config/i386/sco5.h (SELECT_SECTION): Remove.
8892         (TARGET_ASM_SELECT_SECTION): New.
8893         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
8894
8895         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
8896         instead of SELECT_SECTION.
8897         * config/m68k/dpx2.h: Likewise.
8898         * config/rs6000/lynx.h: Likewise.
8899
8900         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
8901         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
8902         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
8903         (ia64_in_small_data_p): New.
8904         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
8905         (ia64_aix_select_section, ia64_aix_unique_section): New.
8906         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
8907         (SELECT_SECTION, UNIQUE_SECTION): Remove.
8908
8909         * config/m32r/m32r.h (SELECT_SECTION): Remove.
8910         (TARGET_ASM_SELECT_SECTION): New.
8911         * config/m32r/m32r.c (m32r_select_section): Take align argument.
8912         * config/m32r/m32r-protos.h: Update.
8913
8914         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
8915         (SELECT_SECTION): Move ...
8916         * config/m88k/m88k.c (m88k_select_section): ... here.
8917
8918         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
8919         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
8920         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
8921         (mcore_unique_section): Make static.
8922         * config/mcore/mcore-protos.h: Update.
8923
8924         * config/mips/elf.h (UNIQUE_SECTION): Remove.
8925         (TARGET_ASM_UNIQUE_SECTION): New.
8926         * config/mips/elf64.h: Likewise.
8927         * config/mips/iris6gld.h: Likewise.
8928         * config/mips/linux.h: Likewise.
8929         * config/mips/mips-protos.h: Update.
8930         * config/mips/mips.c (mips_select_section): Add align argument.
8931         * config/mips/mips.h (SELECT_SECTION): Remove.
8932         (TARGET_ASM_SELECT_SECTION): New.
8933
8934         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
8935         * config/mmix/mmix.c (mmix_select_section): Remove.
8936         (mmix_unique_section): Remove.
8937         * config/mmix/mmix-protos.h: Update.
8938
8939         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
8940         (SELECT_SECTION): Move ...
8941         * config/pa/pa.c (pa_select_section): ... here.
8942         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
8943
8944         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
8945         from rs6000_select_section and make static.
8946         (rs6000_elf_unique_section): Similarly.
8947         (rs6000_xcoff_select_section): From xcoff.h.
8948         (rs6000_xcoff_unique_section): Likewise.
8949         * config/rs6000/rs6000-protos.h: Update.
8950         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
8951         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
8952         * config/rs6000/xcoff.h: Likewise.
8953
8954         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
8955         (SELECT_SECTION): Move ...
8956         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
8957
8958         * config/v850/v850.h (SELECT_SECTION): Move ...
8959         * config/v850/v850.c (v850_select_section): ... here.
8960         (TARGET_ASM_SELECT_SECTION): New.
8961
8962         * config/vax/vms.h (SELECT_SECTION): Move ...
8963         * config/vax/vax.c (vms_select_section): ... here.
8964         (TARGET_ASM_SELECT_SECTION): New.
8965
8966         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
8967         for the target hooks.
8968
8969 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
8970
8971         * config/arm/arm.c (emit_multi_reg_push): Do not set
8972         RTX_FRAME_RELATED_P on the SEQUENCE.
8973
8974 2002-05-16  Richard Henderson  <rth@redhat.com>
8975
8976         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
8977         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
8978
8979 2002-05-16  Richard Henderson  <rth@redhat.com>
8980
8981         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
8982
8983         * config/ia64/ia64.c (saveable_obstack): Do not declare.
8984
8985 2002-05-16  Richard Henderson  <rth@redhat.com>
8986
8987         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
8988         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
8989         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
8990         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
8991         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
8992         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
8993         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
8994         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
8995         Revert "Basic block renumbering removal", and two followup patches.
8996
8997 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
8998
8999         * lcm.c (optimize_mode_switching): Revert previous change.
9000
9001 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9002
9003         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
9004         with only extant block numbers.
9005
9006 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
9007
9008         * lcm.c (optimize_mode_switching): Fix typo.
9009
9010 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9011
9012         * flow.c (calculate_global_regs_live): Queue blocks in program order.
9013
9014 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9015
9016         * doc/install.texi (Configuration): Document PWDCMD.
9017
9018 2002-05-16  Dale Johannesen  <dalej@apple.com>
9019
9020         * combine.c (cant_combine_insn_p):  Reenable combinations
9021         involving hard regs unless CLASS_LIKELY_SPILLED_P.
9022
9023 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
9024
9025         * c-common.c (cb_register_builtins): Handle more built-ins
9026         here rather than in gcc.c specs.
9027         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
9028         (cpp_options): Pass -O flags even when only preprocessing.
9029         * toplev.c (set_fast_math_flags): New prototype.
9030         (fast_math_flags_set_p): New.
9031         (set_no_fast_math_flags): Remove.
9032         (decode_f_option): Update.
9033         * toplev.h (set_fast_math_flags): Update.
9034         (fast_math_flags_set_p): New.
9035         (set_no_fast_math_flags): Remove.
9036 config:
9037         * c4x/c4x.c (c4x_override_options): Update.
9038
9039 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
9040
9041         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
9042         Default-define here.
9043         (builtin_define_with_value): Can now wrap the expansion in
9044         quotation marks if such is wanted.
9045         (cb_register_builtins): Update calls to builtin_define_with_value.
9046         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
9047         here.
9048         (c_common_init): Set options->stdc_0_in_system_headers.
9049         * c-lex.h: Update prototype of builtin_define_with_value.
9050         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
9051         and REGISTER_PREFIX.
9052
9053         * cppinit.c (VERS, ULP, C, X): Kill.
9054         (builtin_array): Remove entries for __VERSION__,
9055         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
9056         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
9057         a constant.
9058         (init_builtins): Kill off a bunch of now-dead code.
9059         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
9060         -fno-leading-underscore.
9061         (cpp_handle_option): Remove code to set user_label_prefix.
9062         (cpp_post_options): Likewise.
9063
9064         * cpplib.h (struct cpp_options): Remove user_label_prefix.
9065         (stdc_0_in_system_headers): New.
9066         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
9067         stdc_0_in_system_headers) too to decide the value of __STDC__.
9068
9069         * tradcpp.c (user_label_prefix): Kill.
9070         (main): Remove code handling -f(no-)leading-underscore.
9071         (initialize_builtins): Don't define __REGISTER_PREFIX__
9072         or __USER_LABEL_PREFIX__.
9073         (install_value): Wrap compound statement in dummy loop so the
9074         macro works properly in an if statement.
9075
9076
9077 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
9078
9079         * loop.h (struct loop_info): Add member has_prefetch.
9080         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
9081         (prescan_loop): Initialize has_prefetch.
9082         (struct prefetch_info): Change prefetch_in_loop and
9083         prefetch_before_loop from bit fields to ints.
9084         (emit_prefetch_instructions): Several small fixes.
9085         (check_dbra_loop): Don't reverse loop that uses prefetch.
9086
9087 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9088
9089         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
9090         * configure.in: Likewise.
9091         * fixinc/check.tpl: Likewise.
9092         * fixinc/fixinc.dgux: Likewise.
9093         * fixinc/fixinc.svr4: Likewise.
9094         * fixinc/fixinc.winnt: Likewise.
9095         * fixinc/fixincl.sh: Likewise.
9096         * fixproto: Likewise.
9097         * configure: Regenerate.
9098
9099 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9100
9101         Basic block renumbering removal:
9102         * basic_block.h (struct basic_block_def): Renamed index to sindex,
9103         added prev_bb and next_bb fields.
9104         (n_basic_blocks): Renamed to num_basic_blocks.
9105         (last_basic_block): New, index of last basic block.
9106         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
9107         traversing basic block chain.
9108         (BLOCK_NUM): index -> sindex.
9109         (create_basic_block_structure, create_basic_block): Declaration changed.
9110         (debug_num2bb): Declare.
9111         (expunge_block_nocompact): Declaration removed.
9112         (link_block, unlink_block, compact_blocks): Declare.
9113         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
9114         * cfg.c (entry_exit_blocks): Initialize new fields.
9115         (clear_edges, alloc_block, expunge_block, cached_make_edge,
9116         redirect_edge_pred, dump_flow_info, dump_edge_info,
9117         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
9118         free_aux_for_edges): Modified.
9119         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
9120         (expunge_block_nocompact): Removed.
9121         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
9122         find_unreachable_blocks, create_edge_list, print_edge_list,
9123         verify_edge_list, flow_edge_list_print, remove_fake_successors,
9124         remove_fake_edges, flow_reverse_top_sort_order_compute,
9125         flow_depth_first_order_compute, flow_preorder_transversal_compute,
9126         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
9127         flow_dfs_compute_reverse_execute): Modified.
9128         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
9129         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
9130         Modified.
9131         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
9132         merge_blocks_move_predecessor_nojumps,
9133         merge_blocks_move_successor_nojumps, merge_blocks,
9134         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
9135         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
9136         * cfglayout.c (skip_insns_after_block, label_for_bb,
9137         record_effective_endpoints, scope_to_insns_finalize,
9138         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
9139         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
9140         cfg_layout_duplicate_bb): Modified.
9141         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
9142         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
9143         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
9144         flow_loops_find, flow_loop_outside_edge_p): Modified.
9145         * cfgrtl.c (create_basic_block_structure, create_basic_block,
9146         flow_delete_block, compute_bb_for_insn, split_block,
9147         try_redirect_by_replacing_jump, redirect_edge_and_branch,
9148         force_nonfallthru_and_redirect, tidy_fallthru_edge,
9149         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
9150         commit_edge_insertions, commit_edge_insertions_watch_calls,
9151         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
9152         purge_all_dead_edges): Modified.
9153         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
9154         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
9155         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
9156         Modified.
9157         * conflict.c (conflict_graph_compute): Modified.
9158         * df.c (FOR_ALL_BBS): Removed.
9159         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
9160         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
9161         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
9162         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
9163         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
9164         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
9165         * final.c (compute_alignments, final_scan_insn): Modified.
9166         * flow.c (verify_local_live_at_start, update_life_info,
9167         update_life_info_in_dirty_blocks, free_basic_block_vars,
9168         delete_noop_moves, calculate_global_regs_live,
9169         initialize_uninitialized_subregs, allocate_bb_life_data,
9170         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
9171         mark_used_reg, count_or_remove_death_notes): Modified.
9172         * function.c (thread_prologue_and_epilogue_insns): Modified.
9173         * gcse.c (struct null_pointer_info): Change typo of current_block
9174         to basic_block.
9175         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
9176         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
9177         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
9178         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
9179         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
9180         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
9181         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
9182         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
9183         pre_delete, one_pre_gcse_pass, compute_transpout,
9184         invalidate_nonnull_info, delete_null_pointer_checks_1,
9185         free_code_hoist_mem, compute_code_hoist_vbeinout,
9186         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
9187         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
9188         compute_store_table, build_store_vectors, insert_insn_start_bb,
9189         insert_store, replace_store_insn, free_store_memory, store_motion):
9190         Modified.
9191         * global.c (global_alloc, global_conflicts, mark_elimination,
9192         build_insn_chain): Modified.
9193         * graph.c (print_rtl_graph_with_bb): Modified.
9194         * haifa-sched.c (sched_init): Modified.
9195         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
9196         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
9197         if_convert): Modified.
9198         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
9199         compute_insert_delete, pre_edge_lcm, compute_available,
9200         compute_farthest, compute_nearerout, compute_rev_insert_delete,
9201         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
9202         Modified.
9203         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
9204         * loop.c (loop_dump_aux): Modified.
9205         * predict.c (combine_predictions_for_insn, estimate_probability,
9206         last_basic_block_p, process_note_prediction, process_note_predictions,
9207         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
9208         expensive_function_p, estimate_bb_frequencies,
9209         compute_function_frequency): Modified.
9210         * print-rtl.c (print_rtx): Modified.
9211         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
9212         get_exec_counts, compute_branch_probabilities, compute_checksum,
9213         branch_prob, find_spanning_tree): Modified.
9214         * recog.c (split_all_insns, peephole2_optimize): Modified.
9215         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
9216         convert_regs_1, convert_regs_2, convert_regs): Modified.
9217         * regclass.c (scan_one_insn, regclass): Modified.
9218         * regmove.c (mark_flags_life_zones, regmove_optimize,
9219         combine_stack_adjustments): Modified.
9220         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
9221         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
9222         * reorg.c (dbr_schedule): Modified.
9223         * resource.c (find_basic_block, init_resource_info): Modified.
9224         * sbitmap.c (sbitmap_intersection_of_succs,
9225         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
9226         sbitmap_union_of_preds): Modified.
9227         * sched-deps.c (init_dependency_caches): Modified.
9228         * sched-ebb.c (schedule_ebbs): Modified.
9229         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
9230         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
9231         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
9232         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
9233         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
9234         ssa_const_prop): Modified.
9235         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
9236         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
9237         * ssa.c (remove_phi_alternative, find_evaluations,
9238         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
9239         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
9240         make_regs_equivalent_over_bad_edges,
9241         make_equivalent_phi_alternatives_equival,
9242         compute_conservative_reg_partition,
9243         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
9244         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
9245         Modified.
9246
9247 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
9248
9249         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
9250
9251 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
9252
9253         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
9254         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
9255         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
9256         calling CONSTANT_POOL_ADDRESS_P.
9257         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
9258         to decide whether to define __arm__ or __thumb.
9259         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
9260         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
9261
9262 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
9263
9264         * config/arc/arc.h (CPP_PREDEFINES): Remove.
9265         (CPP_SPEC): Update.
9266         (TARGET_CPU_CPP_BUILTINS): New.
9267
9268 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
9269
9270         * cpphash.h (cpp_macro): Move here, and make expansion a union.
9271         * cppmacro.c (cpp_macro): Remove.
9272         (enter_macro_context, replace_args, warn_of_redefinition,
9273         _cpp_create_definition, cpp_macro_definition): Update.
9274
9275 2002-05-16  Jason Merrill  <jason@redhat.com>
9276
9277         * config/mips/mips.c (mips_output_external): Don't do sdata
9278         optimization for a variable with DECL_COMDAT set.
9279
9280 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
9281
9282         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
9283         Cleanups for accepting modifiers on pointers.
9284         Fix predicate typos.
9285         Allow long pointers as well as int pointers.
9286
9287 2002-05-15  Richard Henderson  <rth@redhat.com>
9288
9289         * varasm.c (merge_weak): Remove special case for extern and common.
9290
9291 2002-05-15  Matt Hiller  <hiller@redhat.com>
9292
9293         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
9294         XFAILing.
9295         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
9296         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
9297         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
9298         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
9299         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
9300         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
9301
9302 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
9303
9304         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
9305
9306 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
9307
9308         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
9309         ("altivec_mfvscr"): Read from VSCR.
9310
9311         Add vscr sets for the following insns: altivec_vctuxs,
9312         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
9313         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
9314         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
9315         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
9316         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
9317         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
9318         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
9319         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
9320         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
9321         altivec_vsum2sws, altivec_vsumsws.
9322
9323         * config/rs6000/rs6000.h: Add VSCR fixed register.
9324         (CALL_REALLY_USED_REGISTERS): Add vscr.
9325         (CALL_USED_REGISTERS): Same.
9326         (FIXED_REGISTERS): Same.
9327         (REG_ALLOC_ORDER): Same.
9328         (reg_class): Add VSCR_REGS.
9329         (REG_CLASS_NAMES): Same.
9330         (REG_CLASS_CONTENTS): Same.
9331         (VSCR_REGNO): New.
9332         (REGISTER_NAMES): Add vscr.
9333         (DEBUG_REGISTER_NAMES): Same.
9334         (ADDITIONAL_REGISTER_NAMES): Same.
9335         (FIRST_PSEUDO_REGISTER): Increment.
9336         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
9337
9338 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
9339
9340         * fold-const.c (fold): Fix a typo.
9341
9342 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
9343
9344         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
9345         comparison against the highest or lowest integer value before
9346         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
9347         transformation and that of an unsigned comparison against 0
9348         right after.
9349
9350 2002-05-15  Richard Henderson  <rth@redhat.com>
9351
9352         * varasm.c (merge_weak): Error for any weakening after definition.
9353         Adjust weakening after use warning to catch more cases.
9354         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
9355         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
9356
9357 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
9358
9359         * invoke.texi (-malign-double): Re-add lost warning.
9360
9361         * i386-protos.h (x86_output_mi_thunk): Declare.
9362         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
9363         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
9364
9365         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
9366         when flag_asynchronous_unwind_tables is set.
9367
9368         * flags.h (flag_reorder_functions): Declare.
9369         * function.c (prepare_function_start): Initialize frequnecy.
9370         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
9371         * Makefile.in (predict.o): Add dependency on target.h and params.h
9372         * defaults.h (HOT_TEXT_SECTION_NAME,
9373         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
9374         * predict.c (choose_function_section): New function.
9375         (estimate_bb_frequencies): Use it.
9376         * toplev.c (flag_reorder_functions): New global variable.
9377         (lang_independent_options): New.
9378         (parse_options_and_default_flags): Set.
9379         * varasm.c (assemble_start_function): Bypass functdion alignment
9380         for never executed functions.
9381         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
9382         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
9383         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
9384         Document.
9385
9386         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
9387
9388         * predict.c: Inlude profile.h
9389         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
9390         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
9391         Use the information about maximal counter in the program.
9392
9393         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
9394
9395         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
9396         probably_never_executed_bb_p): New functions.
9397         * cfgcleanup.c (outgoing_edges_match): Use them.
9398         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
9399         (maybe_hot_bb_p, probably_cold_bb_p,
9400         probably_never_executed_bb_p): New functions.
9401
9402         * function.h (function): Add new field function_frequency.
9403         * predict.c (compute_function_frequency): New function.
9404         (estimate_probability): Call it.
9405
9406 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
9407
9408         PR optimization/5172, optimization/5200
9409         * gcse.c (gcse_main): Disable store_motion.
9410
9411 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
9412
9413         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
9414         (c_common_nodes_and_builtins): Use it.
9415         (builtin_define_with_value): New function.
9416         (cb_register_builtins): Define __SIZE_TYPE__,
9417         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
9418         using builtin_define_with_value.  Use consistent notation when
9419         defining __GXX_WEAK__.
9420         (WCHAR_TYPE_SIZE): Don't redefine.
9421         (combine_strings): Don't use WCHAR_TYPE_SIZE.
9422
9423         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
9424         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
9425         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
9426         * tradcpp.c (initialize_builtins): Likewise.
9427         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
9428
9429         * c-lex.h (builtin_define_with_value): Prototype.
9430         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
9431         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
9432         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
9433
9434         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
9435         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
9436         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
9437         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
9438         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
9439         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
9440         config/sparc/sol2-bi.h, config/sparc/sparc.h:
9441         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
9442         to __SIZE_TYPE__ etc from all spec strings. When this makes
9443         extra specs empty, delete them.
9444
9445 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9446
9447         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
9448         for PA8000 or generating dwarf2 call frame information.
9449         (output_call): Remove DO_FRAME_NOTES check from return pointer
9450         optimization.
9451         (following_call): Return 0 when scheduling for PA8000 or generating
9452         dwarf2 call frame information.  Revise comment.
9453
9454 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
9455
9456 config/alpha:
9457         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
9458         and __IEEE_FP_INEXACT as appropriate.
9459         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
9460         (CPP_SPEC): Remove ieee defines.
9461         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
9462
9463 2002-05-14  Richard Henderson  <rth@redhat.com>
9464
9465         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
9466         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
9467
9468 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
9469
9470         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
9471         (CPP_SPEC): Update.
9472         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
9473         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
9474         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
9475         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
9476         (EXTRA_SPECS): Update.
9477         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
9478         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
9479         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
9480         define TARGET_OS_CPP_BUILTINS if necessary.
9481
9482 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
9483
9484         * gcc.c (cpp_options): Must pass -m* and -f* options
9485         to the front end even when only preprocessing.
9486         (cc1_options): Remove redundant -lang-c.
9487         * tradcpp.c (main): Ignore -m options.
9488 objc:
9489         * lang-specs.h: Similarly.
9490
9491 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
9492
9493         * genautomata.c (transform_3): Add code for transformation
9494         `(A,B,...)+C -> A+C,B,...'.
9495
9496 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
9497
9498         * final.c (end_final): Do not output profile_arcs constructor, when
9499         no functions are instrumented.
9500
9501 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
9502
9503         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
9504
9505 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9506
9507         * doc/install.texi: Remove special markup originally required for
9508         HTML generation with texi2html.
9509
9510 2002-05-14  Andreas Schwab  <schwab@suse.de>
9511
9512         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
9513         SELECT_SECTION.
9514         (UNIQUE_SECTION): Define to get small data correctly.
9515
9516         * varasm.c (resolve_unique_section): Add third parameter
9517         flag_function_or_data_sections and use it instead of
9518         flag_function_sections.
9519         (assemble_start_function): Pass flag_function_sections.
9520         (asm_emit_uninitialised): Pass flag_data_sections.
9521         (assemble_variable): Likewise.
9522
9523 2002-05-14  Richard Henderson  <rth@redhat.com>
9524
9525         * config/i386/i386.md: Use define_constants for unspec numbers.
9526         * config/i386/i386.c: Likewise.
9527
9528 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
9529
9530         * doc/contrib.texi: Update my entry.
9531
9532 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
9533
9534         * fixinc/inclhack.def (winidss_valist): Limit applicability.
9535         * fixinc/fixincl.x: Regenerated.
9536         * fixinc/tests/base/math.h: Update.
9537         * fixinc/tests/base/testing.h: Likewise.
9538
9539 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
9540
9541         * genattr.c (gen_attr): Don't emit a comma after the last
9542         enumerator.
9543
9544 2002-05-13  Richard Henderson  <rth@redhat.com>
9545
9546         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
9547         by non-local gotos.
9548         * recog.c (peephole2_optimize): Likewise.
9549
9550 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
9551
9552         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
9553         input to O_BINARY.
9554
9555 2002-05-13  Jeffrey A Law  (law@redhat.com)
9556
9557         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
9558         Update prototype and callers.
9559         (propagate_one_insn): Stack pointer adjustments kill MEMs on
9560         the mem_set_list which reference the stack pointer, as do
9561         calls to constant functions as they may clobber outgoing
9562         argument space.
9563
9564         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
9565
9566         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
9567         (ia32_multipass_dfa_lookahead): New function.
9568
9569 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
9570
9571         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
9572         (translate_options): Remove 'V'.
9573         (process_command): Similarly.
9574 doc:
9575         * invoke.texi: Remove documentation of 'V'.
9576
9577 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
9578
9579         * config/s390/linux.h: Revert 2002-04-22 changes.
9580
9581 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
9582
9583         * config/fr30/fr30.md: Only allow splits of immediate loads
9584         if the destination is a register.
9585
9586 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
9587
9588         * Makefile.in (c-common.o, cppinit.o): Update.
9589         * c-common.c: Include except.h.
9590         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
9591         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
9592         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
9593         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
9594         CPP_PREDEFINES): Handle here.
9595 config:
9596         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
9597         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
9598         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
9599         TARGET_OS_CPP_BUILTINS.
9600         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
9601         (CPP_SPEC, EXTRA_SPECS): Update.
9602         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
9603         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
9604         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
9605         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
9606         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
9607 doc:
9608         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
9609         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
9610
9611 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
9612
9613         * emit-rtl.c (global_rtl): Update comment.
9614         (const_double_htab, const_double_htab_hash,
9615         const_double_htab_hash, lookup_const_double): New.
9616         (const_int_htab_hash, const_int_htab_eq): Remove const
9617         qualifiers, which cause tons of warnings with RTL checking on.
9618         (gen_rtx_CONST_DOUBLE): Deleted.
9619         (const_double_from_real_value): New function - bears some
9620         resemblance to the former immed_real_const_1.
9621         (immed_double_const): Moved here from varasm.c and
9622         simplified.
9623         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
9624         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
9625         (gen_rtx): Use immed_double_const.
9626         (init_emit_once): Initialize the const_double_htab.  Use
9627         REAL_VALUE_FROM_INT where possible.  Can now use
9628         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
9629         * varasm.c (struct varasm_status): Remove x_const_double_chain.
9630         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
9631         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
9632         (init_varasm_status, mark_varasm_status): Don't touch
9633         x_const_double_chain.
9634
9635         * output.h: Delete prototype for clear_const_double_mem.
9636         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
9637         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
9638         const_double_from_real_value, not immed_real_const_1, and use
9639         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
9640         CONST_DOUBLE_ATOF.
9641         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
9642         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
9643         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
9644         (gen_rtx_REG): Second arg is unsigned.
9645
9646         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
9647         (excluded_rtx): New, return true for CONST_DOUBLE.
9648         (genmacro): Write nothing for excluded codes.
9649         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
9650         * expr.c (expand_expr): Likewise.
9651         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
9652         CONST_DOUBLE_CHAIN.
9653         * toplev.c (rest_of_compilation): Don't call
9654         clear_const_double_mem.
9655
9656         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
9657         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
9658         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
9659         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
9660         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
9661         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
9662         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
9663         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
9664
9665 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9666
9667         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
9668
9669 2002-05-12  Tom Tromey  <tromey@redhat.com>
9670
9671         * tree.h (copy_node): Don't mention TREE_PERMANENT.
9672
9673 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
9674
9675         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
9676         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
9677         * gensupport.h: Prototype new routines.
9678         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
9679         use of printf.
9680         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
9681         (next_comma_elt): Use scan_comma_elt.
9682
9683         * config/i386/i386.md: Use new attribute notation to break up
9684         long lines in define_attr forms.
9685
9686 2002-05-12  Richard Henderson  <rth@redhat.com>
9687
9688         * expr.c (compress_float_constant): New.
9689         (emit_move_insn): Use it.
9690         (float_extend_from_mem): New.
9691         (init_expr_once): Initialize it.
9692         * real.c (exact_real_truncate): New.
9693
9694         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
9695         dropped into memory; penalize for size.
9696         (RTX_COSTS): FLOAT_EXTEND is free.
9697         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
9698         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
9699
9700 2002-05-12  Richard Henderson  <rth@redhat.com>
9701
9702         * profile.h (profile_info): Add missing extern to declaration.
9703         * profile.c (profile_info): Define it.
9704
9705 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9706
9707         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
9708         used for DImode and TImode.
9709
9710 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9711
9712         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
9713         fake a newline.
9714
9715 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
9716
9717         * config/rs6000/rs6000.c (rs6000_default_long_calls,
9718         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
9719         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
9720         (rs6000_override_options): Handle -m(no-)longcall.
9721         (init_cumulative_args, output_mi_thunk): Check for both
9722         longcall and shortcall attributes on the function.
9723         (rs6000_attribute_table): Add "shortcall".
9724         (rs6000_handle_longcall_attribute): Update comment.
9725         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
9726         altivec_expand_ternop_builtin): Add default clauses to switches
9727         to silence warnings.
9728
9729         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
9730         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
9731         (TARGET_OPTIONS): Add longcall and no-longcall.
9732
9733         * config/rs6000/rs6000.md (call_nonlocal_sysv,
9734         call_value_nonlocal_sysv): Split by alternatives.  One pair
9735         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
9736         the call cookie.  The other pair accepts only LR/CTR and has
9737         no restriction.
9738
9739         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
9740         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
9741         tmake_file.
9742         * config/rs6000/rs6000-c.c: New file.
9743         * config/rs6000/t-rs6000-c-rule: New file.
9744         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
9745         Prototype rs6000_pragma_longcall.
9746
9747         * doc/extend.texi: Document shortcall attribute.
9748         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
9749
9750 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9751
9752         * reorg.c (dbr_schedule): Remove unnecessary test.
9753
9754 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
9755
9756         * i386.md (testsi to testqi spliters): New.
9757
9758         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
9759
9760         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
9761
9762         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
9763
9764         * basic-block.h: New flag EDGE_CAN_FALLTHRU
9765         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
9766         that can be made fallthru.
9767
9768         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
9769
9770         * cfglayout.c (cleanup_unconditional_jumps): New static function.
9771         (cfg_layout_initialize): Use it.
9772
9773 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9774
9775         * config/avr/avr.c (avr_mcu_types): Update supported devices.
9776         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
9777         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
9778
9779 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
9780
9781         * dbxout.c: Fix formatting.
9782         * dependence.c: Likewise.
9783         * df.c: Likewise.
9784         * diagnostic.c: Likewise.
9785         * doloop.c: Likewise.
9786         * dominance.c: Likewise.
9787         * doschk.c: Likewise.
9788         * dwarf2asm.c: Likewise.
9789         * dwarf2out.c: Likewise.
9790         * dwarfout.c: Likewise.
9791
9792 2002-05-10  Richard Henderson  <rth@redhat.com>
9793
9794         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
9795         Convert integers constants as needed.  Replace "nwords" field with
9796         "sizeof_bb".
9797         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
9798         * function.h: Fix typo in comment.
9799         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
9800
9801 2002-05-10  Roger Sayle  <roger@eyesopen.com>
9802
9803         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
9804         into the equivalent (signed char)c > 0.
9805
9806 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
9807
9808         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
9809         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
9810         (struct prefetch_info): Fix spelling of member bytes_accessed.
9811         (emit_prefetch_instructions): Make dump messages more regular;
9812         restructure code to add more dump messages; use new macros for
9813         heuristics. (There are no code generation changes in any of this).
9814
9815 2002-05-10  David S. Miller  <davem@redhat.com>
9816
9817         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
9818         (struct rtx_def): Update unchanging flag comment.
9819         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
9820         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
9821         to be handled to INSN too.
9822         (dbr_schedule): Likewise.
9823         * resource.c (next_insn_no_annul): Likewise.
9824
9825         * cse.c (rtx_cost): Remove multiplication by power of 2 special
9826         casing.
9827
9828 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9829
9830         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
9831         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
9832         (possibly) work around broken /bin/sh.
9833
9834 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9835
9836         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
9837         . as N64/N32 libgcc_s.so subdirs.
9838
9839 2002-05-10  David S. Miller  <davem@redhat.com>
9840
9841         * config/sparc/sparc.md: Use define_constants for unspec numbers.
9842
9843         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
9844         more accurately.
9845         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
9846         comment.
9847         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
9848         * doc/rtl.texi: Document these macros more accurately.
9849         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
9850         JUMP_INSNs and CALL_INSNs.
9851         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
9852         or INSN_FROM_TARGET_P if the code is appropriate.
9853
9854 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9855
9856         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
9857         before using SYMBOL_REF_FLAG (addr).
9858
9859         * config/avr/avr-protos.h (avr_io_address_p): Declare.
9860         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
9861         Make non-static.  Update all callers.
9862         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
9863         New insns to clear/set/test a single bit in I/O address space.
9864
9865 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9866
9867         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
9868
9869 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9870
9871         * Makefile.in: Update.
9872         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
9873         builtin_define_std): New.
9874         (c_common_init): Register CPP builtins callback.
9875         * c-common.h (flag_iso, flag_undef): New.
9876         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
9877         * c-lex.c: Don't include target.h.
9878         (cb_register_builtins): Move to c-common.c.
9879         (init_c_lex): Don't register hook here.
9880         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
9881         (cpp_define, cpp_assert): Remove.
9882         * gcc.c (cc1_options): Pass -undef to front end.
9883         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
9884         (TARGET_INITIALIZER): Update.
9885         * target.h (struct cpp_reader): Don't predeclare.
9886         (struct gcc_target): Remove cpp builtin hook.
9887         * tree.c (default_register_cpp_builtins): Remove.
9888 doc:
9889         * tm.texi: Update.
9890
9891 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9892
9893         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
9894
9895 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9896
9897         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
9898         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
9899
9900 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
9901
9902         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
9903         * config/sparc/libgcc-sparc-glibc.ver: New file.
9904         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
9905         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
9906
9907 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
9908
9909         PR target/6429
9910         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
9911         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
9912         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
9913         base multilibs.
9914         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
9915         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
9916         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
9917         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
9918
9919 2002-05-09  Richard Henderson  <rth@redhat.com>
9920
9921         * config/ia64/ia64.md: Use define_constants for unspec numbers.
9922         * config/ia64/ia64.c: Likewise.
9923
9924 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
9925
9926         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
9927         (save_restore_insns): Likewise.
9928         (mips_expand_prologue, mips_expand_epilogue): Update callers.
9929         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
9930
9931 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
9932
9933         * athlon.md, k6.md, pentium.md, ppro.md): New files.
9934         * i386.md: Move scheduling information into new files.
9935
9936         * i386.md (type attribute): Add "rotate" for rotate insns.
9937         (rotate insns): Set type to "rotate".
9938         (various attributes and function units): Treat rotate like shift.
9939         (pent_pair attribute): Only rotates by one bit position are
9940         pairable.
9941         (sbb insns): Explicitly set pent_pair attribute on a couple
9942         that were missing it.
9943
9944 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
9945
9946         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
9947         make sure that buffer starts on odd word address.
9948         (sh_va_arg): Skip odd fp registers when reading a double precision
9949         value.
9950
9951 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9952
9953         * tree.h (preserve_data, object_permanent_p, type_precision):
9954         Remove.
9955
9956 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9957
9958         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
9959         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
9960 doc:
9961         * cpp.texi: Update for removal of obsolete features.
9962
9963 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
9964                           Jeffrey A Law  (law@redhat.com)
9965
9966         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
9967         the DFA interface for Pentium processors.
9968         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
9969         (attr_pent_pair, ix86_pent_find_pair): Remove.
9970         (ix86_sched_reorder_pentium): Remove.
9971         (ix86_sched_reorder): Remove reordering for Pentium.
9972         * i386.md (Pentium scheduling): Rewrite using DFA description.
9973
9974 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
9975
9976         * cfganal.c (can_fallthru): Fix fast path.
9977         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
9978         with edges to the next block.
9979
9980 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
9981                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
9982
9983         * final.c (end_final): Use C trees to output data structures for profiling.
9984
9985         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
9986         (profile.o): New dependency profile.h
9987         (final.o): New dependency profile.h
9988         * profile.h: New file. New global structure profile_info.
9989         * final.h (count_edges_instrumented_now): Declare.
9990         (current_function_cfg_checksum): Declare.
9991         (function_list): New structure.
9992         (functions_head, functions_tail): New static variables.
9993         (end_final): Emits more data, removed some -ax stuff.
9994         (final): Stores function names and chcksums.
9995         * gcov-io.h (__write_gcov_string): New function.
9996         (__read_gcov_string): New function.
9997         * gcov.c (read_profile): New function.
9998         (create_program_flow_graph): Uses read_profile instead of reading
9999         da_file.
10000         (read_files): Removed da_file checking, it's done by read_profile now.
10001         * libgcc2.c (bb_function_info): New structure.
10002         (bb): New field in structure, removed some -ax stuff.
10003         (__bb_exit_func): Changed structure of da_file.
10004         * profile.c (count_edges_instrumented_now): New global variable.
10005         (current_function_cfg_checksum): New global variable.
10006         (max_counter_in_program): New global variable.
10007         (get_exec_counts): New function.
10008         (compute_checksum): New function.
10009         (instrument_edges): Sets count_edges_instrumented_now.
10010         (compute_branch_probabilities): Uses get_exec_counts instead of
10011         reading da_file.
10012         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
10013         (init_branch_prob): Removed da_file checking, done in get_exec_counts
10014         now.
10015         (end_branch_prob): Removed da_file checking, done in get_exec_counts
10016         now.
10017         * gcov.texi: Updated information about gcov file format.
10018
10019 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
10020
10021         * sbitmap.c: Fix formatting.
10022         * scan.c: Likewise.
10023         * scan-decls.c: Likewise.
10024         * sched-deps.c: Likewise.
10025         * sched-ebb.c: Likewise.
10026         * sched-rgn.c: Likewise.
10027         * sched-vis.c: Likewise.
10028         * sdbout.c: Likewise.
10029         * sibcall.c: Likewise.
10030         * simplify-rtx.c: Likewise.
10031         * ssa.c: Likewise.
10032         * ssa-ccp.c: Likewise.
10033         * ssa-dce.c: Likewise.
10034         * stmt.c: Likewise.
10035         * stor-layout.c: Likewise.
10036         * stringpool.c: Likewise.
10037
10038 2002-05-09  David S. Miller  <davem@redhat.com>
10039
10040         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
10041
10042 2002-05-07  David S. Miller  <davem@redhat.com>
10043
10044         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
10045         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
10046         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
10047         library implementation clobbers the output before the inputs
10048         are fully consumed, use stack temporary for the output.
10049
10050 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
10051
10052         * config/netbsd.h (CPP_SPEC): Remove.
10053         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
10054         * config/i386/netbsd.h (CPP_SPEC): Define.
10055         * config/ns32k/netbsd.h (CPP_SPEC): Define.
10056         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
10057         * config/sparc/netbsd.h (CPP_SPEC): Define.
10058         * config/vax/netbsd.h (CPP_SPEC): Define.
10059
10060 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
10061
10062         * read-rtl.c: Fix formatting.
10063         * real.c: Likewise.
10064         * recog.c: Likewise.
10065         * regclass.c: Likewise.
10066         * regmove.c: Likewise.
10067         * reg-stack.c: Likewise.
10068         * reload1.c: Likewise.
10069         * reload.c: Likewise.
10070         * resource.c: Likewise.
10071         * rtlanal.c: Likewise.
10072         * rtl.c: Likewise.
10073         * rtl-error.c: Likewise.
10074
10075 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10076
10077         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
10078         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
10079
10080 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
10081
10082         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
10083         use __SSE2__ macro instead.
10084         * config/i386/xmmintrin.h: Likewise.
10085
10086 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
10087
10088         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
10089         and use it in all invocations of these macros.  Clean up comments.
10090         * rtl.c (rtl_check_failed_flag): Add an argument for the name
10091         of the flag access macro whose check failed.
10092         * doc/rtl.texi (Flags): Document additional flag uses.
10093
10094 2002-05-08  Robert Spier <rspier@pobox.com>
10095             Neil Booth  <neil@daikokuya.demon.co.uk>
10096
10097         PR preprocessor/6521
10098         * cppfiles.c (handle_missing_header): Don't do anything
10099         different for <> includes.
10100 doc:
10101         * cppopts.texi: Update documentation for -MG.
10102
10103 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
10104
10105         * cpplex.c (cpp_interpret_charconst): Truncate as well as
10106         sign-extend.
10107 doc:
10108         * cpp.texi: Clarify multichar charconst valuation.
10109
10110 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
10111
10112         * doc/invoke.texi: Document -mwindiss option.
10113
10114 2002-05-08  Jason Merrill  <jason@redhat.com>
10115
10116         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
10117
10118         * dwarf2out.c (gen_type_die): Abort on broken recursion.
10119
10120         PR c++/6381
10121         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
10122         REAL_CST.
10123
10124 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
10125
10126         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
10127         little-endian multilibs to override arm/thumb multilibs.
10128         Do not build hardware floating point multilibs, nor apcs-26
10129         multilibs for the Thumb.
10130
10131 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
10132
10133         PR c/6569.
10134         * varasm.c (mark_weak): New function.
10135         (merge_weak): Use it.  Do not call declare_weak.
10136         (declare_weak): Use merge_weak.
10137
10138 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
10139
10140         * cse.c (dead_libcall_p): Update counts.
10141         (delete_trivially_dead_insns): Update call of dead_libcall_p.
10142
10143 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
10144
10145         * cfglayout.c (function_tail_eff_head): Rename to ...
10146         (function_footer): ... this one.
10147         (unlink_insn_chain): New functions.
10148         (label_for_bb): Only call block_label and emit debug message.
10149         (record_effective_endpoints): Actually unlink the headers and footers.
10150         (fixup_reorder_cahin): Re-insert the unlinked sequences.
10151         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
10152         * cfglayout.h (struct reorder_block_def): New fields footer/header;
10153         remove eff_head/eff_end.
10154         * rtl.h (set_first_insn): Declare.
10155         * emit-rtl.c (set_first_insn): New function.
10156
10157         * cfglayout.c (fixup_reorder_chain): Dump duplicated
10158         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
10159         cfg_layout_duplicate_bb): New global function.
10160         (duplicate_insn_chain): New static function.
10161         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
10162         cfg_layout_duplicate_bb): Declare.
10163         (struct reorder_block_def): Add "original" field.
10164         * emit-rtl.c (emit_copy_of_insn_after): New function.
10165         * rtl.h (emit_copy_of_insn_after): Declare.
10166
10167         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
10168         (fixup_reorder_chain): properly handle edges to exit block.
10169
10170 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10171                                Jan Hubicka  <jh@suse.cz>
10172
10173         * basic-block.h (note_prediction_to_br_prob): declare.
10174         * c-semantics.c: Inlucde predit.h
10175         (expand_stmt): predict GOTO_STMT as not taken.
10176         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
10177         (cleanup_cfg): Do not free tail_recursion_list.
10178         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
10179         (flow_delete_block): Kill predictions past end of basic block.
10180         * output.h (delete_unreachable_blocks): Declare.
10181         * predict.c (predicted_by_p, process_note_predictions,
10182         process_note_prediction, last_block_p): New function.
10183         (estimate_probability): Bypass loop on PRED_CONTINUE;
10184         do not handle noreturn heuristics; kill PRED_RETURN; add
10185         PRED_EARLY_RETURN.
10186         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
10187         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
10188         * predict.h (IS_TAKEN): New constant.
10189         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
10190         * rtl.c (NOTE_INSN_PREDICTION): New.
10191         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
10192         New macro.
10193         (insn_note): add NOTE_INSN_PREDICTION.
10194         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
10195         CFG; free tail_recursion_label_list.
10196         * stmt.c: Include predict.h;
10197         (return_prediction): New.
10198         (expand_value_return): Use it.
10199         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
10200
10201 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
10202
10203         * config/mips/mips.md: Name the unspecs with define_constant.
10204         (*HILO_delay): Rename to 'hilo_delay' (no star).
10205         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
10206         (reload_outdi, reload_outsi): Likewise.
10207
10208 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
10209
10210         * toplev.c: Fix formatting.
10211
10212 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
10213
10214         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
10215         * configure.in (ac_rtlflag_checking): New.
10216         * doc/install.texi (--enable-checking): Document RTL flag checking.
10217
10218 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10219
10220         * c-common.c (c_common_init): Set options->unsigned_wchar.
10221         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
10222         group target dependencies.
10223         (init_builtins, cpp_handle_option): Update.
10224         * cpplex.c (cpp_interpret_charconst): Update.
10225         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
10226         signed_char to unsigned_char, group target dependencies.
10227         * defaults.h (WCHAR_UNSIGNED): Remove.
10228         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
10229 config:
10230         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
10231         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
10232         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
10233         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
10234         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
10235 doc:
10236         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
10237
10238 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
10239
10240         * fixinc/inclhack.def (windiss_math1): New fix.
10241         (windiss_math2): Likewise.
10242         (windiss_valist): Likewise.
10243         * fixinc/fixincl.x: Regenerated.
10244
10245 2002-05-07  Andreas Jaeger  <aj@suse.de>
10246
10247         * genautomata.c (output_internal_min_issue_delay_func): Add
10248         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
10249         (output_internal_trans_func): Likewise.
10250
10251 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
10252
10253         * pa.c (hppa_profile_hook): Use force_reg to get the address
10254         of the profile hook into an appropriate pseudo register.
10255
10256 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
10257
10258         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
10259         (LINK_START_SPEC): Handle it.
10260         (LINK_OS_SPEC): Likewise.
10261         (CPP_SPEC): Likewise.
10262         (STARTFILE_SPEC): Likewise.
10263         (LIB_SPEC): Likewise.
10264         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
10265         all platforms.
10266         (CRTSAVRES_DEFAULT_SPEC): New macro.
10267         (LIB_WINDISS_SPEC): New macro.
10268         (CPP_OS_WINDISS_SPEC): Likewise.
10269         (STARTFILE_WINDISS_SPEC): Likewise.
10270         (ENDFILE_WINDISS_SPEC): Likewise.
10271         (LINK_START_WINDISS_SPEC): Likewise.
10272         (LINK_OS_WINDISS_SPEC): Likewise.
10273         * config/rs6000/windiss.h: New file.
10274
10275 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
10276
10277         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
10278
10279 2002-05-06  David S. Miller  <davem@redhat.com>
10280
10281         * config/sparc/sparc.md (shift insns): Do not mask off
10282         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
10283         take care of it.
10284
10285 2002-05-06  Richard Henderson  <rth@redhat.com>
10286
10287         PR c++/6212
10288         * expr.c (highest_pow2_factor_for_type): New.
10289         (expand_assignment): Use it.
10290
10291 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
10292
10293         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
10294         unspec_volatile.
10295         ("altivec_mfvscr"): Same.
10296
10297 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
10298
10299         * rtl.h (struct rtx_def): Update comments.
10300         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
10301         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
10302         RTL_FLAG_CHECK macros with list of expected RTL codes.
10303         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
10304         (rtl_check_failed_flag): New.
10305         * reload1.c (reload): Use REG macro before changing rtx to MEM.
10306         (reload_cse_noop_set_p): Check rtx code before using access macro.
10307         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
10308         before using access macro.
10309
10310 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
10311
10312         * doc/rtl.texi (Flags): Update to reflect current usage.
10313
10314 2002-05-06  Roger Sayle  <roger@eyesopen.com>
10315
10316         PR opt/3995
10317         * fold-const.c (sign_bit_p): New function.
10318         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
10319         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
10320         Reapply fold when converting (A & C) == C into (A & C) != 0.
10321         (fold_binary_op_with_conditional_arg): Fix typo in comment.
10322
10323 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10324
10325         * c-common.c (warn_multichar): New.
10326         (c_common_init): Set CPP's warn_multichar.
10327         * c-common.h (warn_multichar): New.
10328         * c-decl.c (warn_multichar): Remove.
10329         * c-lex.c (lex_charconst): Update.
10330         * c-tree.h (warn_multichar): Remove.
10331         * cppexp.c (eval_token): Sign-extend charconst value.
10332         * cppinit.c (cpp_create_reader): Set warn_multichar.
10333         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
10334         each character.  Update prototype.  Sign-extend the result.
10335         * cpplib.h: Fix conditions.
10336         (struct cpp_options): Add new warning flag.
10337         (cpp_interpret_charconst): Update prototype.
10338 doc:
10339         * cpp.texi: Update documentation.
10340
10341 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
10342
10343         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
10344         Fix typo in usage of allof instead of unit.
10345
10346 2002-05-06  Richard Henderson  <rth@redhat.com>
10347
10348         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
10349         and any jump or call for IN.
10350
10351 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
10352
10353         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
10354         -msse2.
10355         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
10356
10357 2002-05-06  Roger Sayle  <roger@eyesopen.com>
10358
10359         * fold-const.c (lshift-double): Cast the high word to an unsigned
10360         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
10361         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
10362         avoid compiler warning.  (fold): Remove redundant code from
10363         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
10364
10365 2002-05-06  Jeff Law  <law@redhat.com>
10366
10367         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
10368         * pa.c (pa_adjust_cost): Remove all true dependency cost
10369         adjustments.  Also remove support for non-DFA scheduling.
10370         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
10371         to adjust true dependency costs.  Update various comments.
10372         (7100lc, 7200, 7300 scheduling): Simplify by combining the
10373         FP ALU & MPY units into a single unit.
10374
10375 2002-05-06  Catherine Moore  <clm@redhat.com>
10376
10377         * config/v850/v850.c (compute_register_save_size): Make sure
10378         to count all of the registers that will be saved.
10379
10380 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
10381
10382         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
10383
10384 2002-05-06  David S. Miller  <davem@redhat.com>
10385
10386         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
10387         allow result to overlap input operands in memory.
10388
10389 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
10390
10391 doc:
10392         * cpp.texi: Update multichar charconst docs.
10393
10394 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
10395
10396         * cpplex.c (cpp_interpret_charconst): Sign-extend each
10397         character.  Don't ignore excess characters.  Treat
10398         multicharacter character constants as signed.
10399         (cpp_parse_escape): Clarify diagnostic.
10400
10401 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
10402
10403         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
10404         use add instead of shift.
10405         (ashldi3_sp64): Likewise.
10406         (ashlsi3_const1, ashldi3_const1): Remove.
10407         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
10408         * config/sparc/sparc.c (const1_operand): New.
10409
10410 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
10411
10412         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
10413
10414 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
10415
10416         PR target/6561
10417         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
10418
10419 2002-05-05  Richard Henderson  <rth@redhat.com>
10420
10421         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
10422         memory latency adjustments.
10423         (alpha_variable_issue): Remove.
10424         (alpha_use_dfa_pipeline_interface): New.
10425         (alpha_multipass_dfa_lookahead): New.
10426         * config/alpha/alpha.md: Remove define_function_unit scheduling;
10427         include new dfa scheduling.
10428         (attr type): Add none.
10429         (blockage): Use it.
10430         * config/alpha/ev4.md: New.
10431         * config/alpha/ev5.md: New.
10432         * config/alpha/ev6.md: New.
10433
10434 2002-05-05  David S. Miller  <davem@redhat.com>
10435
10436         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
10437
10438 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
10439
10440         * cse.c: Fix formatting.
10441         * emit-rtl.c: Likewise.
10442
10443 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
10444
10445         * genautomata.c (initiate_states): Add additional guard to
10446         initialize `units_array'.
10447
10448 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
10449
10450         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
10451         process_unit_to_form_the_same_automaton_unit_lists,
10452         form_the_same_automaton_unit_lists
10453         check_unit_distributions_to_automata): New prototypes and
10454         functions.
10455         (check_automata): Rename it into `check_automata_insn_issues'.
10456         (unit_decl): New fields `the_same_automaton_unit' and
10457         `the_same_automaton_message_reported_p'.
10458         (unit_decl_t): New typedef.
10459         (the_same_automaton_lists): New gloval variable.
10460         (unit_regexp, unit_set_el, units_array, units_cmp,
10461         output_get_cpu_unit_code_func): Use the typedef.
10462         (evaluate_max_reserv_cycles): Increment
10463         `description->max_insn_reserv_cycles'.
10464         (initiate_states): Don't increment `max_cycles_num'.
10465         (transform_insn_regexps): Move code around transformation of
10466         regexps from `generate'.
10467         (generate): Remove call of `transform_insn_regexps'.
10468         (expand_automata): Call `transform_insn_regexps' and
10469         `check_unit_distributions_to_automata'.  Check errors before
10470         `generate'.
10471
10472         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
10473         automaton `ultrasparc3_1'.
10474
10475 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
10476
10477         * c-common.c (c_common_init): Set up CPP arithmetic.
10478         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
10479         something reasonable for the host.
10480         (sanity_checks): Add checks.
10481         (cpp_read_main_file): Call sanity_checks() from here...
10482         (cpp_post_options): ... not here.
10483         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
10484         * cpplib.h (struct cpp_options): New member int_precision.
10485
10486 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10487
10488         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
10489
10490 2002-05-04  David S. Miller  <davem@redhat.com>
10491
10492         * config/sparc/linux.h, config/sparc/linux64.h
10493         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
10494
10495         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
10496         more RTX codes.
10497         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
10498
10499         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
10500         of SETs.
10501
10502 2002-05-05  Tim Josling  <tej@melbpc.org.au>
10503
10504         * treelang; New directory for new sample language treelang.
10505
10506 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
10507
10508         * Makefile.in (c-lex.o): Update.
10509         * c-lex.c: Include target.h.
10510         (cb_register_builtins): New.
10511         (init_c_lex): Set builtins callback.
10512         * c-lex.h (cpp_define, cpp_assert): New prototypes.
10513         * cppinit.c (init_builtins): Use callback, including for
10514         GXX_WEAK.
10515         * cpplib.h (struct cpp_callbacks): New member.
10516         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
10517         (TARGET_INITIALIZER): Update.
10518         * target.h (struct gcc_target): New hook.
10519         * tree.c (default_register_cpp_builtins): New.
10520         * tree.h (default_register_cpp_builtins): New.
10521 doc:
10522         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
10523
10524 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
10525
10526         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
10527         (cpp_post_options): Move sanity checks to...
10528         (sanity_checks): New.
10529         * cpplex.c (maybe_read_ucs): Fix prototype.
10530         (parse_string, cpp_parse_escape): Cast for %c format specifier.
10531         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
10532         if necessary.
10533
10534 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
10535
10536         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
10537         builtins.  Use V2DI patterns instead of TI for logical operations.
10538         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
10539         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
10540         (ix86_expand_builtins): Change the pattern used for movntdq.
10541         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
10542         sse2_nandv2di3): New patterns.
10543         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
10544         on operands.
10545         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
10546         (cvtdq2pd): Correct mode on operand 1.
10547         (sse2_umulsidi3): Describe without unspec.
10548         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
10549         machine modes.
10550         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
10551         (ashlv2di3): Likewise, from sse2_ashlv2di3.
10552         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
10553         ashlv4si3, ashlv2di3): Use SImode for shift count.
10554         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
10555         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
10556         New patterns.
10557         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
10558         New typedefs.
10559         (__m128i, __m128d): New macros.
10560         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
10561         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
10562         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
10563         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
10564         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
10565         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
10566         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
10567         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
10568         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
10569         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
10570         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
10571         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
10572         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
10573         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
10574         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
10575         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
10576         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
10577         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
10578         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
10579         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
10580         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
10581         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
10582         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
10583         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
10584         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
10585         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
10586         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
10587         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
10588         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
10589         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
10590         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
10591         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
10592         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
10593         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
10594         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
10595         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
10596         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
10597         functions.
10598         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
10599         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
10600
10601 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
10602
10603         * dwarf2out.c: Fix formatting.
10604         * varasm.c: Likewise.
10605
10606 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
10607
10608         PR c/6543
10609         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
10610         clobber and use result as temporary value.
10611
10612 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
10613
10614         * expr.c (force_operand): Use expand_simple_* to handle more
10615         cases.
10616
10617 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
10618
10619         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
10620         and sign-extension.
10621         (lex_charconst): Update for change in prototype of
10622         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
10623         appropriately.
10624         * cpphash.h (BITS_PER_CPPCHAR_T): New.
10625         * cppinit.c (cpp_create_reader): Initialize them for no
10626         change in semantics.
10627         (cpp_post_options): Add sanity checks.
10628         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
10629         and truncation issues.  Calculate in type cppchar_t.
10630         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
10631         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
10632         run-time dependent precision correctly.  Return whether the
10633         result is signed or not.
10634         * cpplib.c (dequote_string): Use cppchar_t; update.
10635         * cpplib.h (cppchar_signed_t): New.
10636         struct cpp_options): New precision members.
10637         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
10638         * cppexp.c (eval_token): Update.
10639
10640 2002-05-03  David S. Miller  <davem@redhat.com>
10641
10642         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
10643         * config/sparc/sparc.c (sparc_rtx_costs): New function
10644         implementing RTX_COSTS and CONST_COSTS.
10645         * config/sparc/sparc.h (CONST_COSTS): Delete.
10646         (RTX_COSTS_CASES): Define.
10647         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
10648         the work.
10649
10650         * config/sparc/sparc.md (DFA schedulers): Split out...
10651         * config/sparc/cypress.md, config/sparc/hypersparc.md,
10652         config/sparc/sparclet.md, config/sparc/supersparc.md,
10653         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
10654
10655         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
10656         checks on it, always defined for Sparc.
10657
10658         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
10659         Tweak, and add more detailed comments.
10660
10661 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
10662
10663         * Re-apply patch accidentally reverted with
10664         DFA scheduler merge: remove all rules and variables to slurp
10665         source files out of libiberty and rebuild them with HOST_CC.
10666         ($(HOST_PREFIX_1)varray.o): New rule.
10667         (genattrtab rule): Word wrap.
10668
10669 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
10670
10671         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
10672         (CPP_SUBTARGET_SPEC): Define.
10673         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
10674         cpp_subtarget specs.
10675         (CPP_SPEC): Redefine to include %(cpp_subtarget).
10676
10677 2002-05-03  David S. Miller  <davem@redhat.com>
10678
10679         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
10680         * target.h (struct gcc_target): Delete cycle_display member.
10681
10682         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
10683         (rtx_needs_barrier): Delete reference to cycle_display unspec.
10684         (ia64_sched_reorder2): Mention need for cycle display handling
10685         once such notes exist.
10686
10687 2002-05-03  Richard Henderson  <rth@redhat.com>
10688
10689         * real.c (etoasc): Strip most trailing zeros for clarity.
10690         * sched-vis.c: Include real.h.
10691         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
10692         * Makefile.in (sched-vis.o): Add real.h.
10693
10694 2002-05-03  David S. Miller  <davem@redhat.com>
10695
10696         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
10697         no longer needed.
10698
10699 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
10700
10701         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
10702         when we get an out of range literal.
10703         (altivec_expand_ternop_builtin): Same.
10704         (altivec_expand_unop_builtin): Same.
10705         (altivec_expand_builtin): Same, for dss.
10706         (altivec_expand_builtin): Use trees instead of rtl when
10707         determining literal argument validity.
10708
10709 2002-05-03  David S. Miller  <davem@redhat.com>
10710
10711         Delete cycle display scheduling hook.
10712         * config/ia64/ia64.c (ia64_cycle_display,
10713         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
10714         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
10715         and use emit_insn_before instead of ia64_emit_insn_before.
10716         * config/ia64/ia64.md (unspec usage): Delete cycle display.
10717         (cycle_display): Delete insn pattern.
10718         * config/sparc/sparc.md (unspec usage): Delete cycle display.
10719         (cycle_display): Delete insn pattern.
10720         * config/sparc/sparc.c (sparc_cycle_display,
10721         TARGET_SCHED_CYCLE_DISPLAY): Delete.
10722         * doc/md.texi (cycle_display): Don't mention.
10723         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
10724
10725 2002-05-03  Richard Henderson  <rth@redhat.com>
10726
10727         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
10728         * recog.h: Declare them.
10729
10730         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
10731         * config/sparc/sparc.md: Use store_data_bypass_p instead.
10732         * config/sparc/sparc-protos.h: Update.
10733
10734 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
10735
10736         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
10737         -D__arch64__.  Add -D_LP64.
10738         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
10739         from sparc.h.
10740         (CPP_ARCH64_SPEC): Likewise.
10741         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
10742         (NO_BUILTIN_SIZE_TYPE): Undef.
10743
10744 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
10745
10746         * genautomata.c (min_issue_delay_pass_states): Change return type
10747         in the prototype.
10748         (min_issue_delay_pass_states): Change the algorithm.
10749         (min_issue_delay): Set up min_insn_issue_delay for the state.
10750         (output_min_issue_delay_table): Interchange the nested loops and
10751         and initiate min_insn_issue_delay for states.
10752
10753 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
10754
10755         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
10756         jump is simplejump.
10757
10758 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
10759
10760         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
10761         sequence.
10762
10763 2002-05-03  Richard Henderson  <rth@redhat.com>
10764
10765         PR opt/6534
10766         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
10767         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
10768         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
10769         code before JUMP, not EARLIEST.
10770
10771 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
10772
10773         * c-format.c (check_format_info_main): Don't check for presence of
10774         parameter for * width until after operand number has been read,
10775         and only check for it if format parameters are available.
10776         Fixes PR c/6547.
10777
10778 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
10779
10780         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
10781         (LINK_SPEC): Undef before defining.
10782
10783 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
10784
10785         PR preprocessor/6489
10786         * tradcpp.c (fixup_newlines): New.
10787         (main, finclude): Use it.
10788
10789 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
10790
10791         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
10792         * config/mips/mips.c (mips_unique_section): Strip encoding from
10793         decl name.
10794
10795 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
10796
10797         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
10798         mode.
10799
10800 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10801
10802         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
10803         (Specific): Removed buildstats references.
10804         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
10805         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
10806         Accomodate Solaris versions beyond 8.
10807         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
10808         (Specific, *-*-solaris2.8): Removed, obsolete.
10809
10810 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
10811
10812         PR target/6542
10813         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
10814         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
10815         fill leaf_reg_remap with identity.
10816         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
10817
10818 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
10819
10820         * config/h8300/crti.asm: Remove trailing spaces.
10821         * config/h8300/h8300.c: Likewise.
10822         * config/h8300/lib1funcs.asm: Likewise.
10823
10824 2002-05-02  Jason Merrill  <jason@redhat.com>
10825
10826         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
10827         * c-decl.c (c_init_decl_processing): Use it.
10828         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
10829         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
10830         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
10831
10832 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
10833
10834         * regrename.c: Fix formatting.
10835         * tree.c: Likewise.
10836
10837 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
10838
10839         * i386.md (attribute memory): Handle compares properly.
10840
10841 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
10842
10843         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
10844         to none.
10845
10846 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
10847
10848         * function.c: Fix formatting.
10849
10850 2002-05-02  Jan Hubicka  <jh@suse.cz>
10851
10852         * haifa-sched.c (schedule_insn): Print table of instructions and
10853         reservations.
10854         (sched_block): Do not print ready list at verbosity level 1.
10855         * sched-vis.c (print_insn): Make global.
10856         * sched-ebb.c (ebb_print_insn): Rename from...
10857         (print_insn): ... this one.
10858         * sched-int.h (print_insn): Declare
10859
10860 2002-05-02  Richard Henderson  <rth@redhat.com>
10861
10862         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
10863         emitted by cycle_display.
10864
10865 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
10866
10867         * doc/install.texi (*-*-freebsd*): Update to latest status.
10868
10869 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
10870
10871         PR target/6540
10872         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
10873         * config/float-sparc.h: Assume 128-bit long double if
10874         __LONG_DOUBLE_128__ is defined.
10875
10876 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
10877
10878         * genattrtab.c (write_function_unit_info): Add a dummy element
10879         when num_units == 0.
10880
10881 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10882
10883         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
10884         TYPE_MODE (double_type_node) instead of DFmode.
10885
10886 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
10887
10888         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
10889         jumps post reload.
10890         * toplev.c (rest_of_compilation): Revert Richard's patch.
10891
10892 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10893
10894         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
10895
10896 2002-05-02  Catherine Moore  <clm@redhat.com>
10897
10898         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
10899
10900 2002-05-02  Kazu Hirata  <kazu@hxi.com>
10901
10902         * combine.c: Fix comment typos.
10903         * expr.c: Likewise.
10904         * genautomata.c: Likewise.
10905         * stmt.c: Likewise.
10906         * tree.h: Likewise.
10907
10908 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10909
10910         * doc/install.texi: State GNAT version requirements.
10911
10912 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
10913
10914         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
10915         of the frame pointer or arg pointer register which strict register
10916         checking is not enabled.
10917
10918 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
10919
10920         * gcc.dg/altivec-8.c: New.
10921
10922         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
10923         PRE_INC and PRE_DEC for altivec modes.
10924
10925 2002-05-01  Bruce Korb  <bkorb@gnu.org>
10926
10927         * fixinc/check.tpl(set-writable): make sure the function exists first
10928         * fixinc/inclhack.def(alpha_assert): fix test_text
10929         * fixinc/tests/base/assert.h: add in missing result
10930
10931 2002-05-01  Jeff Law  <law@redhat.com>
10932
10933         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
10934         'T' constraint.
10935
10936 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
10937
10938         * dbxout.c (dbxout_type): Emit size information for range types,
10939         as well, but only when using GDB extensions.
10940
10941 2002-05-01  Richard Henderson  <rth@redhat.com>
10942
10943         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
10944         target-independent gnu binutils date test.
10945
10946 2002-05-01  Richard Henderson  <rth@redhat.com>
10947
10948         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
10949         info before expunging the block.
10950
10951 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
10952
10953         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
10954         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
10955         -M -or -MM is in effect.
10956
10957 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
10958
10959         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
10960         A29k configurations.
10961         * doc/install.texi: Update to match.
10962
10963 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10964
10965         PR bootstrap/6514
10966         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
10967         for duplicates. Always loop over whole list.
10968
10969 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10970
10971         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
10972
10973 2002-05-01      Joel Sherrill <joel@OARcorp.com>
10974
10975         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
10976         support routines.
10977
10978 2002-05-01      Joel Sherrill <joel@OARcorp.com>
10979
10980         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
10981
10982 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
10983
10984         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
10985         (nabs_nopower): Same.
10986         (floatdisf2): New pattern.
10987         (absdi2): Convert to define_insn_and_split.
10988         (nabsdi2): Same.
10989         (trunctfsf2): Same.
10990         (floatditf2): Same.
10991         (floatsitf2): Same.
10992         (fix_trunctfdi2): Same.
10993         (fix_trunctfsi2): Same.
10994
10995 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
10996
10997         * doc/install.texi: Update Texinfo version requirement
10998         documentation.
10999
11000 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
11001
11002         PR target/6512, PR target/5628
11003         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
11004         when memory is not aligned.
11005         (movdf_insn_v9only_vis): Likewise.
11006         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
11007         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
11008         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
11009
11010 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
11011
11012         * gcc.dg/altivec-7.c: New.
11013
11014         * config/rs6000/altivec.h: Cleanup.
11015
11016 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
11017
11018         * doc/invoke.texi (Option Summary): Add -mvrsave=.
11019         (RS/6000 and PowerPC Options): Document -mvrsave=.
11020
11021         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
11022         (rs6000_altivec_vrsave_string): Same.
11023         (rs6000_override_options): Call rs6000_parse_vrsave_option.
11024         (rs6000_parse_vrsave_option): New.
11025         (rs6000_stack_info): Only generate vrsave instructions when
11026         TARGET_ALTIVEC_VRSAVE.
11027
11028         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
11029         (rs6000_altivec_vrsave_string): Define extern.
11030         (rs6000_altivec_vrsave): Same.
11031         (TARGET_ALTIVEC_VRSAVE): New.
11032
11033 2002-04-30  Richard Henderson  <rth@redhat.com>
11034
11035         PR opt/6516
11036         * toplev.c (rest_of_compilation): Don't run cross-jump before
11037         bb-reorder.
11038
11039 2002-04-30  Tom Rix  <trix@redhat.com>
11040
11041         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
11042         check which_alternative.
11043
11044 2002-04-30  Kazu Hirata  <kazu@hxi.com>
11045
11046         * cpplex.c: Fix comment formatting.
11047         * function.c: Likewise.
11048         * integrate.c: Likewise.
11049         * regrename.c: Likewise.
11050         * sibcall.c: Likewise.
11051         * simplify-rtx.c: Likewise.
11052         * tree-inline.c: Likewise.
11053
11054 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11055
11056         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
11057         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
11058         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
11059         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
11060         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
11061         * pa/x-ada: New file.  Define ADA_CFLAGS.
11062
11063 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
11064
11065         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
11066         from MMIX_LAST_REGISTER_FILE_REGNUM.
11067         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
11068         (struct machine_function): New member highest_saved_stack_register
11069         previously static variable in mmix.c.
11070         (MACHINE_DEPENDENT_REORG): Define.
11071         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
11072         (MMIX_OUTPUT_REGNO): New.
11073         (mmix_target_asm_function_prologue): Move calculation of last used
11074         saved-stack-register into...
11075         (mmix_machine_dependent_reorg): New function.  Update to also handle
11076         !TARGET_ABI_GNU.
11077         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
11078         register names, simplify somewhat by new variable regno.
11079         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
11080         register.
11081         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
11082         emitting register names.
11083         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
11084         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
11085         Remove fixed FIXME.
11086         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
11087         Declare.
11088
11089         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
11090
11091 2002-04-30  Richard Henderson  <rth@redhat.com>
11092
11093         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
11094         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
11095         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
11096         emit_tfmode_cvt): New.
11097         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
11098         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
11099         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
11100         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
11101         * config/sparc/sparc-protos.h: Update.
11102
11103 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
11104
11105         * install.texi (Final install): Add to the list of info to include
11106         in a report of a successful bootstrap, and add link to 3.1 list.
11107
11108 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
11109
11110         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
11111         (mode): Add vector modes
11112         (i387): Kill attribute.
11113         (unit): New attribute.
11114         (length_immediate): Grok new types.
11115         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
11116         (modrm): Use "unit".
11117         (memory): Handle MMX/SSE properly.
11118         (scheduling descriptions): Kill uses of fop1.
11119         (sse, mmx, fp patterns): Set type and mode properly.
11120
11121 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
11122
11123         * pa.c (override_options): Default to PA8000 scheduling.
11124         * doc/invoke.texi (HP-PA options): Mention newly added 7300
11125         scheduling parameter.
11126
11127         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
11128         handling of double precision multiplies.
11129
11130         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
11131         fpdiv and fpsqrt instructions.
11132         (7200 & 7300 scheduling): Fix typo in handling of
11133         store-load and store-store penalties.
11134
11135 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11136
11137         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
11138         mips.  Add two missing commas.
11139
11140 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
11141
11142         * doc/contrib.texi (Contributors): Update Paolo Carlini's
11143         and Benjamin Kosnik's entries.
11144
11145 2002-04-29  David S. Miller  <davem@redhat.com>
11146
11147         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
11148         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
11149         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
11150         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
11151
11152 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11153
11154         * combine.c (find_split_point): Use gen_int_mode.
11155
11156 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
11157
11158         Merging code from dfa-branch:
11159
11160         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
11161
11162         * genautomata.c (output_reserv_sets): Fix typo.
11163
11164         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
11165
11166         * genautomata.c (output_reserv_sets): Remove
11167         next_cycle_output_flag.
11168
11169         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
11170
11171         * sched-rgn.c (init_ready_list): Make the DFA code handle
11172         USE/CLOBBER insns in the same way as the traditional
11173         scheduler.
11174         (new_ready): Similarly..
11175
11176         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
11177
11178         * haifa-sched.c (schedule_block): Change the DFA state only after
11179         issuing insn.
11180
11181         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
11182
11183         * pa.c (hppa_use_dfa_pipeline_interface): New function.
11184         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
11185         (override_options): Add PA7300 scheduling support.
11186         (pa_adjust_cost): Update various comments.  Properly
11187         handle anti and output dependencies when using the
11188         DFA scheduler.
11189         (pa_issue_rate): Add PA7300 scheduling support.
11190         (pa_can_combine_p): Call extract_insn before calling
11191         constrain_operands (taken from mainline tree).
11192         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
11193         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
11194         descriptions using DFA descriptions.  Add PA7300
11195         scheduling support.
11196
11197         2002-03-30  David S. Miller  <davem@redhat.com>
11198
11199         Add UltraSPARC-III DFA scheduling support.
11200         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
11201         Update FP conditional move on register insn patterns to use it, as
11202         appropriate.
11203         (define_attr cpu): Add ultrasparc3.
11204         (define_attr us3load_type): New, update integer load patterns to
11205         set it, as appropriate.
11206         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
11207         (rest): Add UltraSPARC3 scheduling description.
11208         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
11209         (PROCESSOR_ULTRASPARC3): New.
11210         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
11211         ({ASM,CPP}_CPU_SPEC): Likewise.
11212         (REGISTER_MOVE_COST): Likewise.
11213         (RTX_COSTS): Likewise.
11214         * config/sparc/sparc.c (sparc_override_options,
11215         sparc_initialize_trampoline, sparc64_initialize_trampoline,
11216         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
11217         sparc_issue_rate): Likewise.
11218         * config/sparc/sol2.h: Likewise.
11219         * config/sparc/sol2-sld-64.h: Likewise.
11220         * config/sparc/linux64.h: Likewise.
11221
11222         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
11223
11224         * doc/md.texi: Add comments about usage the latency time for the
11225         different dependencies and about case when two or more conditions
11226         in different define_insn_reservations returns TRUE for an insn.
11227
11228         * doc/md.texi: Add reference for automaton based pipeline
11229         description.
11230
11231         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
11232
11233         * doc/passes.texi: Add missed information about genattrtab.
11234
11235         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
11236
11237         * genautomata.c (output_automata_list_transition_code): Check
11238         automata_list on NULL.
11239
11240         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
11241
11242         * genautomata.c (output_insn_code_cases,
11243         output_automata_list_min_issue_delay_code,
11244         output_automata_list_transition_code,
11245         output_automata_list_state_alts_code): Comment the functions.
11246
11247         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
11248
11249         * genautomata.c (automata_list_el_t): New typedef.
11250         (get_free_automata_list_el,free_automata_list_el,
11251         free_automata_list, automata_list_hash, automata_list_eq_p,
11252         initiate_automata_lists, automata_list_start, automata_list_add,
11253         automata_list_finish, finish_automata_lists,
11254         output_insn_code_cases, output_automata_list_min_issue_delay_code,
11255         output_automata_list_transition_code,
11256         output_automata_list_state_alts_code, add_automaton_state,
11257         form_important_insn_automata_lists): New functions and prototypes.
11258         (insn_reserv_decl): Add members important_automata_list and
11259         processed_p.
11260         (ainsn): Add members important_p.
11261         (automata_list_el): New structure.
11262         (first_free_automata_list_el, current_automata_list,
11263         automata_list_table): New global variables.
11264         (create_ainsns): Initiate member important_p.
11265         (output_internal_min_issue_delay_func): Generate the switch and
11266         call output_insn_code_cases.
11267         (output_internal_trans_func, output_internal_state_alts_func):
11268         Ditto.
11269         (generate): Call initiate_automata_lists.
11270         (automaton_states): New global variable.
11271         (expand_automata): Call form_important_insn_automata_lists.
11272         (write_automata): Call finish_automata_lists.
11273
11274         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
11275
11276         * genautomata.c (add_excls, add_presence_absence): Check that
11277         cpu units in the sets belong the same automaton.
11278
11279         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
11280         about that cpu units in the sets belong the same automaton.
11281
11282         * doc/md.texi: Ditto.
11283
11284         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
11285                     Nitin Gupta  <niting@noida.hcltech.com>
11286
11287         * config/sh/sh.c (sh_use_dfa_interface): New function.
11288
11289         (sh_issue_rate): New Function.
11290         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
11291         TARGET_SCHED_ISSUE_RATE: define.
11292
11293         * config/sh/sh.md: Add DFA based pipeline description for SH4.
11294
11295         (define_attr insn_class): New attribute used for DFA
11296          scheduling.
11297         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
11298         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
11299          cmpeqdi_t): Likewise.
11300
11301         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
11302          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
11303          ex_group.
11304         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
11305
11306         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
11307
11308         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
11309         break.
11310
11311         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
11312
11313         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
11314         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
11315         necessary.
11316         (output_dfa_start_func): Initiate new variable insn_codes_length,
11317         (write_automata): Output definition of the new variable.
11318
11319         2001-10-02  David S. Miller  <davem@redhat.com>
11320
11321         * haifa-sched.c (advance_one_cycle): New function.
11322         (schedule_block): Use it.
11323         (queue_to_ready): Use it, and also make sure to advance the DFA
11324         state on all stall cycles, not just those where insn_queue links
11325         are found.
11326
11327         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
11328
11329         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
11330         non-zero if the highest-priority instruction could be scheduled.
11331         (choose_ready): Remove last argument from max_issue call.
11332
11333         2001-09-28  David S. Miller  <davem@redhat.com>
11334
11335         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
11336         ultrasparc and 3 for other multi-issue sparcs.
11337
11338         2001-09-27  David S. Miller  <davem@redhat.com>
11339
11340         * config/sparc/sparc.md (cycle_display): New pattern.
11341         * config/sparc/sparc.c (sparc_cycle_display): New.
11342         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
11343
11344         2001-09-25  David S. Miller  <davem@redhat.com>
11345
11346         Convert all of Sparc scheduling to DFA
11347         * config/sparc/sparc.md: Kill all define_function_unit
11348         directives and replace with DFA equivalent.
11349         * config/sparc/sparc.c (ultrasparc_adjust_cost,
11350         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
11351         ultra_fpmode_conflict_exists, ultra_find_type,
11352         ultra_build_types_avail, ultra_flush_pipeline,
11353         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
11354         ultrasparc_variable_issue, ultrasparc_sched_init,
11355         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
11356         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
11357         ultra_cur_hist, ultra_cycles_elapsed): Kill.
11358         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
11359         ultrasparc_store_bypass_p): New.
11360         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
11361         Declare.
11362
11363         2001-09-24  David S. Miller  <davem@redhat.com>
11364
11365         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
11366         ready->vec[foo] not ready[foo].
11367
11368         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
11369
11370         * doc/md.texi: Correct examples for define_insn_reservations
11371         `mult' and `div'.
11372
11373         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
11374
11375         * genautomata.c (create_automata): Print message about creation of
11376         each automaton.
11377         (generate): Remove printing meease about creation of
11378         automata.
11379
11380         2001-09-05  David S. Miller  <davem@redhat.com>
11381
11382         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
11383         * config/sparc/linux64.h: Likewise.
11384
11385         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
11386
11387         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
11388         schedule_block, sched_init, sched_finish): Add missed calls of
11389         use_dfa_pipeline_interface.
11390
11391         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
11392         Ditto.
11393
11394         * sched-vis.c (get_visual_tbl_length): Ditto.
11395
11396         2001-08-27  Richard Henderson  <rth@redhat.com>
11397
11398         * genattr.c (main): Emit state_t even when not doing scheduling.
11399
11400         2001-08-27  Richard Henderson  <rth@redhat.com>
11401
11402         * genautomata.c (expand_automata): Always create a description.
11403
11404         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
11405
11406         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
11407         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
11408         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
11409         RTL constructions.
11410
11411         * genattr.c (main): New variable num_insn_reservations.  Increase
11412         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
11413         pipeline hazard recognizer interface.
11414
11415         * genattrtab.h: New file.
11416
11417         * genattrtab.c: Include genattrtab.h.
11418         (attr_printf, check_attr_test, make_internal_attr,
11419         make_numeric_value): Move protypes into genattrtab.h.  Define them
11420         as external.
11421         (num_dfa_decls): New global variable.
11422         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
11423         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
11424         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
11425         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
11426
11427         * genautomata.c: New file.
11428
11429         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
11430
11431         * sched-int.h: (curr_state): Add the external definition for
11432         automaton pipeline interface.
11433         (haifa_insn_data): Add comments for members blockage and units.
11434
11435         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
11436         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
11437         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
11438         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
11439         TARGET_SCHED_DFA_POST_CYCLE_INSN,
11440         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
11441         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
11442         macros.
11443         (TARGET_SCHED): Use the new macros.
11444
11445         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
11446         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
11447         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
11448         dfa_bubble): New members in gcc_target.sched.
11449
11450         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
11451         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
11452         (insn_queue): Redefine it as pointer to array.
11453         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
11454         INSN_QUEUE_SIZE.
11455         (max_insn_queue_index_macro_value): New variable.
11456         (curr_state, dfa_state_size, ready_try): New varaibles for
11457         automaton interface.
11458         (ready_element, ready_remove, max_issue): New function prototypes
11459         for automaton interface.
11460         (choose_ready): New function prototype.
11461         (insn_unit, blockage_range): Add comments.
11462         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
11463         FUNCTION_UNITS_SIZE == 0.
11464         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
11465         actual_hazard, potential_hazard): Add comments.
11466         (insn_cost): Use cost -1 as undefined value.  Remove
11467         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
11468         pipeline interface.
11469         (ready_element, ready_remove): New functions for automaton
11470         interface.
11471         (schedule_insn): Add new code for automaton pipeline interface.
11472         (queue_to_ready): Add new code for automaton pipeline interface.
11473         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
11474         (debug_ready_list): Print newline when the queue is empty.
11475         (max_issue): New function for automaton pipeline interface.
11476         (choose_ready): New function.
11477         (schedule_block): Add new code for automaton pipeline interface.
11478         Print ready list before scheduling each insn.
11479         (sched_init): Add new code for automaton pipeline interface.
11480         Initiate insn cost by -1.
11481         (sched_finish): Free the current automaton state and finalize
11482         automaton pipeline interface.
11483
11484         * sched-rgn.c: Include target.h.
11485         (init_ready_list, new_ready, debug_dependencies): Add new code for
11486         automaton pipeline interface.
11487
11488         * sched-vis.c: Include target.h.
11489         (get_visual_tbl_length): Add code for automaton interface.
11490         (target_units, print_block_visualization):  Add comments.
11491
11492         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
11493         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
11494         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
11495         (getruntime.o, genautomata.o): New entries.
11496         (genattrtab.o): Add new dependency file genattrtab.h.
11497         (genattrtab): Add new dependencies.  Link it with `libm.a'.
11498         (getruntime.o, hashtab.o): New entries for canadian cross.
11499
11500         * doc/md.texi: Description of automaton based model.
11501
11502         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
11503         Add comments.
11504         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
11505         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
11506         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
11507         TARGET_SCHED_DFA_POST_CYCLE_INSN,
11508         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
11509         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
11510         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
11511         hook descriptions.
11512         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
11513         MAX_DFA_ISSUE_RATE): New macro descriptions.
11514
11515         * doc/contrib.texi: Add dfa based scheduler contribution.
11516
11517         * doc/gcc.texi: Add more information about genattrtab.
11518
11519 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11520
11521         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
11522         adjust_address_nv call.
11523
11524 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
11525
11526         * doc/install.texi (Testing): Provide additional information, and
11527         a stronger encouragement, for running the testsuites.
11528
11529 2002-04-29  DJ Delorie  <dj@redhat.com>
11530
11531         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
11532         given in upper case.
11533
11534 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11535
11536         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
11537         Solaris 2 <widec.h> if missing.
11538         * fixinc/fixincl.x: Regenerate.
11539         * fixinc/tests/base/widec.h: New file.
11540
11541 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
11542
11543         * toplev.c (f_options): Add "profile" switch so that
11544         -fno-profile can be used to disable -p.
11545
11546 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
11547
11548         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
11549         UV2DImode.
11550         * tree.c (build_common_tree_nodes_2): Likewise.
11551         * tree.h (enum tree_index): Likewise.
11552         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
11553
11554         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
11555         entries.
11556         (init_mmx_sse_builtins): Initialize SSE2 builtins.
11557         (ix86_expand_builtin): Add support for SSE2 builtins.
11558         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
11559         (VALID_SSE_REG_MODE): Use it.
11560         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
11561         (enum ix86_builtins): Add SSE2 builtins.
11562         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
11563         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
11564         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
11565         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
11566         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
11567         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
11568         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
11569         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
11570         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
11571         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
11572         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
11573         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
11574         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
11575         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
11576         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
11577         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
11578         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
11579         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
11580         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
11581         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
11582         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
11583         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
11584         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
11585         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
11586         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
11587         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
11588         lfence_insn): New patterns.
11589         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
11590         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
11591
11592 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
11593
11594         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
11595
11596 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11597
11598         * doc/contrib.texi (Contributors): Add Paolo Carlini and
11599         Janis Johnson.
11600         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
11601         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
11602         and CPU instead of cpu.
11603
11604 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
11605
11606         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
11607         variables.
11608         (lang_independent_options): Add -fif-conversion, -fif-conversion2
11609         (rest_of_compilation): Do if conversion only when asked for.
11610         (parse_options_and_default_flags): Set new variables to 1 for -O1
11611         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
11612
11613 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
11614
11615         * i386.c (dbx64_register_map): Fix typo.
11616
11617 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
11618
11619         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
11620         real_one_half, real_bb_freq_max): New static variables.
11621         (debug_profile_bbauxs): Kill.
11622         (process_note_predictions): Kill unused variable.
11623         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
11624         volatile double.
11625         (propagate_freq): Use REAL_ARITHMETICS.
11626         (estimate_bb_frequencies): Likevise; init new static variables.
11627         * Makefile.in (predict.o): Add dependency on real.h
11628
11629 2002-04-28  David S. Miller  <davem@redhat.com>
11630
11631         PR target/6500
11632         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
11633         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
11634         several {reads,writes} instead.
11635         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
11636         Define.
11637
11638 2002-04-27  David S. Miller  <davem@redhat.com>
11639
11640         PR target/6494
11641         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
11642         of the stack bias.
11643
11644         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
11645         including signal.h and sys/ucontext.h, not needed.
11646
11647 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
11648
11649         * varasm.c (output_constant_def): Correct test for not calling
11650         ENCODE_SECTION_INFO for INTEGER_CST.
11651
11652 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11653
11654         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
11655         keep most cases as function eval_token.
11656         (eval_token): New function.
11657         (_cpp_parse_expr): Read token here for improved diagnostics.
11658         Don't use op_as_text.  Detect bad ':' here.
11659         (reduce): Don't detect bad ':' here.
11660         (op_as_text): Remove.
11661         * cpphash.h (_cpp_test_assertion): Change prototype.
11662         * cpplib.c (_cpp_test_assertion): Change prototype.
11663
11664 2002-04-28  Richard Henderson  <rth@redhat.com>
11665
11666         PR c/5154
11667         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
11668         (ggc_mark_rtx_children): New.
11669
11670 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
11671
11672         PR target/6496
11673         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
11674         after call peepholes for UltraSPARC.
11675         (call + jump 64-bit peepholes): Remove.
11676
11677 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11678
11679         PR c/6497
11680         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
11681         result as temporary value.
11682
11683 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
11684
11685         PR c++/6396
11686         * toplev.c (rest_of_compilation): Only run regrename and copy
11687         propagation if optimizing.
11688
11689 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
11690
11691         PR optimization/6475
11692         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
11693         register of REGNO_DECL (i).
11694         * Makefile.in (reload1.o): Add $(TREE_H).
11695
11696 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
11697
11698         * cppexp.c (lex): Update to use state.skip_eval.
11699         (struct op): Remove prio and flags members.
11700         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
11701         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
11702         (LEFT_ASSOC): New macro.
11703         (optab): New table of operator priorities and flags.
11704         (SHIFT): Update.
11705         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
11706         malloc-ed parser stack.
11707         (reduce): New; reduce the operator stack.
11708         (_cpp_expand_op_stack): Expand the operator stack as necessary.
11709         * cpphash.h (struct op): Predeclare.
11710         (struct cpp_reader): New members op_stack, op_limit.
11711         (struct lexer_state): New member skip_eval.
11712         (_cpp_parse_expr): Update.
11713         (_cpp_expand_op_stack): New.
11714         * cpplib.c (do_if): Update.
11715         * cppinit.c (cpp_create_reader): Create op stack.
11716         (cpp_destroy): And destroy it.
11717         * cpplib.h (CPP_LAST_CPP_OP): Correct.
11718         (TTYPE_TABLE): Correct.
11719
11720 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11721
11722         PR c/6343
11723         * c-decl.c (duplicate_decls): Call merge_weak.
11724         * c-pragma.c (apply_pragma_weak): Warn about misuse.
11725         * output.h (merge_weak): Prototype merge_weak.
11726         * varasm.c (merge_weak): New function.
11727         (declare_weak): Make sure we don't give an error on VAR_DECLs.
11728         Mark RTL with SYMBOL_REF_WEAK.
11729
11730 2002-04-27  Kurt Garloff <garloff@suse.de>
11731
11732         * tree-inline.c (inlinable_function_p): Improve heuristics
11733         by using a smoother function to cut down allowable inlinable size.
11734         * param.def: Add parameters max-inline-insns-single,
11735         max-inline-slope, min-inline-insns that determine the exact
11736         shape of the above function.
11737         * param.h: Likewise.
11738
11739 2002-04-26  Richard Henderson  <rth@redhat.com>
11740
11741         * c-parse.in (malloced_yyss, malloced_yyvs): New.
11742         (yyoverflow): Re-add.  Set them.
11743         (free_parser_stacks): New.
11744         * c-common.h: Declare it.
11745         * c-lex.c (c_common_parse_file): Call it.
11746
11747 2002-04-26  Richard Henderson  <rth@redhat.com>
11748
11749         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
11750         for fallthru search.
11751
11752 2002-04-26  Eric Christopher  <echristo@redhat.com>
11753
11754         PR optimization/3700
11755         * config/mips/mips.c (mips_issue_rate): Define.  New function.
11756         (TARGET_SCHED_ISSUE_RATE): Use.
11757
11758 2002-04-25  David S. Miller  <davem@redhat.com>
11759
11760         PR target/6422
11761         * reorg.c (optimize_skip): Do not allow exception causing
11762         instructions to be considered for delay slots.
11763         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
11764         (relax_delay_slots): Do not try to consider exception causing
11765         instructions as redundant.
11766
11767 2002-04-26  Richard Henderson  <rth@redhat.com>
11768
11769         PR c/5225
11770         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
11771
11772 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
11773
11774         PR bootstrap/6445
11775         * config/i386/i386.md (untyped_call): Return the value in a float
11776         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
11777         TARGET_80387.
11778
11779 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
11780
11781         * tree.c (tree_int_cst_lt): Compare constants whose types differ
11782         in unsigned-ness correctly.
11783
11784 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11785
11786         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
11787         portable runtime model.
11788
11789 2002-04-26  Richard Henderson  <rth@redhat.com>
11790
11791         * c-parse.in (yyoverflow): Revert.
11792
11793 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
11794             Richard Henderson  <rth@redhat.com>
11795
11796         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
11797         result as temporary value.
11798
11799 2002-04-26  Richard Henderson  <rth@redhat.com>
11800
11801         PR c/3581
11802         * c-common.c (fix_string_type): Split out of ...
11803         (combine_strings): ... here.  Take a varray, not a tree list.
11804         (c_expand_builtin_printf): Use fix_string_type.
11805         * c-common.h: Update decls.
11806         * c-parse.in (string): Remove.  Update all uses to use STRING
11807         instead, and not call combine_strings.
11808         (yylexstring): New.
11809         (_yylex): Use it.
11810         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
11811         (build_asm_stmt): Likewise.
11812         * objc/objc-act.c (my_build_string): Use fix_string_type.
11813         (build_objc_string_object): Build varray for combine_strings.
11814
11815 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
11816
11817         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
11818         x86-64.
11819
11820 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
11821
11822         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
11823         (HAVE_NO_R_OPERAND): Remove.
11824         (HAVE_VALUE): Remove.
11825         (op_to_prio): Update.
11826         (UNARY): Don't alter flags.
11827         (_cpp_parse_expr): want_value used to indicate whether
11828         a number or unary operator is expected next.  Distinguish
11829         unary and binary +/-.
11830         (op_as_text): Update for unary operators.
11831
11832 2002-04-25  Richard Henderson  <rth@redhat.com>
11833
11834         PR c/2161
11835         * c-parse.in (yyoverflow): New.
11836
11837 2002-04-25  Richard Henderson  <rth@redhat.com>
11838
11839         PR c/2098
11840         * c-common.c (shorten_compare): Simplfy conditions leading to
11841         the generation of a warning.
11842
11843 2002-04-25  Richard Henderson  <rth@redhat.com>
11844
11845         PR c/2035
11846         * expmed.c (extract_bit_field): Fall through to generic code rather
11847         than aborting on subreg special case.
11848
11849 2002-04-25  David S. Miller  <davem@redhat.com>
11850
11851         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
11852         for DECL being NULL.
11853
11854 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
11855
11856         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
11857
11858 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
11859
11860         * c-decl.c (grokdeclarator): Remove outdated ??? note
11861         on invalid declaration of flexible array members.
11862
11863 2002-04-25  Richard Henderson  <rth@redhat.com>
11864
11865         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
11866
11867 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
11868
11869         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
11870         needed by the compiler, even if they are used as global regs.
11871
11872 2002-04-25  Matt Hiller  <hiller@redhat.com>
11873
11874         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
11875         functions.
11876         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
11877         of the corresponding functions.
11878         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
11879         New prototypes.
11880
11881 2002-04-25  Matt Hiller  <hiller@redhat.com>
11882
11883         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
11884
11885         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
11886         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
11887         registers, adjust comment accordingly.
11888         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
11889         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
11890         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
11891         for coprocessor registers.
11892         (ADDITIONAL_REGISTER_NAMES): Include
11893         ALL_COP_ADDITIONAL_REGISTER_NAMES.
11894
11895         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
11896         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
11897         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
11898         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
11899         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
11900
11901         (mips_char_to_class): Adjust comment to include coprocessor
11902         constraint letters.
11903
11904         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
11905         New functions.
11906         (mips_reg_names, mips_regno_to_class): Include coprocessor
11907         information.
11908         (mips_sw_reg_names): Ditto, make non-static.
11909         (mips_move_1word): Handle moves to and from coprocessor registers.
11910         (mips_move_2words): Handle moves to and from coprocessor
11911         registers.
11912         (mips_class_max_nregs, mips_register_move_cost): Handle
11913         coprocessor register classes.
11914         (override_options): Initialize mips_char_to_class and
11915         mips_hard_regno_mode_ok properly for coprocessor registers.
11916
11917         * config/mips/mips.md (movdi_internal, movdi_internal2,
11918         movsi_internal1, movsi_internal2): Add constraint-sets for
11919         coprocessor registers.
11920         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
11921         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
11922         isn't mips.
11923         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
11924         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
11925         isn't mips.
11926         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
11927         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
11928         isn't mips.
11929         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
11930         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
11931         isn't mips.
11932
11933         * doc/tm.texi: Document feature.
11934
11935 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
11936
11937         * integrate.c (function_attribute_inlinable_p): Simplify.
11938         Check the table pointer is not NULL.
11939
11940 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
11941
11942         * doc/c-tree.texi: Fix typo in introduction.
11943
11944 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
11945
11946         * c-common.h (c_common_parse_file): Update.
11947         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
11948         * c-lex.c (YYDEBUG): Get from c-lex.h.
11949         (c_common_parse_file): Update.
11950         * c-lex.h (YYDEBUG, yydebug): New.
11951         * c-parse.in (YYDEBUG): Get from c-lex.h.
11952         (c_set_yydebug): Remove.
11953         * c-tree.h (c_set_yydebug): Remove.
11954         * langhooks-def.h (lhd_do_nothing_i): New.
11955         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
11956         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
11957         * langhooks.c  (lhd_do_nothing_i): New.
11958         (lhd_set_yydebug): Remove.
11959         * langhooks.h (struct lang_hooks): Update.
11960         * toplev.c (set_yydebug): New.
11961         (compile_file): Update call to parse_file hook.
11962         (decode_d_option): Update.
11963 objc:
11964         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
11965
11966 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
11967
11968         * loop.c (load_mems): Don't change the interface of called functions.
11969
11970         * calls.c (expand_call): Take current_function_pretend_args_size
11971         into account when setting argblock for sibcalls.
11972
11973 2002-04-24  Matt Hiller  <hiller@redhat.com>
11974
11975         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
11976         * c-lex.c: Ditto.
11977
11978         * cpplex.c (skip_line_comment): Process comment one multibyte
11979         character at a time rather than one char at a time, if
11980         appropriate.
11981         (parse_string): Process string one multibyte character at a time
11982         rather than one char at a time, if appropriate.
11983         * c-lex.c (lex_string): Lex and copy multibyte strings
11984         appropriately.
11985         * cpplib.h (cppchar_t): Change to unsigned.
11986
11987 2002-04-24  Richard Henderson  <rth@redhat.com>
11988
11989         PR c/3467
11990         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
11991         for c99.
11992
11993 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
11994
11995         * sh.c (sh_va_arg): If argument was passed by reference,
11996         dereference the pointer.
11997
11998         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
11999
12000         * sh.md (divsi3_i4_media): Use match_operand for input values
12001         rather than hard registers.
12002         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
12003         unnecessarily through hard registers.  Keep copies of pseudo
12004         registers outside of the libcall sequence.
12005
12006         * sh.md (casesi_shift_media): Add modes.
12007
12008         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
12009         values in memory.
12010
12011 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
12012
12013         * attribs.c (c_common_attribute_table): Move table and handlers
12014         to c-common.c.
12015         (format_attribute_table, lang_attribute_table,
12016         lang_attribute_common): Remove.
12017         (init_attributes): Replace NULL pointers with pointers to the
12018         empty table.
12019         (handle_packed_attribute, handle_nocommon_attribute,
12020         handle_common_attribute, handle_noreturn_attribute,
12021         handle_noinline_attribute, handle_always_inline_attribute,
12022         handle_used_attribute, handle_unused_attribute,
12023         handle_const_attribute, handle_transparent_union_attribute,
12024         handle_constructor_attribute, handle_destructor_attribute,
12025         handle_mode_attribute, handle_section_attribute,
12026         handle_aligned_attribute, handle_weak_attribute,
12027         handle_alias_attribute, handle_visibility_attribute,
12028         handle_no_instrument_function_attribute, handle_malloc_attribute,
12029         handle_no_limit_stack_attribute, handle_pure_attribute,
12030         handle_deprecated_attribute, handle_vector_size_attribute,
12031         vector_size_helper): Move to c-common.c.
12032         * c-common.c (c_common_attribute_table,
12033         handle_packed_attribute, handle_nocommon_attribute,
12034         handle_common_attribute, handle_noreturn_attribute,
12035         handle_noinline_attribute, handle_always_inline_attribute,
12036         handle_used_attribute, handle_unused_attribute,
12037         handle_const_attribute, handle_transparent_union_attribute,
12038         handle_constructor_attribute, handle_destructor_attribute,
12039         handle_mode_attribute, handle_section_attribute,
12040         handle_aligned_attribute, handle_weak_attribute,
12041         handle_alias_attribute, handle_visibility_attribute,
12042         handle_no_instrument_function_attribute, handle_malloc_attribute,
12043         handle_no_limit_stack_attribute, handle_pure_attribute,
12044         handle_deprecated_attribute, handle_vector_size_attribute,
12045         vector_size_helper): Move from attribs.c.
12046         * c-common.h (c_common_attribute_table,
12047         c_common_format_attribute_table): New.
12048         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
12049         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
12050         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
12051         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
12052         (LANG_HOOKS_INITIALIZER): Update.
12053         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
12054         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
12055         * target.h: Update comment.
12056         * tree.c (default_target_attribute_table): Remove.
12057         * tree.h (default_target_attribute_table, format_attribute_table,
12058         lang_attribute_table, lang_attribute_common): Remove.
12059 objc:
12060         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
12061         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
12062
12063 2002-04-24  Jason Merrill  <jason@redhat.com>
12064
12065         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
12066         * dwarf2out.c (dwarf_attr_name): Support it.
12067         (gen_array_type_die): Emit it.
12068         (lookup_type_die): No special handling for VECTOR_TYPE.
12069         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
12070
12071 2002-04-24  Richard Henderson  <rth@redhat.com>
12072
12073         * config/mips/mips.md (movdi_usd): Renumber.
12074
12075 2002-04-24  David S. Miller  <davem@redhat.com>
12076
12077         PR target/6420
12078         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
12079         32-bit Sparc and current_function_returns_struct is true.
12080
12081 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
12082
12083         * loop.c (canonicalize_condition): Use gen_int_mode.
12084
12085 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
12086
12087         * config/rs6000/altivec.h: Cleanup file.  Add non individual
12088         variants.
12089         (vec_vaddubm): New.
12090         (vec_vadduhm): New.
12091         (vec_vadduwm): New.
12092         (vec_vaddfp): New.
12093         (vec_vaddcuw): New.
12094         (vec_vaddubs): New.
12095         (vec_vaddsbs): New.
12096         (vec_vadduhs): New.
12097         (vec_vadduws): New.
12098         (vec_vaddsws): New.
12099         (vec_vand): New.
12100         (vec_vandc): New.
12101         (vec_vavgub): New.
12102         (vec_vavgsb): New.
12103         (vec_vavguh): New.
12104         (vec_vavgsh): New.
12105         (vec_vavguw): New.
12106         (vec_vavgsw): New.
12107         (vec_vrfip): New.
12108         (vec_vcmpbfp): New.
12109         (vec_vcmpequb): New.
12110         (vec_vcmpequh): New.
12111         (vec_vcmpequw): New.
12112         (vec_vcmpeqfp): New.
12113         (vec_vcmpgefp): New.
12114         (vec_vcmpgtub): New.
12115         (vec_vcmpgtsb): New.
12116         (vec_vcmpgtuh): New.
12117         (vec_vcmpgtsh): New.
12118         (vec_vcmpgtuw): New.
12119         (vec_vcmpgtsw): New.
12120         (vec_vcmpgtfp): New.
12121         (vec_vcmpgefp): New.
12122         (vec_vcfux): New.
12123         (vec_vcfsx): New.
12124         (vec_vctsxs): New.
12125         (vec_vctuxs): New.
12126         (vec_vexptefp): New.
12127         (vec_vrfim): New.
12128         (vec_lvx): New.
12129         (vec_lvebx): New.
12130         (vec_lvehx): New.
12131         (vec_lde): Add vector float variant.
12132         (vec_lvewx): New.
12133         (vec_lvxl): New.
12134         (vec_vlogefp): New.
12135         (vec_vmaddfp): New.
12136         (vec_vmhaddshs): New.
12137         (vec_vmaxub): New.
12138         (vec_vmaxsb): New.
12139         (vec_vmaxuh): New.
12140         (vec_vmaxsh): New.
12141         (vec_vmaxuw): New.
12142         (vec_vmaxsw): New.
12143         (vec_vmaxsw): New.
12144         (vec_vmaxfp): New.
12145         (vec_vmrghb): New.
12146         (vec_vmrghh): New.
12147         (vec_vmrghw): New.
12148         (vec_vmrglb): New.
12149         (vec_vmrglh): New.
12150         (vec_vmrglw): New.
12151         (vec_vminub): New.
12152         (vec_vminsb): New.
12153         (vec_vminuh): New.
12154         (vec_vminsh): New.
12155         (vec_vminuw): New.
12156         (vec_vminsw): New.
12157         (vec_vminfp): New.
12158         (vec_vmladduhm): New.
12159         (vec_vmhraddshs): New.
12160         (vec_msumubm): New.
12161         (vec_vmsummbm): New.
12162         (vec_vmsumuhm): New.
12163         (vec_vmsumshm): New.
12164         (vec_vmsumuhs): New.
12165         (vec_vmsumshs): New.
12166         (vec_vmuleub): New.
12167         (vec_vmulesb): New.
12168         (vec_vmuleuh): New.
12169         (vec_vmulesh): New.
12170         (vec_vmuloub): New.
12171         (vec_mulosb): New.
12172         (vec_vmulouh): New.
12173         (vec_vmulosh): New.
12174         (vec_vnmsubfp): New.
12175         (vec_vnor): New.
12176         (vec_vor): New.
12177         (vec_vpkuhum): New.
12178         (vec_vpkuwum): New.
12179         (vec_vpkpx): New.
12180         (vec_vpkuhus): New.
12181         (vec_vpkshss): New.
12182         (vec_vpkuwus): New.
12183         (vec_vpkswss): New.
12184         (vec_vpkshus): New.
12185         (vec_vpkswus): New.
12186         (vec_vperm): New.
12187         (vec_vrefp): New.
12188         (vec_vrlb): New.
12189         (vec_vrlh): New.
12190         (vec_vrlw): New.
12191         (vec_vrfin): New.
12192         (vec_vrsqrtefp): New.
12193         (vec_vsel): New.
12194         (vec_vslb): New.
12195         (vec_vslh): New.
12196         (vec_vslw): New.
12197         (vec_vsldoi): New.
12198         (vec_vsl): New.
12199         (vec_vslo): New.
12200         (vec_vspltb): New.
12201         (vec_vsplth): New.
12202         (vec_vspltw): New.
12203         (vec_vspltisb): New.
12204         (vec_vspltish): New.
12205         (vec_vspltisw): New.
12206         (vec_vsrb): New.
12207         (vec_vsrh): New.
12208         (vec_vsrw): New.
12209         (vec_vsrab): New.
12210         (vec_vsrah): New.
12211         (vec_vsraw): New.
12212         (vec_vsr): New.
12213         (vec_vsro): New.
12214         (vec_stvx): New.
12215         (vec_stvebx): New.
12216         (vec_stvehx): New.
12217         (vec_stvewx): New.
12218         (vec_stvxl): New.
12219         (vec_vsububm): New.
12220         (vec_vsubuhm): New.
12221         (vec_vsubuwm): New.
12222         (vec_vsubfp): New.
12223         (vec_vsubcuw): New.
12224         (vec_vsububs): New.
12225         (vec_vsubsbs): New.
12226         (vec_vsubuhs): New.
12227         (vec_vsubshs): New.
12228         (vec_vsubuws): New.
12229         (vec_vsubsws): New.
12230         (vec_vsum4ubs): New.
12231         (vec_vsum4sbs): New.
12232         (vec_vsum4shs): New.
12233         (vec_vsum2sws): New.
12234         (vec_vsumsws): New.
12235         (vec_vrfiz): New.
12236         (vec_vupkhsb): New.
12237         (vec_vupkhpx): New.
12238         (vec_vupkhsh): New.
12239         (vec_vupklsb): New.
12240         (vec_vupklpx): New.
12241         (vec_vupklsh): New.
12242         (vec_vxor): New.
12243
12244 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
12245
12246         PR c/5430
12247         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
12248         added literals from substracted literals.
12249         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
12250         (fold) [associate]: Preserve MINUS_EXPR if needed.
12251
12252 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
12253
12254         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
12255         are obsoleted.
12256
12257 2002-04-23  Tom Tromey  <tromey@redhat.com>
12258
12259         * gcc.c: Added --resource.  For PR java/6314.
12260
12261 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
12262
12263         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
12264         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
12265         these libraries.
12266
12267 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
12268
12269         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
12270
12271 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
12272
12273         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
12274         workaround.
12275         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
12276         (ix86_expand_clrstr): Fix typo.
12277         * loop.c (gen_load_of_final_value): New.
12278         (loop_givs_rescan, strength_reduce, check_dbra_loop):
12279         Use it.
12280
12281 2002-04-23  Roger Sayle  <roger@eyesopen.com>
12282
12283         * builtins.c (builtin_memset_gen_str): New function.
12284         (expand_builtin_memset): Optimize the case of constant length, but
12285         unknown value.
12286
12287 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
12288
12289         * config/rs6000/altivec.h (vec_step): Remove extraneous
12290         parentheses.
12291         (vec_ctu): Cast return.
12292
12293 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
12294
12295         PR target/6413
12296         * function.h: (struct function): Add profile_label_no field.
12297         (current_function_profile_label_no): Define.
12298         * function.c: (profile_label_no): New static var.
12299         (expand_function_start): Increment it, and copy to
12300         current_function_profile_label_no.
12301         * output.h (profile_label_no): Delete.
12302         * final.c (profile_label_no): Delete.
12303         (profile_function): Use current_function_profile_label_no.
12304         (final_end_function): Don't increment profile_label_no here.
12305         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
12306         profile_label_no with current_function_profile_label_no.
12307         * config/pa/pa.c (current_function_number): Delete.
12308         (pa_output_function_prologue): Don't output profile label here.
12309         (hppa_profile_hook): Use label_no param rather than
12310         current_function_number.
12311         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
12312         * config/pa/pa.h: .. here.
12313         (FUNCTION_PROFILER): Output profile label here.
12314
12315 2002-04-22  Eric Christopher  <echristo@redhat.com>
12316
12317         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
12318         patch of 2002-04-09 due to binutils issues.
12319         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
12320
12321 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
12322
12323         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
12324         constraint to 'o' for m=r and r=m alternatives.
12325         ("*movv8hi_internal1"): Same.
12326         ("*movv16qi_internal1"): Same.
12327         ("*movv4sf_internal1"): Same.
12328
12329 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
12330
12331         * rtl.h (RTX_FLAG): New macro.
12332         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
12333         * final.c (alter_subreg): Use macro to access rtx flag.
12334         * integrate.c (copy_rtx_and_substitute): Use new access macro.
12335         * print-rtl.c (print_rtx): Use new access macro.
12336
12337         * cse.c (insert): Check rtx code before accessing flag.
12338
12339         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
12340         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
12341         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
12342         convert_const_symbol_ref, make_canonical, make_alternative_compare,
12343         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
12344         simplify_test_exp, optimize_attrs, simplify_by_exploding,
12345         find_and_mark_used_attributes, unmark_used_attributes,
12346         add_values_to_cover, simplify_with_current_value,
12347         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
12348         copy_rtx_unchanging, main): Use new access macros.
12349
12350 2002-04-22  Tom Rix  <trix@redhat.com>
12351
12352         * expmed.c (init_expmed): Generate shifted constant once.
12353
12354 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
12355
12356         * c-lex.c (lex_charconst): Call convert to get constant in
12357         proper type; don't just smash the type field.
12358         Fixes PR c/6300.
12359
12360         * config.gcc: Add list of obsolete configurations.  Disallow
12361         building these without --enable-obsolete.
12362         * doc/install.texi: Document --enable-obsolete and obsoletion
12363         policy.  Mention obsoletion of individual targets in
12364         appropriate places.
12365
12366 2002-04-22  Richard Henderson  <rth@redhat.com>
12367
12368         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
12369
12370 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
12371
12372         PR f/6138.
12373         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
12374         (walk_fixup_memory_subreg): Likewise.
12375         (fixup_var_refs_insn): Adjust accordingly.
12376         (fixup_var_refs_1): Likewise.
12377
12378 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
12379
12380         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
12381         LIBPATH_ARCH64_SPEC): Define.
12382         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
12383         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
12384         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
12385         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
12386
12387 2002-04-22      Joel Sherrill <joel@OARcorp.com>
12388
12389         * gthr-rtems.h: Correct prototypes to remove warnings.
12390
12391 2002-04-22  Richard Henderson  <rth@redhat.com>
12392
12393         PR c/6344
12394         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
12395
12396         * gcse.c (free_insn_expr_list_list): New.
12397         (clear_modify_mem_tables): Use it.  Fix bit set usage.
12398         (canon_list_insert): Use EXPR_LISTs for expressions.
12399         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
12400
12401 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
12402
12403         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
12404         file change and include code to _cpp_pop_buffer.
12405         * cpphash.h (struct pending_option): Predeclare.
12406         (struct cpp_reader): New member next_include_file.
12407         (_cpp_pop_file_buffer): Update.
12408         (_cpp_push_next_buffer): Update, rename.
12409         * cppinit.c (cpp_destroy): Free include chain and pending here.
12410         (cpp_finish_options): Simplify.
12411         (_cpp_push_next_buffer): Rename and clean up.
12412         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
12413         Clarify.
12414         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
12415
12416 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
12417
12418         * config/rs6000/altivec.h (vec_xor): Add variant for both args
12419         being vector signed int.
12420         (vec_andc): Same.
12421         (vec_xor): Add variant for both args being vector signed char.
12422         Remove redundant variant.
12423         (vec_andc): Same.
12424
12425 2002-04-21  David S. Miller  <davem@redhat.com>
12426
12427         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
12428         compare mode in output RTL.
12429
12430 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
12431
12432         * config/rs6000/rs6000.c (rs6000_override_options): Correct
12433         style and formatting of previous patch.
12434
12435 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
12436
12437         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
12438         flag_pic for ABI_AIX.
12439
12440 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
12441
12442         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
12443         * cppfiles.c (read_include_file): Similarly.
12444         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
12445         uxstrdup ustrchr, ufputs): Similarly.
12446         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
12447         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
12448         cpp_ideq, parse_identifier, parse_number): Similarly.
12449         * cpplib.c (struct directive, dequote_string, D, run_directive,
12450         cpp_push_buffer): Similarly.
12451         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
12452         _cpp_create_definition, check_trad_stringification,
12453         cpp_macro_definition): Similarly.
12454
12455 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
12456
12457         * cppmacro.c (funlike_invocation_p): Don't step back
12458         over CPP_EOF.
12459
12460 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
12461
12462         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
12463         labelno.
12464
12465 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
12466
12467         * doc/invoke.texi: Remove Chill references.
12468         * doc/gcc.texi: Update last modified date.
12469
12470 2002-04-20  Kazu Hirata  <kazu@hxi.com>
12471
12472         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
12473         push and pop.  Replace add.l with add.w.
12474
12475 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
12476
12477         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
12478         multiply instructions for H8/300H case.
12479
12480 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
12481
12482         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
12483         Bum three instructions from each routine.
12484
12485 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
12486
12487         * Makefile.in: Update.
12488         * decl.c (push_c_function_context, pop_c_function_context,
12489         mark_c_function_context): Rename for consistency.
12490         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
12491         * c-tree.h (push_c_function_context, pop_c_function_context,
12492         mark_c_function_context): Rename for consistency.
12493         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
12494         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
12495         * function.c (init_lang_status, save_lang_status,
12496         restore_lang_status, mark_lang_status, free_lang_status):
12497         Move to langhooks.h.
12498         (push_function_context_to, pop_function_context_from,
12499         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
12500         Update.
12501         * function.h (init_lang_status, save_lang_status,
12502         restore_lang_status, mark_lang_status, free_lang_status):
12503         Move to langhooks.h.
12504         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
12505         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
12506         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
12507         LANG_HOOKS_FUNCTION_INITIALIZER): New.
12508         (LANG_HOOKS_INITIALIZER): Update.
12509         (lhd_do_nothing_f): New.
12510         * langhooks.h (struct lang_hooks_for_functions): New.
12511         (struct lang_hooks): New hooks.
12512         * langhooks.c (lhd_do_nothing_f): New.
12513 objc:
12514         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
12515         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
12516
12517 2002-04-19  David S. Miller  <davem@redhat.com>
12518
12519         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
12520         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
12521
12522 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
12523
12524         PR optimization/3756
12525         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
12526         x = ((int) y < 0) ? cst1 : cst2.
12527
12528 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
12529
12530         PR c/6358
12531         * function.c: Reapply patch for c/6358.
12532         (expand_function_end): Copy decl_rtl's mode, not
12533         current_function_return_rtx mode.
12534
12535 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
12536
12537         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
12538         targets.
12539
12540 2002-04-19  Tom Tromey  <tromey@redhat.com>
12541
12542         * doc/install.texi (Specific): Update status of Solaris 2.8.
12543         For PR libgcj/6158.
12544
12545 2002-04-19  Andreas Schwab  <schwab@suse.de>
12546
12547         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
12548         (PUT_REAL): Restore old definition.
12549
12550 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
12551             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12552
12553         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
12554         binutils 2.11.2 and higher generate smaller binaries than Sun's
12555         native tools.
12556
12557 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
12558
12559         PR c++/6352
12560         * toplev.c (rest_of_compilation): Do not defer functions for which
12561         TREE_SYMBOL_REFERENCED has already been set.
12562
12563 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
12564
12565         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
12566         alternative.
12567
12568 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
12569
12570         * builtins.c: Include langhooks.h.
12571         (lang_type_promotes_to): Remove.
12572         (expand_builtin_va_arg): Use new hook.
12573         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
12574         (simple_type_promotes_to): Move to c-typeck.c.
12575         * c-common.h (simple_type_promotes_to): Remove.
12576         * c-decl.c (duplicate_decls, grokdeclarator): Update.
12577         * c-format.c: Include langhooks.h.
12578         (check_format_types): Update.
12579         * c-tree.h (c_type_promotes_to): New.
12580         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
12581         (type_lists_compatible_p): Update.
12582         * langhooks-def.h (lhd_type_promotes_to): New.
12583         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
12584         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
12585         * langhooks.c (lhd_type_promotes_to): New.
12586         * langhooks.h (struct lang_hooks_for_types): New hook.
12587         * tree.h (lang_type_promotes_to): Remove.
12588 objc:
12589         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
12590
12591 2002-04-18  Richard Henderson  <rth@redhat.com>
12592
12593         * function.c: Revert patch for c/6358.
12594
12595 2002-04-18  Richard Henderson  <rth@redhat.com>
12596
12597         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
12598         blocks.  Handle multiple references to the TRAP block.  Handle
12599         non-adjacent THEN and OTHER blocks.
12600
12601 2002-04-18  Richard Henderson  <rth@redhat.com>
12602
12603         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
12604         crash with no type for by-mode libcalls.
12605
12606         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
12607
12608 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
12609
12610         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
12611         __xtensa_nonlocal_goto): Use a syscall instructions to flush
12612         the register windows.
12613
12614 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
12615
12616         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
12617         appropriate.  Document need for extended precision even when
12618         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
12619         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
12620         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
12621         instead of relying on later syntax error when REAL_WIDTH > 5.
12622         * real.c: Define NE based only on whether or not we have a
12623         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
12624         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
12625         define GET_REAL and PUT_REAL as simple memcpy operations; no
12626         need to byteswap or round.
12627         Use #error instead of #ifdef-ing out the entire file, for
12628         prompt error detection.
12629
12630         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
12631
12632 2002-04-18  David S. Miller  <davem@redhat.com>
12633
12634         * config/sparc/sparc.h (BRANCH_COST): Define.
12635
12636         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
12637         does it.
12638
12639 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
12640
12641         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
12642         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
12643         propagate_block calls after relaxation loop using new variable
12644         stabilized_prop_flags.
12645
12646 2002-04-18  Richard Henderson  <rth@redhat.com>
12647
12648         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
12649         (ia64_va_arg): Expect variable sized types by reference.
12650         * config/ia64/ia64-protos.h: Update.
12651         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
12652         ia64_function_arg_pass_by_reference.
12653
12654 2002-04-18  Richard Henderson  <rth@redhat.com>
12655
12656         * ifcvt.c: Include except.h.
12657         (block_has_only_trap): Break out from find_cond_trap.
12658         (find_cond_trap): Use it.  Always delete the trap block.
12659         (merge_if_block): Allow then block null.  Be less simplistic about
12660         what insns can end a block.
12661         * Makefile.in (ifcvt.o): Depend on except.h.
12662
12663         * config/ia64/ia64.md (trap, conditional_trap): New.
12664
12665 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
12666
12667         PR c/6358
12668         * function.c (assign_parms): Assign hard current_function_return_rtx
12669         register here...
12670         (expand_function_end): ...not here.
12671
12672 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
12673
12674         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
12675         * c-tree.h (c_incomplete_type_error): New.
12676         * c-typeck.c (require_complete_type, build_component_ref): Update.
12677         (incomplete_type_error): Rename.
12678         * langhooks-def.h (lhd_incomplete_type_error): New.
12679         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
12680         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
12681         * langhooks.c (lhd_incomplete_type_error): New.
12682         * langhooks.h (struct lang_hooks_for_types): New hook.
12683         * tree.c (size_in_bytes): Use new hook.
12684         * tree.h (incomplete_type_error): Remove.
12685 objc:
12686         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
12687
12688 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
12689
12690         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
12691         TARGET_FLOAT_FORMAT blocks.
12692
12693 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12694
12695         * doc/install.texi (Downloading the source): Do not mention Chill
12696         any longer, but mention Ada.
12697         (Configuration): Do not mention Chill any longer.
12698
12699 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
12700
12701         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
12702
12703 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
12704
12705         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
12706         in last patch.
12707
12708 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
12709
12710         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
12711         instead of unsigned_type.
12712
12713 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
12714
12715         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
12716         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
12717         later.
12718
12719 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
12720
12721         * attribs.c (vector_type_node_list): New static variable.
12722         (handle_vector_size_attribute): Use it to avoid generating a
12723         new type node each time we are called.
12724
12725         * combine.c (subst): Avoid trying to make a vector mode subreg of
12726         an integer constant.
12727         (gen_lowpart_for_combine): Likewise.
12728
12729 2002-04-18  Roger Sayle  <roger@eyesopen.com>
12730             Jakub Jelinek  <jakub@redhat.com>
12731
12732         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
12733         for integer constant c (if x has unsigned type or sign bit is not
12734         set in c).  This folds the zero/sign extension into the bit-wise and
12735         operation.
12736
12737 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
12738
12739         PR middle-end/6205
12740         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
12741         otherwise xorps.
12742
12743 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
12744
12745         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
12746
12747 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
12748
12749         * gcc.c (read_specs): Detect and fail if an attempt is made to
12750         rename a spec string to an already existing string.
12751
12752 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
12753
12754         * config/s390/s390.c (legitimize_pic_address): Do not generate
12755         illegal address constant without CONST.
12756
12757 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12758
12759         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
12760         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12761
12762 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
12763
12764         PR optimization/6305
12765         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
12766         to make sure previous reloads are taken into account.  Generate
12767         better code if one operand is an in-range immediate constant.
12768
12769 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
12770
12771         * doc/install.texi (Building): libgcj requires GNU make.
12772
12773 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
12774
12775         PR bootstrap/6315
12776         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
12777         even if hard quad and register is not floating.
12778         (movtf reg<-mem split): Disallow splitting if hard quad and
12779         register is floating.
12780         (movtf mem<-reg split): Likewise.
12781         * config/sparc/sparc.c (fp_register_operand): New predicate.
12782         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
12783
12784 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
12785
12786         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
12787         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
12788         (unprotoize.o): Ditto.  Build from protoize.c.  Define
12789         UNPROTOIZE on command line.
12790         * protoize.c: Include cppdefault.h.  Delete include_defaults.
12791         (in_system_include_dir): Use cpp_include_defaults (defined in
12792         cppdefault.o).
12793         * unprotoize.c: Delete file.
12794
12795 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
12796
12797         * config/rs6000/altivec.h (vec_ld): Add array variants.
12798         (vec_lde): Same.
12799         (vec_ldl): Same.
12800
12801 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
12802             Aldy Hernandez <aldyh@redhat.com>
12803
12804         * config/rs6000/altivec.h: Define __ALTIVEC__.
12805         (bool): New.
12806         (__pixel): New.
12807         (pixel): New.
12808         (vec_cfux): New.
12809         (vec_vmaddfp): New.
12810         (vec_vsldoi): New.
12811         Add parentheses to all macro arguments.
12812
12813 2002-04-16  Richard Henderson  <rth@redhat.com>
12814
12815         PR c++/6320
12816         * except.c (remove_eh_handler): Insert inner regions at beginning
12817         of sibling chain.  Refactor expressions.
12818
12819 2002-04-16  Richard Henderson  <rth@redhat.com>
12820
12821         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
12822         * config/sparc/sol2-gas-bi.h: New file.
12823         * config.gcc (sparc*-solaris): Add it as needed.
12824         * configure.in (AS_SPARC64_FLAG): Remove check.
12825         * config.in, configure: Regenerate.
12826
12827         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
12828
12829 2002-04-16  Richard Henderson  <rth@redhat.com>
12830
12831         * config/mips/mips.c (override_options): Don't override N32 for
12832         a 64-bit ISA.
12833
12834         PR 6202
12835         * config/mips/mips.md (can_delay): Split out of existing define_delays.
12836         (HILO_delay): Set can_delay false.
12837
12838 2002-04-16  Dale Johannesen <dalej@apple.com>
12839
12840         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
12841         instruction addresses.
12842         (rs6000_output_function_epilogue): Likewise.
12843
12844 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
12845
12846         * c-parse.in (poplevel, compstmt_start,
12847         compstmt_primary_start): Add ending ';', in accordance
12848         with POSIX.
12849
12850 2002-04-16  Richard Henderson  <rth@redhat.com>
12851
12852         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
12853         Adjust tm_file order to get TARGET_DEFAULT set properly.
12854         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
12855         * doc/install.texi (sparc-solaris): Update.
12856
12857 2002-04-16  Dale Johannesen <dalej@apple.com>
12858
12859         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
12860         comparison operands do not match each other or if modes of
12861         conditions do not match result.
12862
12863 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
12864
12865         PR target/6305
12866         * config/s390/s390.md (mulsidi3): Set both subregs of the
12867         multiword register.
12868
12869 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
12870
12871         * config/rs6000/altivec.h (vec_addc): Type check.
12872
12873 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
12874
12875         PR middle-end/6279
12876         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
12877
12878         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
12879
12880 2002-04-15  Richard Henderson  <rth@redhat.com>
12881
12882         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
12883         call_really_used_regs too.
12884
12885 2002-04-15  Richard Henderson  <rth@redhat.com>
12886
12887         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
12888
12889 2002-04-15  David S. Miller  <davem@redhat.com>
12890
12891         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
12892         as being CLOBBERed.
12893
12894 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
12895
12896         PR c/6290
12897         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
12898         CONST_VECTOR is { 0, ... 0 }.
12899
12900 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
12901
12902         * doc/install.texi (Installing GCC: Configuration): Clarify
12903         the only supported ways to configure gcc.
12904
12905 2002-04-15  Roland McGrath  <roland@frob.com>
12906
12907         * config.gcc (alpha*-*-gnu*): New target configuration.
12908         * config/alpha/gnu.h: New file for it.
12909         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
12910
12911 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
12912
12913         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
12914         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
12915         * tree.h (expand_start_stmt_expr): Update prototype.
12916         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
12917         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
12918         on the STMT_EXPR created for the inline function.
12919
12920 2002-04-15  Richard Henderson  <rth@redhat.com>
12921
12922         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
12923         config/i386/linux-aout.h, config/i386/linux-oldld.h,
12924         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
12925         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
12926         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
12927         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
12928         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
12929         Define __gnu_linux__, not gnu_linux.
12930         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
12931
12932 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
12933
12934         Remove Chill front end.
12935         * gcc.c (default_compilers): Remove Chill entries.
12936         * ch: Remove directory.
12937         * doc/frontends.texi: Remove information about Chill.
12938         * doc/sourcebuild.texi: Likewise.
12939         * doc/standards.texi: Likewise.
12940
12941 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
12942
12943         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
12944         (LONGLONG_STANDALONE): Define.
12945
12946 2002-04-15  David S. Miller  <davem@redhat.com>
12947
12948         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
12949         Call emit_library_call with LCT_NORMAL.
12950         (sparc_initialize_trampoline): Use LCT_foo instead of
12951         magic constant in emit_library_call invocations.
12952         (sparc64_initialize_trampoline): Likewise.
12953         (sparc_profile_hook): Likewise.
12954         * config/sparc/sparc.md: Likewise.
12955
12956         * config/sparc/sparc.c (sparc_extra_constraint_check):
12957         Fix type of argument 'c'.
12958         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
12959         Likewise.
12960
12961 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
12962
12963         * diagnostic.h (output_buffer_state): Redefine.
12964         (output_format_decoder): New macro.
12965         (output_prefixing_rule): Likewise.
12966         (output_line_cutoff): Likewise.
12967         (diagnostic_format_decoder): Adjust.
12968         (diagnostic_prefixing_rule): Likewise.
12969         (diagnostic_line_cutoff): Likewise.
12970         (diagnostic_state): Likewise.
12971         (diagnostic_kind_count): Likewise.
12972         (diagnostic_buffer): Now a macro.
12973
12974         * diagnostic.c (diagnostic_buffer): Remove definition.
12975         (output_is_line_wrapping): Adjust.
12976         (set_real_maximum_length): Likewise.
12977         (output_set_maximum_length): Likewise.
12978         (init_output_buffer): Likewise.
12979         (lhd_print_error_function): Likewise.
12980         (output_do_verbatim): Likewise.
12981
12982 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
12983
12984         * cpperror.c (print_location): Don't print include chain
12985         if line == 0.
12986         (cpp_begin_message): Update to use DL_ macros.
12987         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
12988         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
12989         cpp_notice, cpp_notice_from_errno): Remove.
12990         (cpp_error, cpp_error_with_line): Update to take a diagnostic
12991         level.
12992         (cpp_errno): New.
12993         * cppexp.c (CPP_ICE): Remove.
12994         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
12995         lex, integer_overflow, _cpp_parse_expr): Update.
12996         * cppfiles.c (read_include_file, find_include_file,
12997         handle_missing_header, _cpp_read_file, remap_filename): Update.
12998         * cpphash.h (enum error_type): Remove.
12999         (_cpp_begin_message): Update.
13000         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
13001         cpp_handle_option, cpp_post_options): Update.
13002         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
13003         skip_whitespace, parse_identifier, parse_slow, parse_string,
13004         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
13005         cpp_interpret_charconst): Update.
13006         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
13007         lex_macro_node, do_undef, glue_header_name, parse_include,
13008         do_include_common, read_flag, do_line, do_linemarker, do_ident,
13009         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
13010         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
13011         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
13012         _cpp_pop_buffer, do_diagnostic): Update.
13013         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
13014         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
13015         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
13016         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
13017         cpp_notice, cpp_notice_from_errno): Remove.
13018         (cpp_error, cpp_error_with_line): Update to take a diagnostic
13019         level.
13020         (cpp_errno): New.
13021         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
13022         collect_args, enter_macro_context, save_parameter, parse_params,
13023         _cpp_create_definition, check_trad_stringification,
13024         cpp_macro_definition): Update.
13025         * cppmain.c (cpp_preprocess_file): Update.
13026         * fix-header.c (read_scan_file): Update.
13027
13028 2002-04-14  Andreas Schwab  <schwab@suse.de>
13029
13030         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
13031
13032 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
13033
13034         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
13035
13036 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
13037
13038         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
13039         not gnu_hurd.
13040
13041 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
13042
13043         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
13044
13045 2002-04-13      Joel Sherrill <joel@OARcorp.com>
13046
13047         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
13048         sparc-elf and sparc-rtems targets.
13049
13050 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
13051
13052         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
13053         defined, and __gnu_hurd__ wherever __GNU__ is defined.
13054         * arm/linux-elf.h: Likewise.
13055         * cris/aout.h: Likewise.
13056         * cris/linux.h: Likewise.
13057         * i370/linux.h: Likewise.
13058         * i386/gnu.h: Likewise.
13059         * i386/linux-aout.h: Likewise.
13060         * i386/linux-oldld.h: Likewise.
13061         * i386/linux.h: Likewise.
13062         * i386/linux64.h: Likewise.
13063         * ia64/linux.h: Likewise.
13064         * m68k/linux-aout.h: Likewise.
13065         * m68k/linux.h: Likewise.
13066         * mips/linux.h: Likewise.
13067         * pa/pa-linux.h: Likewise.
13068         * pj/linux.h: Likewise.
13069         * rs6000/sysv4.h: Likewise.
13070         * s390/linux.h: Likewise.
13071         * sh/linux.h: Likewise.
13072         * sparc/linux-aout.h: Likewise.
13073         * sparc/linux.h: Likewise.
13074         * sparc/linux64.h: Likewise.
13075         * xtensa/linux.h: Likewise.
13076
13077 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
13078
13079         * stmt.c (check_unique_operand_names): Expect operand names to
13080         be strings rather than identifiers.  Use simple_cst_equal to
13081         compare them.
13082         (resolve_operand_name_1): Make same identifier to string change here.
13083         * c-parse.in (asm_operand): Convert a named operand into a string.
13084         * cp/parse.y (asm_operand): Likewise.
13085
13086 2002-04-13  Andreas Schwab  <schwab@suse.de>
13087
13088         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
13089
13090 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
13091
13092         Revert these changes:
13093
13094         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
13095
13096         PR c++/5571
13097         * stor-layout.c (layout_decl): Reset the RTL for the decl.
13098
13099 2002-04-12  Richard Henderson  <rth@redhat.com>
13100
13101         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
13102         (sparc*-*-solaris): Clean up header files.
13103         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
13104         and plan on generating 64-bit code.
13105         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
13106         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
13107         * config/sparc/sol2-sld-64.h: Rename ...
13108         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
13109         for AS_SPARC64_FLAG not defined.
13110         * config/sparc/sol2-gld-bi.h: New.
13111         * config/sparc/sol2-sld.h: Remove.
13112         * config/sparc/sol26-sld.h: New.
13113         * config/sparc/sol2.h: Tidy comments.
13114         * doc/install.texi: Document sparc-solaris configury changes.
13115
13116 2002-04-12  Richard Henderson  <rth@redhat.com>
13117
13118         * recog.c (offsettable_address_p): Match the logic in adjust_address.
13119
13120         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
13121         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
13122
13123 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13124
13125         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
13126
13127 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
13128
13129         * pa.c (pa_can_combine_p): Call extract_insn before calling
13130         constrain_operands.
13131
13132 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
13133
13134         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
13135         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
13136         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
13137         (CPP_PREDEFINES): Handle __declspec.
13138         * config/i386/t-interix (USER_H): Remove.
13139
13140 2002-04-12  DJ Delorie  <dj@redhat.com>
13141
13142         * integrate.c (compare_blocks): Make comparisons safe for when
13143         sizeof(int) < sizeof(char *).
13144         (find_block): Likewise.
13145
13146 2002-04-12  Jan Hubicka  <jh@suse.cz>
13147             David Edelsohn  <edelsohn@gnu.org>
13148
13149         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
13150         registers.
13151         (symbol_ref_operand): New.
13152         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
13153         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
13154
13155 2002-04-12  Andreas Schwab  <schwab@suse.de>
13156
13157         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
13158         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
13159         overrides the definition in config/svr4.h.
13160
13161 2002-04-12      Eric Norum <eric.norum@usask.ca>
13162
13163         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
13164         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
13165         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
13166         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
13167         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
13168         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
13169         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
13170         definitions to config/rtems.h and make the targets more similar.
13171
13172 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13173
13174         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
13175         POINTERS_EXTEND_UNSIGNED.
13176         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
13177         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
13178
13179         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
13180         not specified.
13181
13182 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
13183
13184         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
13185         depends on TARGET_SHMEDIA, not TARGET_SH5.
13186
13187 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
13188
13189         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
13190         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
13191
13192 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
13193
13194         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
13195         no r0 clobber.
13196
13197 2002-04-12  Andreas Schwab  <schwab@suse.de>
13198
13199         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
13200
13201 2002-04-12  Richard Henderson  <rth@redhat.com>
13202
13203         PR bootstrap/4191
13204         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
13205
13206         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
13207         modes spanning multiple hard regs.
13208
13209         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
13210
13211 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13212
13213         * pa.c (pa_output_function_prologue): Don't accumulate the total
13214         number of code bytes when using TARGET_64BIT, or gas, SOM and not
13215         the portable runtime.
13216         (output_deferred_plabels): Handle 64bit plabels.
13217         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
13218         generating pic code using the GAS assembler for object formats that
13219         are not SOM (ie., ELF32 and ELF64).
13220         (output_millicode_call): Check attribute type if attribute length is 28.
13221         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
13222         dbr_sequence_length once.
13223         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
13224         dbr_sequence_length once.
13225         * pa.h (TARGET_SOM): Define if not defined.
13226         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
13227         with GAS and not SOM.
13228         (jump, call_internal_reg, call_value_internal_reg): Likewise.
13229         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
13230
13231 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
13232
13233         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
13234         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
13235         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
13236         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
13237         elfos.h and dbxelf.h values are fine now.
13238         * config/i386/freebsd.h, config/alpha/freebsd.h
13239         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
13240
13241 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
13242
13243         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
13244         or set Acpu or Amachine.  Reformat.
13245         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
13246         define.
13247         (LINK_SPEC): Do not need to undef.
13248         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
13249         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
13250         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
13251         define.
13252         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
13253         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
13254         (LINK_SPEC): Do not need to undef.
13255         (DONT_USE_BUILTIN_SETJMP): Do not define.
13256         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
13257         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
13258         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
13259         Remove trailing spaces.
13260         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
13261         __ELF__, or set Acpu or Amachine.  Reformat.
13262         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
13263         define.
13264
13265 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
13266
13267         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
13268         all other *-*-freebsd* targets.
13269
13270 2002-04-11  Richard Henderson  <rth@redhat.com>
13271
13272         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
13273
13274 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
13275
13276         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
13277         Include {cpu}/{cpu}.h thru tm_file.
13278         (alpha*-*-linux*ecoff): Remove target.
13279         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
13280         (LINK_SPEC): Remove, is not OS independent.
13281         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
13282         (LINK_SPEC): Do not need to #undef any longer.
13283         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
13284         any longer.
13285         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
13286         __ELF__.
13287         (LINK_SPEC): Moved here from alpha/elf.h.
13288         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
13289         SUB_CPP_PREDEFINES.
13290         * config/alpha/linux-ecoff.h: Remove.
13291         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
13292         (CPP_SPEC): Define _POSIX_SOURCE as needed.
13293         (CPP_SUBTARGET_SPEC): Do not define.
13294         (LINK_SPEC): Do not need to #undef any longer.
13295         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
13296         * config/alpha/vms.h: Likewise.
13297
13298 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
13299
13300         * doc/extend.texi: Remove old claim that typedefs cannot have
13301         an alignment attribute.
13302
13303 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
13304
13305         PR optimization/6177
13306         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
13307         bitpos is 0 and bitsize CONCAT size.
13308
13309 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
13310
13311         PR c/6223
13312         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
13313
13314 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
13315
13316         * config/alpha/freebsd.h: Minor reformatting.
13317         (CPP_SPEC): Define ELF and add cpp_subtarget.
13318         (ASM_SPEC): No longer needed.
13319
13320 2002-04-11  Richard Henderson  <rth@redhat.com>
13321
13322         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
13323         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
13324         (dimode mem/zero splitter): New.
13325
13326 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
13327
13328         * config/cris/cris.c (cris_override_options): Tweak error message
13329         for PIC not implemented.
13330
13331         * config/cris/cris.h: Tweak comments related to parameter-passing.
13332
13333         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
13334
13335 2002-04-10  Richard Henderson  <rth@redhat.com>
13336
13337         * except.c (add_ehl_entry): Allow duplicates after landing pad
13338         creation.
13339
13340 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
13341
13342         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
13343
13344 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
13345
13346         * c-decl.c (c_init_decl_processing): Move generation of
13347         decls for g77_integer_type_node and friends from here ...
13348         * c-common.c (c_common_nodes_and_builtins): ... to here.
13349
13350 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
13351
13352         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
13353         is only used as frame pointer when frame_pointer_needed is true.
13354
13355 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
13356
13357         PR target/817
13358         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
13359         for the fact that the pool entry uses two words.
13360         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
13361         1k bytes.
13362         (movdf_soft_insn): Similarly.
13363         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
13364         for the fact that the pool entry uses three words.
13365
13366 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
13367
13368         * config/mips/mips.c (mips_va_arg): When using the struct version
13369         of the EABI va_list, allow arguments in the register save area to
13370         take up less room than a stack argument.
13371
13372 2002-04-10  Richard Henderson  <rth@redhat.com>
13373
13374         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
13375         if EXPAND_INITIALIZER.
13376
13377 2002-04-09  Richard Henderson  <rth@redhat.com>
13378
13379         * config/alpha/alpha.md (movdi_er_maybe_g): New.
13380         * config/alpha/alpha.c (alpha_expand_mov): Use it.
13381
13382 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
13383
13384         PR optimization/6233
13385         * rtlanal.c (pure_call_p): New function.
13386         * rtl.h (pure_call_p): Declare.
13387         * loop.c (prescan_loop): Use it to set has_nonconst_call.
13388         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
13389
13390 2002-04-09  Eric Christopher  <echristo@redhat.com>
13391
13392         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
13393         information to .comm directive.
13394
13395 2002-04-09  Richard Henderson  <rth@redhat.com>
13396
13397         PR c/5078
13398         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
13399
13400 2002-04-09  Richard Henderson  <rth@redhat.com>
13401
13402         * basic-block.h (flow_delete_block_noexpunge): Declare.
13403         (expunge_block_nocompact): Declare.
13404         * cfg.c (expunge_block_nocompact): Split out from ...
13405         (expunge_block): ... here.
13406         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
13407         (flow_delete_block_noexpunge): Split out from ...
13408         (flow_delete_block): ... here.
13409         * cfgcleanup.c (delete_unreachable_blocks): Compact while
13410         removing dead blocks.
13411         * except.c (exception_handler_labels): Remove.
13412         (exception_handler_label_map): New.
13413         (struct eh_region): Add aka member.
13414         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
13415         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
13416         (for_each_eh_label, for_each_eh_label_1): New.
13417         (init_eh): Register exception_handler_label_map.
13418         (free_eh_status): Use free_region.
13419         (find_exception_handler_labels): Use the map, not the list.
13420         (remove_exception_handler_label): Likewise.
13421         (maybe_remove_eh_handler): Likewise.
13422         (remove_eh_handler): Use the region aka bitmap.
13423         * except.h (exception_handler_labels): Remove.
13424         (for_each_eh_label): Declare.
13425         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
13426         * loop.c (invalidate_loops_containing_label): New.
13427         (find_and_verify_loops): Use it.  Use for_each_eh_label.
13428         * sched-rgn.c (is_cfg_nonregular): Use
13429         current_function_has_exception_handlers.
13430
13431 2002-04-09  Richard Henderson  <rth@redhat.com>
13432
13433         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
13434         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
13435         Do not return changed status.
13436         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
13437         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
13438         New functions that do return changed status.
13439         * sbitmap.h: Update decls.
13440         * gcse.c, lcm.c: Use _cg functions as needed.
13441
13442 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
13443
13444         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
13445         (sh64-*-elf*, sh-*-rtemself*): Likewise.
13446         * config/sh/embed_bb.c: New file.
13447         * config/sh/embed-elf.h: New file.
13448         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
13449         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
13450         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
13451         __PTRDIFF_TYPE__ .
13452         (SUBTARGET_CPP_PTR_SPEC): Don't define.
13453         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
13454         Add subtarget_asm_endian_spec.
13455         (ASM_SPEC): Use subtarget_asm_endian_spec.
13456         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
13457         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
13458         (WCHAR_UNSIGNED): Define.
13459         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
13460         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
13461         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
13462         Fix value.
13463         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
13464         (sh_adjust_cost): Likewise.
13465         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
13466         __PTRDIFF_TYPE__ .
13467         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
13468         (WCHAR_TYPE_SIZE): Likewise.
13469         (ASM_SPEC): Use subtarget_asm_endian_spec.
13470         (SH_ELF_WCHAR_TYPE): #undef/ #define.
13471         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
13472         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
13473         (MAX_WCHAR_TYPE_SIZE): Don't #define .
13474         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
13475         (USER_LABEL_PREFIX): Don't #undef /#define .
13476         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
13477         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
13478         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
13479         (ASM_SPEC): Likewise.
13480         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
13481         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
13482         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
13483         (LIB2FUNCS_EXTRA): Define.
13484         * t-sh64 (LIB2FUNCS_EXTRA): Define.
13485         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
13486         (LIB1ASMFUNCS_CACHE): Define.
13487         (LIB2FUNCS_EXTRA): Redefine empty.
13488
13489 2002-04-08  Richard Henderson  <rth@redhat.com>
13490
13491         * reorg.c (get_branch_condition): Use reversed_comparison_code.
13492
13493 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13494
13495         * config/m68hc11/larith.asm (__map_data_section): Fix condition
13496         and optimize for size.
13497         (__do_global_ctors): Fix pointer comparison.
13498         (__do_global_dtors): Likewise.
13499
13500 2002-04-09  David S. Miller  <davem@redhat.com>
13501
13502         * config/sparc/sparc.c (sparc_extra_constraint_check): New
13503         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
13504         allow reloading pseudos.
13505         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
13506         * config/sparc/sparc-protos.h: Declare it.
13507
13508         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
13509         unsigned comparison warning.
13510         (output_restore_regs): Mark leaf_function as unused.
13511
13512 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13513
13514         * expr.c (is_aligning_offset): New function.
13515         (expand_expr, case COMPONENT_EXPR): Call it.
13516
13517 2002-04-08  David S. Miller  <davem@redhat.com>
13518
13519         PR target/6082
13520         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
13521
13522         Make init_priority work on Sparc when using GNU ld.
13523         * config/sparc/linux.h, config/sparc/linux64.h,
13524         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
13525         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
13526         * config/sparc/sol2-gld.h: New file to do the same.
13527         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
13528         sparc/sol2-gld.h to tm_file.
13529
13530         PR optimization/4328
13531         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
13532         * doc/md.texi: Document it.
13533         * config/sparc/sparc.md (movdi_insn_sp64_novis,
13534         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
13535         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
13536         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
13537         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
13538
13539 2002-04-08  Andreas Jaeger  <aj@suse.de>
13540
13541         * stmt.c (expand_asm_operands): Revert last patch from Richard
13542         Henderson.
13543
13544 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13545
13546         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
13547         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
13548
13549 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13550
13551         * doc/contrib.texi (Contributors): Add David O'Brien.
13552
13553 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
13554
13555         * configure.in (auto-build.h): Use target_alias and build_alias
13556         when running configure.
13557         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
13558         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
13559         * configure: Regenerate.
13560
13561 2002-04-07  David S. Miller  <davem@redhat.com>
13562
13563         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
13564
13565 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13566
13567         PR 5933
13568         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
13569         generating 32-bit pic code.
13570
13571 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
13572
13573         * cppinit.c (cpp_create_reader): Initialize
13574         discard_comments_in_macro_exp.
13575         (COMMAND_LINE_OPTIONS): Add "-CC" option.
13576         (cpp_handle_option): Handle "-CC" option.
13577         * cpplex.c (save_comment): If saving a C++ comment in
13578         a directive, convert it to a C comment.
13579         (_cpp_lex_direct): Pass second comment start character to
13580         save_comment to indicate comment type.
13581         * cpplib.c (_cpp_handle_directive): If processing
13582         a "#define" directive and discard_comments_in_macro_exp
13583         is false,  re-enable saving of comments.
13584         (lex_macro_node): If discard_comments_in_macro_exp is false,
13585         discard any comments before the macro identifier.
13586         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
13587         member.
13588         * cppmacro.c (cpp_get_token): If expanding a macro while
13589         processing a directive, discard any comments we might encounter.
13590         (parse_params): If discard_comments_in_macro_exp is false,
13591         ignore comments in the macro parameter list.
13592         * gcc.c (cpp_unique_options): Add "-CC" option.
13593         (option_map): Map "--comments-in-macros" to "-CC".
13594         * doc/cppopts.texi: Document "-CC" option.
13595         * f/lang-specs.h: Add "-CC" option.
13596         * testsuite/gcc.dg/cpp/maccom1.c: New test.
13597         * testsuite/gcc.dg/cpp/maccom2.c: New test.
13598         * testsuite/gcc.dg/cpp/maccom3.c: New test.
13599         * testsuite/gcc.dg/cpp/maccom4.c: New test.
13600         * testsuite/gcc.dg/cpp/maccom5.c: New test.
13601         * testsuite/gcc.dg/cpp/maccom6.c: New test.
13602
13603 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13604
13605         PR middle-end/6180
13606         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
13607
13608 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
13609
13610         PR c++/5571
13611         * stor-layout.c (layout_decl): Reset the RTL for the decl.
13612
13613         PR opt/5120
13614         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
13615         RTX_UNCHANGING_P for the functions arguments when a tail call
13616         is made.
13617
13618 2002-04-06  Jason Merrill  <jason@redhat.com>
13619
13620         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
13621         (parse_options_and_default_flags): Set them appropriately.
13622         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
13623
13624 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
13625
13626         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
13627         here.
13628
13629         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
13630         semicolon.
13631
13632         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
13633         types come in by-reference.  Fix typo in comment.
13634
13635 2002-04-05  David S. Miller  <davem@redhat.com>
13636
13637         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
13638         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
13639         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
13640         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
13641
13642 2002-04-05  David S. Miller  <davem@redhat.com>
13643
13644         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
13645         are not going to emit return instructions, emit at least a nop
13646         for the sake of sane backtraces.
13647
13648 2002-04-05  Richard Henderson  <rth@redhat.com>
13649
13650         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
13651
13652 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
13653
13654         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
13655
13656 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
13657
13658         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
13659         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
13660         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
13661
13662 2002-04-05  Andreas Schwab  <schwab@suse.de>
13663
13664         * c-convert.c: Include c-common.h.
13665         * Makefile.in (c-convert.o): Updated.
13666
13667 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
13668
13669         * mklibgcc.in: Use separate libgcc.map for each multilib.
13670         * Makefile.in (distclean): Don't remove libgcc.map here.
13671
13672 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
13673
13674         * Makefile.in (s-mlib): Handle --disable-multilib by separate
13675         genmultilib invocation.
13676
13677 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
13678
13679         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
13680         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
13681         to num_gprs for symmetry.
13682         * config/mips/mips.c: Adjust accordingly.
13683
13684 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
13685
13686         * c-common.c (truthvalue_conversion): Rename, update.
13687         * c-common.h (c_common_truthvalue_conversion): New.
13688         * c-convert.c (convert): Update.
13689         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
13690         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
13691         * c-typeck.c (build_binary_op, build_unary_op,
13692         build_conditional_expr): Update.
13693         * fold-const.c (constant_boolean_node, fold): Use langhook.
13694         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
13695         * langhooks.h (struct lang_hooks): New hook.
13696         * stmt.c (expand_decl_cleanup): Use langhook.
13697         * tree.h (truthvalue_conversion): Remove.
13698 objc:
13699         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
13700
13701 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
13702
13703         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
13704         Add rules to make null object file.
13705
13706 2002-04-04  Jim Blandy  <jimb@redhat.com>
13707
13708         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
13709         macro formal parameter names.
13710
13711 2002-04-04  David S. Miller  <davem@redhat.com>
13712
13713         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
13714
13715 2002-04-04  Richard Henderson  <rth@redhat.com>
13716
13717         PR middle-end/5099
13718         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
13719         Support copies into and out of memory.  Don't accept allows_reg
13720         and allows_mem as gospel.
13721
13722 2002-04-04  Richard Henderson  <rth@redhat.com>
13723
13724         PR opt/6165
13725         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
13726         (write_dependence_p): Likewise.
13727
13728 2002-04-04  Richard Henderson  <rth@redhat.com>
13729
13730         * predict.c (estimate_bb_frequencies): Do frequency calculation
13731         with a volatile temporary.
13732
13733 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
13734
13735         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
13736
13737 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
13738
13739         PR c++/6119
13740         * final.c (final_start_function): Don't bump profile_label_no here...
13741         (final_end_function): ...but here.
13742
13743 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
13744
13745         * config/sparc/sparc.md (pic): New attribute.
13746         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
13747         into stack slots.
13748         (split after do_builtin_setjmp_setup): New.
13749
13750 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
13751
13752         PR fortran/6106
13753         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
13754         change.
13755
13756 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
13757
13758         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
13759         UNITS_PER_WORD for zero sized aggregates.
13760
13761 2002-04-03  David S. Miller  <davem@redhat.com>
13762
13763         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
13764         one-character spec for this, just use %(link_gcc_c_sequence).
13765
13766 2002-04-03  David S. Miller  <davem@redhat.com>
13767
13768         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
13769         handling.
13770
13771 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13772
13773         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
13774         (DWARF_FRAME_RETURN_COLUMN): Move.
13775         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
13776         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
13777         * pa.c (except.h, predict.h): Include.
13778         (FRP): Delete.
13779         (store_reg_modify, set_reg_plus_d): Revise prototypes.
13780         (output_ascii): Add cast.
13781         (store_reg_modify): Revise to add frame notes.
13782         (set_reg_plus_d): Likewise.
13783         (compute_frame_size): Include space for eh data registers in frame if
13784         the current function calls eh_return.
13785         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
13786         function calls eh_return.  Save eh data registers if the current
13787         function calls eh_return.  Fix code to add frame notes.  Emit
13788         blockage to prevent insns with frame notes being scheduled in the
13789         delay slot of calls.
13790         (hppa_expand_epilogue): Restore eh data registers and do final stack
13791         adjustment if the current function calls eh_return.  Don't add frame
13792         notes.
13793         (output_call): Revise for change in length of call insn.  Don't do
13794         return pointer adjustment for an unconditional jump in the delay slot
13795         of a call when using frame notes.
13796         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
13797         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
13798         (ARG_POINTER_CFA_OFFSET): Define.
13799         * pa.md (return_external_pic): New pattern.
13800         (prologue): Correct formatting.  Use return_external_pic if current
13801         function calls eh_return.
13802         (call_internal_symref, call_value_internal_symref,
13803         sibcall_internal_symref, sibcall_value_internal_symref): Change default
13804         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
13805         respectively.
13806         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
13807
13808         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
13809         list of targets to check using "nop" insn.
13810         * configure: Rebuilt.
13811
13812 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
13813
13814         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
13815
13816 2002-04-03  David S. Miller  <davem@redhat.com>
13817
13818         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
13819         library sequence passed to the linker.
13820         (LINK_COMMAND_SPEC): Use it.
13821         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
13822         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
13823         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
13824
13825 2002-04-03  Jason Merrill  <jason@redhat.com>
13826
13827         * except.c (struct eh_status): Remove protect_list.
13828         (begin_protect_partials, end_protect_partials): Remove.
13829         (add_partial_entry): Remove.
13830         * except.h: Remove prototypes.
13831
13832         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
13833         expand_decl_cleanup_eh.
13834
13835         PR c++/5636
13836         * tree.h (CLEANUP_EH_ONLY): New macro.
13837         * stmt.c (expand_decl_cleanup_eh): New fn.
13838         (expand_cleanups): Check CLEANUP_EH_ONLY.
13839         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
13840         Use expand_decl_cleanup_eh.
13841         (expand_stmt): Adjust.
13842         * c-common.h: Adjust prototype.
13843
13844 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
13845
13846         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
13847         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
13848         (cris_target_asm_function_epilogue): Ditto.
13849         (cris_initial_frame_pointer_offset): Ditto.
13850         (cris_simple_epilogue): Ditto.
13851         (cris_expand_builtin_va_arg): Variable-size types come in
13852         by-reference.
13853
13854 2002-04-03  David S. Miller  <davem@redhat.com>
13855
13856         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
13857         little-endian.
13858         (set_fast_math): Correct 'fsr' type.
13859
13860 2002-04-03  Richard Henderson  <rth@redhat.com>
13861
13862         PR opt/3569
13863         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
13864         * toplev.c (check_global_declarations): Use it.
13865         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
13866         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
13867         (LANG_HOOKS_DECLS): Add it.
13868         * langhooks.c (lhd_warn_unused_global_decl): New.
13869         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
13870         * c-objc-common.c (c_warn_unused_global_decl): New.
13871         * c-tree.h (c_warn_unused_global_decl): Declare.
13872         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
13873
13874 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
13875
13876         * langhooks-def.h (lhd_set_decl_assembler_name,
13877         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
13878         (LANG_HOOKS_INITIALIZER): Update.
13879         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
13880         * langhooks.h (struct lang_hooks): New hook.
13881         * tree.c (set_decl_assembler_name): Move to langhooks.c.
13882         (lang_set_decl_assembler_name): Remove.
13883         (init_obstacks): Don't set hook.
13884         (decl_assembler_name): New function.
13885         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
13886         (decl_assembler_name): New.
13887         (lang_set_decl_assembler_name): Remove.
13888
13889 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
13890
13891         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
13892         works properly with .hidden symbols.
13893         * configure: Rebuilt.
13894         * config.in: Rebuilt.
13895         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
13896         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
13897         properly with .hidden symbols.
13898
13899 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
13900
13901         PR middle-end/6102
13902         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
13903         USE argument.
13904
13905 2002-04-03  Richard Henderson  <rth@redhat.com>
13906
13907         PR opt/4120
13908         * sched-rgn.c (sets_likely_spilled): New.
13909         (sets_likely_spilled_1): New.
13910         (add_branch_dependences): Use it.
13911
13912 2002-04-02  Richard Henderson  <rth@redhat.com>
13913
13914         PR opt/4311
13915         * loop.h (LOOP_FIRST_PASS): New.
13916         * loop.c (strength_reduce): Mind it when deciding to unroll.
13917         * toplev.c (rest_of_compilation): Set it.
13918
13919 2002-04-02  David S. Miller  <davem@redhat.com>
13920
13921         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
13922         mems_ok_for_ldd_peep when the order of the loads being examined
13923         is reversed.
13924         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
13925         existing comment to increase comprehension of this situation.
13926
13927 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
13928
13929         * config/sh/sh.md: Don't use union real_extract.
13930
13931 2002-04-02  Richard Henderson  <rth@redhat.com>
13932
13933         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
13934
13935 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
13936
13937         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
13938         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
13939         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
13940         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
13941         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
13942         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
13943         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
13944         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
13945         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
13946         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
13947         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
13948         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
13949         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
13950         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
13951         Include as many configury headers via tm_file as possible.  This
13952         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
13953         * config/openbsd-oldgas.h: New file.
13954         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
13955         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
13956         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
13957         config/i386/i386-coff.h, config/i386/i386-interix.h,
13958         config/i386/iscdbx.h, config/i386/linux-aout.h,
13959         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
13960         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
13961         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
13962         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
13963         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
13964         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
13965         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
13966         config/i386/vxi386.h: Do not directly include configury headers.
13967         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
13968         Directly include configury headers that are no longer automatically
13969         included by the above headers.
13970         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
13971         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
13972         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
13973         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
13974         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
13975         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
13976         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
13977         (TARGET_VERSION): Define.
13978         * config/i386/beos-elf.h, config/i386/freebsd.h,
13979         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
13980         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
13981         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
13982         config/i386/sco5.h, config/i386/sysv4.h
13983         (TARGET_VERSION): Do not need to protect.
13984         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
13985         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
13986         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
13987         config/i386/i386-interix.h, config/i386/linux-aout.h,
13988         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
13989         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
13990         (YES_UNDERSCORES): Do not define - not needed.
13991         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
13992         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
13993         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
13994         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
13995         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
13996         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
13997         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
13998         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
13999
14000 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
14001             Richard Henderson  <rth@redhat.com>
14002
14003         PR c/5484
14004         * function.c (assign_temp): Accept either type or decl argument.
14005         Detect variables whose size is too large to fit into an integer.
14006         * stmt.c (expand_decl): Pass the decl, not the type.
14007
14008 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
14009
14010         * protoize.c: Match include directory usage with cppdefault.c.
14011
14012 2002-04-03  Jeffrey A Law  (law@redhat.com)
14013             Hans-Peter Nilsson  <hp@bitrange.com>
14014
14015         * combine.c (simplify_comparison): Avoid narrowing a comparison
14016         with a paradoxical subreg when doing so would drop signficant bits.
14017
14018 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
14019
14020         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
14021         if POINTERS_EXTEND_UNSIGNED is defined.
14022
14023 2002-04-02  Richard Henderson  <rth@redhat.com>
14024
14025         PR opt/3967
14026         * local-alloc.c (contains_replace_regs): LO_SUM may contain
14027         replace regs.
14028
14029 2002-04-02  Richard Henderson  <rth@redhat.com>
14030
14031         * doc/standards.texi: Document required freestanding libc entry points.
14032
14033 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
14034
14035         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
14036         associated splitter.  Remove MQ constraint.
14037         (ctrdi_internal4): Correct CCmode clobber.
14038
14039 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14040
14041         * milli64.S ($$dyncall): New function.
14042         * t-linux (LIB1ASMFUNCS): Revise module list.
14043         (LIB1ASMSRC): Use pa/milli64.S.
14044
14045 2002-04-02  Richard Henderson  <rth@redhat.com>
14046
14047         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
14048         rename solaris_sys_varargs_h.
14049
14050 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14051
14052         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
14053         the same mode as its component.
14054
14055 2002-04-02  Richard Henderson  <rth@redhat.com>
14056
14057         PR opt/190
14058         * final.c (this_is_asm_operands): Export.
14059         * output.h (this_is_asm_operands): Declare.
14060         * config/i386/i386.c (print_operand): Error odd asm operands.
14061
14062 2002-04-02  Richard Henderson  <rth@redhat.com>
14063
14064         PR opt/420
14065         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
14066
14067 2002-04-01  Richard Henderson  <rth@redhat.com>
14068
14069         PR target/1538
14070         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
14071         * fixinc/fixincl.x: Rebuild.
14072
14073 2002-04-01  Richard Henderson  <rth@redhat.com>
14074
14075         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
14076         (atomic_alloc, atomic_free): New.
14077         (SIZE, MASK_FOR, PTR_IN): New.
14078         (emergency_reg_state, emergency_reg_state_free): New.
14079         (emergency_labeled_state, emergency_labeled_state_free): New.
14080         (reg_state_alloced, labeled_state_alloced): New.
14081         (alloc_reg_state, free_reg_state): New.
14082         (alloc_label_state, free_label_state, free_label_states): New.
14083         (push, pop, dup_state_stack, free_state_stack): Use them.
14084         (desc_label_state): Likewise.
14085         (uw_frame_state_for): Free label states and state stack.
14086         (uw_update_reg_address): Eliminate warnings.
14087
14088 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
14089
14090         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
14091         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
14092
14093 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
14094
14095         * c-decl.c (grokdeclarator): Update.
14096         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
14097         * c-tree.h (c_mark_addressable): New.
14098         * c-typeck.c (default_function_array_conversion, build_unary_op,
14099         build_array_ref, convert_for_assignment): Update.
14100         (mark_addressable): Rename.
14101         * calls.c (try_to_integrate, expand_call): Use langhook.
14102         * expr.c (expand_expr): Use langhook.
14103         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
14104         * langhooks.h (struct lang_hooks): New hook.
14105         * stmt.c (expand_asm_operands): Use langhook.
14106         * tree.h (mark_addressable): Remove.
14107 objc:
14108         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
14109
14110 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
14111
14112         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
14113         in previous change.
14114
14115 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
14116
14117         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
14118         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
14119
14120 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
14121
14122         * c-common.c (unsigned_conversion_warning, convert_and_check,
14123         unsigned_type, signed_type, shorten_compare,
14124         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
14125         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
14126         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
14127         New.
14128         * c-decl.c (grokdeclarator): Update.
14129         * c-format.c (check_format_types): Update.
14130         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
14131         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
14132         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
14133         * convert.c (convert_to_integer): Use new hooks.
14134         * expmed.c (make_tree): Use new hooks.
14135         * expr.c (store_expr): Use new hooks.
14136         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
14137         all_ones_mask_p, unextend, fold): Use new hooks.
14138         * langhooks.h (struct lang_hooks_for_types): New hooks.
14139         * tree.h (signed_or_unsigned_type, signed_type,
14140         unsigned_type): Remove.
14141 objc:
14142         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
14143         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
14144
14145 2002-03-31  Richard Henderson  <rth@redhat.com>
14146
14147         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
14148         (desc_frgr_mem): Fix reference to f16-f31.
14149
14150 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14151
14152         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
14153         RTVEC_ELT): Const-ify.
14154         * varray.h (VARRAY_CHECK): Const-ify.
14155         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
14156         ggc_mark_rtvec, ggc_mark): Const-ify.
14157
14158 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
14159
14160         * diagnostic.c: Include langhooks-def.h.
14161         * Makefile.in (diagnostic.o): Update.
14162
14163 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
14164
14165         * c-common.c (c_unsafe_for_reeval): Rename.
14166         * c-common.h (c_unsafe_for_reeval): Rename.
14167         * c-decl.c (finish_incomplete_decl): Rename.
14168         (c_init_decl_processing): Don't set langhook.
14169         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
14170         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
14171         * c-objc-common.c (c_objc_common_init): Don't set langhook.
14172         * c-tree.h (finish_incomplete_decl): Rename.
14173         * langhooks-def.h (lhd_unsafe_for_reeval): New.
14174         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
14175         (LANG_HOOKS_INITIALIZER): Update.
14176         * langhooks.c (lhd_unsafe_For_reeval): New.
14177         * langhooks.h (struct langhooks): New hooks.
14178         * toplev.c (incomplete_decl_finalize_hook): Remove.
14179         (wrapup_global_declarations): Update.
14180         * tree.c (lang_unsafe_for_reeval): Remove.
14181         (unsafe_for_reeval): Update.
14182         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
14183         Remove.
14184 objc:
14185         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
14186         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
14187
14188 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
14189
14190         * diagnostic.c (print_error_function): Remove.
14191         (default_print_error_function): Rename.
14192         (report_error_function): Update.
14193         * diagnostic.h (print_error_function): Remove.
14194         (default_print_error_function): Remove.
14195         * langhooks-def.h (struct diagnostic_context): Predeclare.
14196         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
14197         (LANG_HOOKS_INITIALIZER): Update.
14198         * langhooks.h (struct diagnostic context): Predeclare.
14199         (struct lang_hooks): New hook.
14200
14201 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14202
14203         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
14204         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
14205         !flag_pic.
14206         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
14207         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
14208         of PIC_OFFSET_TABLE_REGNUM thruout.
14209         * config/rs6000/rs6000.md: Likewise.
14210         * config/rs6000/darwin.h: Likewise.
14211
14212 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14213
14214         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
14215         unsigned HOST_WIDE_INT, not unsigned int.
14216
14217 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
14218
14219         PR middle-end/6096, middle-end/6098, middle-end/6099
14220         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
14221         CODE_LABELs.
14222         (fill_slots_from_thread): Likewise.
14223
14224 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
14225
14226         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
14227         floating fields in float regs.
14228         (function_arg_record_value_2): Likewise.
14229
14230 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
14231
14232         * config/mmix/mmix.md (define_constants): Remove misleading
14233         FIXME.  Add MMIX_fp_rO_OFFSET.
14234         ("nonlocal_goto_receiver"): Don't have stack-frame address of
14235         saved rO as part of the pattern.  Remove FIXME.
14236         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
14237         here, at output-time.
14238
14239 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
14240
14241         PR middle-end/6100
14242         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
14243         REG_BR_PRED.
14244         (output_v9branch): Likewise.
14245
14246 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
14247
14248         * gcc.c: Revert previous patch for now.
14249         * config/i386/djgpp.h: Likewise.
14250
14251 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
14252
14253         * config/mmix/crti.asm (_init): Register _fini with atexit.
14254         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
14255
14256 2002-03-31  Richard Henderson  <rth@redhat.com>
14257
14258         PR target/3997
14259         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
14260         (ASM_OUTPUT_DEF_FROM_DECLS): New.
14261
14262 2002-03-31  Richard Henderson  <rth@redhat.com>
14263
14264         * libgcc2.c (__bb_exit_func): Make static.
14265
14266         * config/alpha/alpha.md (trap): New.
14267
14268 2002-03-31  Richard Henderson  <rth@redhat.com>
14269
14270         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
14271         promoted argument types; build trap.
14272         (expand_builtin_trap): New.
14273         (expand_builtin): Use it.
14274         * stmt.c (expand_nl_goto_receivers): Likewise.
14275         * expr.h (expand_builtin_trap): Declare.
14276         * libfuncs.h (LTI_abort, abort_libfunc): New.
14277         * optabs.c (init_optabs): Init abort_libfunc.
14278
14279 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
14280
14281         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
14282         (LINK_COMMAND_SPEC): ... from here.
14283         (init_gcc_specs): Duplicate it here too, omitting
14284         shared_name in the second copy.
14285         (init_spec): Test for duplicate
14286         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
14287
14288 2002-03-30  David S. Miller  <davem@redhat.com>
14289
14290         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
14291         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
14292
14293 2002-03-30  Roger Sayle <roger@eyesopen.com>
14294             Richard Henderson  <rth@redhat.com>
14295
14296         * regmove.c (combine_stack_adjustments_for_block): Avoid
14297         emitting a stack adjustment of zero bytes.  Let delete_insn
14298         update bb->head.
14299
14300 2002-03-30  Richard Henderson  <rth@redhat.com>
14301
14302         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
14303         (sparc_emitting_epilogue): New.
14304         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
14305         * config/sparc/sparc-protos.h: Update.
14306         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
14307         (TARGET_SWITCHES): Update.
14308         * config/sparc/sparc.md (return): Remove.
14309         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
14310         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
14311         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
14312         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
14313         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
14314         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
14315         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
14316         Remove MASK_EPILOGUE.
14317         * doc/invoke.texi: Update.
14318
14319 2002-03-30  Daniel Berlin  <dan@dberlin.org>
14320
14321         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
14322         CPP will start the file for us.
14323
14324 2002-03-30  Richard Henderson  <rth@redhat.com>
14325
14326         PR target/5446
14327         * config/ia64/ia64.c (group_barrier_needed_p): Special case
14328         prologue_allocate_stack.
14329         (ia64_single_set): Use insn codes for recognition of special
14330         cases, not rtl matching.
14331         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
14332
14333 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
14334
14335         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
14336
14337 2002-03-30  Richard Henderson  <rth@redhat.com>
14338
14339         PR target/6032
14340         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
14341         or -fomit-frame-pointer with profiling.
14342         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
14343         (FUNCTION_PROFILER): Do nothing.
14344         (PROFILE_HOOK): New.
14345         * config/sparc/sparc.c (sparc_override_options): Don't check
14346         code models for profiling.
14347         (sparc_function_profiler): Remove.
14348         (sparc_profile_hook): New.
14349         * config/sparc/sparc-protos.h: Update.
14350
14351 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
14352
14353         PR optimization/6086
14354         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
14355         of SUBREG of volatile MEM or because the MEM was mode dependent,
14356         return CLOBBER instead of unmodified SUBREG.
14357
14358 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
14359
14360         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
14361         when not optimizing.
14362
14363         * toplev.c (rest_of_compilation): Cann mark_constant_function
14364         only when optimizing.
14365
14366         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
14367         are NULL.
14368
14369         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
14370         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
14371         (try_optimize_cfg): clear all AUX fields.
14372
14373         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
14374         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
14375         (ix86_address_cost): Be prepared for SUBREGed registers.
14376         (legitimate_address_p): Accept SUBREGed registers.
14377
14378 2002-03-29  Richard Henderson  <rth@redhat.com>
14379
14380         PR target/5672
14381         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
14382
14383 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14384
14385         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
14386         for aggregate and TFmode types.
14387
14388 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
14389
14390         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
14391
14392 2002-03-29  Richard Henderson  <rth@redhat.com>
14393
14394         PR target/5886
14395         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
14396         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
14397
14398 2002-03-29  Richard Henderson  <rth@redhat.com>
14399
14400         PR target/6041
14401         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
14402         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
14403         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
14404         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
14405         conditional.
14406         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
14407
14408 2002-03-29  Dale Johannesen <dalej@apple.com>
14409
14410         * loop.c (combine_movables): Do allow combination of pseudos.
14411
14412 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
14413
14414         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
14415         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
14416         No functional change except ...
14417         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
14418         * doc/install.texi (*-*-freebsd*): Document port configuration.
14419
14420 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
14421
14422         * Makefile.in (convert.o, calls.o, expmed.o): Update.
14423         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
14424         Use new hooks.
14425         * builtin-types.def (BT_PTRMODE): Update.
14426         * c-common.c (type_for_size): Rename c_common_type_for_size.
14427         (type_for_mode): Similarly.
14428         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
14429         Use new hook.
14430         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
14431         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
14432         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
14433         Redefine.
14434         * c-typeck.c (common_type, comptypes, default_conversion):
14435         Use new hooks.
14436         * calls.c: Include langhooks.h.
14437         (emit_library_call_value_1): Use new hooks.  Avoid redundant
14438         calls.
14439         * convert.c: Include langhooks.h
14440         (convert_to_pointer, convert_to_integer): Use new hooks.
14441         * except.c (init_eh): Similarly.
14442         * expmed.c: Include langhooks.h.
14443         (expand_mult_add): Use new hooks.
14444         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
14445         try_casesi): Similarly.
14446         * fold-const.c (optimize_bit_field_compare, make_range,
14447         decode_field_reference, fold_truthop, fold): Similarly.
14448         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
14449         put_var_into_stack): Similarly.
14450         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
14451         LANG_HOOKS_TYPE_FOR_SIZE): New.
14452         (LANG_HOOKS_TYPES_INITIALIZER): Update.
14453         * langhooks.h (lang_hooks_for_types): New hooks.
14454         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
14455         * tree.c (get_unwidened, get_narrower): Similarly.
14456         * tree.h (type_for_mode, type_for_size): Remove.
14457         * varasm.c (force_const_mem): Use new hooks.
14458         * utils2.c (nonbinary_modular_operation): Update.
14459 objc:
14460         * objc-act.c (handle_impent): Update.
14461         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
14462         Redefine.
14463
14464 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
14465
14466         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
14467         * config/ia64/ia64.c (basereg_operand): New.
14468         * config/ia64/ia64-protos.h (basereg_operand): Declare.
14469         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
14470
14471 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
14472
14473         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
14474         unwind information when frame_pointer_needed.
14475         (mmix_assemble_integer): Tweak wording in comment.
14476
14477 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
14478
14479         * Makefile.in (except.o): Update.
14480         * except.c: Include langhooks.h.
14481         (init_eh): Use langhook.
14482         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
14483         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
14484         (LANG_HOOKS_INITIALIZER): Update.
14485         * langhooks.h (lang_hooks_for_types): New.
14486         (struct lang_hooks): Add it.
14487         * tree.c (make_lang_type_fn, make_lang_type): Remove.
14488         * tree.h (make_lang_type_fn, make_lang_type): Remove.
14489 config:
14490         * alpha/alpha.c: Include langhooks.h.
14491         (alpha_build_va_list): Use langhook.
14492         * d30v/d30v.c: Include langhooks.h.
14493         (d30v_build_va_list): Use langhook.
14494         * i386/i386.c: Include langhooks.h.
14495         (ix86_build_va_list): Use langhook.
14496         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
14497         * s390/s390.c: Include langhooks.h.
14498         (s390_build_va_list): Use langhook.
14499         * stormy16/stormy16.c: Include langhooks.h.
14500         (stormy16_build_va_list): Use langhook.
14501
14502 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
14503
14504         PR c++/5964
14505         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
14506         attributes.
14507         (length): Compute variable length for branches/calls/jumps here.
14508         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
14509         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
14510         define branch_type attribute.
14511         (divsi3_sp32): Maximum length is 6 not 7.
14512         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
14513         call_address_untyped_struct_value_sp32,
14514         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
14515         * config/sparc/sparc.c (empty_delay_slot): New function.
14516         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
14517         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
14518
14519 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
14520
14521         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
14522         nonzero_bits if not needed.
14523         (nonzero_bits) [XOR]: Likewise.
14524         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
14525         reg_last_set_mode and mode are both MODE_INT, but not equal.
14526         (record_value_for_reg): Compute reg_last_set_nonzero_bits
14527         in nonzero_bits_mode for MODE_INT modes.
14528
14529 2002-03-28  Richard Henderson  <rth@redhat.com>
14530
14531         PR target/5715
14532         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
14533         to GAS.  Correct drift between alternatives.
14534
14535 2002-03-28  Richard Henderson  <rth@redhat.com>
14536
14537         PR target/6087
14538         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
14539
14540 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
14541
14542         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
14543         emulation to the linker.
14544
14545 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
14546
14547         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
14548         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
14549
14550 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
14551
14552         * combine.c (simplify_and_const_int): Make sure to apply mask
14553         when force_to_mode returns a constant integer.  PR3311.
14554
14555 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14556
14557         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
14558
14559 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14560
14561         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
14562         and Objective-C Dialect Options.
14563
14564 2002-03-28  Richard Henderson  <rth@redhat.com>
14565
14566         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
14567         comparison should be done vs !=0 not >0 return code.  Tidy cases.
14568
14569 2002-03-28  Richard Henderson  <rth@redhat.com>
14570
14571         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
14572         on to c_expand_body.
14573         * c-tree.h (finish_function): Update decl.
14574         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
14575
14576 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
14577
14578         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
14579
14580 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
14581
14582         * rtlanal.c: Include flags.h
14583         (may_trap_p): Do not mark FP operations if trapping
14584         if !flag_trapping_math
14585         * Makefile.in (rtlanal.o): Add dependency on flag.h
14586         * ifcvt.c (noce_operand_ok): Avoid the lameness.
14587
14588 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
14589
14590         * mips.md: Use dconst1, not 1.0, as first argument of
14591         REAL_VALUE_LDEXP.  Don't use union real_extract.
14592
14593 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
14594
14595         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
14596         rather than $target.  Heed program_prefix and
14597         program_transform_name.  Search for gas in cross-compiler case too.
14598         "test -x" rather than "test -f".
14599         (gcc_cv_ld): Likewise.
14600         (gcc_cv_nm): Heed program_prefix and program_transform_name.
14601         (gcc_cv_objdump): Likewise.
14602         * configure: Regenerate.
14603
14604 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
14605
14606         * Makefile.in (attribs.o): Update.
14607         * attribs.c: Include langhooks.h.
14608         (decl_attributes): Use langhook.
14609         * c-decl.c (insert_default_attributes): Rename.
14610         * c-tree.h (c_insert_default_attributes): New.
14611         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
14612         (LANG_HOOKS_INITIALIZER): Update.
14613         * langhooks.h (struct lang_hooks): New hook.
14614         * tree.h (insert_default_attributes): Remove.
14615 objc:
14616         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
14617
14618 2002-03-27  Andreas Schwab  <schwab@suse.de>
14619
14620         * config/i386/i386.c (classify_argument): Also check for
14621         QUAL_UNION_TYPE.
14622
14623 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14624
14625         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
14626         any more.
14627
14628 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
14629
14630         * i960.md (ret): Set PC.
14631         (nonlocal_goto): Fix expander.
14632         * builtins.c (epxand_builin_longjmp): Check that we've emitted
14633         some jump or call.
14634
14635 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
14636
14637         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
14638         of libcall regions.
14639
14640 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
14641
14642         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
14643         assigning to BLOCK_FOR_INSN directly.
14644
14645 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
14646
14647         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
14648
14649 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
14650
14651         * c-common.c (c_expand_expr): Fix prototype.
14652         * c-common.h (c_expand_expr): Always declare, update.
14653         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
14654         * c-objc-common.c (c_objc_common_init): No global hook.
14655         * expr.c (expand_expr): Use langhook.
14656         * expr.h (enum expand_modifier): Conditionally declare.
14657         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
14658         (LANG_HOOKS_INITIALIZER): Update.
14659         * langhooks.c (lhd_expand_expr): New.
14660         * langhooks.h (struct lang_hooks): New hook.
14661         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
14662         (lang_independent_init): Don't default hook.
14663 objc:
14664         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
14665
14666 2002-03-27  Richard Henderson  <rth@redhat.com>
14667
14668         PR target/6054
14669         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
14670         TARGET_CONST_GP.  Simplify conditions.
14671
14672 2002-03-27  Richard Henderson  <rth@redhat.com>
14673
14674         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
14675         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
14676         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
14677
14678 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
14679
14680         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
14681         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
14682         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
14683         Remove unnecessary masks.
14684         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
14685         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
14686         -mwindows, -mdll switches and their negations.
14687
14688 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
14689
14690         * gcc-common.c (lang_mark_false_label_stack): Remove.
14691         * ggc.h (lang_mark_false_label_stack): Similarly.
14692
14693 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
14694
14695         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
14696
14697         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
14698         or __rtems_ is defined.
14699
14700 2002-03-26  Richard Henderson  <rth@redhat.com>
14701
14702         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
14703         if a non-trivial load was emitted.
14704         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
14705         in high+extra+low case.
14706
14707 2002-03-26  Richard Henderson  <rth@redhat.com>
14708
14709         * config.gcc (sparc*-solaris): Use float_format=sparc.
14710
14711 2002-03-26  Richard Henderson  <rth@redhat.com>
14712
14713         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
14714         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
14715         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
14716         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
14717         (WINT_TYPE_SIZE): Fix at 32.
14718
14719 2002-03-26  Richard Henderson  <rth@redhat.com>
14720
14721         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
14722         until after eh landing pad generation.
14723         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
14724         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
14725
14726 2002-03-26  Richard Henderson  <rth@redhat.com>
14727
14728         * expr.h (ADD_PARM_SIZE): One more convert for INC.
14729
14730 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
14731
14732         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
14733         and warning switches.
14734         (cc1_options):  Likewise.
14735
14736 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
14737
14738         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
14739         Restore more of the signal context.  Set no_reg_stack_frame.
14740         * config/ia64/unwind-ia64.c (unw_state_record):
14741         Add no_reg_stack_frame, comments.
14742         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
14743         (uw_update_context): Adjust bsp when unwinding from leaf,
14744         but not signal frame.
14745
14746 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
14747
14748         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
14749
14750 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
14751
14752         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
14753
14754 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
14755
14756         PR target/5621
14757         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
14758         "Add a pool_range attribute", which was lost during the ARM/Thumb
14759         merge.
14760
14761 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
14762
14763         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
14764         a register into the MAC16 accumulator.
14765
14766 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
14767
14768         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
14769         (Warning Options): Document -Wswitch-enum.
14770         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
14771         -Wswitch.
14772         (warn_switch_enum): Define variables.
14773         * flags.h (warn_switch_enum): Declare variables.
14774         * stmt.c (expand_end_case_type): When warn_switch_enum /
14775         -Wswitch-enum, perform switch checks.
14776         Fix PR c/5044.
14777
14778 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
14779
14780         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
14781         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
14782         (reload_muladdsi_compare0_scratch): Delete.
14783
14784 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
14785
14786         * doc/install.texi (*-*-freebsd*): Update.
14787
14788 2002-03-26  Richard Henderson  <rth@redhat.com>
14789
14790         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
14791         (SUB_PARM_SIZE): Cast DEC to ssizetype.
14792
14793         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
14794         types from the normal argument frame.
14795
14796         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
14797         variable sized objects by reference.
14798         (sparc_va_arg): Receive them by reference too.
14799
14800 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
14801
14802         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
14803         code to not restoring global registers.
14804
14805 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
14806
14807         * Makefile.in (ggc-common.o): Update.
14808         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
14809         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
14810         * c-tree.h (c_mark_tree): New.
14811         * ggc-common.c: Include langhooks.h.
14812         (gcc_mark_trees): Use new langhook.
14813         * ggc-callbacks.c: Delete file.
14814         * ggc.h (lang_mark_tree): Remove.
14815         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
14816         (LANG_HOOKS_INITIALIZER): Update.
14817         * langhooks.h (struct lang_hooks): New hook.
14818 objc:
14819         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
14820
14821 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
14822
14823         * doc/cpp.texi: Exclude entire Top node from printed manual.
14824         Move option index after directive index.  Insert page breaks
14825         before GFDL and concept index.  Index environment variables
14826         with command line options.
14827         * doc/cppenv.texi: Use @vtable for environment variable list.
14828         Add paragraph explaining semantics of empty elements in path
14829         variables.  Exclude a cross-reference to Fishkill from the
14830         manpage.  Remove an unnecessary cross-reference of the entry
14831         right above the referer.  Don't use @anchor in text that goes
14832         into manpage.
14833         * doc/cppopts.texi: Cross-reference the environment variables
14834         section, not the specific environment variable, for consistency.
14835
14836 2002-03-25  Richard Henderson  <rth@redhat.com>
14837
14838         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
14839         anywhere in the block.  Don't refer to insns that have been
14840         removed from the chain.  Iterate backward through the new insns.
14841         Don't refer to edges that have been removed.
14842
14843 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
14844
14845         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
14846         test for overflow of constant.
14847
14848 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
14849
14850         PR target/2623
14851         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
14852         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
14853         these patterns on arm_archv4.
14854
14855 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
14856
14857         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
14858         int".
14859
14860 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
14861
14862         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
14863         float_handled, float_handler, float_signal, set_float_handler,
14864         and do_float_handler.  Set handler for SIGFPE to crash_signal.
14865         * toplev.h: Don't prototype do_float_handler.
14866
14867         * c-lex.c: Fold parse_float into lex_number.  Make warning
14868         about portability of hex float constants more informative, and
14869         don't issue it on top of a syntax error.
14870         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
14871         their callers.
14872         * real.h: Define REAL_VALUE_ABS here...
14873         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
14874         simplify_unary_real, simplify_binary_real, and
14875         simplify_binary_is2orm1 into their callers.
14876         * tree.c: Fold build_real_from_int_cst_1 into caller.
14877
14878         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
14879
14880         * tsystem.h: Include float.h here...
14881         * libgcc2.c: ... not here.
14882
14883 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
14884
14885         Fixes for: PR bootstrap/3591, target/5676
14886         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
14887         defined.  Do not disable exceptions or rtti.
14888         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
14889         mcore.h.  Disable exceptions and rtti, since they are not
14890         supported by EPOC.
14891
14892 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
14893
14894         * c-decl.c (maybe_build_cleanup): Remove.
14895         * expr.c (expand_expr): Use langhook.
14896         * langhooks-def.h (lhd_return_null_tree,
14897         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
14898         (LANGHOOKS_INITIALIZER): Update.
14899         * langhooks.c (lhd_return_null_tree): New.
14900         * langhooks.h (struct lang_hooks): New hook.
14901         * tree-inline.c (initialize_inlined_parameters): Use langhook.
14902         * tree.h (maybe_build_cleanup): Remove.
14903
14904 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
14905
14906         * regrename.c (build_def_use): Move recog_memoized
14907         before extract_insn.
14908
14909 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
14910
14911         PR target/6043
14912         * expr.c (emit_group_store): Handle storing into CONCAT.
14913
14914 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
14915
14916         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
14917         corresponding MATCH_DUP.
14918
14919 2002-03-24  Richard Henderson  <rth@redhat.com>
14920
14921         * unroll.c (unroll_loop): Zero label_map.
14922
14923         * gcse.c: Include except.h.
14924         * Makefile.in (gcse.o): Update.
14925
14926 2002-03-24  Richard Henderson  <rth@redhat.com>
14927
14928         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
14929         Do resolve_unique_section before shared data clause.
14930
14931 2002-03-24  Richard Henderson  <rth@redhat.com>
14932
14933         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
14934
14935 2002-03-24  Richard Henderson  <rth@redhat.com>
14936
14937         * recog.c (peephole2_optimize): Split blocks when EH insns are
14938         generated in the middle of a block.  Do global life update if
14939         zapped EH edges.
14940
14941 2002-03-24  Richard Henderson  <rth@redhat.com>
14942
14943         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
14944
14945 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14946
14947         preprocessor/3951
14948         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
14949         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
14950         (init_dependency_output): Don't make no_output decision here.
14951
14952 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
14953
14954         * stmt.c (check_for_full_enumeration_handling): Remove tests of
14955         warn_switch.  Update description.
14956         (expand_end_case_type): Call check_for_full_enumeration_handling
14957         when warn_switch.
14958
14959 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14960
14961         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
14962         (m68hc11_split_move): Call it to see if the source and destination
14963         operands use the same direction auto inc/dec mode, otherwise make the
14964         source an offsetable memory operand and generate an add.
14965
14966 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14967
14968         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
14969         register for operand 2.
14970         ("*subsi3_zero_extendqi"): Likewise.
14971         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
14972         bits so that it is compatible with a pop.
14973         ("*andhi3_gen"): Likewise.
14974         ("xorhi3"): Likewise.
14975
14976 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14977
14978         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
14979         -pedantic here...
14980         (cpp_post_options): ... not here.
14981
14982 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14983             Aldy Hernandez  <aldyh@redhat.com>
14984
14985         Removal of separate preprocessor cpp0.
14986
14987         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
14988         cpp0, install-common): Update.
14989         * c-common.c (flag_preprocess_only): New.
14990         (c_common_init): Preprocess for -E.
14991         * c-common.h (flag_preprocess_only): New.
14992         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
14993         * c-objc-common.c (c_init_decl_processing): Exit quickly
14994         for NULL return from c_common_init.
14995         * cpplib.h (cpp_preprocess_file): New.
14996         * cppmain.c (main, general_init, pfile, progname): Remove.
14997         (do_preprocessing): Rename cpp_preprocess_file, don't call
14998         cpp_finish.  Don't close stdout here.
14999         (setup_callbacks): Update prototype.
15000         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
15001         Update.
15002         * tradcpp.c (main): Ignore -quiet.
15003 objc:
15004         * lang-specs.h (default_compilers): Preprocess with cc1obj.
15005
15006 2002-03-24  Richard Henderson  <rth@redhat.com>
15007
15008         PR optimization/5742
15009         * machmode.def: Add inner mode field to complex modes.
15010         * config/mips/mips.c (mips_function_value): Always define.  Add
15011         new argument to handle libcalls.
15012         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
15013         (FUNCTION_VALUE): Likewise.
15014         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
15015         * config/mips/mips-protos.h: Update.
15016
15017 2002-03-23  Richard Henderson  <rth@redhat.com>
15018
15019         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
15020         * config/sparc/sparc-protos.h: Update.
15021         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
15022
15023 2002-03-23  Richard Henderson  <rth@redhat.com>
15024
15025         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
15026         _start or _init begins the text segment.
15027
15028 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
15029
15030         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
15031         not HOST_WIDEST_INT.
15032         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
15033
15034 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
15035
15036         PR java/5489
15037         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
15038         operand argument to output_return_instruction.
15039         * arm.c (arm_print_operand, case 'd'): If the operand is
15040         const_true_rtx then just return.
15041         (arm_print_operand, case 'D'): If the operand is const_true_rtx
15042         then abort.
15043
15044 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
15045
15046         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
15047         (Warning Options): Document -Wswitch-default.
15048         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
15049         -Wswitch.
15050         (warn_switch_default): Define variable.
15051         (warn_switch): Update comment.
15052         * flags.h (warn_switch_default): Declare variable.
15053         (warn_switch): Update comment.
15054         * stmt.c (expand_end_case): Check for and, when
15055         warn_switch_no_default, warn of a missing default case.
15056
15057 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
15058
15059         * real.h (N): Special case 128 bit doubles.
15060
15061         * combine.c (simplify_comparison): When widening modes, ignore
15062         sign extension on CONST_INTs.
15063
15064 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
15065
15066         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
15067         passed to adjust_address.  Fix comment formatting.
15068
15069
15070 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
15071
15072         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
15073         Always make REAL_VALUE_TYPE a struct containing an array of
15074         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
15075         big it is.  Don't declare or use union real_extract.
15076
15077         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
15078         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
15079         (print_operand), config/arm/arm.c (output_move_double),
15080         config/arm/arm.md (consttable_4, consttable_8),
15081         config/romp/romp.c (output_fpops), config/s390/s390.h
15082         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
15083         (xtensa_output_literal): Don't use union real_extract.
15084
15085         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
15086         (sfmode_constant_to_ulong), config/ns32k/merlin.h
15087         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
15088         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
15089         (PRINT_OPERAND): Don't use local version of union
15090         real_extract.
15091
15092         * config/convex/convex.c (check_float_value), config/vax/vax.c
15093         (vax_float_literal), config/m88k/m88k.md (divdf3),
15094         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
15095         config/pdp11/pdp11.c (output_move_quad): Don't do host
15096         arithmetic on target floating point quantities.
15097
15098         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
15099         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
15100
15101         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
15102         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
15103
15104         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
15105         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
15106         INFINITY.
15107         * print-rtl.c (print_rtx): Disable code which needs
15108         floating-point emulator.
15109         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
15110         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
15111         depending on HOST_FLOAT_FORMAT to be defined properly.
15112
15113         * config/1750a/1750a.c (get_double, float_label): Delete.
15114         (print_operand): Delete huge commented-out chunk.  Use
15115         REAL_VALUE_TO_DECIMAL.
15116         * config/1750a/1750a-protos.h: Delete prototypes of deleted
15117         functions.
15118         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
15119         IEEE_FLOAT_FORMAT.
15120         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
15121         Use REAL_VALUE_TO_DECIMAL as ELF version does.
15122         * config/m88k/m88k.c (real_power_of_2_operand,
15123         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
15124         real_extract out of the union; run the input through
15125         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
15126         from that into the union.
15127         * config/pdp11/pdp11.c (output_move_double): Rearrange
15128         parentheses to make automatic indenter happy.
15129
15130         * doc/tm.texi (Cross-compilation): Rename node to "Floating
15131         Point" and rewrite to describe current situation.  Also adjust
15132         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
15133         match code.
15134         * doc/rtl.texi: Adjust cross reference.
15135
15136 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
15137
15138         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
15139         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
15140         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
15141         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
15142         prevent use of sp as a reload register.
15143         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
15144         non_acc_reg_operand.
15145         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
15146         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
15147         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
15148         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
15149
15150 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
15151
15152         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
15153         * cpplex.c (unterminated): Delete.
15154         (parse_string): No string literal may extend over multiple
15155         lines.  Suppress the error when preprocessing assembly.
15156         * cppmain.c (scan_translation_unit): Strings are single-line.
15157
15158         * doc/cpp.texi: Update to match.
15159
15160 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
15161
15162         PR optimization/5854
15163         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
15164         Shut up warnings.
15165         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
15166         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
15167         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
15168         const0 if scratch register was not allocated.
15169         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
15170         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
15171         with GEN_INT (...).
15172         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
15173         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
15174         with GEN_INT (...) everywhere.  Remove constraints in define_split
15175         patterns.
15176         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
15177         require scratch register for setting 0 into regs/non-pushable memory.
15178
15179 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
15180
15181         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
15182         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
15183
15184 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
15185
15186         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
15187         * cppinit.c (cpp_create_reader):  On by default.
15188         (cpp_handle_option):  Handle -W[no-]endif-labels.
15189         (cpp_post_options):  Also enable if -pedantic.
15190         * cpplib.c (do_else):  Use it.
15191         (do_endif):  Likewise.
15192         * doc/cppopts.texi:  Document new option.
15193         * doc/invoke.texi:  Document new option.
15194
15195 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
15196
15197         * config/i386/i386.c, config/i386/i386.md: Change all occurences
15198         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
15199
15200 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
15201
15202         * flow.c (calculate_global_regs_live): Clear aux fields of
15203         ENTRY and EXIT.
15204
15205 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
15206
15207         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
15208         REG or MEM subregs, pass rtx * instead of rtx to it.
15209         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
15210         rtx * instead of rtx to alter_subreg.
15211         * config/m32r/m32r.c (gen_split_move_double): Likewise.
15212         * config/pj/pj.c (pj_output_rval): Likewise.
15213
15214 2002-03-22  Richard Henderson  <rth@redhat.com>
15215
15216         PR target/3177
15217         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
15218         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
15219         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
15220         (ia64_expand_prologue): Look at int_regs, not words, for number
15221         of incomming int regs.
15222
15223 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
15224
15225         * expr.c (expand_expr): A RESULT_DECL is part of a call.
15226
15227 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
15228
15229         * toplev.c (flag_loop_optimize, flag_crossjumping):
15230         New static variables.
15231         (rest_of_compilation): Conditionalize crossjumping and
15232         loop optimizer.
15233         (parse_options_and_default_flags): Default loop_optimize and
15234         crossjumping.
15235         (lang_independent_options): Add -fcrossjumping and -floop-optimize
15236         * invoke.texi (crossjumping, loop-optimize): Document.
15237
15238 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
15239
15240         * real.c (eiisneg): Move outside #ifdef NANS.
15241
15242 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
15243
15244         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
15245         frequencies match; avoid match on different loop depths.
15246         (try_crossjump_to_bb): Kill tests that no longer brings time
15247         savings.
15248         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
15249         updating code.
15250         (split_edge): Likewise.
15251
15252         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
15253         variable.
15254
15255         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
15256         * cfgrtl.c: Include insn-config.h
15257         (split_block) Dirtify block in presence of conditional execution
15258
15259 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
15260
15261         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
15262         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
15263         (function_arg): Constify CUMULATIVE_ARGS.
15264         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
15265         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
15266         (UNITS_PER_DOUBLE): New macro.
15267         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
15268         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
15269         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
15270         fp_regs and stack_words.
15271         (EABI_FLOAT_VARARGS_P): New macro.
15272         * config/mips/mips.c (struct mips_arg_info): New.
15273         (mips_arg_info): New function.
15274         (function_arg_advance): Use it.  Add adjustment instructions here
15275         rather than in function_arg.
15276         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
15277         for VOIDmode at the beginning of the function.
15278         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
15279         (function_arg_pass_by_reference): Likewise.
15280         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
15281         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
15282         (mips_va_start): Likewise.  Use the new stack_words field of
15283         CUMULATIVE_ARGS to set up overflow area.  Reformat.
15284         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
15285         doubles and other types, aligning the overflow pointer for non-doubles
15286         too.  Remove some code duplication.  Replace hard-coded constants.
15287
15288 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
15289
15290         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
15291         (CLASS_UNITS): Undefine.
15292         (CLASS_MAX_NREGS): Use FP_INC.
15293         * config/mips/mips.c (compute_frame_size): Likewise.
15294         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
15295
15296 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
15297
15298         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
15299         prototype, and handle lexing numbers and identifiers.
15300         (parse_identifier): Update to new form of parse_slow.
15301         (parse_number): Fast path only, use parse_slow otherwise.
15302         (_cpp_lex_direct): Update calls to parse_number.
15303
15304 2002-03-21  DJ Delorie  <dj@redhat.com>
15305
15306         * bb-reorder.c (make_reorder_chain_1): Protect against
15307         when redundant edges are omitted.
15308         * predict.c (dump_prediction): Likewise.
15309
15310 2002-03-21  Richard Henderson  <rth@redhat.com>
15311
15312         PR target/5996
15313         * fixinc/inclhack.def (solaris_stdio_tag): New.
15314         * fixinc/fixincl.x: Regenerate.
15315
15316 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
15317
15318         PR c/5597
15319         * c-typeck.c (process_init_element): Flag non-static
15320         initialization of a flexible array member as illegal.
15321
15322 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
15323
15324         * config/rs6000/t-linux64: New.
15325         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
15326         t-ppccomm.  Use t-rs6000 and t-linux64.
15327         (powerpc64-*-gnu* <tmake_file>): Likewise.
15328         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
15329         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
15330         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
15331
15332 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
15333
15334         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
15335         flag_really_no_inline instead of optimize == 0.
15336
15337         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
15338
15339         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
15340
15341         * flags.h (flag_really_no_inline): New.
15342
15343         * c-common.c (c_common_post_options): Initialize
15344         flag_really_no_inline.
15345
15346         * toplev.c (flag_really_no_inline): New.
15347
15348 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
15349
15350         * config/avr/avr.md (length): Fix length computation for
15351         conditional branches.
15352
15353 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
15354
15355         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
15356         sdbout.o, profile.o): Update.
15357         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
15358         langhook.
15359         * c-common.h (gettags): Move here from tree.h.
15360         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
15361         insert_block, getdecls, kept_level_p, global_bindings_p): New.
15362         * dbxout.c (dbxout_init): Use getdecls langhook.
15363         * expr.c (expand_expr): Use insert_block langhook.
15364         * fold-const.c: Include langhooks.h.
15365         (fold_range_test, fold_binary_op_with_conditional_arg,
15366         fold): Use global_bindings_p langhook.
15367         * integrate.c (expand_inline_function): Use insert_block langhook.
15368         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
15369         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
15370         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
15371         LANG_HOOKS_GETDECLS): New.
15372         (LANG_HOOKS_INITIALIZER): Update.
15373         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
15374         langhook.
15375         * langhooks.h (struct lang_hooks_for_decls): New.
15376         (struct lang_hooks): Update.
15377         * profile.c: Include langhooks.h.
15378         (output_func_start_profiler): Use new langhooks.
15379         * sdbout.c: Include langhooks.h.
15380         (sdbout_init, sdbout_finish): Use getdecls langhook.
15381         * stmt.c: Include langhooks.h.
15382         (expand_fixup, fixup_gotos): Use new langhooks.
15383         * stor-layout.c: Include langhooks.h.
15384         (variable_size): Use global_bindings_p langhook.
15385         * toplev.c (compile_file): Use getdecls langhook.
15386         * tree-inline.c (remap_block): Use insert_block langhook.
15387         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
15388         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
15389
15390 2002-03-21  Richard Henderson  <rth@redhat.com>
15391
15392         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
15393         constants in .data when -fpic.
15394
15395 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15396
15397         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
15398         where appropriate.
15399
15400 2002-03-21  Tom Tromey  <tromey@redhat.com>
15401
15402         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
15403
15404 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15405
15406         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
15407
15408         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
15409
15410 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
15411             Richard Henderson  <rth@redhat.com>
15412
15413         PR c/5354
15414         * c-common.c (c_expand_expr): Preserve result of a statement
15415         expression if needed.
15416
15417 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
15418
15419         PR bootstrap/4195
15420         * genrecog.c (maybe_both_true_mode): Remove.
15421         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
15422         * machmode.def (Pmode): Likewise.
15423
15424 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
15425
15426         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
15427         (nonlocal_mentioned_p_1): New function.
15428         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
15429         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
15430         (mark_constant_function): Recognize pure functions.
15431         * rtl.h (global_reg_mentioned_p): New prototype.
15432         * rtlanal.c (global_reg_mentioned_p,
15433         global_reg_mentioned_p_1): New function.
15434
15435 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15436
15437         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
15438         UNIX assert.h.
15439         * fixinc/fixincl.x: Regenerate.
15440
15441 2002-03-20  Jason Merrill  <jason@redhat.com>
15442
15443         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
15444
15445 2002-03-20  Michael Meissner  <meissner@redhat.com>
15446
15447         * doc/invoke.texi (Optimize Options): Document that -O2 sets
15448         -fstrict-aliasing.
15449
15450 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
15451
15452         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
15453         ".literal_position" directive before the constant pool.
15454
15455 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15456
15457         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
15458         Add Craig Rodrigues.
15459         Add Brad Lucier to testers.
15460
15461 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
15462
15463         PR target/4792
15464         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
15465         to if_then_else.
15466         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
15467         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
15468         instead of insn_extract.
15469
15470 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
15471
15472         PR bootstrap/4192
15473         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
15474
15475         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
15476         stmt if some case has been output.
15477
15478 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
15479
15480         PR c/5972
15481         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
15482         movsfcc_1, movdfcc_1): Add %O2.
15483         * config/i386/i386.c (print_operand): Handle %ON.
15484         Print . before float condition codes in Sun as cmov syntax.
15485         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
15486         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
15487         no longer true.
15488
15489 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
15490
15491         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
15492         return instruction if PC was popped.
15493
15494 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
15495
15496         * config/xtensa/xtensa.md: Remove unused type attributes.
15497         (adddi_carry, subddi_carry): Change type attribute to "multi".
15498
15499 2002-03-19  Dale Johannesen  <dalej@apple.com>
15500
15501         PR optimization/5999, middle-end/5731
15502         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
15503         multiplications by reciprocals.
15504
15505 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
15506
15507         * Makefile.in: Update.
15508         * c-common.c: Include langhooks.h.
15509         (inline_forbidden_p): Use new hook.
15510         * diagnostic.c: Include langhooks.h.
15511         (format_with_decl, announce_function,
15512         default_print_error_function): Use new hook.
15513         * dwarf2out.c (dwarf2_name): Use new hook.
15514         * function.c: Include langhooks.h.
15515         (init_function_start): Use new hook.
15516         * langhooks-def.h (lhd_decl_printable_name): New.
15517         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
15518         (LANGHOOKS_INITIALIZER): Update.
15519         * langhooks.c (lhd_decl_printable_name): New.
15520         * langhooks.h (struct lang_hooks): New hook.
15521         * toplev.c (decl_name, decl_printable_name): Remove.
15522         (open_dump_file): Use new hook.
15523         (process_options): Remove old hook.
15524         * tree.h (decl_printable_name): Remove.
15525 objc:
15526         * objc-act.c (objc_init): Remove old hook.
15527         (objc_printable_name): Export.
15528         * objc-act.h (objc_printable_name): New.
15529         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
15530
15531 2002-03-19  Jim Blandy  <jimb@redhat.com>
15532
15533         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
15534         the start_source_file debug hook, not the current line number.
15535
15536 2002-03-19  Richard Henderson  <rth@redhat.com>
15537
15538         * flow.c (EH_USES): Provide default.
15539         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
15540         * doc/tm.texi (EH_USES): New.
15541
15542         * config/ia64/ia64.c (ia64_eh_uses): New.
15543         * config/ia64/ia64-protos.h: Update.
15544         * config/ia64/ia64.h (EH_USES): New.
15545
15546 2002-03-19  Richard Henderson  <rth@redhat.com>
15547
15548         * varasm.c (output_constant_def): Fix stupid typo.
15549
15550 2002-03-19  Richard Henderson  <rth@redhat.com>
15551
15552         PR 5879
15553         * except.c (current_function_has_exception_handlers): New.
15554         * except.h: Declare it.
15555         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
15556         Combine tests that disable all sibcalls for the function.
15557
15558 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
15559
15560         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
15561         for INTEGER_CST.
15562
15563 2002-03-19  Richard Henderson  <rth@redhat.com>
15564
15565         PR 5977, 5991
15566         * config/ia64/ia64.c: Revert 2002-03-01 patch.
15567         * config/ia64/ia64.h (INIT_EXPANDERS): New.
15568
15569 2002-03-19  Jim Blandy  <jimb@redhat.com>
15570
15571         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
15572         name, even if the replacement list contains no tokens, as required
15573         by Dwarf.
15574
15575 2002-03-19  Jason Merrill  <jason@redhat.com>
15576
15577         * varasm.c (globalize_decl): Get the name from the RTL, not
15578         DECL_ASSEMBLER_NAME.
15579
15580         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
15581
15582 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
15583
15584         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
15585         subdi_carry): Define.
15586
15587 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
15588
15589         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
15590         about -fpic/-fPIC if extra_warnings set.
15591
15592 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
15593
15594         * expr.c (expand_expr): Sign-extend CONST_INT generated from
15595         TREE_STRING_POINTER.
15596         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
15597
15598 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15599
15600         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
15601         in favor of SP if FRAME_POINTER_REQUIRED is false.
15602
15603 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
15604
15605         * emit-rtl.c (gen_int_mode): New function.
15606         * rtl.h: Prototype for it.
15607         * combine.c (make_extraction, simplify_comparison), expmed.c
15608         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
15609         (convert_modes, store_field), optabs.c (expand_fix),
15610         simplify-rtx.c (neg_const_int, simplify_unary_real),
15611
15612         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
15613         Use it instead of GEN_INT (trunc_int_for_mode (...)).
15614
15615 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
15616
15617         PR c/5656
15618         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
15619         convert_parm_for_inlining.
15620         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
15621         Define.
15622         * langhooks-def.h: Likewise.
15623         * objc/objc-lang.c: Likewise.
15624         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
15625         function.
15626         * tree-inline.c (initialize_inlined_parameters):
15627         Call convert_parm_for_inlining lang hook if needed.
15628         * c-typeck.c (c_convert_parm_for_inlining): New function.
15629         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
15630
15631 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
15632
15633         * calls.c (precompute_arguments): Do not assume that temporaries
15634         can be destroyed after expanding the argument.
15635         (expand_call): Likewise.
15636
15637 2002-03-15  Eric Christopher  <echristo@redhat.com>
15638
15639         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
15640         Fix register preference on last change.
15641         * config/mips/mips.c (mips_return_in_memory): New function.
15642         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
15643         * config/mips/mips-protos.h: Declare.
15644         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
15645         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
15646
15647 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
15648
15649         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
15650         a register too.
15651         (anddi3, iorsi3): Likewise.
15652
15653         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
15654         use %gprel for symbols that are going to be placed in linkonce
15655         sections.
15656
15657         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
15658         RETURN_ADDRESS_POINTER_REGNUM to $ra.
15659         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
15660         not needed.  Disregard leaf_function_p().
15661         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
15662         mips16 frame pointer.
15663         * config/mips/mips.md (store ra): Only to small SP offsets.
15664         2001-08-22  Graham Stott  <grahams@redhat.com>
15665         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
15666         return a REG rtx for the return address register.
15667
15668 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
15669
15670         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
15671         constant-pool addresses as "mode-dependent".
15672         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
15673
15674 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
15675
15676         PR target/5740
15677         * expr.c (emit_group_load): Use extract_bit_field if
15678         needed for CONCAT arguments.
15679
15680 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
15681
15682         PR target/4863
15683         * arm.md (tablejump): Make this a define_expand.  For PIC add the
15684         offset to the base of the table.
15685         (thumb_tablejump): Matcher for Thumb tablejump insn.
15686         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
15687         as the difference of two labels.
15688         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
15689         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
15690         tables in the code.
15691         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
15692         * arm.c (get_jump_table_size): If the table is not in the text
15693         section, return zero.
15694
15695 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
15696
15697         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
15698         of gen_rtx_SUBREG.
15699         (arm_reload_out_hi): Use gen_lowpart instead of
15700         gen_rtx_SUBREG to access QImode components.
15701         * config/arm/arm.md: Disable zero_extend split for QImode
15702         subregs in BIG_ENDIAN mode.
15703         (storehi_bigend): Match use of least significant byte.
15704         (storeinthi): Remove extraneous SUBREG.
15705         Add missing construction of operands[2].
15706         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
15707         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
15708         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
15709
15710 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
15711
15712         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
15713         any_operand.
15714
15715 2002-03-17  Richard Henderson  <rth@redhat.com>
15716
15717         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
15718         explicitly.
15719
15720 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
15721
15722         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
15723         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
15724
15725 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15726
15727         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
15728
15729         * predict.c (estimate_bb_frequencies): Delete unused variables.
15730
15731 2002-03-17  Richard Henderson  <rth@redhat.com>
15732
15733         * config/ia64/ia64.c (ia64_attribute_table): Move before
15734         targetm definition.  Make static.
15735
15736 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
15737
15738         * c-common.h (yyparse, c_common_parse_file): New.
15739         * c-lang.c: Include c-common.h.
15740         (LANG_HOOKS_PARSE_FILE): Redefine.
15741         * c-lex.c: Include c-common.h.
15742         (yyparse): Rename c_common_parse_file.  Call yyparse.
15743         * c-parse.in (yyparse): Remove macro.
15744         * c-tree.h (yyparse_1): Remove.
15745         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
15746         (LANG_HOOKS_INITIALIZER): Update.
15747         * langhooks.h (struct lang_hoooks): New hook parse_file.
15748         * toplev.c (compile_file): Use parse_file hook.
15749         * tree.h (yyparse): Remove.
15750         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
15751
15752 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
15753
15754         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
15755         float_truncate, not fix.
15756         ("*truncdfsf2_real"): Ditto.
15757         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
15758
15759         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
15760
15761 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
15762
15763         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
15764         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
15765         where appropriate.  Make the second reference to
15766         leaf_function_p a function call, as intended.  Reindented.
15767
15768         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
15769         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
15770
15771         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
15772         add register to non-constant into sp.
15773
15774         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
15775         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
15776         (mips16_gp_pseudo_rtx): Lose.
15777         (INIT_EXPANDERS): Deleted.
15778         * config/mips/mips.c (mips_init_machine_status): New.
15779         (mips_free_machine_status): New.
15780         (mips_mark_machine_status): New.
15781         (override_options): Set them.
15782         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
15783         (struct machine_function): ... new.  Replaced all references.
15784         (mips_add_gc_roots): Don't mark them.
15785         (embedded_pic_fnaddr_reg): New, extracted from...
15786         (embedded_pic_offset): ... here.
15787         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
15788         (movsi): Likewise.
15789
15790 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
15791
15792         * cppinit.c: Revert -MD removal.
15793
15794 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15795
15796         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
15797         soft registers by default for 68HC12.
15798         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
15799         when compiling with -fomit-frame-pointer.
15800         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
15801         (expand_epilogue): Likewise.
15802         (m68hc11_gen_rotate): Use exg when rotating by 8.
15803
15804 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15805
15806         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
15807         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
15808         (splits): Remove unused add splits.
15809         ("*addhi3_68hc12"): Tune constraints.
15810         ("addhi_sp"): Try to use X instead of Y in all cases and if the
15811         constant fits in 8-bits and D is dead use abx/aby instructions.
15812         ("*addhi3"): Remove extern declaration of ix_reg.
15813         ("*subsi3"): Optimize and provide new split.
15814         ("subhi3"): Cleanup.
15815         ("*subhi3_sp"): Avoid saving X if we know it is dead.
15816         (arith splits): For 68hc12 save the address register on the stack
15817         and do the arithmetic operation with a pop.
15818
15819 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15820
15821         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
15822         allocating QImode in address registers.
15823         ("*movqi_m68hc11"): Likewise.
15824
15825 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
15826
15827         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
15828
15829 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
15830
15831         * cppinit.c (print_help): Display -MD and -MMD.
15832         Don't display usage string.  Update assertion syntax and
15833         typo.
15834         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
15835         (cpp_handle_option): Update.
15836
15837 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
15838
15839         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
15840         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
15841         and define it so that regardless of target CPU size,
15842         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
15843         of "int" rather than "long."
15844
15845 2002-03-15  Richard Henderson  <rth@redhat.com>
15846
15847         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
15848         size as a tree.
15849
15850 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15851
15852         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
15853         ("tstqi" split): Avoid using memory for tstqi on address register.
15854         (splits): Remove constraints.
15855         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
15856         ("cmpdf", "cmpsf"): Remove since not used.
15857         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
15858         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
15859
15860 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15861
15862         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
15863         ("neghi2"): Tighten constraints.
15864         ("one_cmplsi2"): Optimize and simplify split.
15865         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
15866
15867 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15868
15869         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
15870         and split of AND operation to clear the upper bits.
15871         ("*logicalsi3_zextqi"): Likewise.
15872         ("*logicallhi3_zexthi_ashift8"): Likewise.
15873         ("*logicalsi3_silshr16"): Likewise.
15874         ("logicalsi3_silshl16"): Likewise.
15875         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
15876
15877 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15878
15879         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
15880         (m68hc11_indirect_p): New function.
15881         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
15882         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
15883         TARGET_M6812.
15884         (asm_print_register): Likewise.
15885         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
15886         (m68hc11_indirect_p): Declare.
15887         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
15888         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
15889         (TARGET_SWITCHES): New option -mrelax.
15890         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
15891         destination.
15892         ("iorsi3", "xorsi3"): Likewise.
15893         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
15894         ("*andhi3_mem"): New to handle destination in memory with bclr
15895         and a scratch register.
15896         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
15897         ("*andhi3_const"): New when operand2 is constant.
15898         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
15899         ("*andhi3_gen"): Cleanup of the old "andhi3".
15900         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
15901         ("xorqi3"): Update constraints.
15902
15903 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15904
15905         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
15906         for reg_equiv_memory_loc when the operand is a register that does
15907         not get a hard register (stack location).
15908         (tst_operand): After reload, accept all memory operand.
15909         (symbolic_memory_operand): Fix detection of symbolic references.
15910         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
15911         accept symbols and any constant.
15912
15913 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15914
15915         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
15916         note on the insn that sets the soft frame register.
15917         (must_parenthesize): ix and iy are also reserved names.
15918         (print_operand_address): One more place where parenthesis are required
15919         to avoid confusion with register names.
15920         (m68hc11_gen_movhi): Allow push of stack pointer.
15921         (m68hc11_check_z_replacement): Fix handling of parallel with a
15922         clobber.
15923         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
15924         the replacement register is.
15925         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
15926         and D8_REGS classes.
15927         (MODES_TIEABLE_P): All modes are tieable except QImode.
15928
15929 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15930
15931         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
15932         (___subdi3): Likewise.
15933         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
15934         (__map_data_section): Optimize 68hc11 case.
15935
15936 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15937
15938         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
15939         than a shift to avoid adding a register with itself.
15940         (m68hc11_memory_move_cost): Take into account NO_REGS.
15941         (m68hc11_register_move_cost): Update and use memory move cost
15942         for soft registers.
15943         (m68hc11_address_cost): Make cost of valid offset not 0 so that
15944         it gives more opportunities to cse to optimize.
15945         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
15946         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
15947
15948 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
15949
15950         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
15951         * c-common.def (CLEANUP_STMT): New tree node.
15952         * c-common.h (CLEANUP_DECL): New macro.
15953         (CLEANUP_EXPR): Likewise.
15954         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
15955         * expr.c (expand_expr): Tidy.
15956         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
15957         * tree-inline.c (initialize_inlined_parameters): Clean up
15958         new local variables.
15959
15960 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
15961
15962         PR bootstrap/4128
15963         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
15964         before movrXX only, use reg_overlap_mentioned_p.
15965         Only special case NE if just one insn can be generated.
15966
15967 2002-03-15  Jason Merrill  <jason@redhat.com>
15968
15969         * varasm.c (assemble_variable): Call resolve_unique_section before
15970         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
15971         of error_mark_node.
15972
15973 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
15974
15975         PR target/5170
15976         * arm.md (split pattern for thumb shiftable immediates): Add comment
15977         explaining non-obvious test.
15978
15979 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
15980
15981         PR target/5712
15982         * arm.md (movaddr, movaddr_insn): Delete.
15983
15984 2002-03-15  Jason Merrill  <jason@redhat.com>
15985
15986         * toplev.c (wrapup_global_declarations): Clarify variable handling.
15987         -fkeep-static-consts doesn't apply to comdats.
15988
15989 2002-03-14  Richard Henderson  <rth@redhat.com>
15990
15991         * c-decl.c: Include c-pragma.h.
15992         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
15993         (finish_function): Tidy.
15994         * c-pragma.c: Include c-common.h.
15995         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
15996         (handle_pragma_weak): Use them.
15997         (init_pragma): Register pending_weaks.
15998         * c-pragma.h (maybe_apply_pragma_weak): Declare.
15999         * print-tree.c (print_node): Print DECL_WEAK.
16000         * varasm.c (mark_weak_decls): Remove.
16001         (remove_from_pending_weak_list): Remove.
16002         (add_weak): Remove.
16003         (asm_emit_uninitialised): Call globalize_decl for weak commons.
16004         (weak_decls): Make a tree_list.
16005         (declare_weak): Cons weak_decls directly.
16006         (globalize_decl): Remove weak_decls elements directly.
16007         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
16008         symbols.  Don't pretend to handle aliases.
16009         (init_varasm_once): Update weak_decls registry.
16010         * Makefile.in: Update dependencies.
16011
16012 2002-03-14  Richard Henderson  <rth@redhat.com>
16013
16014         PR target/5312
16015         * config/ia64/ia64.c: Include tm_p.h last.
16016         (gen_nop_type): Remove duplicate definition.
16017         (cycle_end_fill_slots): Set sched_data for second L slot.
16018         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
16019         (nop_cycles_until): Fix typos.
16020
16021 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
16022
16023         PR optimization/5891
16024         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
16025
16026 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
16027
16028         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
16029           descriptors correctly.
16030
16031 2002-03-14  Michael Meissner  <meissner@redhat.com>
16032
16033         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
16034         100, allowing MAX_UNROLLED_INSNS to be overridden.
16035
16036         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
16037         --param.
16038
16039         * unroll.c (params.h): Include.
16040         (MAX_UNROLLED_INSNS): Delete, now in params.h.
16041
16042         * doc/invoke.texi (--param max-unroll-insns): Document.
16043
16044         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
16045
16046 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
16047
16048         * arm.md: Fix warnings about constraints in peepholes and splits.
16049
16050 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
16051
16052         * cpphash.h (struct lexer_state): Remove line_extension member.
16053         * cpplib.c (dequote_string, do_linemarker): New functions.
16054         (linemarker_dir): New data object.
16055         (DIRECTIVE_TABLE): No longer need to interpret #line in
16056         preprocessed source.  Delete obsolete comment about return
16057         values of handlers.
16058         (end_directive, directive_diagnostics, _cpp_handle_directive):
16059         Don't muck with line_extension.
16060         (directive_diagnostics): No need to issue warnings for
16061         linemarkers here.
16062         (_cpp_handle_directive): Issue warnings for linemarkers here,
16063         when appropriate.  Dispatch linemarkers to do_linemarker, not
16064         do_line.
16065         (do_line): Code to handle linemarkers split out to do_linemarker.
16066         Convert escape sequences in filename argument, both places.
16067
16068         * cppmacro.c (quote_string): Rename cpp_quote_string and
16069         export.  All callers changed.
16070         * cpplib.h (cpp_quote_string): Prototype.
16071         * cppmain.c (print_line): Call cpp_quote_string on to_file
16072         before printing it.
16073
16074         * doc/cpp.texi: Document that escapes are now interpreted in
16075         #line and in linemarkers, and that non-printing characters are
16076         converted to octal escapes when linemarkers are generated.
16077
16078 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
16079
16080         * emit-rtl.c (try_split): Use delete_insns.
16081         * recog.c (split_all_insns): Fix terminating condition.
16082
16083 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
16084             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
16085
16086         PR target/5828
16087         * arm.c (arm_output_epilogue): Fix floating-point register save
16088         adjustment when using a frame pointer.
16089
16090 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
16091
16092         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
16093         * config/mips/mips.c (compute_frame_size): Retrofit them here.
16094         (save_restore_insns, mips_expand_epilogue): And here.
16095         (build_mips16_call_stub): And here.
16096         (mips_function_value): Use the new macros to decide whether a single
16097         or complex float can be returned in floating-point registers.  Return
16098         a parallel rtx in the complex case.
16099
16100 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
16101
16102         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
16103         call after liveness analysis.
16104
16105         * recog.c (split_insn): Use delete_insn_and_edges.
16106
16107         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
16108         instructions to have branch prediction notes.
16109         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
16110
16111 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
16112
16113         * configure.in: Don't pass -Wno-long-long to a ADA compiler
16114         that doesn't support it.
16115         * configure: Regenerate.
16116
16117 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
16118
16119         PR target/5626
16120         * config/sparc/sparc.md (normal_branch, inverted_branch,
16121         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
16122         inverted_fp_branch): Adjust calls to output_cbranch.
16123         Set length attribute.
16124         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
16125         output_v9branch.  Set length attribute.
16126         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
16127         predicates.
16128         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
16129         (output_cbranch): Likewise.  Handle far branches.
16130         (output_v9branch): Handle far branches.
16131         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
16132         Adjust prototypes.
16133         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
16134         noov_compare64_op predicates.
16135
16136 2002-03-13  Jason Merrill  <jason@redhat.com>
16137
16138         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
16139         into the function and constify it.
16140         * gthr-dce.h, gthr-solaris.h: Likewise.
16141
16142 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
16143
16144         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
16145         * config/rs6000/rs6000.c (rs6000_va_arg): Use
16146         std_expand_builtin_va_arg if not ABI_V4.
16147
16148 2002-03-13  Jason Merrill  <jason@redhat.com>
16149
16150         * varasm.c (globalize_decl): New fn.
16151         (assemble_start_function): Use it.
16152         (asm_emit_uninitialized): Use it.
16153         (assemble_alias): Use it.
16154         (assemble_variable): Use it.
16155
16156 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
16157
16158         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
16159         2002-03-12 internal visibility change.
16160         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
16161         visibility into SYMBOL_REF_FLAG.
16162
16163 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
16164
16165         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
16166         VOIDmode operand.  Add compile-time optimization for constant results.
16167
16168 2002-03-12  Jason Merrill  <jason@redhat.com>
16169
16170         * c-typeck.c (convert_for_assignment): Don't allow conversions
16171         between pointers and references.  Only allow lvalues to convert to
16172         reference.
16173
16174 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
16175
16176         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
16177         before prologue, to avoid scheduling problems.
16178
16179 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
16180
16181         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
16182         (ELIMINABLE_REGS): Add sfp->sp.
16183         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
16184
16185 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
16186
16187         PR optimization/5892
16188         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
16189
16190 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
16191
16192         * loop.c (basic_induction_var): Don't call convert_modes if mode
16193         classes are different.
16194
16195 2002-03-12  Richard Henderson  <rth@redhat.com>
16196
16197         PR optimization/5901
16198         * function.c (reposition_prologue_and_epilogue_notes): Position
16199         the markers after/before the last/first insn not deleted.
16200
16201 2002-03-12  Richard Henderson  <rth@redhat.com>
16202
16203         PR optimization/5878
16204         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
16205         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
16206         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
16207
16208         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
16209         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
16210         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
16211
16212         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
16213         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
16214         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
16215         also.  Don't set it if not flag_pic.
16216         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
16217         to be INVALID_REGNUM when not used.
16218
16219 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
16220
16221         * expmed.c (store_bit_field): Reset alias set for memory.
16222         (extract_bit_field): Same.
16223
16224 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16225
16226         * c-common.c (c_tree_code_type, c_tree_code_length,
16227         c_tree_code_name, add_c_tree_codes): Delete.
16228         * c-common.h (add_c_tree_codes): Delete.
16229         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
16230         Define.
16231         * c-objc-common.c (c_objc_common_init): Don't call
16232         add_c_tree_codes, instead set lang_unsafe_for_reeval.
16233         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
16234         objc_tree_code_name, add_objc_tree_codes): Delete.
16235         (objc_init): Don't call add_objc_tree_codes.
16236         * objc/objc-lang.c (tree_code_type, tree_code_length,
16237         tree_code_name): Define.
16238         * toplev.c (lang_independent_init): Don't set
16239         tree_code_length[IDENTIFIER_NODE].
16240         * tree.c (tree_code_type, tree_code_length, tree_code_name):
16241         Delete definitions, moved to language front-ends.
16242         * tree.def (IDENTIFIER_NODE): Hardwire the length.
16243         * tree.h (tree_code_type, tree_code_length, tree_code_name):
16244         Const-ify.
16245         (tree_code_length): Change type to unsigned char.
16246
16247 2002-03-12  Richard Henderson  <rth@redhat.com>
16248
16249         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
16250         internal visibility change.
16251
16252 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
16253
16254         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
16255         validize_mem() instead of change_address to avoid clobbering
16256         memory attributes.
16257
16258 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
16259
16260         * c-lex.h (position_after_whitespace): Remove.
16261
16262 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
16263
16264         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
16265         (lex_string): Use unsigned char pointers.
16266
16267 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
16268
16269         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
16270         is not a valid memory_operand.
16271
16272 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
16273
16274         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
16275         * config/xtensa/lib1funcs.asm: Fix copyright to include
16276         special case for libgcc files.
16277         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
16278         (__divsi3): Likewise.
16279         (__umodsi3): Likewise.
16280         (__modsi3): Likewise.
16281         * config/xtensa/lib2funcs.S: Fix copyright to include
16282         special case for libgcc files.
16283
16284 2002-03-12  Tom Rix  <trix@redhat.com>
16285
16286         * collect2.c (resolve_lib_name): Move outside of
16287         OBJECT_FORMAT_COFF ifdef.
16288         (ignore_library): Same.
16289
16290 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
16291
16292         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
16293
16294 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
16295
16296         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
16297         to function_section before writing out the constant pool.
16298
16299 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
16300
16301         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
16302         zero_constant.
16303         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
16304
16305 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
16306
16307         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
16308         (adddi3): Likewise.
16309         (movdf): Likewise.
16310         (movdi): Likewise.
16311         (cmpsi splitter): Likewise.
16312         (modsi3): Fail if <= 0.
16313         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
16314         redundant test when HOST_BITS_PER_WIDE_INT != 32.
16315         (reg_or_sub_cint64_operand): Likewise.
16316         (num_insns_constant_wide): Optimize sign extension.
16317         (rs6000_legitimize_address): Likewise.
16318
16319 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
16320
16321         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
16322         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
16323
16324 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
16325
16326         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
16327         address calculation.
16328
16329 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
16330
16331         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
16332         scratch register to DImode / TImode.
16333         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
16334         register used does not overlap the target.
16335
16336 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16337
16338         * Makefile.in (debug.o): Depend on debug.h.
16339         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
16340         * debug.c (do_nothing_debug_hooks): Likewise.
16341         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
16342         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
16343         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
16344         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
16345         * dwarfout.c (dwarf_debug_hooks): Likewise.
16346         * integrate.c (output_inline_function): Likewise.
16347         * objc/objc-act.c (synth_module_prologue): Likewise.
16348         * sdbout.c (sdb_debug_hooks): Likewise.
16349         * toplev.c (debug_hooks): Likewise.
16350         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
16351
16352 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16353
16354         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
16355         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
16356         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
16357         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
16358         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
16359         * defaults.h (POINTER_SIZE): Define.
16360         * doc/tm.texi (POINTER_SIZE): Document default.
16361
16362 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16363
16364         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
16365
16366 2002-03-11  Richard Henderson  <rth@redhat.com>
16367
16368         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
16369         if rebuild_label_notes_after_reload.
16370
16371 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
16372
16373         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
16374         emit pic register load if "internal" visibility.
16375         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
16376         (cris_expand_builtin_va_arg): Do all computations on trees.
16377
16378 2002-03-11  Richard Henderson  <rth@redhat.com>
16379
16380         * rtlanal.c: Include recog.h.
16381         (keep_with_call_p): Fix thinko.
16382         * Makefile.in (rtlanal.o): Update dependencies.
16383
16384 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
16385
16386         * genflags.c (gen_insn): Use IS_VSPACE.
16387         * genoutput.c (output_insn_data): Likewise.
16388         (process_template): Likewise.
16389
16390 2002-03-11  Richard Henderson  <rth@redhat.com>
16391
16392         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
16393
16394 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
16395
16396         * Makefile.in: Update.
16397         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
16398         Update documentation.
16399         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
16400         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
16401
16402 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
16403
16404         * Makefile.in: Give texi2pod its input file as a command line
16405         argument, not on stdin.
16406
16407 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
16408             Daniel Berlin  <dan@dberlin.org>
16409
16410         C++ alias analysis improvement.
16411         * alias.c (record_component_aliases): Record aliases for base
16412         classes too.
16413
16414 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
16415
16416         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
16417
16418 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
16419
16420         * toplev.c (vms_fopen): Remove, not needed.
16421
16422         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
16423
16424         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
16425
16426         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
16427         for FP, already done later.
16428
16429         * toplev.c (debug_args): Add entry for VMS_DEBUG.
16430         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
16431
16432 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
16433
16434         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
16435         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
16436         LARGEST_EXPONENT_IS_NORMAL for the given mode.
16437         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
16438         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
16439         (ediv, emul, eldexp, esqrt): Likewise.
16440         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
16441         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
16442         (saturate): New function.
16443         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
16444         (make_nan): Use a saturation value instead of a NaN if
16445         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
16446         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
16447         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
16448         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
16449         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
16450         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
16451         !ROUND_TOWARDS_ZERO.
16452         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
16453         (ROUND_TOWARDS_ZERO): Document.
16454
16455 2002-03-11  Andreas Jaeger  <aj@suse.de>
16456
16457         * cfg.c (dump_flow_info): Remove unused variable.
16458
16459 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
16460
16461         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
16462         computations on trees.
16463
16464 2002-03-10  Richard Henderson  <rth@redhat.com>
16465
16466         PR 5693:
16467         * reload.c (copy_replacements_1): New.
16468         (copy_replacements): Use it to recurse through the rtx.
16469
16470 2002-03-10  Richard Henderson  <rth@redhat.com>
16471
16472         * loop.c (strength_reduce): Compute number of iterations as
16473         unsigned HOST_WIDE_INT.
16474
16475 2002-03-10  Richard Henderson  <rth@redhat.com>
16476
16477         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
16478         to move away from the end of the block.
16479
16480 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
16481
16482         PR preprocessor/5899
16483         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
16484
16485 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16486
16487         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
16488
16489         * attribs.c (decl_attributes): Fix signed/unsigned warning.
16490
16491 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
16492
16493         * config/mmix/mmix.c: Improve comments.
16494         (mmix_target_asm_function_prologue): Drop variable
16495         empty_stack_frame.  Don't allocate unused slot above fp.
16496         (mmix_target_asm_function_epilogue): Mirror prologue changes.
16497         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
16498         brace in first column.
16499         (enum reg_class): Ditto.
16500         (FIRST_PARM_OFFSET): Now 0.
16501         (USER_LABEL_PREFIX): Remove #if 0:d definition.
16502
16503 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16504
16505         * combine.c (make_extraction): Fix error in last change.
16506
16507 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16508
16509         * c4x.c (c4x_fp_reglist): Const-ify.
16510         * cris.c (cris_print_operand): Likewise.
16511         * i386.c (ix86_va_arg): Likewise.
16512         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
16513         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
16514         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
16515         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
16516         * mcore.h (regno_reg_class): Likewise.
16517         * mips.c (gen_int_relational): Likewise.
16518         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
16519         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
16520         * pdp11.c (move_costs): Likewise.
16521         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
16522         * s390.c (s390_branch_condition_mnemonic, regclass_map):
16523         Likewise.
16524         * s390.h (regclass_map): Likewise.
16525         * sh.c (shift_amounts): Likewise.
16526         * sh.md (rotlsi3): Likewise.
16527
16528 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
16529
16530         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
16531         (ne0+5): Use new clobber to generate proper shift pattern.
16532         Patch by Michael Matz <matz@kde.org>.
16533
16534 2002-03-09  Andreas Schwab  <schwab@suse.de>
16535
16536         * gcc.c (validate_all_switches): Also handle `%W{...}'.
16537
16538 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
16539
16540         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
16541
16542 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
16543
16544         PR middle-end/5877
16545         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
16546         even for non-representable constants.
16547
16548 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16549
16550         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
16551         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
16552         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
16553         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
16554         (pop_function_context): Compute MAY_SHARE parameter for
16555         fixup_var_refs.
16556         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
16557         (gen_mem_addressof): Call fixup_var_refs with new parm.
16558
16559         * combine.c (make_extraction): Don't make extension of CONST_INT.
16560
16561 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
16562
16563         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
16564         in o32 and o64 ABIs.
16565         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
16566         but getting fixed-size structs passed in registers regardless of
16567         padding in o32 and o64 ABIs.
16568
16569         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
16570         offset before loading address of argument passed by transparent
16571         reference.
16572
16573 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16574
16575         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
16576
16577 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
16578
16579         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
16580         marker such that registers after it are saved.
16581
16582 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16583
16584         * sparc.c (arith_4096_operand): Fix error in last change.
16585
16586 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
16587
16588         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
16589         defaults for MEABI.
16590
16591 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
16592
16593         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
16594         vectors.
16595
16596 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
16597
16598         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
16599
16600 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
16601
16602         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
16603         removed; fix return value.
16604         * combine.c (combine_instructions): Dirtify blocks where we failed to
16605         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
16606         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
16607
16608 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16609
16610         * gcse.c (insert_insn_end_bb): Fix typo in last change.
16611
16612 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
16613
16614         * recog.c (peephole2_optimize): Re-distribute EH edges.
16615
16616 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
16617
16618         * expr.c (expand_expr): Use unsave lang hook.
16619         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
16620         (LANG_HOOKS_INITIALIZER): Update.
16621         * langhooks.h (struct lang_hooks): New hook unsave.
16622         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
16623         (unsave_expr_1): Remove unused lang_unsave_expr_now.
16624         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
16625         (unsave_expr_now): Remove.
16626         * tree.h (unsave_expr_now, lang_unsave,
16627         lang_unsave_expr_now): Remove.
16628         (lhd_unsave): New.
16629
16630 2002-03-08  Andreas Jaeger  <aj@suse.de>
16631
16632         * flow.c (propagate_block_delete_insn): Remove unused variable.
16633
16634 2002-03-08  Kazu Hirata  <kazu@hxi.com>
16635
16636         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
16637         insn length for memory load/store.
16638
16639 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16640
16641         * doc/install.texi (--with-libiconv-prefix): Document.
16642
16643 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
16644
16645         * doc/sourcebuild.texi: Fix typo.
16646
16647 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
16648
16649         PR c/3711
16650         * builtins.c (std_expand_builtin_va_arg): Do all computations on
16651         trees.
16652
16653 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16654
16655         * rtl.c (copy_most_rtx): Move from here ...
16656         * emit-rtl.c (copy_most_rtx): ... to here.
16657
16658 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
16659
16660         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
16661         SUBTARGET_CPP_SIZE_SPEC.
16662         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
16663
16664         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
16665
16666 2002-03-07  Matt Hiller  <hiller@redhat.com>
16667
16668         * gensupport.c (first_dir_md_include): Renamed from include;
16669         change all references.
16670         (last_dir_md_include): Renamed from last_include; change all
16671         references.
16672         (init_md_reader): Unconditionally initialize base_dir whether or
16673         not filename is a relative path.
16674
16675 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
16676
16677         * config/fp-bit.c (_unord_f2): Compile it in even if
16678         US_SOFTWARE_GOFAST is enabled.
16679
16680         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
16681         NULL_RTX.  Set all HFmode operations as NULL_RTX.
16682         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
16683         NULL_RTX, try reversing the comparison and the operands.
16684
16685 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
16686
16687         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
16688         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
16689         and MATCH_OP_DUP.
16690
16691 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
16692
16693         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
16694
16695 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
16696
16697         * basic-block.h (fixup_abnormal_edges): Declare.
16698         * reload1.c (fixup_abnormal_edges): New function.
16699         * reg-stack.c (convert_regs): Use it.
16700
16701         * gcse.c (insert_insn_end_bb): Handle trapping insns.
16702
16703         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
16704
16705 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
16706
16707         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
16708         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
16709         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
16710         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
16711         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
16712         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
16713         unless x and y could be infinite.
16714         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
16715         Check that the common type of both arguments is a real, even for
16716         targets without unordered comparisons.  Allow an integer argument
16717         to be compared against a real.
16718         (expand_tree_builtin): Use expand_unordered_cmp.
16719         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
16720         * cse.c (fold_rtx): Likewise.  Fix indentation.
16721         * fold-const.c (fold_real_zero_addition_p): New.
16722         (fold): Use it, and the new HONOR_... macros.
16723         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
16724         * jump.c (reversed_comparison_code_parts): After searching for
16725         the true comparison mode, use HONOR_NANS to decide whether it
16726         can be safely reversed.
16727         (reverse_condition_maybe_unordered): Remove IEEE check.
16728         * simplify-rtx.c (simplify_binary_operation): Use the new macros
16729         to decide which simplifications are valid.  Allow the following
16730         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
16731         and (a - -b) to (a + b).
16732         (simplify_relational_operation): Use HONOR_NANS.
16733         * doc/tm.texi: Document the MODE_HAS_... macros.
16734
16735 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
16736
16737         * combine.c (simplify_comparison): If simplifying a logical shift
16738         right and compare with constant, force the comparison to unsigned.
16739
16740 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
16741
16742         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
16743
16744         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
16745         -mabi=no-altivec
16746         (alt_reg_names): Remove % for vrsave.
16747
16748 2002-03-06  Richard Henderson  <rth@redhat.com>
16749
16750         PR optimization/5844
16751         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
16752         if used indicates we've already emitted one copy of an operand.
16753         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
16754         (gen_split): Supply a non-null used.
16755
16756 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
16757
16758         * reload1.c (reload): Unshare all rtl after reload is done.
16759
16760         * simplify-rtx.c (simplify_plus_minus): Do not abort,
16761         but simply fail if the expression is too complex to simplify.
16762         (simplify_gen_binary): Handle simplify_plus_minus failures.
16763
16764 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
16765
16766         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
16767         consistently call delete_trivially_dead_insns after CSE and GCSE;
16768         fix DFI_life dumping; do jump threading after liveness; do crossjumping
16769         after liveness2; update comment in last crossjumping.
16770         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
16771
16772 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
16773
16774         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
16775         after completing fast dead code elimination.
16776
16777         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
16778         COMPARE operator.
16779
16780 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
16781
16782         * version.c:  Fix misplaced leading blanks on first line.
16783
16784 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
16785
16786         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
16787
16788 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
16789
16790         * cfgcleanup.c (mentions_nonequal_regs): New function.
16791         (thread_jump): Use it.
16792         * toplev.c (rest_of_compilation): Run jump threading after
16793         liveness.
16794
16795 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
16796
16797         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
16798         patch.
16799
16800 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
16801
16802         * predict.c (estimate_bb_frequencies): Do not reload the
16803         frequencies from notes.
16804
16805 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
16806
16807         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
16808         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
16809
16810         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
16811         delete_noop_moves): Return indeger.
16812         * flow.c (ndead): New variable.
16813         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
16814         BB argument; update callers.
16815         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
16816         (life_analysis): Do not call purge_all_dead_edges.
16817         (update_life_info): Return number of deleted insns; print statistics.
16818         (update_life_info_in_dirty_blocks): likewise.
16819         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
16820         return number of insns deleted.
16821
16822         * cse.c: Include timevar.h
16823         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
16824         iterate until stabilizes; print statistics; return number of killed
16825         insns.
16826         * Makefile.in: (cse.o): Add timevar.h dependency
16827         * rtl.h (delete_trivially_dead_insns): New.
16828         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
16829         * toplev.c (rest_of_compilation): Update callers.
16830
16831         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
16832         (try_optimize_cfg): Do not update liveness.
16833         (cleanup-cfg): Loop until try_optimize_cfg and dead code
16834         removal stabilizes; use delete_trivially_dead_insns.
16835
16836         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
16837
16838 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
16839
16840         * cppmain.c (setup_callbacks): Disable #pragma and #ident
16841         callbacks when processing assembly language.
16842
16843 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16844
16845         * pa.h (ASM_FILE_END): Define.
16846         * som.h (ASM_FILE_END): Delete.
16847
16848         * pa.c (function_arg): Don't pass floats in general registers in
16849         indirect calls if TARGET_ELF32.
16850
16851 2002-03-05  Richard Henderson  <rth@redhat.com>
16852
16853         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
16854
16855 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
16856
16857         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
16858
16859 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
16860
16861         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
16862         -r command line.  Don't hide any symbols if not building
16863         shared libgcc.
16864
16865 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
16866
16867         * cfg.c (dump_flow_info): Warn about profile mismatches.
16868         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
16869         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
16870
16871 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
16872
16873         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
16874         wide volatile memory by parts.
16875
16876 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
16877
16878         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
16879         is NULL.
16880
16881 2002-03-05  Richard Henderson  <rth@redhat.com>
16882
16883         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
16884
16885 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
16886
16887         * toplev.c (documented_lang_options): Document more
16888         language-specific options.
16889         * doc/invoke.texi (Warning Options): Correct documentation for
16890         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
16891         * c-decl.c (c_decode_option): Use a table to handle warning options.
16892
16893 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
16894
16895         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
16896         parameter to mmix_encode_section_info.
16897         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
16898         relocatably.  Always produce ELF, not mmo if linking relocatably.
16899         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
16900         first is non-zero, don't add symbol prefix.
16901         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
16902         prototype accordingly.
16903
16904 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
16905
16906         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
16907
16908 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
16909
16910         * configure.in: Increase required makeinfo version to 4.1.
16911         * configure: Regenerate.
16912
16913 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
16914
16915         * .cvsignore: Remove *.info* and genrtl*; these files are generated
16916         elsewhere now.
16917
16918 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
16919
16920         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
16921         * doc/invoke.texi: Fix @math uses.
16922
16923 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
16924
16925         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
16926         removal
16927
16928 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
16929
16930         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
16931         (powerpc-*-eabisimaltivec*): Same.
16932
16933         * config/rs6000/t-ppcendian: New.
16934
16935 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16936
16937         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
16938         nonimmediate_src_operand and nonimmediate_lsrc_operand to
16939         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
16940
16941 2002-03-03  Richard Henderson  <rth@redhat.com>
16942
16943         * toplev.c (rest_of_decl_compilation): Revert last two changes.
16944
16945 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
16946
16947         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
16948         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
16949         tree.c, config/m68k/m68k.c:
16950         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
16951         REAL_ARITHMETIC blocks unconditional.  Delete some further
16952         #ifdef blocks predicated on REAL_ARITHMETIC.
16953         * flags.h, toplev.c: Delete remaining references to
16954         flag_pretend_float.
16955
16956         * doc/invoke.texi: Remove documentation of -fpretend-float.
16957         * doc/tm.texi: Describe the various REAL_* macros as provided by
16958         real.h, not by the target configuration files.
16959
16960         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
16961         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
16962         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
16963         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
16964         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
16965         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
16966         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
16967         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
16968         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
16969         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
16970         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
16971         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
16972         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
16973         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
16974         config/xtensa/xtensa.h:
16975         Do not define, undefine, or mention in comments any of
16976         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
16977         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
16978         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
16979         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
16980         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
16981         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
16982         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
16983         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
16984         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
16985
16986 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16987
16988         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
16989         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
16990         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
16991         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
16992         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
16993         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
16994         Delete.
16995         * defaults.h (BITS_PER_WORD): Define.
16996         * doc/tm.texi (BITS_PER_WORD): Document default value.
16997
16998         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
16999         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
17000         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
17001
17002 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17003
17004         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
17005         lieu of explicit sizeof/sizeof.
17006         * i386.c (override_options, ix86_init_mmx_sse_builtins,
17007         ix86_expand_builtin): Likewise.
17008         * mips.c (mips_add_gc_roots): Likewise.
17009         * mmix.c (mmix_output_condition): Likewise.
17010         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
17011         altivec_init_builtins): Likewise.
17012         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
17013         * cppexp.c (Nsuff, parse_number): Likewise.
17014         * cppinit.c (builtin_array_end): Likewise.
17015         * gcc.c (n_default_compilers, process_command): Likewise.
17016         * genpreds.c (output_predicate_decls): Likewise.
17017         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
17018         * lcm.c (N_ENTITIES): Likewise.
17019         * stor-layout.c (set_sizetype): Likewise.
17020
17021 2002-03-03  Richard Henderson  <rth@redhat.com>
17022
17023         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
17024         for types or labels.
17025
17026 2002-03-03  Richard Henderson  <rth@redhat.com>
17027
17028         * c-decl.c (start_decl): Initialized variables are not common.
17029
17030 2002-03-02  Per Bothner  <per@bothner.com>
17031
17032         * gcc.c (option_map):  Suport new --bootclasspath option.
17033         --CLASSPATH is now just an alias for --classpath.
17034
17035 2002-03-02  Richard Henderson  <rth@redhat.com>
17036
17037         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
17038         load if "internal" visibility.
17039         * doc/extend.texi: Document visibility meanings.
17040
17041 2002-03-02  Richard Henderson  <rth@redhat.com>
17042
17043         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
17044         to functions as well.
17045
17046 2002-03-02  Richard Henderson  <rth@redhat.com>
17047
17048         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
17049         (handle_visibility_attribute): Don't call assemble_visibility.
17050         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
17051         without asmspec.  Invoke assemble_alias when needed.
17052         * varasm.c (maybe_assemble_visibility): New.
17053         (assemble_start_function, assemble_variable, assemble_alias): Use it.
17054
17055 2002-03-02  Richard Henderson  <rth@redhat.com>
17056
17057         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
17058         invoke ENCODE_SECTION_INFO with first call flag.
17059
17060         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
17061         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
17062         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
17063         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
17064         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
17065         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
17066         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
17067         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
17068         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
17069         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
17070         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
17071         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
17072         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
17073         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
17074         config/mcore/mcore-protos.h, config/mcore/mcore.c,
17075         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
17076         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
17077         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
17078         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
17079         config/sh/sh.h, config/sparc/sparc.h,
17080         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
17081         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
17082         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
17083         FIRST argument.  As needed, examine it and do nothing.
17084
17085         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
17086         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
17087         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
17088
17089         * config/arm/t-pe (pe.o): Add dependencies.
17090
17091 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17092
17093         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
17094         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
17095         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
17096         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
17097         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
17098         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
17099         * defaults.h (BITS_PER_UNIT): Define.
17100         * doc/tm.texi (BITS_PER_UNIT): Document default value.
17101
17102 2002-03-02  Kazu Hirata  <kazu@hxi.com>
17103
17104         * config/h8300/h8300-protos.h: Add a prototype for
17105         compute_a_shift_length.
17106         * config/h8300/h8300.c (h8300_asm_insn_count): New.
17107         (compute_a_shift_length): Likewise.
17108         (h8300_adjust_insn_length): Do not adjust insn length of shift
17109         insns.
17110         * config/h8300/h8300.md (anonymous shift patterns): Use
17111         compute_a_shift_length.
17112
17113 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17114
17115         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
17116         trunc_int_for_mode.
17117
17118         * emit-rtl.c (offset_address): Call update_temp_slot_address.
17119
17120 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17121
17122         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
17123         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
17124         * flags.h (flag_zero_initialized_in_bss): Declare.
17125         * toplev.c (flag_zero_initialized_in_bss): New flag.
17126         (lang_independent_options): Add flag_zero_initialized_in_bss.
17127         * tree.c (initializer_zerop): New function.
17128         * tree.h (initializer_zerop): Declare.
17129         * varasm.c (assemble_variable): If we can emit bss, put zero
17130         initializers in the bss section.
17131
17132 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
17133
17134         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
17135         like more than one symbol per .weak directive.
17136
17137 2002-03-01  Richard Henderson  <rth@redhat.com>
17138
17139         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
17140         adjust argument_pointer by pretend_args_size.
17141         (ia64_va_start): Adjust va_start address by -pretend_args_size.
17142
17143 2002-03-01  Kazu Hirata  <kazu@hxi.com>
17144
17145         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
17146
17147 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
17148
17149         * toplev.c (rest_of_compilation): Delete dead jumptables before
17150         loop.
17151         * flow.c (delete_dead_jumptables): Make global.
17152         * rtl.h (delete_dead_jumptables): Declare.
17153
17154 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
17155
17156         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
17157         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
17158         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
17159
17160 2002-03-01  Kazu Hirata  <kazu@hxi.com>
17161
17162         * config/h8300/h8300-protos.h: Fix formatting.
17163         * config/h8300/h8300.c: Likewise.
17164         * config/h8300/h8300.h: Likewise.
17165
17166 2002-03-01  Kazu Hirata  <kazu@hxi.com>
17167
17168         * config/h8300/h8300.c (print_operand): Support 16-bit
17169         constant addresses.
17170         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
17171
17172 2002-02-28  Richard Henderson  <rth@redhat.com>
17173
17174         * expmed.c (store_bit_field): Prevent generation of CONCATs;
17175         pun complex values as integers; use gen_lowpart instead of
17176         gen_rtx_SUBREG.
17177         (extract_bit_field): Likewise.
17178
17179 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
17180             David Edelsohn  <edelsohn@gnu.org>
17181
17182         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
17183         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
17184         (SUPPORTS_WEAK): Likewise.
17185         * output.h (add_weak): Add tree param.
17186         * varasm.c (add_weak): Likewise.  Save decl.
17187         (struct weak_syms): Add decl field.
17188         (mark_weak_decls): New function.
17189         (init_varasm_once): ggc_add_root mark_weak_decls.
17190         (assemble_start_function): Use ASM_WEAKEN_DECL.
17191         (assemble_variable): Likewise.
17192         (assemble_alias): Likewise.
17193         (declare_weak): Pass decl to add_weak.
17194         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
17195         (remove_from_pending_weak_list): Declare and define for
17196         ASM_WEAKEN_DECL.
17197         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
17198         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
17199         * defaults.h (SUPPORTS_WEAK): Likewise.
17200         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
17201         .weak for code sym.  Do emit .size for descriptor sym.
17202         (ASM_DECLARE_FUNCTION_SIZE): Define.
17203         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
17204         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
17205         .lglobl unless TARGET_XCOFF.  Formatting fixes.
17206         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
17207         .weak for code sym.
17208         (HANDLE_PRAGMA_WEAK): Remove.
17209         (ASM_WEAKEN_LABEL): Remove.
17210         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
17211
17212 2002-03-01  Jason Merrill  <jason@redhat.com>
17213
17214         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
17215         (TARGET_EXPR_CLEANUP): New macro.
17216
17217 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
17218
17219         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
17220         to take ptr_extend into account as third type of extension.
17221         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
17222         fields used by SUBREG_PROMOTED_UNSIGNED_P.
17223         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
17224         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
17225         * calls.c (precompute_arguments): Use new macro.
17226         (expand_call): Ditto.
17227         * combine.c (nonzero_bits): Ditto.
17228         (record_promoted_value): Ditto.
17229         * expr.c (store_expr): Ditto.
17230         (expand_expr): Ditto.
17231         * function.c (assign_parms): Ditto.
17232
17233 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
17234
17235         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
17236         override -shared and -shared-libgcc.
17237
17238 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
17239
17240         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
17241         of "ultrasparc".
17242         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
17243         to be broken.
17244
17245 2002-02-28  Richard Henderson  <rth@redhat.com>
17246
17247         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
17248         4 cycle latency from MM producers.
17249         (ia64_internal_sched_reorder): Likewise with pipeline flush.
17250
17251 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
17252
17253         * mklibgcc.in: Don't use GNU make extension.
17254
17255 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
17256
17257         * c-parse.in (STATIC): New terminal.
17258         (scspec): New non-terminal.  Update productions accordingly.
17259         (program): Remove bogus ifc / end ifc.
17260         (array_declarator): Simplify production using STATIC.
17261
17262 2002-02-28  Jim Meyering  <meyering@lucent.com>
17263
17264         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
17265         \a still means TARGET_BELL.
17266
17267 2002-02-28  Richard Henderson  <rth@redhat.com>
17268
17269         * haifa-sched.c (sched_emit_insn): New.
17270         (schedule_block): Use last_scheduled_insn to track last insn.
17271         * sched-int.h (sched_emit_insn): Prototype.
17272         * config/ia64/ia64.c (last_issued): Remove.
17273         (ia64_variable_issue): Don't set it.
17274         (nop_cycles_until): Use sched_emit_insn.
17275
17276 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
17277
17278         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
17279         extended constants.
17280
17281 2002-02-28  Kazu Hirata  <kazu@hxi.com>
17282
17283         * config/h8300/h8300.c: Fix formatting.
17284         * config/h8300/h8300.h: Likewise.
17285
17286 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
17287
17288         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
17289         which may overwrite the high byte of the frame pointer.
17290
17291 2002-02-28  Bo Thorsen  <bo@suse.de>
17292
17293         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
17294         (STARTFILE_SPEC): Add 64 bit files.
17295         (ENDFILE_SPEC): Likewise.
17296
17297 2002-02-28  Jason Merrill  <jason@redhat.com>
17298
17299         * c-decl.c (finish_function): Only warn about missing return
17300         statement with -Wreturn-type.
17301
17302 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
17303
17304         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
17305
17306         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
17307         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
17308
17309 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
17310
17311         * basic-block.h (BB_REACHABLE): Renumber.
17312         (BB_DIRTY, BB_NEW): New flags.
17313         (clear_bb_flags): Declare.
17314         (update_life_info_in_dirty_blocks): Declare.
17315         * cfg.c (clear_bb_flags): New function.
17316         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
17317         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
17318         reorder_insns, emit_insn_after): Mark block as dirty.
17319         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
17320         (update_life_info_in_dirty_blocks): New function.
17321         * recog.c (apply_change_group): Dirtify block.
17322
17323         * cse.c (cse_insn): Reorder emitting of jump insn to keep
17324         cfg consistent.
17325         * gcse.c (delete_null_pointer_checks): Likewise.
17326
17327         * toplev.c (dump_file_index): Move cse2 after bp,
17328         add DFI_null
17329         (dump_file_info): Similary.
17330         (rest_of_compilation): Avoid most of CFG rebuilds;
17331         do first if converision after null pointer checks, do cse2
17332         after branch prediction; avoid full liveness rebuild after
17333         initializing subregs.
17334         * invoke.texi (-d options): Document -du, renumber.
17335
17336         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
17337         (notice_new_block): Do not set BB_UPDATE_LIFE.
17338         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
17339          merge_blocks_move_successor_nojumps, merge_blocks,
17340          try_crossjump_to_edge): Likewise.
17341         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
17342         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
17343         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
17344         (merge_of_block): Do not use life_data_ok.
17345         (find_if_case_1): Do not use SET_UPDATE_LIFE.
17346         (if_convert): Use BB_DIRTY mechanizm to update life.
17347         * lcm.c (optimize_mode_switching): Update
17348         update_life_info_in_dirty_blocks
17349
17350 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
17351
17352         * Makefile.in (integrate.o): Update.
17353         * c-decl.c (copy_lang_decl): Rename.
17354         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
17355         * integrate.c: Include langhooks.h.
17356         (copy_decl_for_inlining): Update to use langhook.
17357         * langhooks-def.h (lhd_do_nothing_t,
17358         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
17359         (LANG_HOOKS_INITIALIZER): Update.
17360         * langhooks.c (lhd_do_nothing_t): New.
17361         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
17362         * tree.h (copy_lang_decl): Remove.
17363 objc:
17364         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
17365
17366 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
17367
17368         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
17369         POST_DEC, and POST_MODIFY.
17370
17371 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
17372
17373         * c-typeck.c (digest_init): Remove unused parameter; all
17374         callers changed.
17375
17376 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
17377
17378         * expmed.c (expand_shift): Correctly test for low part of a
17379         subreg.
17380
17381 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
17382
17383         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
17384         insn UIDs with insn addresses.
17385
17386 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
17387
17388         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
17389         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
17390         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
17391         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
17392         gcc.c, toplev.c: Delete code implementing -traditional mode.
17393
17394         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
17395         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
17396         Document removal of -traditional mode for compilation, and
17397         remove documentation only relevant to that mode.
17398
17399         * config/nextstep.h, config/ptx4.h, config/svr4.h,
17400         config/convex/convex.h, config/d30v/d30v.h,
17401         config/i386/dgux.h, config/i386/osf1elf.h,
17402         config/i386/osfelf.h, config/i386/osfrose.h,
17403         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
17404         config/m68k/hp310.h, config/m88k/dgux.h,
17405         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
17406         config/m88k/m88k.h, config/m88k/openbsd.h,
17407         config/mips/abi64.h, config/mips/osfrose.h,
17408         config/mips/svr4-5.h, config/mips/svr4-t.h,
17409         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
17410         config/stormy16/stormy16.h: Remove all references to
17411         -traditional from target specs.  Delete all mention of the
17412         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
17413         delete a couple of commented-out definitions of
17414         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
17415         to -traditional.
17416
17417         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
17418         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
17419
17420 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
17421
17422         * mklibgcc.in: Don't use \n in a line subject to
17423         interpretation by echo.
17424
17425 2002-02-27  Graham Stott  <grahams@redhat.com>
17426
17427         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
17428         Constify NAME.
17429
17430         * loop.c (prescan_loop): Handle PARALLEL.
17431
17432         * unroll.c (loop_iterations): Return 0 if the add_val for
17433         a BIV is REG.
17434
17435         * final.c (output_operand_lossage): Constify PFX_STR.
17436
17437         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
17438
17439 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
17440
17441         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
17442         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
17443
17444 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
17445
17446         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
17447
17448 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
17449
17450         * cpplex.c (_cpp_lex_token): Handle directives in macro
17451         arguments.
17452         * cpplib.c (_cpp_handle_directive): Save and restore state
17453         if parsing macro args when entering a directive.
17454         * cppmacro.c (collect_args): No need to handle directives
17455         in macro arguments.
17456         (enter_macro_context, replace_args): Use the original macro
17457         definition in case it was redefined whilst collecting arguments.
17458 doc:
17459         * cpp.texi: Update.
17460
17461 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
17462
17463         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
17464         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
17465         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
17466         method on AIX.
17467         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
17468         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
17469         (load_toc_v4_PIC_2): Same.
17470
17471 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
17472
17473         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
17474
17475 2002-02-26  Richard Henderson  <rth@redhat.com>
17476
17477         * config/alpha/alpha.md (ashldi_se): Re-enable.
17478
17479 2002-02-26  Richard Henderson  <rth@redhat.com>
17480
17481         * config/alpha/alpha.c (alpha_encode_section_info): Examine
17482         MODULE_LOCAL_P; improve commentary.
17483
17484 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
17485
17486         * doc/cpp.texi: Clarify documentation of relationship between
17487         #line and #include.
17488
17489 2002-02-26  Kazu Hirata  <kazu@hxi.com>
17490
17491         * config/h8300/h8300-protos.h: Update the prototype for
17492         compute_logical_op_length.  Add the prototype for
17493         compute_logical_op_cc.
17494         * config/h8300/h8300.c (compute_logical_op_length): Figure out
17495         code from operands.
17496         (compute_logical_op_cc): New.
17497         * config/h8300/h8300.md: Combine all the logical op patterns
17498         in HImode and SImode.  Use compute_logical_op_cc.
17499
17500 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
17501
17502         * config/i386/i386.c (print_operand): Don't append ATT-style
17503         length suffixs to x87 opcodes when in Intel mode.
17504
17505 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
17506
17507         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
17508         (init_emit_once): Update calls.
17509         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
17510         (init_syntax_once): Prototype.
17511
17512 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17513
17514         * pa-linux.h (LIB_SPEC): Update definition.
17515         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
17516
17517 2002-02-26  Richard Henderson  <rth@redhat.com>
17518
17519         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
17520         if we emitted a stop bit.
17521
17522 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
17523
17524         * configure.in (libgcc_visibility): Substitute.
17525         * configure: Rebuilt.
17526         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
17527         defined symbols .hidden.
17528
17529 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
17530
17531         * attribs.c (c_common_attribute_table): Add visibility.
17532         (handle_visibility_attribute): New function.
17533         * varasm.c (assemble_visibility): New function.
17534         * output.h (assemble_visibility): Add prototype.
17535         * tree.h (MODULE_LOCAL_P): Define.
17536         * crtstuff.c (__dso_handle): Use visibility attribute.
17537         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
17538         for MODULE_LOCAL_P symbols too.
17539         * config/ia64/ia64.c (ia64_encode_section_info): Handle
17540         MODULE_LOCAL_P symbols the same way as local symbols.
17541         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
17542         into .sdata/.sbss by the user.
17543         * doc/extend.texi (Function Attributes): Document visibility
17544         attribute.
17545
17546 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
17547
17548         PR debug/5770
17549         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
17550         STRING_CST initializer spanning the whole variable without
17551         embedded zeros.
17552         If expand_expr returned MEM, don't use it.
17553
17554 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
17555
17556         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
17557         generate a die for the lexical block.
17558
17559 2002-02-26  Kazu Hirata  <kazu@hxi.com>
17560
17561         * config/h8300/h8300-protos.h: Add a prototype for
17562         compute_logical_op_length.
17563         * config/h8300/h8300.c (compute_logical_op_length): New.
17564         * config/h8300/h8300.md (anonymous logical patterns): Use
17565         compute_logical_op_length for length.
17566
17567 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
17568
17569         * dwarf2out.c (modified_type_die): Do not call type_main_variant
17570         for vectors.
17571         (gen_type_die): Same.
17572
17573         * attribs.c (handle_vector_size_attribute): Set debug information.
17574
17575 2002-02-26  Daniel Egger  <degger@fhm.edu>
17576
17577         * config/rs6000/rs6000.md: Swap define_insn attributes to
17578         fix incorrect generation of merge high instructions instead
17579         of merge low.
17580
17581 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
17582
17583         * c-typeck.c (really_start_incremental_init): Use
17584         bitsize_zero_node for vectors.
17585
17586 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
17587
17588         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
17589         ("*set_vrsave_internal"): Same.
17590
17591 2002-02-25  Richard Henderson  <rth@redhat.com>
17592
17593         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
17594         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
17595
17596 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
17597
17598         PR target/5755
17599         * config/i386/i386.c (ix86_return_pops_args): Only pop
17600         fake structure return argument if it was passed on the stack.
17601
17602 2002-02-25  Jason Merrill  <jason@redhat.com>
17603
17604         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
17605         RESULT_DECL.
17606
17607 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
17608
17609         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
17610         link with shared_name only.
17611         * doc/invoke.texi (Link Options): Document new behavior.
17612
17613 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
17614
17615         * c-typeck.c (push_init_level): Handle vectors.
17616
17617 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
17618
17619         * config/sparc/sparc.c (const64_high_operand): Zero-extend
17620         operands of SPARC_SETHI_P.
17621         (input_operand): Likewise.
17622         (sparc_emit_set_const32): Likewise.
17623         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
17624         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
17625         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
17626         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
17627         (movdi_insn_sp64_vis): Likewise.
17628         (movdi split, movdf split): Use SETHI32.
17629         * doc/md.texi: Document SPARC constraints L, M and N.
17630
17631 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
17632
17633         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
17634         ("*set_vrsave_internal"): use mfspr for Darwin.
17635
17636         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
17637         gen_get_vrsave_internal.
17638
17639 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17640
17641         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
17642
17643 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
17644
17645         * cpplex.c (cpp_interpret_charconst): Get signedness or
17646         otherwise of wide character constants correct.
17647         * cppexp.c (lex): Get signedness of wide charconsts correct.
17648
17649 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17650
17651         * optabs.c (widen_operand): Only call convert_modes for
17652         promoted SUBREG if signedness matches.
17653         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
17654
17655 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
17656
17657         * cpplib.c (glue_header_name): Use local buffer to build up
17658         header name.
17659
17660 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
17661
17662         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
17663
17664 2002-02-23  Kazu Hirata  <kazu@hxi.com>
17665
17666         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
17667         H8/300[HS] separately.
17668         * config/h8300/h8300.md: Remove the early clobber constraint
17669         from bit field patterns.
17670
17671 2002-02-23  Kazu Hirata  <kazu@hxi.com>
17672
17673         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
17674         register_operand.
17675         (mulhisi3): Likewise.
17676         (umulqisi3): Likewise.
17677         (umulhisi3): Likewise.
17678
17679 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
17680
17681         * cppinit.c (output_deps): Correct test for stdout output.
17682         (init_dependency_output): Cure warning.
17683
17684 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17685
17686         * expr.c (store_expr): When converting expression to promoted
17687         equivalent type, allow using SUBREG_REG of TARGET as the target
17688         of the expansion of EXP.
17689         * loop.c (basic_induction_var, case SUBREG): Always look inside.
17690         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
17691         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
17692         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
17693         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
17694
17695 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
17696
17697         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
17698         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
17699         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
17700
17701 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
17702
17703         PR optimization/5747
17704         * loop.c (scan_loop): Update reg info if move_movables created new
17705         pseudos.
17706
17707 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
17708
17709         * gcc.c (init_gcc_spec): Revert last change.
17710
17711 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
17712
17713         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
17714         gpc_reg_operand constraint.
17715
17716 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
17717
17718         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
17719         Simplify comparison of `low'.
17720         (add_operand): Fix formatting.
17721         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
17722         (mask_operand): Disallow mask to wrap in 64-bit mode.
17723         (rs6000_stack_info): Remove redundant test setting push_p.
17724         (output_toc): Fix formatting.
17725         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
17726         cc_reg_not_cr0_operand constraint.
17727         (booldi3, boolcdi3 splitters): Same.
17728
17729 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
17730
17731         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
17732
17733 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
17734
17735         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
17736         gcc invoked with -shared-libgcc.
17737
17738 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
17739
17740         PR c++/5748
17741         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
17742         decl if any of elements was TREE_USED.
17743
17744 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
17745
17746         * config/sparc/sol2.h: Don't include sys/mman.h.
17747         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
17748         (arith_4096_operand): Don't throw high bits away.
17749         (const64_operand): Take sign extension of CONST_INTs into account.
17750         (const64_high_operand, sparc_emit_set_const32): Likewise.
17751         (GEN_HIGHINT64): Likewise.
17752         (sparc_emit_set_const64_quick1): Likewise.
17753         (const64_is_2insns): Likewise.
17754         (print_operand): Use trunc_int_for_mode for sign extension.
17755         * config/sparc/sparc.h (SMALL_INT32): Likewise.
17756         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
17757         chars.  Assume CONST_INT is already properly sign-extended.
17758         (movdi split): Sign-extend each SImode part.
17759         (andsi3 split): Don't mask high bits off, so that result
17760         remains properly sign-extend.
17761         (iorsi3 split): Likewise.
17762         (xorsi3 split): Likewise.
17763
17764 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
17765
17766         * fold-const.c (fold): Fix typo in comments.
17767
17768 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
17769
17770         * Makefile.in (langhooks.o): Update dependencies.
17771
17772 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
17773
17774         * langhooks.c: Include flags.h.
17775
17776 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
17777
17778         * testsuite/gcc.dg/attr-alwaysinline.c: New.
17779
17780         * c-common.c (c_common_post_options): Set inline trees by
17781         default.
17782
17783         * doc/extend.texi (Function Attributes): Document always_inline
17784         attribute.
17785         Update documentation about inlining when not optimizing.
17786
17787         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
17788
17789         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
17790         unless DECL_ALWAYS_INLINE.
17791
17792         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
17793         unless DECL_ALWAYS_INLINE.
17794         (c_disregard_inline_limits): Disregard if always_inline set.
17795
17796         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
17797         Disregard if always_inline set.
17798         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
17799         unless DECL_ALWAYS_INLINE.
17800
17801         * attribs.c (handle_always_inline_attribute): New.
17802         (c_common_attribute_table): Add always_inline.
17803
17804         * config/rs6000/altivec.h: Add prototypes for builtins
17805         requiring the always_inline attribute.
17806
17807 2002-02-21  Eric Christopher  <echristo@redhat.com>
17808
17809         * expmed.c (store_bit_field): Try to simplify the subreg
17810         before generating a new one when when the mode size of
17811         value is less than maxmode.
17812
17813 2002-02-21  Richard Henderson  <rth@redhat.com>
17814
17815         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
17816         than gen_rtx_PLUS to form the sum.
17817         * explow.c (force_reg): Rearrange to not allocate new pseudo
17818         when force_operand returns a register.
17819         * expr.c (expand_assignment): Allow offset_rtx expansion to
17820         return a sum.  Do not force addresses into registers.
17821         (expand_expr): Likewise.
17822         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
17823         to canonicalize arithmetic that didn't simpify.
17824         (simplify_plus_minus): New argument force; update
17825         all callers.  Don't split CONST unless we can do something with it,
17826         and wouldn't lose the constness of the operands.
17827
17828         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
17829         that we generated earlier.
17830
17831 2002-02-21  Tom Tromey  <tromey@redhat.com>
17832
17833         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17834         (output_line_info): Use constant `1', with a long explanatory
17835         comment.
17836         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
17837
17838 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
17839
17840         * jump.c (redirect_jump): If old label has no UID, don't try to
17841         delete it.
17842
17843 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
17844
17845         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
17846         If input is constant, do shifts at compile time.
17847
17848 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
17849
17850         * doc/extend.texi: Fix some more overfull hboxes.
17851
17852 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
17853
17854         PR optimization/4994
17855         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
17856         register moves.
17857
17858 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
17859
17860         PR c++/4574
17861         * expr.h (expand_and): Add mode argument.
17862         * expmed.c (expand_and): Add mode argument.
17863         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
17864         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
17865         * except.c (expand_builtin_extract_return_addr): Likewise.
17866         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
17867         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
17868         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
17869         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
17870         * config/c4x/c4x.md: Use GEN_INT (x) instead of
17871         gen_rtx (CONST_INT, VOIDmode, x).
17872
17873 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
17874
17875         PR c/4697:
17876         * stmt.c (warn_if_unused_value): Move side effects test once more.
17877
17878 2002-02-20  Torbjorn Granlund  <tege@swox.com>
17879
17880         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
17881         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
17882
17883 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
17884
17885         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
17886         SUBREG or ZERO_EXTEND.
17887
17888 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
17889
17890         * sh.h (current_function_anonymous_args): Remove.
17891         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
17892         of current_function_varargs and current_function_stdarg is set.
17893         * sh.c (sh_expand_prologue): Check current_function_varargs /
17894         current_function_stdarg / TARGET_SH5 instead of
17895         current_function_anonymous_args.
17896
17897         * sh64.h (TARGET_VERSION): Define.
17898
17899 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
17900
17901         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
17902         VRSAVE_REGNO on TARGET_ALTIVEC.
17903
17904 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
17905
17906         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
17907         bits of SImode const_int.
17908         (includes_rshift_p): Likewise.
17909         (print_operand): Call mask_operand and mask64_operand with correct
17910         mode.
17911         (rs6000_output_function_epilogue): Pad traceback table to word.
17912         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
17913         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
17914         mask64_operand with correct mode.
17915         (FUNCTION_ARG_REGNO_P): Correct parentheses.
17916
17917 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
17918
17919         PR debug/4461
17920         * varasm.c (get_pool_constant_mark): New.
17921         * rtl.h (get_pool_constant_mark): Add prototype.
17922         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
17923         be represented if it has not been output.
17924
17925 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
17926
17927         * combine.c (do_SUBST): Sanity check substitutions of
17928         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
17929         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
17930         CONST_INT into its operand.
17931         (known_cond): Likewise, for ZERO_EXTEND.
17932         * simplify-rtx.c (simplify_unary_operation): Fix condition to
17933         allow for simplification of wide modes.  Reject CONST_INTs in
17934         ZERO_EXTEND when their actual mode is not given.
17935
17936 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
17937
17938         * c-decl.c (pushdecl): If no global declaration is found for an
17939         extern declaration in block scope, try a limbo one.
17940
17941 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
17942
17943         PR c++/4401
17944         * c-common.c (pointer_int_sum): Moved from...
17945         * c-typeck.c (pointer_int_sum): ...here.
17946         * c-common.h (pointer_int_sum): Add prototype.
17947
17948 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
17949
17950         PR c++/5713
17951         * c-decl.c (duplicate_decls): Return 0 if issued error about
17952         redeclaration.
17953
17954 2002-02-20  Roger Sayle  <roger@eyesopen.com>
17955             Jakub Jelinek  <jakub@redhat.com>
17956
17957         PR c/4389
17958         * tree.c (host_integerp): Ensure that the constant integer is
17959         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
17960         when pos is zero or non-zero respectively.  Clarify comment.
17961         * c-format.c (check_format_info_recurse): Fix host_integerp
17962         usage; the pos argument should be zero when assigning to a
17963         signed HOST_WIDE_INT.
17964
17965 2002-02-20  Richard Henderson  <rth@redhat.com>
17966
17967         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
17968         of the operand, rather than assuming TImode.
17969         (ix86_expand_binop_builtin): Cope with commutative patterns
17970         using nonimmediate_operand for both operands.
17971         (ix86_expand_timode_binop_builtin): Likewise.
17972         (ix86_expand_store_builtin): Validate operand 1.
17973         (ix86_expand_unop1_builtin): Likewise.
17974
17975 2002-02-20  Philip Blundell  <philb@gnu.org>
17976
17977         PR 5705
17978         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
17979
17980 2002-02-20  Richard Henderson  <rth@redhat.com>
17981
17982         PR c/5615
17983         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
17984
17985 2002-02-20  Tom Tromey  <tromey@redhat.com>
17986
17987         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17988         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17989         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17990         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
17991         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
17992         unconditionally.
17993
17994 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
17995
17996         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
17997           for (const_int 0) in X not just INTVAL.
17998
17999 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
18000
18001         * doc/extend.texi: Avoid or reduce overfull hboxes.
18002
18003 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
18004
18005         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
18006         operations if the field does not start at a mode boundary.
18007
18008 2001-02-20      Joel Sherrill <joel@OARcorp.com>
18009
18010         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
18011         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
18012         Also done for -Acpu and -Amachine.
18013
18014 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
18015
18016         * cppinit.c (init_dependency_output): Take deps output file
18017         from -o if none given with -MF.  Suppress normal output.
18018         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
18019         * doc/cpp.texi, doc/invoke.texi: Update.
18020
18021 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
18022
18023         * toplev.c (output_quoted_string): Write unprintable
18024         characters with octal escapes.
18025
18026 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
18027
18028         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
18029         really_call_used[VRSAVE_REGNO] if not Altivec.
18030
18031 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
18032
18033         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
18034         MODE_MASK.
18035         (constant_pool_expr_1): Fix formatting.
18036         (rs6000_legitimize_reload_address): Likewise.
18037
18038 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18039
18040         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
18041         now that we have one.
18042
18043 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
18044
18045         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
18046         end of first block of bitfields (which was only seven bits);
18047         rename dummy to unused_1; remove comment which is no longer true.
18048
18049 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
18050
18051         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
18052
18053 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
18054
18055         PR 5399
18056         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
18057         if generating PIC.
18058
18059         PR 5054
18060         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
18061         arm_is_longcall_p rather than inspecting call-type cookie
18062         directly.
18063         (call_value_insn) [TARGET_THUMB]: Likewise.
18064
18065 2002-02-19  Graham Stott  <grahams@redhat.com>
18066
18067         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
18068
18069 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
18070
18071         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
18072         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
18073         (FP_SAVE_INLINE): Delete.
18074
18075         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
18076         * config/rs6000/eabi.asm: Remove ABI save restore routines.
18077         * config/rs6000/t-ppccomm: Build crtsavres.o.
18078         * config/rs6000/crtsavres.asm: New file.
18079
18080 2002-02-19  Philip Blundell  <philb@gnu.org>
18081
18082         * config/arm/arm.c (use_return_insn): Don't reject interrupt
18083         functions.
18084         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
18085         (output_return_instruction): Allow interrupt functions to return with
18086         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
18087         (arm_expand_prologue): Subtract 4 before stacking LR in an
18088         interrupt function.
18089
18090 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
18091
18092         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
18093         decl, not just FUNCTION_DECL.
18094         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
18095         (arm_assemble_integer): Likewise.
18096         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
18097         marked local.
18098
18099 2002-02-19  matthew green  <mrg@eterna.com.au>
18100
18101         * config.gcc (sparc-*-netbsdelf*): Enable target.
18102         (sparc64-*-netbsd*): New target.
18103         * config/sparc/netbsd-elf.h: New file.
18104         * config/sparc/t-netbsd64: New file.
18105
18106 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
18107
18108         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
18109
18110 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
18111
18112         * doc/invoke.texi: explicitly list the style guidelines that
18113         -Weffc++ checks for.
18114
18115 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
18116
18117         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
18118
18119 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
18120
18121         PR other/5718
18122         * gcc.c (cpp_unique_options): Treat -o as indicating object file
18123         only if not -E.  If -E, pass -o through to the preprocessor.
18124
18125 2002-02-19  Kazu Hirata  <kazu@hxi.com>
18126
18127         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
18128         register number with an appropriate macro.
18129
18130 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
18131
18132         * doc/rtl.texi (Constants): Close @code tag.
18133
18134 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
18135
18136         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
18137         ("mmx_uavgv4hi3"): Same.
18138         ("pmulhrwv4hi3"): Same.
18139
18140         * tree-inline.c (walk_tree): Handle vectors.
18141
18142         * c-common.c (constant_expression_warning): Handle vectors.
18143         (overflow_warning): Same.
18144
18145         * sched-deps.c (sched_analyze_2): Handle vectors.
18146
18147         * rtlanal.c (rtx_unstable_p): Handle vectors.
18148         (rtx_varies_p): Same.
18149         (count_occurrences): Same.
18150         (regs_set_between_p): Same.
18151         (modified_between_p): Same.
18152         (modified_in_p): Same.
18153         (volatile_insn_p): Same.
18154         (volatile_refs_p): Same.
18155         (side_effects_p): Same.
18156         (may_trap_p): Same.
18157         (inequality_comparisons_p): Same.
18158         (replace_regs): Same.
18159         (computed_jump_p_1): Same.
18160
18161         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
18162         argument.
18163         (inner_mode_array): New.
18164         (copy_rtx): Handle vectors.
18165         (copy_most_rtx): Same.
18166         (rtx_equal_p): Same.
18167         (get_mode_alignment): Adjust for vectors.
18168
18169         * resource.c (mark_referenced_resources): Handle vectors.
18170         (mark_set_resources): Same.
18171
18172         * reload1.c (eliminate_regs): Handle vectors.
18173         (elimination_effects): Same.
18174         (scan_paradoxical_subregs): Same.
18175
18176         * reload.c (subst_reg_equivs): Handle vectors.
18177
18178         * regrename.c (scan_rtx): Handle vectors.
18179
18180         * regclass.c (reg_scan_mark_refs): Handle vectors.
18181
18182         * recog.c (find_single_use_1): Handle vectors.
18183
18184         * local-alloc.c (equiv_init_varies_p): Handle vectors.
18185         (contains_replace_regs): Same.
18186         (memref_referenced_p): Same.
18187
18188         * integrate.c (copy_rtx_and_substitute): Handle vectors.
18189         (subst_constants): Same.
18190
18191         * genattrtab.c (attr_copy_rtx): Handle vectors.
18192         (encode_units_mask): Same.
18193         (clear_struct_flag): Same.
18194         (count_sub_rtxs): Same.
18195
18196         * gcse.c (want_to_gcse_p): Handle vectors.
18197         (oprs_unchanged_p): Same.
18198         (hash_expr_1): Same.
18199         (oprs_not_set_p): Same.
18200         (expr_killed_p): Same.
18201         (compute_transp): Same.
18202         (store_ops_ok): Same.
18203
18204         * function.c (purge_addressof_1): Do not allow paradoxical subregs
18205         of vectors.
18206         (fixup_var_refs_1): Same.
18207         (instantiate_virtual_regs_1): Same.
18208
18209         * fold-const.c (operand_equal_p): Handle vectors.
18210         (fold): Same.
18211         (rtl_expr_nonnegative_p): Same.
18212
18213         * flow.c (mark_used_regs): Handle vectors.
18214
18215         * df.c (df_uses_record): Handle vectors.
18216
18217         * cselib.c (cselib_subst_to_values): Handle vectors.
18218         (cselib_mem_conflict_p): Same.
18219         (hash_rtx): Same.
18220
18221         * cse.c (canon_reg): Handle vectors.
18222         (fold_rt): Same.
18223         (cse_process_notes): Same.
18224         (count_reg_usage): Same.
18225         (canon_hash): Same.
18226
18227         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
18228
18229         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
18230
18231         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
18232         (gen_rtx): Handle CONST_VECTOR.
18233         (gen_const_vector_0): New.
18234         (copy_rtx_if_shared): CONST_VECTORs can be shared.
18235         (reset_used_flags): Same.
18236         (copy_insn_1): Same.
18237         (initializer_constant_valid_p): Handle VECTOR_CST.
18238
18239         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
18240
18241         * doc/rtl.texi (Constants): Document const_vector.
18242         (CONST0_RTX): Update for vectors.
18243         (RTL sharing): Same.
18244
18245         * print-tree.c (print_node): Add case for VECTOR_CST.
18246
18247         * tree.h (TREE_VECTOR_CST_ELTS): New.
18248         (struct tree_vector): New.
18249         (union tree_node): Add vector node.
18250         (build_vector): Add prototype.
18251
18252         * tree.def (VECTOR_CST): New.
18253
18254         * tree.c (build_vector): New.
18255
18256         * expmed.c (make_tree): Handle CONST_VECTOR.
18257
18258         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
18259         (CONST_VECTOR_ELT): New.
18260         (CONST_VECTOR_NUNITS): New.
18261
18262         * machmode.h (GET_MODE_INNER): New.
18263         (DEF_MACHMODE): Accept 8th arg.
18264
18265         * machmode.def: Add 8th argument for vector inner mode.
18266         Add inner vector modes for vectors.
18267
18268         * rtl.def (VEC_CONST): Remove.
18269         (CONST_VECTOR): New.
18270
18271         * expr.c (clear_storage): Allow vectors.
18272         (is_zeros_p): Handle VECTOR_CST.
18273
18274         * varasm.c (output_constant_pool): Handle vectors.
18275         (rtx_const): Add veclo and vechi fields.
18276         (kind): Add RTX_VECTOR.
18277         (decode_rtx_const): Add case for vector.
18278
18279         * config/rs6000/rs6000-protos.h: Add zero_constant.
18280
18281         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
18282         constants.  Force easy vector constants into memory.
18283         (easy_vector_constant): New.
18284         (emit_easy_vector_constant): New.
18285         (rs6000_legitimize_reload_address): Do not generate bad reloads on
18286         darwin.
18287
18288         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
18289         instruction does.
18290         ("altivec_lvxl"): Same.
18291         (altivec_lvebx): Same.
18292         (altivec_lvehx): Same.
18293         (altivec_lvewx): Same.
18294         ("*movv4si_const0"): New.
18295         ("*movv4sf_const0"): New.
18296         ("*movv8hi_const0"): New.
18297         ("*movv16qi_const0"): New.
18298
18299 2002-02-18  Kazu Hirata  <kazu@hxi.com>
18300
18301         * config/h8300/h8300.c (notice_update_cc): Use
18302         cc_status.value2.
18303
18304 2002-02-18  Kazu Hirata  <kazu@hxi.com>
18305
18306         * config/h8300/h8300.md (divmod patterns): Change the
18307         constraints for operands[1] to register_operand.
18308
18309 2002-02-18  Kazu Hirata  <kazu@hxi.com>
18310
18311         * config/h8300/h8300-protos.h: Remove the prototype for
18312         p_operand.
18313         * config/h8300/h8300.c (p_operand): Remove.
18314         * config/h8300/h8300.md: Replace p_operand with
18315         const_int_operand.
18316
18317 2002-02-18 Philip Blundell <pb@nexus.co.uk>
18318
18319         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
18320         comment.
18321         (output_return_instruction): Allow use of LDR to unstack
18322         return addresss even for interrupt handlers or when
18323         interworking.  If compiling for ARMv5, use interworking-safe
18324         return instructions by default.  Remove duplicated code and
18325         lengthy "strcat" sequences.
18326
18327 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18328
18329         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
18330         (LINK_EH_SPEC): Define.
18331         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
18332
18333 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
18334
18335         * config/s390/s390.c (s390_emit_prologue): Do not set the
18336         frame_related flag for call-clobbered registers.
18337
18338 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
18339
18340         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
18341         (construct_container): Fix handling of SSE operands.
18342         (ix86_expand_builtin): Fix handling of 64bit pointers.
18343         (mmx_maskmovq_rex): New pattern.
18344
18345 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
18346
18347         * regrename.c (kill_set_value): Handle subregs properly.
18348
18349 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
18350
18351         * objc/objc-act.c (handle_impent): Remove leading '*'
18352         from objc_class_name.
18353
18354 2002-02-17  Richard Henderson  <rth@redhat.com>
18355
18356         * config/alpha/alpha.c (some_small_symbolic_operand,
18357         some_small_symbolic_operand_1, split_small_symbolic_operand,
18358         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
18359         Handle small SYMBOL_REFs anywhere, not just inside memories.
18360         * config/alpha/alpha-protos.h: Update.
18361         * config/alpha/alpha.h (PREDICATE_CODES): Update.
18362         * config/alpha/alpha.md (small symbolic operand splitter): Update.
18363
18364 2002-02-17  Roland McGrath  <roland@frob.com>
18365
18366         * config.gcc (powerpc-*-gnu-gnualtivec*,
18367         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
18368         * config/rs6000/gnu.h: New file.
18369         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
18370         Grok "gnu" in rs6000_abi_name.
18371         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
18372         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
18373         Grok -mcall-gnu analogous to -mcall-linux et al.
18374         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
18375         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
18376         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
18377
18378 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
18379
18380         PR c/3444:
18381         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
18382         shortening.
18383
18384 2002-02-17  Philipp Thomas  <pthomas@suse.de>
18385
18386         * config/cris/cris.h: Undefine STARTFILE_SPEC and
18387         ENDFILE_SPEC before (re)defining them.
18388
18389 2002-02-17  Kazu Hirata  <kazu@hxi.com>
18390
18391         * config/h8300/h8300.c: Fix formatting.
18392         * config/h8300/h8300.h: Likewise.
18393
18394 2002-02-17  Philipp Thomas  <pthomas@suse.de>
18395
18396         * doc/tm.texi: Explain why empty strings should not be
18397         marked for translation.
18398
18399 2002-02-17  Philipp Thomas  <pthomas@suse.de>
18400
18401         * final.c (output_operand_lossage): Changed to accept
18402         printf style arguments. Change calls where necessary.
18403         * output.h (output_operand_lossage): Change declaration
18404         accordingly. Update copyright.
18405         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
18406         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
18407         Update copyright date where necessary.
18408
18409         * config/i386/i386.c (print_operand): Likewise. Remove use of
18410         sprintf.
18411
18412         * config/cris/cris.c (cris_operand_lossage): Likewise.
18413         Rename parameter so that exgettext recognizes it as
18414         translatable message.
18415         (LOSE_AND_RETURN): Rename parameter to msgid.
18416
18417 2002-02-17  Kazu Hirata  <kazu@hxi.com>
18418
18419         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
18420         hard coded register number with an appropriate macro.
18421         (HARD_REGNO_MODE_OK): Likewise.
18422         (ARG_POINTER_REGNUM): Likewise.
18423         (STATIC_CHAIN_REGNUM): Likewise.
18424         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
18425         * config/h8300/h8300.md (define_constants): Define more
18426         register numbers.
18427
18428 2002-02-17  Philipp Thomas  <pthomas@suse.de>
18429
18430         * config/i386/i386.h: Don't mark empty strings for translation.
18431
18432 2002-02-16  H.J. Lu <hjl@gnu.org>
18433
18434         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
18435
18436 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
18437
18438         * cppinit.c (merge_include_chains): Check for brack being
18439         NULL before attempting to merge it with qtail.
18440
18441 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
18442
18443         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
18444         DBX_DEBUG.
18445
18446 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18447
18448         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
18449
18450 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18451
18452         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
18453         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
18454         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
18455
18456 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18457
18458         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
18459         now only if !TARGET_FIX.
18460         (*movsi_nt_vms_fix): New pattern.
18461
18462 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
18463
18464         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
18465         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
18466         (alpha_sa_mask, alpha_sa_size): Reflect above change.
18467         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
18468         (alpha_start_function, alpha_expand_epilogue): Likewise.
18469         (unicosmk_gen_dsib): Likewise.
18470
18471 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18472
18473         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
18474
18475 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
18476
18477         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
18478         check_and_change_labels, s390_final_chunkify): Delete.
18479         (s390_split_branches, s390_chunkify_pool): New functions.
18480         (s390_function_prologue): Call them.
18481
18482         * config/s390/s390.h (S390_REL_MAX): Delete.
18483         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
18484
18485         * config/s390/s390.md (cjump, icjump, jump): Fix length
18486         attribute calculation.
18487
18488
18489 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
18490
18491         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
18492         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
18493
18494 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18495
18496         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
18497         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
18498         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
18499
18500 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
18501
18502         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
18503
18504 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
18505
18506         * reload.c (find_dummy_reload): Check that an output register
18507         is valid for its mode.
18508
18509 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
18510
18511         * combine.c (known_cond): After replacing the REG of a SUBREG, try
18512         to simplify it.
18513
18514         * function.c (assign_parms): Demote promoted argument passed by
18515         transparent reference.
18516
18517 2001-02-14      Joel Sherrill <joel@OARcorp.com>
18518
18519         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
18520         -Acpu() and -Amachine() to eliminate warnings.
18521
18522 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
18523
18524         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
18525
18526 2002-02-14  Kazu Hirata  <kazu@hxi.com>
18527
18528         * config/h8300/h8300-protos.h: Update the prototype for
18529         const_costs.
18530         * config/h8300/h8300.c (const_costs): Treat SET as a little
18531         more expensive operation.
18532         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
18533         reference to const_costs.
18534
18535 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
18536
18537         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
18538
18539 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
18540
18541         PR c/5503:
18542         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
18543         use arguments from newtype.
18544
18545 2002-02-13  Eric Christopher  <echristo@redhat.com>
18546
18547         * config/mips/mips.c (override_options): Add check for march/mipsX
18548         on the same command line. Fix error message in cpu processing.
18549         Remove architecture and ISA checks.
18550
18551 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
18552
18553         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
18554
18555         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
18556
18557 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
18558
18559         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
18560         alternatives.
18561         ("*movv8hi_internal1"): Same.
18562         ("*movv16qi_internal1"): Same.
18563         ("*movv4sf_internal1"): Same.
18564
18565         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
18566         not push_reload for altivec modes.
18567
18568 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
18569
18570         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
18571         all RTEMS targets including removal of #includes from config/*/rtems*.h
18572         file and adding them to tm_file setting. Added xm_defines=POSIX to
18573         many targets.
18574         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
18575         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
18576         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
18577         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
18578         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
18579         config/m68k/rtemself.h: Ditto.
18580         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
18581         config/mips/rtems64.h: Ditto.
18582         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
18583         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
18584         Ditto.
18585         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
18586         config/sparc/rtemself.h: Ditto.
18587         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
18588         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
18589         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
18590         more like arm-elf.
18591         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
18592         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
18593         target made more similar to i386-elf.
18594         * config/i386/t-rtems-i386: Added soft float support and multilibs.
18595         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
18596         be similar to config/m68k/t-m68kelf.
18597         * gthr-rtems.h: Encapsulate with extern "C" for C++.
18598
18599 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
18600
18601         * regmove.c (kill_value): Handle subregs.
18602
18603 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
18604
18605         * i386.md (mul patterns): Allow memory operand to be first;
18606         add expanders where needed; fix constraints.
18607         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
18608         Allow memory operand to be the first.
18609
18610         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
18611         operands.
18612
18613 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
18614
18615         PR c/5681:
18616         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
18617         GET_MODE (x).
18618
18619 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
18620
18621         PR optimization/5547:
18622         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
18623         all valid IA-32 address modes involving non-scaled %ebx and
18624         GOT/GOTOFF as displacement.
18625
18626 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
18627
18628         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
18629         after emitting ltorg insns.
18630
18631         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
18632         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
18633         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
18634         *abssf2): Fix "op_type" attribute.
18635
18636 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
18637
18638         * mkconfig.sh: Avoid using a subshell redirect.
18639         ($output.T): Change to $(output)T.
18640         (ENABLE_NLS): Remove unneeded undef.
18641
18642         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
18643         * config/alpha/x-vms (libsubdir): Define.
18644
18645         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
18646         register frame procedures. Optimize retrieving context.
18647
18648         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
18649         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
18650         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
18651
18652 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18653
18654         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
18655         Make same change as for find_base_value.
18656
18657 2002-02-13  Kazu Hirata  <kazu@hxi.com>
18658
18659         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
18660         of QImode and SImode.
18661
18662 2002-02-13  Kazu Hirata  <kazu@hxi.com>
18663
18664         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
18665         length computation of movsi.
18666         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
18667
18668 2002-02-13  Kazu Hirata  <kazu@hxi.com>
18669
18670         * config/h8300/h8300.md (subqi3): Tighten the predicate for
18671         operands[2] to register_operand.
18672
18673 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
18674
18675         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
18676
18677 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
18678
18679         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
18680         for altivec_lvx* and altivec_stvx*.
18681         ("*movv4si_internal"): Add constraint for loading from GPRs.
18682         ("*movv8hi_internal1"): Same.
18683         ("*movv16qi_internal1"): Same.
18684         ("*movv4sf_internal1"): Same.
18685
18686         * config/rs6000/rs6000.c (altivec_register_operand): New.
18687
18688         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
18689         altivec_register_operand.
18690
18691 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
18692
18693         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
18694         handle SYMBOL_REF.
18695
18696 2002-02-13  Stan Shebs  <shebs@apple.com>
18697
18698         * c-typeck.c (digest_init): Handle vectors.
18699         (really_start_incremental_init): Same.
18700         (pop_init_level): Same.
18701         (process_init_element): Same.
18702
18703         * varasm.c (output_constant): Same.
18704
18705         * expr.c (clear_storage): Same.
18706         (store_constructor): Same.
18707
18708 2002-02-12  Eric Christopher  <echristo@redhat.com>
18709
18710         * explow.c (hard_function_value): Add comment explaining
18711         signed/unsigned comparison.
18712
18713 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
18714
18715         * jump.c (never_reached_warning): Add finish argument.
18716         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
18717         real insn after end.
18718         * rtl.h (never_reached_warning): Adjust prototype.
18719         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
18720         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
18721         never_reached_warning.
18722
18723 2002-02-12  Graham Stott  <grahams@redhat.com>
18724
18725         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
18726
18727 2002-02-12  Kazu Hirata  <kazu@hxi.com>
18728
18729         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
18730         logical shifts on H8/300.
18731         (shift_alg_si): Improve several shifts on H8/300.
18732         (get_shift_alg): Likewise.
18733
18734 2002-02-12  Graham Stott  <grahams@redhat.com>
18735
18736         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
18737
18738 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18739
18740         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
18741         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
18742
18743 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
18744
18745         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
18746         non-CONST_INT through default_assemble_integer.
18747         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
18748         <case 8>: Abort for CONST_DOUBLE.
18749
18750 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18751
18752         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
18753         is specified.
18754         * config/pa/pa-linux.h (LIB_SPEC): Delete.
18755         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
18756
18757 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
18758
18759         * config/stormy16/stormy16.md (zero_extendqihi2): New.
18760
18761 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
18762
18763         * regrename.c (regrename_optimize): Don't accept a
18764         part-clobbered register if the replaced register is not part
18765         clobbered.
18766
18767         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
18768         take padding into account when computing the argument value.
18769
18770         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
18771
18772         * combine.c (try_combine): Apply substitutions in
18773         CALL_INSN_FUNCTION_USAGE too.
18774
18775 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
18776
18777         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
18778         __builtin_altivec_abs*.
18779         (bdesc_abs): New.
18780
18781         * config/rs6000/rs6000.h (rs6000_builtins): Add
18782         ALTIVEC_BUILTIN_ABS*.
18783
18784         * config/rs6000/altivec.h: Use const char for builtins expecting
18785         literals.
18786         (vec_abs): New versions for C and C++.
18787         (vec_abss): Same.
18788
18789 2002-02-10  Kazu Hirata  <kazu@hxi.com>
18790
18791         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
18792         using Pmode.
18793
18794 2002-02-10  Kazu Hirata  <kazu@hxi.com>
18795
18796         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
18797         constant definition from h8300.md.
18798         (FRAME_POINTER_REGNUM): Likewise.
18799         * config/h8300/h8300.md (define_constants): Add FP_REG.
18800
18801 2002-02-10  Kazu Hirata  <kazu@hxi.com>
18802
18803         * config/h8300/h8300.c (print_operand): Remove redundant code.
18804
18805 2002-02-10  Kazu Hirata  <kazu@hxi.com>
18806
18807         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
18808         * config/h8300/h8300.c (byte_reg): Make it static.
18809
18810 2002-02-10  Richard Henderson  <rth@redhat.com>
18811
18812         PR c/5623
18813         * c-typeck.c (incomplete_type_error): Handle flexible array members.
18814
18815 2002-02-10  Richard Henderson  <rth@redhat.com>
18816
18817         PR c++/5624
18818         * tree.c (append_random_chars): Don't abort if main_input_filename
18819         does not exist.
18820
18821 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
18822
18823         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
18824
18825 2002-02-10  Kazu Hirata  <kazu@hxi.com>
18826
18827         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
18828         (pushhi1): Likewise.
18829
18830 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18831
18832         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
18833         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
18834
18835 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
18836
18837         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
18838         remove MASK_VIS.
18839         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
18840
18841 2002-02-09  Kazu Hirata  <kazu@hxi.com>
18842
18843         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
18844         a half of an SImode register on H8/300.
18845
18846 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
18847
18848         * i386.md (movdi_2): Add missing '!'.
18849
18850 2002-02-09  Kazu Hirata  <kazu@hxi.com>
18851
18852         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
18853         definitions.
18854
18855 2002-02-09  Kazu Hirata  <kazu@hxi.com>
18856
18857         * config/h8300/h8300.md (length): Correct the distance valid
18858         for the short branch.
18859
18860 2002-02-09  Kazu Hirata  <kazu@hxi.com>
18861
18862         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
18863
18864 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
18865
18866         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
18867         registers in SImode.
18868         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
18869         part-clobbered.
18870
18871         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
18872         patch.
18873
18874         Contribute sh64-elf.
18875         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
18876         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
18877         (sh_cannot_modify_jumps_p): New function.
18878         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
18879         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
18880         (sh_ms_bitfield_layout_p): New function.
18881         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
18882                     Zack Weinberg  <zack@codesourcery.com>
18883         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
18884         expand_simple_binop instead of expand_binop.
18885         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
18886         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
18887         use of .quad and .uaquad.
18888         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
18889         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
18890         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
18891         * config/sh/sh.md (movdi_const, movdi_const_32bit,
18892         movdi_const_16bit): Make sure all CONSTs have modes.
18893         (sym2PIC): Ditto, but by adjusting all callers.
18894         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
18895         if the prologue calls the SHmedia argument decoder or register
18896         saver.
18897         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
18898         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
18899         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
18900         (sh_expand_epilogue): Don't emit USE of return target register.
18901         (prepare_move_operands): Legitimize DImode PIC addresses.
18902         (sh_media_register_for_return): Skip tr0, used to initialize the
18903         PIC register.
18904         (sh_expand_prologue): Remove explicit USE of return register.
18905         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
18906         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
18907         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
18908         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
18909         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
18910         EXTRA_CONSTRAINT_T.
18911         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
18912         (MOVI_SHORI_BASE_OPERAND_P): New.
18913         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
18914         (EXTRA_CONSTRAINT_T): Define in terms of them.
18915         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
18916         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
18917         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
18918         alternatives supporting TARGET_REGS.
18919         (UNSPEC_GOTPLT): New constant.
18920         (movdi split): Move incrementing of LABEL_NUSES...
18921         (movdi_const, movdi_const_32bit): Here.  Use
18922         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
18923         (movdi_const_16bit): New.
18924         (call, call_value) [flag_pic]: Use GOTPLT.
18925         (call_pop, call_value_pop): New expands.
18926         (call_pop_compact, call_pop_rettramp): New insns.
18927         (call_value_pop_compact, call_value_pop_rettramp): New insns.
18928         (sibcall) [flag_pic]: Use GOT.
18929         (builtint_setjmp_receiver): Remove bogus, unused expand.
18930         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
18931         (*pt, *ptb, ptrel): New insns.
18932         (sym2GOT): Handle DImode GOT.
18933         (sym2GOTPLT, symGOTPLT2reg): New expands.
18934         (sym2PIC): New expand.
18935         (shcompact_return_tramp): Use GOTPLT to return trampoline.
18936         (shcompact_return_tramp_i): Use return register explicitly.
18937         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
18938         disable flag_reorder_blocks.
18939         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
18940         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
18941         clobbers, for clarity.
18942         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
18943         restoring of r0 in macl as MAYBE_DEAD.
18944         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
18945         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
18946         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
18947         alter_subreg all over.
18948         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
18949         reload, instead of emitting instructions that would require
18950         reloading.
18951         (casesi_load_media): Add missing modes.
18952         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
18953         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
18954         as used if the argument decoder is called.
18955         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
18956         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
18957         Pmode, then extend it to DImode if necessary.
18958         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
18959         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
18960         constants in FPU-enabled SHmedia, let them be loaded from memory.
18961         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
18962         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
18963         Adjust whitespace in assembly output templates.
18964         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
18965         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
18966         mode of if_then_else.
18967         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
18968         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
18969         sh.h.
18970         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
18971                     Joern Rennecke <amylaar@redhat.com>
18972         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
18973         (SUBTARGET_CPP_PTR_SPEC): New.
18974         (SUBTARGET_CPP_SPEC): Remove.
18975         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
18976         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
18977         Fix typo in previous checkin.
18978         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
18979         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
18980         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
18981                     Alexandre Oliva  <aoliva@redhat.com>
18982         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
18983         what single FP register can hold for SHmedia target.
18984         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
18985                     Alexandre Oliva  <aoliva@redhat.com>
18986         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
18987         Do not split into SUBREG.
18988         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
18989         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
18990         and added new functions as specified in SH5 ABI r9.
18991         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
18992         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
18993         8-byte boundary.
18994         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
18995         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
18996         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
18997         and consttable_window_ends.
18998         2001-06-03  Graham Stott  <grahams@redhat,com>
18999         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
19000         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
19001         * config/sh/sh.c (print_operand): Handle floating-point pair,
19002         vector and matrix registers.
19003         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
19004         vector modes into account.
19005         * config/sh/sh.md (movv2sf): Split move between registers into
19006         movdf.
19007         (movv4sf, movv16sf): Introduce insns that get split only after
19008         reload.
19009         * config/sh/shmedia.h: Fix Copyright dates.
19010         * config/sh/ushmedia.h: Likewise.  Move loop counter
19011         declarations into conditionals that uses them.
19012         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
19013         loop boundary.
19014         * config/sh/sshmedia.h: Fix Copyright dates.
19015         (sh_media_PUTCFG): Fix constraints.
19016         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
19017         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
19018         ptrmemfunc_vbit_in_delta for SH5.
19019         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
19020         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
19021         * invoke.texi: Likewise.
19022         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
19023         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
19024         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
19025         GCC_pop_shmedia_regs_nofpu): New global symbols.
19026         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
19027         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
19028         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
19029         compact function with nonlocal labels.
19030         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
19031         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
19032         (initial_elimination_offset): Account for their stack space.
19033         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
19034         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
19035         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
19036         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
19037         least one of the operands to be a register.
19038         (movv2sf): Likewise.  Renamed to movv2sf_i.
19039         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
19040         prepare_move_operands() before emitting SHmedia insns.
19041         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
19042         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
19043         Don't save nor initialize r12.  Don't mis-align the stack.
19044         Pad the code with a nop.
19045         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
19046         stack.
19047         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
19048         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
19049         [__SHMEDIA__]: Implement.
19050         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
19051         * config/sh/sh.md: Set latency of `pt' closer to reality.
19052         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
19053         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
19054         Set move, load and store type attributes.
19055         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
19056         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
19057         profiling.
19058         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
19059         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
19060         * config/sh/sh.c (sh_media_register_for_return): New function.
19061         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
19062         branch-target register.
19063         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
19064         * config/sh/sh.md (return_media_i): Use any call-clobbered
19065         branch-target register.
19066         (return_media): If r18 wasn't copied in the prologue, copy it
19067         here.
19068         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
19069         Clear class FP0_REGS.
19070         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
19071         from elf.h.
19072         2001-03-08  DJ Delorie  <dj@redhat.com>
19073         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
19074         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
19075         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
19076         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
19077         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
19078         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
19079         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
19080         return value correctly for call_cookie.
19081         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
19082         * config/sh/crt1.asm (start): Modified so as to call
19083         ___setup_argv_and_call_main.
19084         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
19085         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
19086         SHmedia mode.
19087         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
19088         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
19089         (STRIP_NAME_ENCODING): Use it.
19090         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
19091         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
19092         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
19093         prepare_scc_operands().
19094         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
19095         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
19096         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
19097         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
19098         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
19099         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
19100         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
19101         used in shcompact_incoming_args.
19102         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
19103         change.
19104         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
19105         mode.
19106         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
19107         Adjust accordingly.
19108         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
19109         Simplify.  Adjust.  Add sanity check.
19110         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
19111         FPU_SINGLE_BIT.
19112         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
19113         TARGET_SHCOMPACT.
19114         (udivsi3, divsi3): Use them.
19115         (force_mode_for_call): New insn.
19116         (call, call_value, sibcall_value): Emit it before SHcompact
19117         calls.
19118         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
19119         * config/sh/sh.md (call, call_value, sibcall): Make sure the
19120         call cookie is non-NULL before taking its value.
19121         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
19122         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
19123         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
19124         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
19125         block.
19126         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
19127         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
19128         temporary for stack adjusts.  Use MACL and MACH to pass
19129         arguments to shcompact_incoming_args.
19130         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
19131         clobber r1.
19132         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
19133         (nested_trampoline): Load static chain address into r1.
19134         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
19135         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
19136         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
19137         fp_arith_reg_operand().
19138         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
19139         * config/sh/sh.md (casesi): Sign-extend the first two operands,
19140         and use signed compares for them.
19141         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
19142         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
19143         ones properly aligned.
19144         (find_barrier): Account for extra alignment needed for 8-byte wide
19145         constants.
19146         (machine_dependent_reorg): Require a label for the second 4-byte
19147         constant after an 8-byte one.
19148         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
19149         change.
19150         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
19151         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
19152         last_float when switching float modes.
19153         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
19154         auto-increment for general-purpose registers.
19155         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
19156         result.
19157         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
19158         for stack adjust.
19159         * config/sh/sh.c (sh_builtin_saveregs): Support using all
19160         registers for varargs.
19161         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
19162         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
19163         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
19164         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
19165         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
19166         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
19167         call_cookie accordingly.
19168         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
19169         (SHCOMPACT_BYREF): Likewise.
19170         (SHCOMPACT_FORCE_ON_STACK): New macro.
19171         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
19172         (sh_builtin_saveregs): Likewise.
19173         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
19174         shcompact_incoming_args): Use new shift values.  Support
19175         sequences of consecutive and non-consecutive pushes/pops.
19176         * config/sh/sh.md (return): Don't explicitly use PR_REG.
19177         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
19178         * config/sh/sh.h (TEXT_SECTION): Define.
19179         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
19180         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
19181         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
19182         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
19183         return values on FPU-enabled SHmedia.
19184         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
19185         FPU-enabled SHmedia.
19186         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
19187         value is returned in a non-FP reg and is not returned by
19188         reference.
19189         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
19190         jump_ind.
19191         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
19192         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
19193         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
19194         quad-aligned to be passed by callee-copy reference.
19195         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
19196         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
19197         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
19198         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
19199         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
19200         copying low-numbered FP regs to r7 and r8.
19201         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
19202         FP regs to general-purpose regs only if the copy was passed on the
19203         stack.
19204         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
19205         copying FP reg to r9.
19206         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
19207         copy FP regs to general-purpose regs only in outgoing calls.
19208         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
19209         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
19210         HOST_WIDE_INT.
19211         * config/sh/sh.h (struct sh_args): Document all fields.
19212         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
19213         passed partially on the stack should not consider making
19214         sibcalls.
19215         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
19216         stack_regs only for incoming calls.  When passing FP args,
19217         make sure there are FP regs available before modifying
19218         call_cookie.
19219         (SHCOMPACT_BYREF): Pass double args in general-purpose
19220         registers by reference.
19221         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
19222         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
19223         attempt to generate sibcalls if the caller got any arguments
19224         by reference.
19225         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
19226         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
19227         to 8-byte boundaries.
19228         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
19229         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
19230         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
19231         stored in the stack.
19232         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
19233         for the offsets to have the ISA bit set.
19234         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
19235         invocation.  Use beq instead of bgt to mark end of sequence of
19236         loads.
19237         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
19238         bgt to mark end of sequence of stores.
19239         * config/sh/sh.c (arith_operand): Don't check whether
19240         CONST_OK_FOR_J for now.
19241         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
19242         instead of long for conversion.
19243         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
19244         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
19245         before passing it to fprintf.
19246         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
19247         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
19248         Call set_fpscr before reading/writing SR.
19249         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
19250         Call set_fpscr.
19251         * config/sh/lib1funcs.asm: Add `.align 2' directives before
19252         SHmedia code.
19253         (FMOVD_WORKS): Define on SH5 with FPU.
19254         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
19255         setting.
19256         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
19257         _fpscr_values.
19258         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
19259         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
19260         address.
19261         (ia_main_table): Ditto.
19262         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
19263         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
19264         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
19265         the definitions from sh.h.
19266         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
19267         TARGET_SH5.
19268         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
19269         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
19270         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
19271         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
19272         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
19273         Increment LABEL_NUSES.
19274
19275         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
19276         TARGET_SH5.
19277         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
19278         defined.
19279         * config/sh/elf.h (SIZE_TYPE): Likewise.
19280         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
19281         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
19282         shcompact_incoming_args): Load switch table addresses using
19283         datalabel.
19284         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
19285         (NO_BUILTIN_SIZE_TYPE): Define.
19286         (SIZE_TYPE): Don't define.
19287         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
19288         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
19289         definition of __SH5__=32 for -m5-compact-nofpu.
19290         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
19291         ADDR_DIFF_VEC.
19292         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
19293         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
19294         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
19295         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
19296         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
19297         (INSN_LENGTH_ALIGNMENT): Likewise.
19298         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
19299         * config/sh/sh.md (call, call_value, sibcall): Simplify
19300         copying of non-branch-target register.
19301         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
19302         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
19303         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
19304         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
19305         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
19306         floating-point values as structs.
19307         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
19308         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
19309         general-purpose register.
19310         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
19311         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
19312         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
19313         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
19314         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
19315         (ENCODE_SECTION_INFO): Enclose variables and constants in
19316         DATALABEL unspecs.
19317         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
19318         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
19319         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
19320         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
19321         only for LABEL_REFs.  For SYMBOL_REFs, prepend
19322         SH_DATALABEL_ENCODING to the symbol name.
19323         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
19324         convert_mode().
19325         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
19326         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
19327         UNSPEC_DATALABEL.
19328         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
19329         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
19330         (DATALABEL_REF_P): Don't require CONST.
19331         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
19332         REL label.
19333         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
19334         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
19335         right.
19336         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
19337         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
19338         Use shallow_copy_rtx and PUT_MODE to change the mode of
19339         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
19340         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
19341         on SHmedia using GENERAL_REGs.
19342         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
19343         bltu_media_i): Fix reversion of conditions.
19344         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
19345         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
19346         * config/sh/sh.c (output_far_jump): Save r13 in macl.
19347         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
19348         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
19349         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
19350         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
19351         (GCC_nested_trampoline): Likewise.
19352         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
19353         * config/sh/sh.c (gen_datalabel_ref): Define.
19354         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
19355         (INITIALIZE_TRAMPOLINE): Likewise.
19356         (TRAMPOLINE_ADJUST_ADDRESS): Define.
19357         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
19358         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
19359         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
19360         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
19361         (ic_invalidate): Adjust for SH5.
19362         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
19363         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
19364         _nested_trampoline.
19365         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
19366         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
19367         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
19368         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
19369         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
19370         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
19371         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
19372         * config/sh/sh.c (target_reg_operand): Match only target-branch
19373         registers and pseudos that aren't virtual registers.
19374         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
19375         Copy operands that don't match target_reg_operand to pseudos.
19376         (call_media, call_value_media, sibcall_media): Use
19377         target_reg_operand instead of target_operand.
19378         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
19379         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
19380         * config/sh/sh.c (target_reg_operand): Match hardware registers
19381         other than branch-target registers.
19382         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
19383         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
19384         (fpscr_values) [SH5 == 32]: Define.
19385         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
19386         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
19387         Handle function addresses coming in SUBREGs.
19388         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
19389         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
19390         shcompact_return_trampoline): Use datalabel where appropriate.
19391         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
19392         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
19393         general-purpose register to copy one branch-target register to
19394         another.
19395         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
19396         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
19397         SYMBOL_REFs with VOIDmode.
19398         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
19399         bltu_media_i): New insns.
19400         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
19401         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
19402         (INIT_CUMULATIVE_ARGS): Likewise.
19403         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
19404         * machmode.def (V16SFmode): New mode.
19405         * c-common.c (type_for_mode): Support V2SF and V16SF.
19406         * tree.c (build_common_tree_nodes_2): Likewise.
19407         * tree.h (tree_index): Likewise.
19408         * calls.c (emit_call_1): Take args_so_far.  Adjust all
19409         callers.  Introduce CALL_POPS_ARGS.
19410         * tm.texi (CALL_POPS_ARGS): Document.
19411         * config/sh/crt1.asm: Implement in SHmedia mode.
19412         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
19413         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
19414         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
19415         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
19416         Implement divsi and udivsi in SHmedia mode.  Introduce
19417         SHcompact trampolines.
19418         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
19419         only in SHmedia64.
19420         (regno_reg_class): Rewrite.
19421         (fp_reg_names): Remove.
19422         (sh_register_names, sh_additional_register_names): New.
19423         (print_operand): Added `u'.  Support SUBREGs in addresses.
19424         Add parentheses around shifted CONSTs.
19425         (output_file_start): Output .mode and .abi directives.
19426         (shiftcosts, addsubcosts, multcosts): Adjust.
19427         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
19428         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
19429         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
19430         bytes, not registers.  Take into account the need for the
19431         SHcompact incoming args trampoline.  Adjust all callers.
19432         (sh_expand_prologue): Take stack_regs into account.  Call
19433         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
19434         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
19435         stack aligned as per SH5 ABI.
19436         (sh_builtin_saveregs): Support SH5 ABI.
19437         (sh_build_va_list, sh_va_start): Likewise.
19438         (initial_elimination_offset): Take alignment into account.
19439         Compute location of PR according to the SH5 stack frame.
19440         (arith_reg_operand): Reject branch-target registers.
19441         (shmedia_6bit_operand): New.
19442         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
19443         (target_reg_operand): Match DImode only.  Accept SUBREGs.
19444         (target_operand): New.
19445         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
19446         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
19447         SIBCALL_REGS for SHmedia.
19448         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
19449         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
19450         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
19451         (TARGET_SWITCHES): New SH5 flags.
19452         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
19453         VALID_REGISTER_P to disable unsupported registers.
19454         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
19455         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
19456         (FUNCTION_ARG_PADDING): Define.
19457         (FASTEST_ALIGNMENT): Adjust.
19458         (SH_REGISTER_NAMES_INITIALIZER): New.
19459         (sh_register_names): Declare.
19460         (DEBUG_REGISTER_NAMES): Define.
19461         (REGISTER_NAMES): Define based on sh_register_names.
19462         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
19463         (sh_additional_register_names): Declare.
19464         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
19465         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
19466         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
19467         (REGISTER_NATURAL_MODE): Define.
19468         (FIRST_PSEUDO_REGISTER): Adjust.
19469         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
19470         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
19471         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
19472         (VECTOR_MODE_SUPPORTED_P): Define.
19473         (REG_CLASS_CONTENTS): Adjust.
19474         (SMALL_REGISTER_CLASSES): Adjust.
19475         (REG_ALLOC_ORDER): Adjust.
19476         (INDEX_REG_CLASS): Adjust.
19477         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
19478         (CONST_OK_FOR_LETTER_P): Adjust.
19479         (PREFERRED_RELOAD_CLASS): Adjust.
19480         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
19481         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
19482         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
19483         (FIRST_FP_PARM_REG): Adjust.
19484         (CALL_POPS_ARGS): Define.
19485         (FUNCTION_ARG_REGNO_P): Adjust.
19486         (struct sh_args): New fields.
19487         (GET_SH_ARG_CLASS): Adjust.
19488         (INIT_CUMULATIVE_ARGS): Adjust.
19489         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
19490         (FUNCTION_ARG_ADVANCE): Adjust.
19491         (FUNCTION_ARG): Adjust.
19492         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
19493         (FUNCTION_ARG_CALLEE_COPIES): Define.
19494         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
19495         (STRICT_ARGUMENT_NAMING): Define.
19496         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
19497         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
19498         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
19499         (SETUP_INCOMING_VARARGS): Adjust.
19500         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
19501         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
19502         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
19503         (SUBREG_OK_FOR_INDEX_P): Adjust.
19504         (EXTRA_CONSTRAINT_S): Update.
19505         (EXTRA_CONSTRAINT_T): New.
19506         (EXTRA_CONSTRAINT): Adjust.
19507         (GO_IF_LEGITIMATE_INDEX): Adjust.
19508         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
19509         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
19510         (MOVE_MAX): Adjust.
19511         (MAX_MOVE_MAX): Define.
19512         (Pmode): Adjust.
19513         (CONST_COSTS): Adjust.
19514         (REGISTER_MOVE_COST): Adjust.
19515         (BRANCH_COST): Adjust.
19516         (TEXT_SECTION_ASM_OP): Adjust.
19517         (DBX_REGISTER_NUMBER): Adjust.
19518         (ASM_OUTPUT_DOUBLE_INT): New.
19519         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
19520         (PREDICATE_CODES): Adjust.
19521         (PROMOTE_MODE): Adjust.
19522         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
19523         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
19524         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
19525         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
19526         (DR0_REG, DR2_REG, DR4_REG): Renumber.
19527         (TR0_REG, TR1_REG, TR2_REG): New.
19528         (XD0_REG): Renumber.
19529         (UNSPEC_COMPACT_ARGS): New.
19530         (type): Added pt and ptabs.
19531         (length): Default to 4 on SHmedia.  Default pt length to 12
19532         and     20 on SHmedia32 and SHmedia64, respectively.
19533         (pt): New function unit.
19534         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
19535         Add whitespace between operands of SHmedia instructions.
19536         (movdicc): Fix.
19537         (adddi3_media, addsi3_media): Adjust constraints.
19538         (subsi3) [SHmedia]: Force operand 1 into a register.
19539         (udivsi3_i1_media, udivsi3_i4_media): New.
19540         (udivsi3): Support SHmedia.
19541         (divsi3_i1_media, divsi3_i4_media): New.
19542         (divsi3): Support SHmedia.
19543         (anddi3, iordi3, xordi3): Adjust constraints.
19544         (zero_extendhidi2, zero_extendqidi2): New.
19545         (extendsidi2, extendhidi2, extendqidi2): New.
19546         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
19547         (pop_e, pop_fpul, pop_4): Likewise.
19548         (movsi_media): Support FP and BT registers.
19549         (movsi_media_nofpu): New.  Adjust splits to DImode.
19550         (lduw, ldub): Renamed to zero_extend* above.
19551         (movqi_media): Fix typo.
19552         (movdi_media): Support FP and BT registers.
19553         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
19554         (movdi_const_32bit): New.
19555         (shori_media): Require immediate operand.  Use `u' for output.
19556         (movdf_media, movsf_media): Simplified.
19557         (movdf_media_nofpu, movsf_media_nofpu): New.
19558         (movdf, movsf): Adjust
19559         (movv2sf, movv2sf, movv16sf): New.
19560         (beq_media, beq_media_i): Adjust constraints.  Don't use
19561         scratch BT register.
19562         (bne_media, bne_media_i): Likewise.
19563         (bgt_media, bgt_media_i): Likewise.
19564         (bge_media, bge_media_i): Likewise.
19565         (bgtu_media, bgtu_media_i): Likewise.
19566         (bgeu_media, bgeu_media_i): Likewise.
19567         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
19568         bunordered): Emit jump insn.  Force operands to registers when
19569         needed.
19570         (jump_media, jump): Simplify.
19571         (call_compact, call_compact_rettramp): New.
19572         (call_value_compact, call_value_compact_rettramp): New.
19573         (call_media, call_value_media): Simplify.
19574         (sibcall_compact, sibcall_media): New.
19575         (call, call_value): Adjust for SHmedia and SHcompact.
19576         (sibcall, sibcall_value, untyped_call): Likewise.
19577         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
19578         (indirect_jump): Adjust for SHmedia.
19579         (casesi_jump_media): New.
19580         (nop): Re-enable for SHmedia.
19581         (call_site): Restrict to SH1.
19582         (casesi): Adjust for SHmedia.
19583         (casesi_shift_media, casesi_load_media): New.
19584         (return): Explicitly use PR register.  Call return trampoline
19585         on SHcompact.
19586         (return_i): Explicitly use PR register.
19587         (shcompact_return_tramp, shcompact_return_tramp_i): New.
19588         (return_media): Adjust.
19589         (shcompact_incoming_args): New.
19590         (epilogue): Adjust.
19591         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
19592         (movstrsi): Disable on SH5.
19593         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
19594         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
19595         (subsf3, subsf3_media): Likewise.
19596         (mulsf3, mulsf3_media, mac_media): Likewise.
19597         (divsf3, divsf3_media): Likewise.
19598         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
19599         (floatsisf2, fux_truncsfsi2): Likewise.
19600         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
19601         constraints.
19602         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
19603         (cmpunsf_media, cmpsf): Likewise.
19604         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
19605         (abssf2, abssf2_media): Likewise.
19606         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
19607         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
19608         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
19609         (floatsidf2, fix_truncdfsi2): Likewise.
19610         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
19611         constraints.
19612         (cmpeqdf_media, cmpgtdf_media): Likewise.
19613         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
19614         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
19615         (absdf2, absdf2_media): Likewise.
19616         (extendsfdf2, extendsfdf2_media): Likewise.
19617         (truncsfdf2, truncsfdf2_media): Likewise.
19618         * config/sh/sh64.h: New file.
19619         * config/sh/t-sh64: New file.
19620         * config/sh/shmedia.h: New file.
19621         * config/sh/ushmedia.h: New file.
19622         * config/sh/sshmedia.h: New file.
19623         * configure.in: Added sh64-*-elf.
19624         * configure: Rebuilt.
19625         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
19626         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
19627         (reg_class_from_letter): Use `b' for TARGET_REGS.
19628         (print_operand): Support `%M', `%m', `AND' and
19629         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
19630         (andcosts): Adjust for SHmedia.
19631         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
19632         Likewise.
19633         (target_reg_operand): New function.
19634         * config/sh/sh-protos.h (target_reg_operand): Declare.
19635         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
19636         FP registers on SH5.
19637         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
19638         on SH4.
19639         (TARGET_REGISTER_P): New macro.
19640         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
19641         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
19642         (EXTRA_CONSTRAINT_S): New macro.
19643         (EXTRA_CONSTRAINT): Adjust.
19644         (FLOAT_TYPE_SIZE): Define to 32.
19645         (Pmode): DImode on SHmedia.
19646         (CONST_COSTS): Adjust for SHmedia literals.
19647         (PREDICATE_CODES): Added target_reg_operand.
19648         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
19649         * config/sh/sh.md: Remove all attrs from SHmedia insns.
19650         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
19651         (cmpdi): Accept SHmedia.
19652         (movdicc_false, movdicc_true): New insns.
19653         (movdicc): New expand.
19654         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
19655         no_new_pseudos.
19656         (addsi3_media): Match `S' constraint.
19657         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
19658         (negdi2): Expand for SHmedia.
19659         (one_cmpldi2): New expand.
19660         (zero_extendsidi2): Change from expand to insn.
19661         (extendsidi2): Add constraints.
19662         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
19663         LD/ST address.  Fix SI immediate loading split.
19664         (movhi_media, movqi_media, lduw, ldub): New insns.
19665         (movhi, movqi): Accept SHmedia.
19666         (shori_media, movdi_media): Relax input constraints.  Split
19667         symbolic constants.
19668         (movdf_media, movsf_media): New insn.  New split to movdi.
19669         (movdf, movsf): Match on SHmedia.
19670         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
19671         bgeu_media): New insns and splits.  New insns with `_i' suffix.
19672         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
19673         (bunordered): New expand.
19674         (jump_compact): Renamed from `jump'.
19675         (jump_media): New insn.
19676         (jump): New expand.
19677         (call_media, call_value_media): New insns.
19678         (call, call_value): Adjust.
19679         (indirect_jump_compact): Renamed from `indirect_jump'.
19680         (indirect_jump_media): New insn.
19681         (indirect_jump): New expand.
19682         (untyped_call, return): Accept SHmedia.
19683         (return_media): New insn.
19684         (prologue, epilogue, blockage): Accept SHmedia.
19685         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
19686         (sunordered): New expand.
19687         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
19688         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
19689         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
19690         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
19691         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
19692         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
19693         abssf2_media): New insns.
19694         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
19695         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
19696         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
19697         floatdidf2, floatsidf2_media, fix_truncdfdi2,
19698         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
19699         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
19700         absdf2_media): New insns.
19701         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
19702         (extendsfdf2_media, truncdfsf2_media): New insns.
19703         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
19704         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
19705         * config/sh/sh.h (CONST_OK_FOR_J): Document.
19706         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
19707         * config/sh/sh.md (adddi3): New expand.
19708         (adddi3_media, adddi3z_media): New insns.
19709         (adddi3_compact): Renamed from adddi3.
19710         (addsi3_media): Use add.l r63 to add constant zero.
19711         (subdi3): New expand.
19712         (subdi3_media): New insn.
19713         (subdi3_compact): Renamed from subdi3.
19714         (mulsidi3): New expand.
19715         (mulsidi3_media): New insn.
19716         (mulsidi3_compact): Renamed from mulsidi3.
19717         (umulsidi3): New expand.
19718         (umulsidi3_media): New insn.
19719         (umulsidi3_compact): Renamed from umulsidi3.
19720         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
19721         (ashlsi3, ashrsi3, lshrsi3): Use them.
19722         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
19723         (ashldi3, ashrdi3, lshrdi3): Use them.
19724         (zero_extendsidi2): New expand.
19725         (extendsidi2): New insn.
19726         (movsi_media): New insn.  Split to movdi to load constants.
19727         (movsi): Enable for shmedia.
19728         (movdi_media): New insn.  Use shori_media to load wide constants.
19729         (short_media): New insn.
19730         (movdi): Enable for shmedia.
19731         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
19732         * config/sh/sh.h (CPP_SPEC): Added `m5'.
19733         (SUBTARGET_CPP_SPEC): Added `!m5'.
19734         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
19735         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
19736         to all other SH variants.
19737         (TARGET_DEFAULT): Set to SH1_BIT.
19738         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
19739         (BITS_PER_WORD): Raise to 64 on shmedia.
19740         (MAX_BITS_PER_WORD): Change to 64.
19741         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
19742         (INT_TYPE_SIZE): Keep as 32.
19743         (UNITS_PER_WORD): Raise to 8 on shmedia.
19744         (MIN_UNITS_PER_WORD): Keep as 4.
19745         (POINTER_SIZE): Raise to 64 on shmedia.
19746         (CONST_OK_FOR_J): New macro.
19747         (CONST_OK_FOR_LETTER_P): Use it.
19748         (processor_type): Add PROCESSOR_SH5.
19749         * config/sh/sh.md: Conditionalize all expands, insns and
19750         splits to TARGET_SH1.
19751         (cpu): Added sh5.
19752         (addsi3_compact): Renamed from...
19753         (addsi3): Now an expand.
19754         (addsi3_media, subsi3_media): New insns.
19755         (subsi3): Don't negate constants with SHmedia.
19756
19757         * hooks.c: New file.
19758         * hooks.h: New file.
19759         * Makefile.in (HOOKS_H): New.
19760         (TARGET_DEF_H): Added $(HOOKS_H).
19761         (OBJS): Added hooks.o.
19762         (cfgcleanup.o, bb-reorder.o): Added target.h.
19763         (hooks.o): Added dependencies.
19764         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
19765         (TARGET_INITIALIZER): this.
19766         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
19767         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
19768         * bb-reorder.c: Include target.h.
19769         (reorder_basic_blocks): Skip if cannot modify jumps.
19770         * cfgcleanup.c: Include target.h.
19771         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
19772
19773 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
19774
19775         * config/mips/mips.md (casesi_internal, casesi_internal_di):
19776         Protect jump delay slot instructions with .set noreorder and
19777         .set nomacro.
19778
19779 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
19780
19781         * config/mips/mips.md (casesi_internal_di): Calculate
19782         the index into the target offset table correctly.
19783
19784 2002-02-08  Richard Henderson  <rth@redhat.com>
19785
19786         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
19787         * final.c (output_addr_const): Accept and discard SUBREG.
19788         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
19789         mark them unknown instead.
19790         (simplify_subtraction): Handle RTX_UNKNOWN.
19791         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
19792
19793 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
19794
19795         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
19796
19797 2002-02-08  Richard Henderson  <rth@redhat.com>
19798
19799         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
19800
19801 2002-02-08  Andreas Jaeger  <aj@suse.de>
19802
19803         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
19804         * config/i386/t-linux64: New file.
19805
19806 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
19807
19808         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
19809         * c-parse.in (compstmt): Clear last_expr_type.
19810
19811 2002-02-07  Richard Henderson  <rth@redhat.com>
19812
19813         * loop.c (strength_reduce): Sink final_value when not
19814         eliminating a biv.
19815
19816 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
19817
19818         * config/sparc/freebsd.h: Fix mismatched spec {.
19819
19820 2002-02-07  Richard Henderson  <rth@redhat.com>
19821
19822         * cfgrtl.c: Include recog.h and insn-config.h.
19823         (keep_with_call_p): Fix general_operand invocation.
19824         * Makefile.in (cfgrtl.o): Update dependencies.
19825
19826 2002-02-07  Kazu Hirata  <kazu@hxi.com>
19827
19828         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
19829         comment.  Accept HImode only if TARGET_H8300.
19830
19831 2002-02-07  Eric Christopher  <echristo@redhat.com>
19832
19833         * config/mips/crtn.asm: Cleanup #ifdefs.
19834
19835 2002-02-07  Eric Christopher  <echristo@redhat.com>
19836
19837         * config/mips/crti.asm: Add changes for mips16. mips16 uses
19838         register 7 as RA instead of $31.
19839         * config/mips/crtn.asm: Ditto.
19840         * config/mips/mips.c (mips_move_2words): Add case for
19841         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
19842         (compute_frame_size): Fix typo.
19843         (save_restore_insns): Ditto.  Make documentation about using
19844         register $7 as return register more precise.
19845         (mips_expand_epilogue): Fix comment. Add code to work around not
19846         being able to add to the stack pointer directly.
19847         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
19848         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
19849         epilogue.
19850
19851 2002-02-07  Tom Rix  <trix@redhat.com>
19852
19853         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
19854         immediates in ldu and stdu DS opcode field.
19855         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
19856         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
19857         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
19858
19859 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
19860
19861         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
19862         offset for stack bias.
19863
19864 2002-02-07  H.J. Lu <hjl@gnu.org>
19865
19866         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
19867
19868 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
19869
19870         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
19871
19872 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
19873
19874         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
19875         * i386.c (x86_order_regs_for_local_alloc): New global function.
19876         * i386.h (REG_ALLOC_ORDER): CLeanup.
19877         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
19878
19879 2002-02-07  Richard Henderson  <rth@redhat.com>
19880
19881         PR optimization/2463
19882         * alias.c (find_base_value): Recall base values for fixed hard regs.
19883         * loop.c (loop_regs_update): Don't use single_set on non-insns.
19884
19885 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
19886
19887         * config/mips/mips.md (define_delay) [mips16]: Adjust required
19888         length.
19889
19890 2002-02-06  Richard Henderson  <rth@redhat.com>
19891
19892         PR c/5609
19893         * stmt.c (resolve_operand_name_1): Take more care with mixed
19894         named and unnamed operands.
19895
19896 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
19897             Jan Hubicka  <jh@suse.cz>
19898
19899         * loop.c (remove_constant_addition): Avoid clobbering a shared
19900         CONST expression.
19901
19902 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
19903
19904         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
19905         * config/s390/t-linux64: New file.
19906         * config/s390/libgcc-glibc.ver: New file.
19907
19908 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
19909
19910         * config/s390/linux64.h: Delete file.
19911         * config/s390/s390x.h: New file.
19912         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
19913         as target header file.
19914         * config/s390/linux.h (TARGET_VERSION): Define depending on
19915         DEFAULT_TARGET_64BIT.
19916         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
19917         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
19918         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
19919         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
19920         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
19921         (EXTRA_SPEC): New define.
19922         * config/s390/s390.h (TARGET_VERSION): Define depending on
19923         DEFAULT_TARGET_64BIT.
19924         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
19925
19926 2002-02-06  Jason Merrill  <jason@redhat.com>
19927
19928         * c-decl.c (finish_function): Warn about a non-void function with
19929         no return statement and no abnormal exit.
19930         (current_function_returns_abnormally): New variable.
19931         (start_function): Clear it.
19932         (struct c_language_function): Add returns_abnormally.
19933         (push_c_function_context): Save it.
19934         (pop_c_function_context): Restore it.
19935         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
19936         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
19937         an explicit return type.
19938         * c-tree.h: Declare current_function_returns_abnormally.
19939         (C_FUNCTION_IMPLICIT_INT): New macro.
19940         * c-typeck.c (build_function_call): Set it.
19941         (c_expand_return): Set current_function_returns_value even if the
19942         value is erroneous.
19943
19944 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
19945
19946         PR c/5420:
19947         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
19948         unsafe for reevaluation.
19949
19950 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
19951
19952         PR c/5482:
19953         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
19954         EXPR_STMT, but COMPOUND_STMT, recurse into it.
19955
19956 2002-02-06  Richard Henderson  <rth@redhat.com>
19957
19958         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
19959         be a general_operand.  Dest for function value must be a pseudo.
19960
19961 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
19962
19963         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
19964         as SYMBOL_REFs from the constant pool.
19965
19966 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
19967
19968         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
19969         passed by invisible reference.
19970
19971 2002-02-05  Richard Henderson  <rth@redhat.com>
19972
19973         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
19974
19975 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
19976
19977         Implement using "base addresses" in insn operands as default.
19978         * config/mmix/mmix.c (mmix_conditional_register_usage): if
19979         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
19980         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
19981         used to read the rtx value.
19982         (mmix_target_asm_function_epilogue): Fix spacing.
19983         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
19984         (mmix_legitimate_address): Ditto.
19985         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
19986         should be loaded with a GETA insn.  Don't allocate needless extra
19987         char for nul termination and fix misleading comment.
19988         (mmix_print_operand_address): Handle constants if
19989         TARGET_BASE_ADDRESSES.
19990         (mmix_output_register_setting): Use base addressing if
19991         TARGET_BASE_ADDRESSES and the number of insns is 3.
19992         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
19993         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
19994         to use R as constraint, add LDA to match s.
19995         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
19996         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
19997         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
19998         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
19999         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
20000         order with other fixed registers.
20001         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
20002         other parameter/call-clobbered registers.
20003         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
20004         -mbase-addresses, -mno-base-addresses.
20005         (MMIX Options): Ditto.
20006
20007 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20008
20009         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
20010
20011 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
20012
20013         * config/rs6000/altivec.h: Change elem to _S_elem.
20014
20015 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
20016
20017         * config/netbsd.h (WCHAR_TYPE): Define.
20018         (WCHAR_TYPE_SIZE): Ditto.
20019         (WINT_TYPE): Ditto.
20020         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
20021         (WCHAR_UNSIGNED): Ditto.
20022         (WCHAR_TYPE_SIZE): Ditto.
20023         (WINT_TYPE): Ditto.
20024         * config/arm/netbsd.h: Likewise.
20025         * config/i386/netbsd-elf.h: Likewise.
20026         * config/i386/netbsd.h: Likewise.
20027         * config/m68k/netbsd-elf.h: Likewise.
20028         * config/m68k/netbsd.h: Likewise.
20029         * config/ns32k/netbsd.h: Likewise.
20030         * config/sparc/netbsd.h: Likewise.
20031         * config/vax/netbsd.: Likewise.
20032
20033 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
20034
20035         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
20036         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
20037         (TARGET_INITIALIZER): this.
20038         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
20039         (BITFIELD_NBYTES_LIMITED): Markup fix.
20040         * tree.h (default_ms_bitfield_layout_p): Declare.
20041         (record_layout_info): Added prev_field.
20042         * tree.c (default_ms_bitfield_layout_p): New fn.
20043         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
20044         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
20045         * stor-layout.c: Include target.h.
20046         (start_record_layout): Initialize prev_field.
20047         (place_field): Handle MS bit-field layout, and disregard
20048         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
20049         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
20050         * Makefile.in (stor-layout.o): Adjust dependencies.
20051
20052 2002-02-05  Jason Merrill  <jason@redhat.com>
20053
20054         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
20055
20056 2002-02-05  Andreas Jaeger  <aj@suse.de>
20057
20058         * crtstuff.c: Fix comments.
20059
20060 2002-02-05  Richard Henderson  <rth@redhat.com>
20061
20062         PR fortran/3393
20063         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
20064         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
20065
20066         PR fortran/3392
20067         * config/mips/mips.c (function_arg): Handle TImode.
20068         (function_arg_advance): Likewise.
20069
20070 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
20071
20072         * config/rs6000/altivec.h (vec_step_help): Rename to
20073         __vec_step_help.
20074
20075 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
20076
20077         * config/rs6000/altivec.h: Fix typos.
20078
20079 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
20080
20081         * config/arm/netbsd.h: Correct a comment.
20082
20083 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
20084
20085         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
20086         building void typed builtins.
20087
20088         * config/rs6000/altivec.h (vec_ld*): Fix typos.
20089         (vec_step): Implement for C++.
20090
20091 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20092
20093         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
20094
20095 2002-02-04  Richard Henderson  <rth@redhat.com>
20096
20097         * combine.c (nonzero_bits): Re-introduce special case for
20098         sp/fp/ap wrt REGNO_POINTER_ALIGN.
20099
20100 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
20101
20102         * doc/extend.texi: Warn about unsupported usage of altivec
20103         builtins.
20104
20105         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
20106         (altivec_predicate_*): New.
20107
20108         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
20109         Add C++ version of vec_*() functions.
20110
20111         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
20112         (bdesc_2arg): Remove altivec predicates.
20113         (altivec_expand_builtin): Handle predicates.
20114         (altivec_init_builtins): Handle predicates.
20115         (altivec_expand_predicate_builtin): New.
20116
20117 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20118
20119         * pa.c (DO_FRAME_NOTES): Move forward.
20120         (store_reg): Revise handling of frame notes.
20121         (load_reg): Likewise.
20122         (set_reg_plus_d): Likewise.
20123         (hppa_expand_prologue): Likewise.
20124         (hppa_expand_epilogue): Likewise.
20125
20126 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20127
20128         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
20129
20130 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
20131
20132         PR c/4475, c++/3780:
20133         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
20134         * c-common.h (SWITCH_TYPE): Define.
20135         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
20136         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
20137         Rename spareness variable to sparseness.
20138         (expand_end_case_type): Renamed from expand_end_case, use orig_type
20139         if non-NULL instead of TREE_TYPE (orig_index).
20140         * tree.h (expand_end_case_type): Renamed from expand_end_case.
20141         (expand_end_case): Define using expand_end_case_type.
20142         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
20143         to expand_end_case_type.
20144         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
20145
20146 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20147
20148         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
20149         (BIGGEST_ALIGNMENT): Change to 128.
20150
20151 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20152
20153         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
20154
20155 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20156
20157         * pa.md (call_internal_reg_64bit): Remove unused variable.
20158
20159 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
20160
20161         * config/arm/arm.h (machine_function): Add uses_anonymous_args
20162         field.
20163         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
20164         * config/arm/arm.c (current_function_anonymous_args): Delete,
20165         replace uses with cfun->machine->uses_anonymous_args.
20166         (arm_reorg): Do not reset uses_anonymous_args.
20167
20168         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
20169         any geenral register.
20170
20171 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
20172
20173         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
20174         the entry block.
20175
20176 2002-02-04  Richard Henderson  <rth@redhat.com>
20177
20178         * combine.c (force_to_mode): Remove STACK_BIAS code.
20179         (nonzero_bits): Likewise.  Replace sp/fp special case with
20180         REGNO_POINTER_ALIGN.
20181
20182         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
20183         (HARD_FRAME_POINTER_REGNUM): New.
20184         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
20185         (FIXED_REGS, CALL_USED_REGS): Update.
20186         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
20187         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
20188         (HARD_REGNO_NREGS): Update for SFP.
20189         (STACK_POINTER_OFFSET): Include bias here ...
20190         (FIRST_PARM_OFFSET): ... not here.
20191         (STACK_BIAS): Remove.
20192         (INIT_EXPANDERS): New.
20193         (STARTING_FRAME_OFFSET): Do not include bias.
20194         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
20195         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
20196         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
20197         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
20198         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
20199         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
20200         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
20201         (MUST_SAVE_REGISTER): Likewise.
20202         (sparc_flat_function_prologue): Likewise.
20203         (sparc_flat_function_epilogue): Likewise.
20204         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
20205         (sparc_init_modes): SFP is GENERAL_REGS.
20206         (sparc_builtin_saveregs): SFP does not have bias applied.
20207
20208 2002-02-04  Richard Henderson  <rth@redhat.com>
20209
20210         * config/alpha/alpha.c (current_function_is_thunk): Don't check
20211         current_function_is_thunk.
20212         (alpha_sa_mask): Distinguish between current_function_is_thunk
20213         called from ASM_OUTPUT_MI_THUNK and not.
20214         (alpha_does_function_need_gp): Thunks always need gp.
20215         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
20216         (alpha_output_mi_thunk_osf): New.
20217         * config/alpha/alpha-protos.h: Update.
20218         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
20219
20220 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
20221
20222         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
20223         function types, not when they're taken away.
20224
20225 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
20226
20227         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
20228         CODE_LABEL and jump table when replacing a table jump with a
20229         simple jump.
20230
20231 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
20232
20233         * config/s390/s390-protos.h (legitimize_la_operand,
20234         s390_secondary_input_reload_class, s390_plus_operand,
20235         s390_expand_plus_operand): Add prototypes.
20236
20237         config/s390/s390.c (s390_secondary_input_reload_class,
20238         s390_plus_operand, s390_expand_plus_operand): New functions.
20239
20240         (struct s390_address): New member 'pointer'.
20241         (s390_decompose_address): Compute it.
20242         (legitimate_la_operand_p): Use it.
20243         (legitimize_la_operand): New function.
20244         (movti, movdi, movdf splitters): Call it.
20245
20246         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
20247         (PREDICATE_CODES): Add s390_plus_operand.
20248
20249         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
20250         (la_ccclobber): Allow GENERAL_REGS as output operand.
20251
20252         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
20253         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
20254         (*la_64, *la_31, reload_indi, reload_insi): ... these.
20255
20256 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
20257
20258         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
20259         register names for regular asm () construct.
20260
20261 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
20262
20263         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
20264         registers.
20265
20266 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
20267
20268         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
20269         pat for recog.
20270
20271 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
20272
20273         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
20274         constant pool to be identical by string address and index.
20275
20276 2002-02-04  Anthony Green  <green@redhat.com>
20277
20278         * output.h (SECTION_OVERRIDE): Define.
20279         * varasm.c (named_section): Obey SECTION_OVERRIDE.
20280
20281 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
20282
20283         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
20284         by existing arm*-*-netbsd* (a.out) target.
20285         (ns32k-*-netbsdelf*): Likewise.
20286         (sparc-*-netbsdelf*): Likewise.
20287         (vax-*-netbsdelf*): Likewise.
20288
20289 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
20290
20291         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
20292         headers and libobjc headers.
20293
20294 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
20295
20296         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
20297         (_mingw.h): Remove duplicate include.
20298
20299 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
20300
20301         * config.gcc: Set cpu_type to m68k for 68010, as well.
20302         (m68010-*-netbsdelf*): New...
20303         (m68k*-*-netbsdelf*): ...targets.
20304         * config/m68k/netbsd-elf.h: New file.
20305
20306 2002-02-02  Kazu Hirata  <kazu@hxi.com>
20307
20308         * config/h8300/h8300.c (hand_list): Move inside function_arg.
20309
20310 2002-02-02  Kazu Hirata  <kazu@hxi.com>
20311
20312         * config/h8300/h8300.c (h8_push_ops): Move inside
20313         h8300_init_once.
20314         (h8_pop_ops): Likewise.
20315         (h8_move_ops): Likewise.
20316
20317 2002-02-02  Kazu Hirata  <kazu@hxi.com>
20318
20319         * config/h8300/h8300.c (os_task): Make it static.
20320         (monitor): Likewise.
20321         (pragma_saveall): Likewise.
20322
20323 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
20324
20325         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
20326         constant is a valid sign-extension for Pmode.
20327
20328 2002-02-02  Kazu Hirata  <kazu@hxi.com>
20329
20330         * config/h8300/h8300.c: Fix formatting.
20331
20332 2002-02-02  Kazu Hirata  <kazu@hxi.com>
20333
20334         * config/h8300/h8300.md: Fix formatting.
20335
20336 2002-02-02  Kazu Hirata  <kazu@hxi.com>
20337
20338         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
20339         predicates of operands[1].  Split the patterns for each
20340         processor variant.
20341
20342 2002-02-02  Kazu Hirata  <kazu@hxi.com>
20343
20344         * config/h8300/h8300.md (xor patterns): Tighten the predicates
20345         of operands[1] to register_operand.
20346
20347 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
20348
20349         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
20350         * cpphash.c (_cpp_init_hashtable): Similarly.
20351         * cppinit.c (cpp_create_reader): Default the signed_char flag.
20352         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
20353         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
20354         (cpp_handle_option): Handle the new options.
20355         * cpplex.c (cpp_interpret_charconst): Use new flag.
20356         * cpplib.h (struct cpp_options): New member signed_char.
20357         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
20358         (cpp_options): Handle -fsigned-char and -funsigned-char.
20359         (static_specs): Remove signed_char_spec.
20360         (do_spec1): Don't handle %c.
20361         * system.h: Poison SIGNED_CHAR_SPEC.
20362         * tradcif.y (yylex): Use flag_signed_char.
20363         * tradcpp.h (flag_signed_char): New.
20364         * tradcpp.c (flag_signed_char): New.
20365         (main): Handle new command-line options.
20366         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
20367 config:
20368         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
20369         * avr/avr.h: Remove old comments.
20370         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
20371         (CC1_SPEC): Pass -fsigned-char if -mic*.
20372         (SIGNED_CHAR_SPEC): Remove.
20373 doc:
20374         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
20375
20376 2002-02-01  Eric Christopher  <echristo@redhat.com>
20377
20378         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
20379         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
20380         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
20381         (ASM_OUTPUT_REG_POP): Ditto.
20382
20383 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
20384
20385         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
20386         patch.
20387
20388 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
20389
20390         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
20391
20392 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
20393
20394         PR c/5304:
20395         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
20396         unconditionally.
20397
20398 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
20399
20400         * cfganal.c: Include tm_p.h.
20401         (keep_with_call_p): Fix the test that determines if a register holds
20402         the return value of a call.
20403
20404 2002-02-01  DJ Delorie  <dj@redhat.com>
20405
20406         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
20407         we are given conflicting registers, switch to the other one we
20408         had allocated for us.
20409         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
20410         as TImode so we know when the "other" register is available.
20411
20412 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
20413
20414         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
20415         sparc/sparc_bi.h.
20416
20417 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
20418
20419         * cfganal.c (keep_with_call_p): New function.
20420         (flow_call_edges_add): Prevent splitting a block between a call and
20421         a single-set instruction that should be kept in the same block.
20422
20423 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20424
20425         * doc/install.texi (avr): Update outdated URL.
20426
20427 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
20428
20429         * config/stormy16/stormy16.md (pushqi): New.
20430         (popqi): New.
20431         (pushhi): New.
20432         (pophi): New.
20433         (movhi): Remove stack operands.
20434         (movqi): Likewise.
20435         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
20436         nonimmediate_nonstack_operand.
20437         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
20438         New.
20439         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
20440         New.
20441
20442 2002-01-31  Jason Merrill  <jason@redhat.com>
20443
20444         * Makefile.in (c-parse.c): Handle .output file.
20445         * objc/Make-lang.in (objc-parse.c): Likewise.
20446
20447 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
20448
20449         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
20450         the -me[lb] option is given.  Don't output the default flag
20451         twice.
20452
20453 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
20454
20455         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
20456         the primary source file; this has not been done yet.
20457         * c-decl.c (c_expand_body): Reset input_filename from
20458         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
20459
20460 2002-01-31  Kazu Hirata  <kazu@hxi.com>
20461
20462         * rtlanal.c (subreg_regno_offset): Do not use
20463         SUBREG_REGNO_OFFSET.
20464         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
20465         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
20466
20467 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
20468
20469         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
20470         version rather than GNATS version in --version output.
20471
20472 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
20473
20474         * ifcvt.c (noce_process_if_block): Make a copy of the destination
20475         when copying back from a temporary.
20476
20477 2002-01-30  Richard Henderson  <rth@redhat.com>
20478
20479         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
20480         and new_dest are the same.
20481
20482 2002-01-30  Richard Henderson  <rth@redhat.com>
20483
20484         PR opt/5076
20485         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
20486         * rtl.c (note_insn_name): Update.
20487         * emit-rtl.c (remove_unnecessary_notes): Kill it.
20488         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
20489         to perform loop rotation.
20490         (expand_exit_loop_top_cond): New.
20491         * tree.h (expand_exit_loop_top_cond): Declare it.
20492         * c-semantics.c (genrtl_while_stmt): Use it.
20493         (genrtl_for_stmt): Likewise.
20494
20495 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
20496
20497         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
20498         arguments to 64-bit boundaries on 64-bit ABIs.
20499
20500 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
20501
20502         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
20503
20504 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
20505
20506         * c-decl.c (grokdeclarator): Handle type being a typedef for an
20507         invalid type.
20508
20509 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
20510
20511         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
20512         * config/sparc/sparc_bi.h: Remove file.
20513         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
20514
20515 2002-01-30  Richard Henderson  <rth@redhat.com>
20516
20517         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
20518
20519 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
20520
20521         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
20522
20523 2002-01-30  Jason Merrill  <jason@redhat.com>
20524
20525         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
20526         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
20527         (reg_save): Use DW_CFA_offset_extended_sf instead.
20528
20529         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
20530
20531 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
20532
20533         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
20534         in cselib_lookup.
20535
20536 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
20537
20538         * rs6000.md ("*call_value_local32"): Remove constraints.
20539         ("*call_value_local64"): Same.
20540         ("*call_value_indirect_nonlocal_aix32"): Same.
20541         ("*call_value_nonlocal_aix32"): Same.
20542         ("*call_value_indirect_nonlocal_aix64"): Same.
20543         ("*call_value_nonlocal_aix64"): Same.
20544         ("*call_value_nonlocal_sysv"): Same.
20545
20546 2002-01-29  Richard Henderson  <rth@redhat.com>
20547
20548         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
20549
20550 2002-01-29  Richard Henderson  <rth@redhat.com>
20551
20552         * expr.c (force_operand): Ignore flag_pic for detecting pic
20553         address loads.
20554         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
20555         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
20556         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
20557         instead of open-coded loop.
20558         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
20559         be fixed when in use.
20560
20561 2002-01-29  Richard Henderson  <rth@redhat.com>
20562
20563         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
20564         * sched-rgn.c (propagate_deps): Update them.
20565         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
20566         clobbers list when either gets too long.
20567
20568 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
20569
20570         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
20571         and INDEX_REGS the same as GENERAL_REGS.
20572         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
20573
20574 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
20575
20576         * tree.c (build_nonstandard_integer_type): Correct prototype.
20577
20578 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
20579
20580         * config/s390/s390.md (movstrsico, movstrdix_64,
20581         movstrsix_31): Remove, replace by ...
20582         (movstrdi_short, movstrsi_short, movstrdi_long,
20583         movstrsi_long): ... these.  New.
20584         (movstrdi, movstrsi): Adapt.
20585
20586         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
20587         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
20588         Remove unnecessary CC clobber.
20589         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
20590         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
20591
20592         (divmoddi4): Don't partially initialize TImode register.
20593
20594 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
20595
20596         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
20597
20598 2002-01-29  Richard Henderson  <rth@redhat.com>
20599
20600         * flow.c (print_rtl_and_abort): Remove.
20601         (print_rtl_and_abort_fcn): Remove.
20602         (verify_local_live_at_start): Use dump_bb instead.
20603         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
20604         (verify_wide_reg_1): Return 2 on mode test failure.
20605
20606 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
20607
20608         PR c/3325, c/3326, c/2511, c/3347
20609         * c-decl.c (enum_decl_context): Remove BITFIELD.
20610         (grokdeclarator): Take bitfield width as an input.
20611         Ensure bitfields are given the correct type.  Perform
20612         bitfield width validation with build_bitfield_integer_type
20613         rather than waiting for finish_struct.
20614         (grok_typename, grok_typename_in_parm_context, start_decl,
20615         push_parmdecl, grokfield, start_function): Update calls to
20616         grokdeclarator.
20617         (build_bitfield_integer_type): New function.
20618         (finish_struct): Move bitfield validation to grokdeclarator
20619         and build_bitfield_integer_type.
20620         * tree.c (build_nonstandard_integer_type): New function.
20621         * tree.h (build_nonstandard_integer_type): New prototype.
20622 objc:
20623         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
20624
20625 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
20626
20627         PR other/1502:
20628         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
20629         don't ignore unrecognized -W* options.
20630         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
20631         * cpplib.h (cpp_handle_option): Adjust prototype.
20632         * c-decl.c (c_decode_options): Pass 0 as last argument to
20633         cpp_handle_option.
20634
20635         PR c/2896:
20636         * gcc.c (cpp_unique_options): Split from cpp_options.
20637         (cpp_options): Source cpp_unique_options.
20638         (default_compilers): Use cpp_unique_options instead of cpp_options
20639         when used together with cc1_options.
20640         (static_specs): Add cpp_unique_options.
20641         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
20642         when used together with cc1_options.
20643
20644 2002-01-29  Kazu Hirata  <kazu@hxi.com>
20645
20646         * config/h8300/h8300-protos.h: Update the prototype of
20647         output_a_shift.
20648         * config/h8300/h8300.c (output_a_shift): Remove an unused
20649         argument 'insn'.  Remove redundant code.
20650         * config/h8300/h8300.md: Adust to the new prototype of
20651         output_a_shift.
20652
20653 2002-01-29  Kazu Hirata  <kazu@hxi.com>
20654
20655         * config/h8300/h8300-protos.h: Update the prototypes of
20656         emit_a_rotate and expand_a_rotate.
20657         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
20658         first argument to 'enum rtx_code'.
20659         (expand_a_rotate): Likewise.
20660
20661 2002-01-28  Kazu Hirata  <kazu@hxi.com>
20662
20663         * config/h8300/h8300-protos.h: Update the prototype of
20664         output_simode_bld.
20665         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
20666         'log2'.
20667         * config/h8300/h8300.md: Adjust to the new prototype.
20668
20669 2002-01-28  Kazu Hirata  <kazu@hxi.com>
20670
20671         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
20672         redundant code.
20673
20674 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20675
20676         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
20677         is a fixed register before returning pic_offset_table_rtx.
20678         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
20679         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
20680
20681 2002-01-28  Jason Merrill  <jason@redhat.com>
20682
20683         * dwarf2.h: Sync with src version.
20684
20685 2002-01-28  Paul Koning  <pkoning@equallogic.com>
20686
20687         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
20688         BT_FN_VOID_PTR_VAR.
20689         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
20690         * doc/extend.texi (__builtin_prefetch): Update documentation:
20691         first argument is now const void ptr.
20692
20693 2002-01-28  Kazu Hirata  <kazu@hxi.com>
20694
20695         * config/h8300/h8300-protos.h: Remove an unused prototype.
20696
20697 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
20698
20699         * toplev.c (lang_independent_init): Round up identifier size.
20700
20701 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
20702
20703         * config.gcc: Revert previous change.
20704
20705 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
20706
20707         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
20708
20709 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
20710
20711         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
20712         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
20713         other non-elf netbsd config frags.
20714         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
20715         collect2 will does that.
20716         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
20717         shared-lib frobbing will work.
20718
20719 2002-01-28  Kazu Hirata  <kazu@hxi.com>
20720
20721         * config/h8300/h8300.h: Fix formatting.
20722         * config/h8300/h8300.md: Likewise.
20723
20724 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
20725
20726         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
20727         the old, removed AAA_standards fix.
20728         * fixinc/fixincl.x: Rebuilt.
20729
20730 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
20731
20732         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
20733         atexit call in crtbegin, hooked in after call to frame_dummy;
20734         register EH before registering __fini__start.
20735
20736 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
20737
20738         * config/rs6000/altivec.h: Remove spurious semicolons.
20739
20740 2002-01-27  Kazu Hirata  <kazu@hxi.com>
20741
20742         * config/h8300/h8300.md: Replace dead bit extraction patterns
20743         with ones that work.
20744
20745 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20746
20747         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
20748         if not STRICT_ALIGNMENT.
20749         * rtl.h (MEM_ALIGN): Likewise.
20750
20751 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20752
20753         * doc/invoke.texi (-fdump-translation-unit): Revert this
20754         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20755
20756 2002-01-27  Kazu Hirata  <kazu@hxi.com>
20757
20758         * config/h8300/h8300.md (define_constants): New.
20759         (anonymous patterns) Use defined constants appropriately.
20760
20761 2002-01-27  Kazu Hirata  <kazu@hxi.com>
20762
20763         * config/h8300/h8300.c (function_arg): Remove redundant code.
20764
20765 2002-01-26  Richard Henderson  <rth@redhat.com>
20766
20767         * sched-deps.c (reg_pending_uses_head): New.
20768         (reg_pending_barrier): Rename from reg_pending_sets_all.
20769         (find_insn_list): Don't mark inline.
20770         (find_insn_mem_list): Remove.
20771         (add_dependence_list, add_dependence_list_and_free): New.
20772         (flush_pending_lists): Replace only_write param with separate
20773         for_read and for_write parameters.  Update all callers.  Use
20774         add_dependence_list_and_free.
20775         (sched_analyze_1): Do not add reg dependencies here; just set
20776         the pending bits.  Use add_dependence_list.
20777         (sched_analyze_2): Likewise.
20778         (sched_analyze_insn): Replace schedule_barrier_found with
20779         reg_pending_barrier.  Add all dependencies for pending reg
20780         uses, sets, and clobbers.
20781         (sched_analyze): Don't add reg dependencies for calls, just
20782         set pending bits.  Use regs_invalidated_by_call.  Treat
20783         sched_before_next_call as a normal list, not a fake insn.
20784         (init_deps): No funny init for sched_before_next_call.
20785         (free_deps): Free pending mems lists.  Don't zero reg_last.
20786         (init_deps_global): Init reg_pending_uses.
20787         (finish_deps_global): Free it.
20788         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
20789         (find_insn_mem_list): Remove.
20790         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
20791         (propagate_deps): Use them.  Zero temp mem lists.
20792
20793 2002-01-26  Richard Henderson  <rth@redhat.com>
20794
20795         * Makefile.in (CRTSTUFF_CFLAGS): New.
20796         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
20797         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
20798         crtstuff.c instead of alpha assembly version.
20799         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
20800         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
20801         not FORCE_{INIT,FINI}_SECTION_ALIGN.
20802         (__do_global_dtors_aux): Mark used.
20803         (frame_dummy, __do_global_ctors_aux): Mark used.
20804         (fini_dummy, init_dummy): Remove.
20805
20806         * config/alpha/crtbegin.asm: Remove file.
20807         * config/alpha/crtend.asm: Remove file.
20808         * config/alpha/t-crtbe: Remove file.
20809         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
20810         (LINK_EH_SPEC): New.
20811
20812         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
20813         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
20814         calling constructors.
20815         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
20816
20817         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
20818         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
20819         CRT_END_INIT_DUMMY hack.
20820         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
20821         FORCE_{INIT,FINI}_SECTION_ALIGN.
20822
20823         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
20824         FORCE_{INIT,FINI}_SECTION_ALIGN.
20825
20826         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
20827         invocation sequence.
20828         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
20829
20830         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
20831         (FORCE_CODE_SECTION_ALIGN): New.
20832
20833 2002-01-26  Richard Henderson  <rth@redhat.com>
20834
20835         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
20836
20837 2002-01-26  Richard Henderson  <rth@redhat.com>
20838
20839         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
20840         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
20841
20842 2002-01-26  Kazu Hirata  <kazu@hxi.com>
20843
20844         * config/h8300/h8300.md: Remove bit extraction patterns that
20845         cannot be triggered.
20846         Restrict each bit extraction pattern to a variant on which the
20847         pattern is tested.
20848
20849 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
20850
20851         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
20852
20853 2002-01-26  Kazu Hirata  <kazu@hxi.com>
20854
20855         * config/h8300/h8300.md: Remove bit test patterns that cannot
20856         be triggered.
20857         Restrict each bit test pattern to a variant on which the
20858         pattern is tested.
20859
20860 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20861
20862         * builtins.c (expand_builtin_strncat): Remove redundant check for
20863         INTEGER_CST.
20864
20865 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
20866
20867         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
20868         default setting.
20869         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
20870         existing setting.
20871
20872 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
20873
20874         * dbxout.c (dbxout_init): Use assemble_name rather than just
20875         stripping off the first character.
20876         (dbxout_source_file): Likewise.
20877
20878 2002-01-25  DJ Delorie  <dj@redhat.com>
20879
20880         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
20881         using rtx_equal_p, not by comparing pointers.
20882
20883 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
20884
20885         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
20886         for PIC_OFFSET_TABLE_REGNUM.
20887         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
20888
20889 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
20890
20891         * config.gcc (x86_64-*-freebsd*): New target.
20892         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
20893         value.
20894         (i[34567]86-*-freebsd*): Don't include svr4.h.
20895         * config/i386/freebsd64.h: New file.
20896
20897 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
20898
20899         * config/alpha/x-vms (version): Make static.
20900
20901         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
20902         in previous checkin.
20903
20904         * Makefile.in (install-headers-cp): New target.
20905         * config.gcc (alpha-dec-*vms*): Install headers with
20906         install-headers-cp
20907
20908 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
20909
20910         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
20911         avoid it's copies.
20912
20913 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20914
20915         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
20916         of compare_tree_int.
20917         (expand_builtin_strncat): Likewise.
20918         * c-decl.c (finish_struct): Use tree_low_cst.
20919         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
20920         * tree.c (compare_tree_int): Likewise.
20921
20922 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
20923
20924         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
20925         adjustments even if they are implemented by more than two insns.
20926
20927 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
20928
20929         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
20930         * df.h (struct ref): Kill B.
20931         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
20932
20933         * basic-block.h (PROP_EQUAL_NOTES): New flag.
20934         * flow.c (propagate_one_insn): Use it.
20935         (mark_used_regs): Handle NIL.
20936
20937 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
20938
20939         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
20940         to help folding.
20941
20942 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
20943
20944         * rs6000.md (prefetch): Make address V4SI mode so that the address
20945         is restricted to legitimate form for instruction.
20946
20947 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
20948
20949         * doc/install.texi (xtensa-*-elf): New target.
20950         (xtensa-*-linux*): New target.
20951         * doc/contrib.texi: Add myself.
20952
20953 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
20954
20955         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
20956         purpose register to hold an SImode (or smaller) value.
20957
20958 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
20959
20960         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
20961         registry only.
20962         * crtstuff.c: Likewise.
20963
20964 2002-01-25  Kazu Hirata  <kazu@hxi.com>
20965
20966         * config/h8300/h8300.md (negation patterns): Tighten
20967         predicates to register_operand.
20968
20969 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
20970
20971         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
20972         mode, not Pmode.
20973
20974         * builtins.c (expand_builtin_prefetch): Same.
20975
20976 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
20977
20978         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
20979         modes.
20980
20981 2002-01-24  Kazu Hirata  <kazu@hxi.com>
20982
20983         * config/h8300/h8300.c (print_operand): Remove support for
20984         operand character 'A'.
20985         * config/h8300/h8300.md (three anonymous patterns): Replace
20986         operand character 'A' with either 'T' or 'S'.
20987
20988 2002-01-24  Kazu Hirata  <kazu@hxi.com>
20989
20990         * config/h8300/h8300.c (print_operand): Remove support for
20991         operand character 'U'.
20992
20993 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
20994
20995         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
20996
20997 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
20998
20999         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
21000         values to be assigned to the stack pointer.
21001
21002 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
21003
21004         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
21005         to const_double needs to be done right for big-endian systems.
21006
21007 2002-01-24  Jason Merrill  <jason@redhat.com>
21008
21009         PR c++/2432
21010         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
21011         to can_throw_internal.
21012
21013 2002-01-23  Richard Henderson  <rth@redhat.com>
21014
21015         * fold-const.c (fold): Change UINT_MAX test to check vs precision
21016         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
21017
21018 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
21019
21020         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
21021         (symGOT2reg): Use them, then set as GOT value as unchanging.
21022         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
21023         as a temporary, if possible.
21024         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
21025         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
21026
21027 2002-01-23  Kazu Hirata  <kazu@hxi.com>
21028
21029         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
21030         accept to accept 0x80 as operands[2].
21031
21032 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
21033
21034         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
21035
21036 2002-01-23  Richard Henderson  <rth@redhat.com>
21037
21038         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
21039
21040 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
21041
21042         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
21043         (parmlist_or_identifiers_1): Verify that only a parmlist follows
21044         an attribute.
21045
21046 2002-01-23  Richard Henderson  <rth@redhat.com>
21047
21048         * expr.c (move_by_pieces_1): Extend size before negation.
21049
21050         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
21051         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
21052         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
21053         * config/m68k/t-m68kelf: Likewise.
21054
21055 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
21056
21057         * config/xtensa/elf.h: New file.
21058         * config/xtensa/lib1funcs.asm: New file.
21059         * config/xtensa/lib2funcs.S: New file.
21060         * config/xtensa/linux.h: New file.
21061         * config/xtensa/t-xtensa: New file.
21062         * config/xtensa/xtensa-config.h: New file.
21063         * config/xtensa/xtensa-protos.h: New file.
21064         * config/xtensa/xtensa.c: New file.
21065         * config/xtensa/xtensa.h: New file.
21066         * config/xtensa/xtensa.md: New file.
21067         * config.gcc (xtensa-*-elf*): New target.
21068         (xtensa-*-linux*): New target.
21069         * cse.c (canon_hash): Compare rtx pointers instead of register
21070         numbers.  This is required for the Xtensa port.
21071         * integrate.c (copy_insn_list): Handle case where the static
21072         chain is in memory and the memory address has to be copied to
21073         a register.
21074         * doc/invoke.texi (Option Summary): Add Xtensa options.
21075         (Xtensa Options): New node.
21076         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
21077
21078 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
21079
21080         * diagnostic.c (internal_error): Do ICE suppression only
21081         when ENABLE_CHECKING is not defined.
21082
21083         * c-typeck.c (require_complete_type): Return error_mark_node
21084         if type is error_mark_node.
21085
21086 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
21087
21088         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
21089         -Os and issue a warning.
21090
21091 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
21092
21093         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
21094         current (lack of) need for host configuration by hand.
21095
21096         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
21097         references.  Documentation of some target macros moved from
21098         hostconfig.texi to tm.texi.
21099
21100 2002-01-23  Will Cohen  <wcohen@redhat.com>
21101
21102         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
21103         defined.
21104
21105 2002-01-23  Kazu Hirata  <kazu@hxi.com>
21106
21107         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
21108         operand[3].
21109
21110 2002-01-23  Jason Merrill  <jason@redhat.com>
21111
21112         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
21113
21114         * function.c (assign_parms): Don't put args of inline functions
21115         into registers when not optimizing.
21116
21117 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
21118
21119         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
21120         (prologue_use): New pattern.
21121         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
21122         preference to gen_rtx_USE.
21123         (thumb_expand_prologue): Use gen_prologue_use in preference to
21124         gen_rtx_USE.
21125         (thumb_expand_epilogue): Use gen_prologue_use in preference to
21126         gen_rtx_USE.
21127
21128 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
21129
21130         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
21131
21132 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
21133
21134         PR c/3504
21135         * doc/extend.texi: Correct documentation of __alignof__.
21136
21137 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
21138
21139         * params.h: Rename arguments of DEFPARAM so that it will be
21140         recognized as a translation keyword.
21141
21142 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
21143
21144         * extend.texi: Document altivec functions.
21145         Fix N-bit adjectives in X86 builtin documentation.
21146
21147 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
21148
21149         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
21150         auto_inc_dec values.
21151
21152 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
21153
21154         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
21155         after backslash.
21156         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
21157
21158 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
21159
21160         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
21161
21162 2002-01-22  Richard Henderson  <rth@redhat.com>
21163
21164         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
21165         copy_insn not copy_rtx.
21166
21167 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
21168
21169         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
21170         "nonzero" as that might add "1" bits.  Ensure "constop" is
21171         properly sign extened.
21172         (force_to_mode): Tweak for sign extended constop.
21173
21174 2002-01-22  Richard Henderson  <rth@redhat.com>
21175
21176         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
21177         for_each_rtx instead of assuming we're already looking at the MEM.
21178         (split_small_symbolic_mem_operand): Likewise.
21179         * config/alpha/alpha.h (PREDICATE_CODES): Update.
21180         * config/alpha/alpha.md (small symbolic memory splitters): Update.
21181
21182 2002-01-22  Richard Henderson  <rth@redhat.com>
21183
21184         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
21185         sequence number for the literal.
21186         (divmoddi_internal_er): Likewise.
21187
21188 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
21189
21190         PR java/4972
21191         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
21192         in LIBICONV variable.
21193         * configure: Regenerated.
21194
21195 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
21196
21197         * dependence.c (build_def_use): Remove array_idx.
21198
21199         * dwarfout.c (last_filename): Remove.
21200         (output_compile_unit_die): Remove last_filename.
21201
21202 2002-01-22  Roger Sayle  <roger@eyesopen.com>
21203             Richard Henderson  <rth@redhat.com>
21204
21205         PR opt/3640
21206         * fold-const.c (fold): Optimize unsigned comparisons against
21207         UINT_MAX (and similar unsigned constants).
21208
21209 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
21210
21211         * Makefile.in (loop.o): Depend on OPTABS_H.
21212         * loop.c (emit_prefetch_instructions): Check the prefetch operand
21213         against the predicate.
21214
21215         PR target/5379
21216         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
21217         for the address operand.
21218
21219 2002-01-22  Richard Henderson  <rth@redhat.com>
21220
21221         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
21222
21223 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
21224
21225         PR other/5450
21226         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
21227         preprocessor flags.
21228
21229 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
21230
21231         * config.gcc (x86_64-*-netbsd*): New target.
21232         * config/i386/netbsd64.h: New file.
21233
21234 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
21235
21236         * regrename.c (kill_value): Fix typo.
21237
21238 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
21239
21240         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
21241
21242         * config/rs6000/rs6000.h: Same.
21243
21244         * function.c (instantiate_virtual_regs): Remove
21245         STARTING_FRAME_PHASE.
21246         (assign_stack_local_1): Same.
21247         Calculate frame phase.
21248
21249 2002-01-22  Nick Clifton  <nickc@redhat.com>
21250
21251         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
21252         variable declaration to outer scope in order to simplify
21253         future extensions.
21254         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
21255         arm_hard_regno_mode_ok.
21256         * config/arm/arm-protos.h: Add a prototype for
21257         arm_hard_regno_mode_ok.
21258         * config/arm/arm.c (soft_df_operand): Remove now redundant
21259         check for DImode values using IP_REGNUM.
21260         (nonimmediate_soft_df_operand): Remove now redundant check for
21261         DImode values using IP_REGNUM.
21262         (arm_hard_regno_mode_ok): New function. New check: make sure
21263         that DImode values are not stored in IP_REGNUM.
21264
21265         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
21266         note with a USE.
21267         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
21268
21269 2002-01-22  Jason Merrill  <jason@redhat.com>
21270
21271         * c-semantics.c (genrtl_compound_stmt): Only check nesting
21272         consistency if this COMPOUND_STMT is scoped.
21273
21274 2002-01-22  Kazu Hirata  <kazu@hxi.com>
21275
21276         * predict.c: Fix formatting.
21277         * print-tree.c: Likewise.
21278         * protoize.c: Likewise.
21279         * real.h: Likewise.
21280         * rtl.h: Likewise.
21281         * sbitmap.h: Likewise.
21282         * scan.c: Likewise.
21283         * sched-deps.c: Likewise.
21284         * sched-vis.c: Likewise.
21285         * sdbout.c: Likewise.
21286         * sibcall.c: Likewise.
21287         * ssa.c: Likewise.
21288         * ssa-ccp.c: Likewise.
21289         * ssa-dce.c: Likewise.
21290         * stmt.c: Likewise.
21291         * stor-layout.c: Likewise.
21292         * system.h: Likewise.
21293
21294 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21295
21296         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
21297         if fits in bounds of base type.
21298
21299         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
21300         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
21301         (add_bound_info, default): If can't find a context, make a
21302         SAVE_EXPR.
21303         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
21304
21305 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
21306
21307         * c-typeck.c (parser_build_binary_op): If result from
21308         build_binary_op is ERROR_MARK just return error_mark_node without
21309         further processing.
21310
21311 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
21312
21313         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
21314         Split a.out-specific bits into...
21315         * config/netbsd-aout.h: ...this.
21316         * config/netbsd-elf.h: New file.
21317         * config/alpha/netbsd-elf.h: Remove.
21318         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
21319         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
21320         (STARTFILE_SPEC): Remove redundant definition.
21321         (ENDFILE_SPEC): Likewise.
21322         (LINK_SPEC): Likewise.
21323         (CPP_SPEC): Likewise.
21324         (ASM_SPEC): Likewise.
21325         (LIB_SPEC): Likewise.
21326         (SWITCH_TAKES_ARG): Likewise.
21327         (TARGET_MEM_FUNCTIONS): Likewise.
21328         (CPP_PREDEFINES): Redefine.
21329         (ASM_FINAL_SPEC): Remove redefinition.
21330         (ASM_COMMENT_START): Redefine.
21331         (FUNCTION_PROFILER): Define.
21332         (TARGET_VERSION): Redefine.
21333         Comment and formatting cleanup.
21334         * config/i386/netbsd.h: Include <netbsd-aout.h>.
21335         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
21336         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
21337         big- or little-endian.
21338         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
21339         * config.gcc (*-*-netbsd*): Add definitions common to all
21340         NetBSD configs.
21341         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
21342         gnu_ld definitions.  Add netbsd-elf.h to and remove
21343         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
21344         tmake_file, and don't lose previous tmake_file contents.
21345         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
21346         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
21347         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
21348         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
21349         (mipsel-*-netbsd*): Rename this to...
21350         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
21351         mips/little.h to tm_file for mips*el-*.
21352         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
21353         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
21354         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
21355
21356 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21357
21358         * pa-protos.h (reg_before_reload_operand): New function prototype.
21359         * pa.c (reg_before_reload_operand): New function implementation.
21360         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
21361         contraints to "*m".
21362
21363 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
21364
21365         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
21366
21367 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21368
21369         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
21370         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
21371         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
21372         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
21373         (ENDFILE_SPEC): Undefine.
21374         (STARTFILE_SPEC): Redefine for PA.
21375
21376 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
21377
21378         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
21379
21380 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
21381
21382         * config.gcc: Add entries to supported PowerPC --with-cpu
21383         types.
21384
21385 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
21386
21387         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
21388         true for 64-bit mode only SSE registers in 32-bit mode.
21389
21390 2002-01-21  Kazu Hirata  <kazu@hxi.com>
21391
21392         * unwind-dw2.c: Fix formatting.
21393         * unwind-dw2-fde.c: Likewise.
21394         * unwind-dw2-fde.h: Likewise.
21395         * unwind-pe.h: Likewise.
21396         * varasm.c: Likewise.
21397         * varray.h: Likewise.
21398
21399 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
21400
21401         Remove workaround for register stack overwrite bug in mmix.
21402         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
21403         support for TARGET_REG_STACK_FILL_BUG.
21404         * config/mmix/mmix.h: Remove member has_call_without_parameters.
21405         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
21406         Delete.
21407         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
21408         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
21409         -mno-reg-stack-fill-bug-workaround.
21410         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
21411         machine member has_call_without_parameters.
21412         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
21413         -mreg-stack-fill-bug-workaround and
21414         -mno-reg-stack-fill-bug-workaround.
21415         (MMIX Options): Ditto.
21416
21417 2002-01-21  Kazu Hirata  <kazu@hxi.com>
21418
21419         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
21420         as appropriate.
21421         Remove redundant code.
21422
21423 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
21424
21425         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
21426         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
21427         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
21428         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
21429         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
21430         out target macro definitions and non-target-specific comments
21431         mostly taken from old versions of the manual.
21432
21433 2002-01-20  Kazu Hirata  <kazu@hxi.com>
21434
21435         * config/h8300/h8300.h: Fix comment formatting.
21436         * config/ia64/aix.h: Likewise.
21437         * config/ia64/ia64-protos.h: Likewise.
21438         * config/ia64/ia64.c: Likewise.
21439         * config/ia64/ia64.h: Likewise.
21440         * config/ia64/ia64intrin.h: Likewise.
21441         * config/ia64/linux.h: Likewise.
21442         * config/ia64/unwind-aix.c: Likewise.
21443         * config/ia64/unwind-ia64.c: Likewise.
21444
21445 2002-01-20  Kazu Hirata  <kazu@hxi.com>
21446
21447         * config/h8300/h8300.c: Revise comments about shift code.
21448
21449 2002-01-20  Kazu Hirata  <kazu@hxi.com>
21450
21451         * config/h8300/h8300.c (function_arg): Update a comment.
21452
21453 2002-01-20  Kazu Hirata  <kazu@hxi.com>
21454
21455         * config/h8300/h8300.md: Update the comments at the beginning
21456         of the file.
21457
21458 2002-01-20  Kazu Hirata  <kazu@hxi.com>
21459
21460         * config/i370/i370.c: Fix comment formatting.
21461         * config/i370/i370.h: Likewise.
21462         * config/i370/i370.md: Likewise.
21463         * config/i370/linux.h: Likewise.
21464
21465 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21466
21467         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
21468
21469         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
21470         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
21471         in incomplete case.
21472
21473 2002-01-20  Graham Stott  <grahams@redhat.com>
21474
21475         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
21476
21477 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21478
21479         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
21480
21481 2002-01-19  Tom Rix  <trix@redhat.com>
21482
21483         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
21484
21485 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
21486
21487         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
21488
21489         * function.c (assign_stack_local_1): Adjust x_frame_offset with
21490         STARTING_FRAME_PHASE.
21491         (STARTING_FRAME_PHASE): New.
21492         (instantiate_virtual_regs): Check saneness of
21493         STARTING_FRAME_PHASE.
21494
21495         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
21496
21497 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
21498
21499         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
21500
21501 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
21502
21503         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
21504         be used for bootstrapping GCC 3.0.
21505
21506 2002-01-18  Kazu Hirata  <kazu@hxi.com>
21507
21508         * config/h8300/h8300.md: Fix an insn length.
21509
21510 2002-01-18  Kazu Hirata  <kazu@hxi.com>
21511
21512         * bitmap.h: Fix comment formatting.
21513         * combine.c: Likewise.
21514         * cppfiles.c: Likewise.
21515         * c-pragma.h: Likewise.
21516         * c-typeck.c: Likewise.
21517         * df.c: Likewise.
21518         * dwarf2out.c: Likewise.
21519         * function.c: Likewise.
21520         * gcc.c: Likewise.
21521         * genattrtab.c: Likewise.
21522         * gthr-win32.h: Likewise.
21523         * haifa-sched.c: Likewise.
21524         * predict.c: Likewise.
21525         * rtlanal.c: Likewise.
21526         * rtl.h: Likewise.
21527         * unwind-dw2-fde.h: Likewise.
21528         * unwind-pe.h: Likewise.
21529         * vmsdbgout.c: Likewise.
21530
21531 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21532
21533         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
21534         if type_required and passed decl.
21535
21536 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
21537
21538         * config.gcc (cpu_type): Include altivec.h in powerpc
21539         extra_headers.
21540         Same for darwin.
21541
21542         * config/rs6000/altivec.h: New.
21543
21544 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
21545
21546         * doc/install.texi (*-ibm-aix*): Update assembler and exception
21547         handling information.
21548         * doc/trouble.texi (Interoperation): Add libstdc++ information
21549         for AIX.
21550         (Misunderstandings): Add template instantiation and static template
21551         member information for AIX.
21552
21553 2002-01-17  Jason Merrill  <jason@redhat.com>
21554
21555         * dbxout.c (dbxout_type): Support const and volatile.
21556
21557         * except.c (add_partial_entry): Remove backwards compatibility code.
21558         (end_protect_partials): Likewise.
21559
21560 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
21561
21562         * config/ia64/ia64.md (prologue_use): New.
21563         * config/ia64/ia64.c (ia64_expand_prologue): Use
21564         gen_prologue_use instead of gen_rtx_USE.
21565         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
21566         as CODE_FOR_pred_rel_mutex.
21567         (ia64_sched_reorder2): Likewise.
21568
21569 2002-01-16  Eric Christopher  <echristo@redhat.com>
21570
21571         * config/mips/r3900.h: Reformat.
21572         (SUBTARGET_CPP_SIZE_SPEC): Remove.
21573         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
21574         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
21575         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
21576         * config/mips/t-elf: Remove mips3 multilib.
21577
21578 2002-01-16  H.J. Lu <hjl@gnu.org>
21579
21580         * config/mips/linux.h: Include "mips/abi64.h".
21581
21582 2002-01-16  H.J. Lu <hjl@gnu.org>
21583
21584         * config/mips/t-linux: New.
21585
21586         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
21587
21588         * config/mips/linux.h: Don't include "gofast.h".
21589         (INIT_SUBTARGET_OPTABS): Removed.
21590
21591 2002-01-16  Kazu Hirata  <kazu@hxi.com>
21592
21593         * config/h8300/h8300-protos.h: Replace emit_a_shift with
21594         output_a_shift.
21595         * config/h8300/h8300.c: Likewise.
21596         * config/h8300/h8300.md: Likewise.
21597
21598 2002-01-16  Kazu Hirata  <kazu@hxi.com>
21599
21600         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
21601         spaces after an opcode name.
21602         (pushqi1_h8300hs): Likewise.
21603         (pushhi1_h8300hs): Likewise.
21604
21605 2002-01-16  Kazu Hirata  <kazu@hxi.com>
21606
21607         * doc/extend.texi: Replace "option" with "attribute"
21608         appropriately.
21609
21610 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
21611
21612         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
21613         (and:DI () (const_int -8)).
21614         (split_small_symbolic_mem_operand): Split
21615         (mem (and:DI () (const_int -8)).
21616
21617 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
21618
21619         PR target/5309:
21620         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
21621         same way as TYPE_IMUL.
21622         (ultrasparc_sched_reorder): Likewise.
21623         * config/sparc/sparc.md (type): Add comment to update
21624         ultrasparc_sched_reorder when making changes.
21625
21626 2002-01-16  Kazu Hirata  <kazu@hxi.com>
21627
21628         * doc/invoke.texi: Change the dump file name of block
21629         reordering pass from 28.bbro to 29.bbro.
21630         Mention -dk option.
21631
21632 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
21633
21634         * i386.md (minsf splitter): Fix pasto.
21635
21636 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
21637
21638         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
21639         to frame pointer initialisation instruction.
21640         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
21641         initialisation instruction.
21642         (soft_df_operand): Do not accept the IP register.
21643         (nonimmediate_soft_df_operand): Do not accept the IP register.
21644
21645 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
21646
21647         PR target/5357:
21648         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
21649         MASK_V8 being both set.
21650
21651 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
21652
21653         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
21654         insn for GOT register; add REG_MAYBE_DEAD notes instead.
21655         config/s390/s390.md (call, call_value): Add GOT register to
21656         CALL_INSN_FUNCTION_USAGE where needed.
21657         (call_exp, call_value_exp): New.
21658
21659 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
21660
21661         * config/arm/arm.c: General formatting tidy up.
21662
21663 2002-01-16  Graham Stott  <grahams@redhat.com>
21664
21665         * calls.c (try_to_integrate): Use "(size_t)" intermediate
21666         cast and when casting an integer literal to "rtx" pointer.
21667         (expand_call): Likewise.
21668         * flow.c (try_pre_increment): Likewise.
21669         (find_use_as_address): Likewise.
21670         * integrate.c (expand_iline_function): Likewise.
21671         * regmove.c (try_auto_increment): Likewise.
21672
21673 2002-01-16  Graham Stott  <grahams@redhat.com>
21674
21675         * sched-rgn.c (passed): Use sbitmap_free.
21676         (header): Likewise.
21677         (inner): Likewise.
21678         (in_queue): Likewise.
21679         (in_stack): Likewise.
21680
21681 2002-01-15  Eric Christopher  <echristo@redhat.com>
21682
21683         * flow.c (propagate_one_insn): Change to use fatal_insn.
21684
21685 2002-01-15  Kazu Hirata  <kazu@hxi.com>
21686
21687         * expmed.c (extract_fixed_bit_field): Remove unused code.
21688         * system.h: Poison SLOW_ZERO_EXTEND.
21689         * doc/tm.texi: Remove.
21690         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
21691         * config/arm/arm.h: Likewise.
21692         * config/avr/avr.h: Likewise.
21693         * config/clipper/clipper.h: Likewise.
21694         * config/convex/convex.h: Likewise.
21695         * config/d30v/d30v.h: Likewise.
21696         * config/dsp16xx/dsp16xx.h: Likewise.
21697         * config/elxsi/elxsi.h: Likewise.
21698         * config/fr30/fr30.h: Likewise.
21699         * config/h8300/h8300.h: Likewise.
21700         * config/i370/i370.h: Likewise.
21701         * config/i386/i386.h: Likewise.
21702         * config/m68k/m68k.h: Likewise.
21703         * config/mips/mips.h: Likewise.
21704         * config/ns32k/ns32k.h: Likewise.
21705         * config/pdp11/pdp11.h: Likewise.
21706         * config/pj/pj.h: Likewise.
21707         * config/s390/s390.h: Likewise.
21708         * config/sh/sh.h: Likewise.
21709         * config/stormy16/stormy16.h: Likewise.
21710         * config/v850/v850.h: Likewise.
21711         * config/vax/vax.h: Likewise.
21712         * config/we32k/we32k.h: Likewise.
21713
21714 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
21715
21716         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
21717         (altivec_lvsl): Change constraint to b.
21718         (altivec_lvsr): Same.
21719         (altivec_lvebx): Same.
21720         (altivec_lvehx): Same.
21721         (altivec_lvewx): Same.
21722         (altivec_lvxl): Same.
21723         (altivec_lvx): Same.
21724         (altivec_stvx): Add parallel.
21725         (altivec_stvxl): Same.
21726         (altivec_stvehx): Same.
21727         (altivec_stvebx): Same.
21728         (altivec_stvebx): Same.
21729
21730 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
21731
21732         * config.gcc: Change altivec.h to altivec-defs.h.
21733
21734         * config/rs6000/altivec.h: Delete.
21735
21736         * config/rs6000/altivec-defs.h: Add.
21737
21738 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21739
21740         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
21741         and UMOD modes.
21742
21743         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
21744         less than or equal to eight bytes.
21745
21746         * vax.md (andsi3): Remove constraints and change SET destination
21747         operand type to nonimmediate_operand.
21748         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
21749         when it is a CONST_INT.
21750
21751 2002-01-15  Jason Merrill  <jason@redhat.com>
21752
21753         * c-common.def (FILE_STMT): New code.
21754         * c-common.c (statement_code_p): It's a statement.
21755         * c-common.h (stmt_tree_s): Add x_last_filename.
21756         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
21757         (last_expr_filename): New macro.
21758         * c-semantics.c (begin_stmt_tree): Initialize it.
21759         (add_stmt): If the filename changed, also insert a
21760         FILE_STMT.
21761         (expand_stmt): Handle seeing one.
21762
21763 2002-01-15  Eric Christopher  <echristo@redhat.com>
21764
21765         * flow.c (propagate_one_insn): Add error message and print out
21766         insn for debugging.
21767
21768 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
21769
21770         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
21771         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
21772         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
21773         TRAMPOLINE_ALIGNMENT.
21774         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
21775         to be in bits.
21776         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
21777         PCC_BITFIELD_TYPE_MATTERS.
21778         * config/interix.h (STDC_VALUE): Remove.  Use
21779         STDC_0_IN_SYSTEM_HEADERS.
21780         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
21781         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
21782         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
21783
21784 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
21785
21786         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
21787         not work on this platform currently.
21788
21789 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
21790
21791         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
21792         readonly_warning in _().
21793
21794 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
21795
21796         * gcc.c (delete_if_ordinary): Backout previous change.
21797
21798 2002-01-15  Kazu Hirata  <kazu@hxi.com>
21799
21800         * config/h8300/h8300.c (print_operand): Remove support for
21801         unused operand characters.
21802
21803         * read-rtl.c: Fix formatting.
21804         * real.c: Likewise.
21805         * recog.c: Likewise.
21806         * regclass.c: Likewise.
21807         * regmove.c: Likewise.
21808         * reg-stack.c: Likewise.
21809         * reload1.c: Likewise.
21810         * rtlanal.c: Likewise.
21811
21812 2002-01-15  Kazu Hirata  <kazu@hxi.com>
21813
21814         * config/i386/i386.c: Fix formatting.
21815
21816 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
21817
21818         * c-typeck.c (process_init_element): Don't save_expr
21819         COMPOUND_LITERAL_EXPR if just its initializer will be used.
21820
21821 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
21822
21823         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
21824         emit optional traceback table if optimize_size or TARGET_ELF.
21825         * config/rs6000/rs6000.md (prefetch): New.
21826
21827 2002-01-15  Andreas Jaeger  <aj@suse.de>
21828
21829         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
21830
21831 2002-01-15  Kazu Hirata  <kazu@hxi.com>
21832
21833         * mips-tfile.c: Fix formatting.
21834
21835 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
21836
21837         * unroll.c (final_reg_note_copy): Fix previous commit.
21838
21839 2002-01-14  Kazu Hirata  <kazu@hxi.com>
21840
21841         * config/h8300/h8300-protos.h: Remove the prototype for
21842         eq_operator.
21843         * config/h8300/h8300.c (eq_operator): Remove.
21844
21845 2002-01-14  Richard Henderson  <rth@redhat.com>
21846
21847         * config/i386/i386.md (prefetch): Tidy.
21848         (prefetch_3dnow): Fix locality operand.
21849
21850 2002-01-14  Richard Henderson  <rth@redhat.com>
21851
21852         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
21853         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
21854
21855 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
21856
21857         * reload1.c (reload_combine): Pass reg_sum replacement through
21858         copy_rtx in loop performing multiple changes.
21859
21860 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
21861
21862         * except.c (remove_unreachable_regions): New.
21863         (free_eh_status): Clear exception_handler_labels.
21864         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
21865         (find_exception_handler_labels): Don't add the same label more than
21866         once.
21867         (remove_exception_handler_label): Don't die if
21868         find_exception_handler_labels hasn't been called for the current
21869         function yet.
21870
21871 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
21872
21873         * toplev.c (rest_of_compilation): Rebuild jump labels after
21874         gcse.
21875
21876 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
21877
21878         * doc/extend.texi: Move documentation of X86 built-in functions
21879         here.
21880         * doc/invoke.texi: From here.
21881         * doc/sourcebuild.texi: Document location of documentation for
21882         machine built-in functions.
21883
21884 2002-01-13  Christopher Faylor  <cgf@redhat.com>
21885
21886         * cppfiles.c (TEST_THRESHOLD): New macro.
21887         (SHOULD_MMAP): Ditto.
21888         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
21889         be used.
21890
21891 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
21892
21893         * unroll.c (final_reg_note_copy): Properly handle
21894         REG_LABEL
21895         (unroll_loops): Fix LOOP_CONDITION heuristics.
21896
21897 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
21898
21899         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
21900         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
21901
21902 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
21903
21904         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
21905         threaded loop.
21906
21907 2002-01-14  Tom Rix  <trix@redhat.com>
21908
21909         * config/rs6000/rs6000.md: Fix typo with sradi.
21910
21911 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
21912
21913         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
21914         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
21915         (clrstrdi, clrstrsi): Adapt callers.
21916
21917         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
21918
21919         (movti splitter): Never use register 0 as base register.
21920
21921 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
21922
21923         * combine.c (simplify_shift_const): Always generate new rtx
21924         for shift expression instead of reusing given expression.
21925
21926 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21927
21928         * config/alpha/alpha.c (alpha_expand_mov): Don't call
21929         alpha_legitimize_address unless mode is Pmode.
21930
21931 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
21932
21933         * doc/md.texi (Modifiers): Document the '*' constraint for the
21934         user.
21935
21936         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
21937         * doc/extend.texi (Function Attributes): 'interrupt' is valid
21938         for xstormy16 too.
21939
21940 2002-01-13  Richard Henderson  <rth@redhat.com>
21941
21942         * reload.c (find_reloads): Use a hard reg destination as reload reg
21943         for an input reload of the source.
21944
21945 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
21946
21947         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
21948         more generic.
21949
21950 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
21951
21952         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
21953         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
21954
21955         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
21956
21957 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21958
21959         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
21960
21961 2002-01-12  Tom Rix  <trix@redhat.com>
21962
21963         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
21964         TARGET_POWERPC64.
21965
21966 2002-01-12  Richard Henderson  <rth@redhat.com>
21967
21968         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
21969
21970         * doc/invoke.texi: Update Alpha options.
21971
21972         * doc/invoke.texi: Update i386 built-in function lists.
21973
21974 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
21975
21976         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
21977         referencing outside.
21978
21979 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21980
21981         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
21982         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
21983         offsets, and change line folding.
21984         * optabs.c (expand_binop): Remove warnings.
21985         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
21986
21987 2002-01-12  Graham Stott <grahams@redhat.com>
21988
21989         * attribs.c (handle_deprecated_attribute): constify WHAT.
21990         * diagnostic.c (warn_deprecated_use): Add braces, fixes
21991         dangling else warning and constify WHAT.
21992         * except.h (struct function, struct inline_remap): Move
21993         struct tag forward defs before all prototypes.
21994         (duplicate_eh_regions): Whitespace.
21995
21996 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
21997
21998         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21999         MODE_BASE_REG_CLASS.
22000         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
22001
22002 2002-01-12  Richard Henderson  <rth@redhat.com>
22003
22004         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
22005         (ix86_expand_vector_move): New.
22006         (bdesc_2arg): Remove andps, andnps, orps, xorps.
22007         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
22008         Remove old prefetch builtins.  Special case the logicals removed above.
22009         (ix86_expand_builtin): Likewise.
22010         (safe_vector_operand): Use V4SFmode, not TImode.
22011         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
22012         (ix86_expand_timode_binop_builtin): New.
22013         * config/i386/i386-protos.h: Update.
22014         * config/i386/i386.h (enum ix86_builtins): Update.
22015         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
22016         Use ix86_expand_vector_move in vector move expanders.
22017         (movti_internal, movti_rex64): Add xorps alternative.
22018         (sse_clrv4sf): Rename and adjust from sse_clrti.
22019         (prefetch): Don't work so hard.
22020         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
22021         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
22022         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
22023
22024 2002-01-11  Richard Henderson  <rth@redhat.com>
22025
22026         * config/i386/mmintrin.h: New file.
22027         * config/i386/xmmintrin.h: New file.
22028         * config.gcc (i?86-*-*): Add extra_headers.
22029         * simplify-rtx.c (simplify_unary_operation): Handle saturating
22030         truncation codes.
22031         (simplify_binary_operation): Handle saturating arithmetic codes.
22032         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
22033         not the lowpart subreg.
22034         (ix86_expand_builtin): Return a TImode dummy register instead of 0
22035         on error.
22036         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
22037
22038 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22039
22040         * conflict.c (conflict_graph_compute): Free regsets when finished.
22041         * ssa.c (compute_coalesced_reg_partition): Likewise.
22042
22043 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
22044
22045         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
22046         every where we allocate a register.
22047
22048 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22049
22050         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
22051         * lcm.c (compute_earliest, compute_farthest): Likewise.
22052
22053 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
22054
22055         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
22056
22057 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
22058
22059         * doc/rtl.texi (Insns): Fix 2 typos.
22060
22061 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
22062
22063         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
22064         options.  Use @table @gcctabopt for MMIX options.  Add index
22065         entries for MMIX options.  Start new paragraph with first
22066         heading of the machine-dependent options.
22067
22068 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
22069
22070         PR other/5299
22071         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
22072         * combine.c (force_to_mode): Same.
22073         * reload1.c (clear_reload_reg_in_use): Same.
22074
22075 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
22076
22077         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
22078         and 'subtargets'.
22079
22080 2002-01-11  Andreas Jaeger  <aj@suse.de>,
22081             Brad Lucier <lucier@math.purdue.edu>
22082
22083         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
22084         mcpu.
22085
22086 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
22087
22088         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
22089         Protect with IN_LIBGCC.
22090         (LINK_EH_SPEC): Add required trailing space.
22091
22092 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
22093
22094         * c-tree.h: Move function declarations so that they are listed
22095         under the filename which contains them.
22096         (check_identifier, finish_decl_top_level,
22097         lookup_name_current_level_global, shadow_record_fields): Remove.
22098
22099 2002-01-11  Andreas Jaeger  <aj@suse.de>
22100
22101         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
22102         march.
22103
22104 2002-01-10  Richard Henderson  <rth@redhat.com>
22105
22106         * config/alpha/alpha.c (print_operand): Add 'J'.
22107         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
22108         new operand with the sequence number for the lituse.  When splitting
22109         the insns, use gen_movdi_er_high_g and generate a sequence number.
22110         (gen_movdi_er_high_g): Print the sequence number if non-zero.
22111
22112 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
22113
22114         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
22115         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
22116         stvxl.
22117         (altivec_expand_builtin): Same.
22118         (altivec_expand_stv_builtin): New.
22119
22120         * config/rs6000/rs6000.h (rs6000_builtins): Same.
22121
22122         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
22123         ("altivec_lvehx"): New.
22124         ("altivec_lvewx"): New.
22125         ("altivec_lvxl"): New.
22126         ("altivec_lvx"): New.
22127         ("altivec_stvx"): New.
22128         ("altivec_stvebx"): New.
22129         ("altivec_stvehx"): New.
22130         ("altivec_stvewx"): New.
22131         ("altivec_stvxl"): New.
22132
22133 2002-01-10  Richard Henderson  <rth@redhat.com>
22134
22135         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
22136         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
22137         care not to delete instructions twice.
22138
22139 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
22140
22141         * toplev.c: Don't declare environ (it's not used anywhere).
22142         * configure.in: Don't check for declaration of environ.
22143         * config/i386/xm-mingw32.h: Don't #define environ.
22144         * config.in, configure: Regenerate.
22145
22146 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
22147
22148         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
22149         * configure: Regenerate.
22150
22151         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
22152         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
22153         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
22154         alpha/xm-vms.h.
22155         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
22156         LIMITS_H_TEST here, not in m68k/x-next.
22157         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
22158         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
22159
22160         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
22161         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
22162         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
22163
22164         * config/i386/x-djgpp: Renamed i386/t-djgpp.
22165         * config/m88k/x-dolph: Renamed m88k/t-dolph.
22166         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
22167         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
22168         replacement of quadlib.asm with quadlib.c.
22169
22170         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
22171         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
22172         config/rs6000/xm-beos.h: Delete file.
22173
22174         * config.gcc: Update to match above changes.
22175
22176 2002-01-10  Kazu Hirata  <kazu@hxi.com>
22177
22178         * config/h8300/h8300.h: Fix comment typos.
22179         * config/h8300/h8300.md: Likewise.
22180         * config/h8300/lib1funcs.asm: Likewise.
22181
22182 2002-01-10  Dale Johannesen  <dalej@apple.com>
22183
22184         PR optimization/5269
22185         * unroll.c (precondition_loop_p): Make *increment be the correct
22186         sign when n_iterations known, to avoid confusing caller.
22187
22188 2002-01-10  Kazu Hirata  <kazu@hxi.com>
22189
22190         * doc/extend.texi (deprecated): Fix a typo.
22191
22192 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
22193
22194         * basic-block.h (update_br_prob_note): Declare.
22195         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
22196         (try_forward_edges): Care negative frequencies and update note.
22197         (outgoing_edges_match): Tweek conditional merging heuristics.
22198         (try_crossjump_to_edge): use update_br_prob_note.
22199         * cfglayout.c (fixup_reorder_chain): Likewise.
22200         * cfrtl.c (update_br_prob_note): New.
22201         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
22202
22203         * i386.c (ix86_decompose_address): Return -1 if address contains
22204         shift.
22205         (legitimate_address_p): Require ix86_decompose_address to return 1.
22206
22207         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
22208         (cprop_insn): Likewise.
22209
22210 2002-01-10  Kazu Hirata  <kazu@hxi.com>
22211
22212         * toplev.c: Fix formatting.
22213         * tree.c: Likewise.
22214         * tree-dump.c: Likewise.
22215         * unroll.c: Likewise.
22216         * unwind-dw2.c: Likewise.
22217         * unwind-dw2-fde.c: Likewise.
22218         * unwind-dw2-fde-glibc.c: Likewise.
22219         * unwind-sjlj.c: Likewise.
22220
22221 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
22222
22223         * doc/invoke.texi: Document PDP-11 options.
22224
22225 2002-01-10  Kazu Hirata  <kazu@hxi.com>
22226
22227         * config/h8300/h8300.h: Fix formatting.
22228
22229 2002-01-10  Ira Ruben   <ira@apple.com>
22230
22231         Add __attribute__ ((deprecated)).
22232         * extend.texi: Document __attribute__ ((deprecated)).
22233         * invoke.texi: Document -Wno-deprecated-declarations.
22234         * testsuite/g++.dg/other/deprecated.C: New C++ test.
22235         * testsuite/gcc.dg/deprecated.c: New C test.
22236         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
22237         (c_common_attribute_table): Add "deprecated" entry.
22238         (handle_deprecated_attribute): New function.
22239         * c-decl.c (deprecated_states): New enum.
22240         deprecated_state: State of "deprecated" handling.
22241         (start_decl): Set deprecated_state based on attributes.
22242         (grokdeclarator): Test for deprecated uses, propagate attribute.
22243         * c-typeck.c (build_component_ref): Test for deprecated fields.
22244         (build_external_ref): Test for deprecated primaries.
22245         * diagnostic.c (warn_deprecated_use) New function to issue
22246         warnings about __attribute__ ((depricated)) references.
22247         * flags.h (warn_deprecated_decl): Extern declared for
22248         -W[no-]deprecated-declarations option.
22249         * print-tree.c (print_node): Show deprecated flag status.
22250         * toplev.c (warn_deprecated_decl): Defined.
22251         (W_options): Added "deprecated-declaration".
22252         * toplev.h (warn_deprecated_use): Extern declared.
22253         * tree.h (struct tree_common): Define deprecated_flag.
22254         (TREE_DEPRECATED): New macro to access flag.
22255         * cp/call.c (build_call): Test for deprecated calls.
22256         * cp/class.c (add_implicitly_declared_members): Set global
22257         flag to tell grokdeclarator to not issue deprecated warnings.
22258         * cp/cp-tree.h: Add extern for adding_implicit_members.
22259         * cp/decl.c (deprecated_states): New enum.
22260         (start_decl): Set deprecated_state based on attributes.
22261         (grokdeclarator): Test for deprecated uses, propagate attribute.
22262         * cp/lex.c (do_identifier): Test for deprecated primaries.
22263         * cp/typeck.c (build_component_ref): Test for deprecated fields.
22264
22265 2002-01-10  Ira Ruben   <ira@apple.com>
22266
22267         Fix to assign attributes to inline member functions.
22268         * cp/decl.c (start_method): Handle attrlist.
22269
22270 2002-01-10  Kazu Hirata  <kazu@hxi.com>
22271
22272         * combine.c (expand_field_assignment): Use subreg_lsb().
22273
22274 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
22275
22276         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
22277         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
22278         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
22279         Recurse for any operand of AND as long as constant is non-zero.
22280
22281 2002-01-10  Kazu Hirata  <kazu@hxi.com>
22282
22283         * config/h8300/h8300.md: Remove constraints from expanders.
22284
22285 2002-01-10  Kazu Hirata  <kazu@hxi.com>
22286
22287         * varasm.c: Fix formatting.
22288         * varray.c: Likewise.
22289         * vmsdbgout.c: Likewise.
22290         * xcoffout.c: Likewise.
22291
22292 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
22293
22294         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
22295         update edge probabilities to match.
22296
22297 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
22298
22299         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
22300         dependencies.
22301         * doc/languages.texi, doc/sourcebuild.texi: New files.
22302         * doc/configfiles.texi: Make a subsubsection.  Update.
22303         * doc/configterms.texi: Add @node.  Remove warning that this isn't
22304         instructions for building GCC.
22305         * doc/makefile.texi: Make a subsection.
22306         * doc/gccint.texi: Update.
22307
22308 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
22309
22310         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
22311
22312 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
22313
22314         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
22315
22316 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
22317
22318         * optabs.c (expand_fix): Look for wider integer modes first.
22319
22320         * i386.md (mov?f): Avoid the fake const double trick for medium
22321         memory model.
22322         (min?f*/max?f*): Prohibit memory operands for i387 variant.
22323         (fop_df_4): Disable for SSE compilation.
22324
22325 2002-01-10  Graham Stott  <grahams@redhat.com>
22326
22327         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
22328         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
22329
22330 2002-01-10  Richard Henderson  <rth@redhat.com>
22331
22332         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
22333
22334 2002-01-10  Richard Henderson  <rth@redhat.com>
22335
22336         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
22337         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
22338
22339 2002-01-10  Kazu Hirata  <kazu@hxi.com>
22340
22341         * combine.c (can_combine_p): Fix a comment typo.
22342
22343 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
22344
22345         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
22346         empty list correctly.  Change loop index $t to $f for
22347         consistency with rest of Makefile.
22348
22349 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
22350
22351         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
22352         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
22353
22354         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
22355         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
22356         (altivec_init_builtins): Same.
22357         (altivec_expand_unop_builtin): Return NULL_RTX on error.
22358         (altivec_expand_binop_builtin): Same.
22359         (altivec_expand_ternop_builtin): Same.
22360         (bdesc_dst): New.
22361
22362         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
22363         ("altivec_vctuxs"): Fix typo.
22364         ("altivec_vnmsubfp"): Same.
22365         ("altivec_dssall"): New.
22366         ("altivec_mfvscr"): New.
22367         ("altivec_dss"): New.
22368         ("altivec_lvsl"): New.
22369         ("altivec_lvsr"): New.
22370         ("altivec_dstt"): New.
22371         ("altivec_dstst"): New.
22372         ("altivec_dststt"): New.
22373         ("altivec_dst"): New.
22374
22375         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
22376         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
22377
22378 2002-01-09  Richard Henderson  <rth@redhat.com>
22379
22380         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
22381
22382 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
22383
22384         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
22385         function.
22386         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
22387         prototype.
22388         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
22389
22390 2002-01-09  Kazu Hirata  <kazu@hxi.com>
22391
22392         * read-rtl.c: Fix formatting.
22393         * real.c: Likewise.
22394         * regclass.c: Likewise.
22395         * regrename.c: Likewise.
22396         * reg-stack.c: Likewise.
22397         * reload1.c: Likewise.
22398         * reload.c: Likewise.
22399         * rtl.c: Likewise.
22400
22401 2002-01-09  Kazu Hirata  <kazu@hxi.com>
22402
22403         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
22404         to extract items in the expr_list chain.
22405
22406 2002-01-09  Richard Henderson  <rth@redhat.com>
22407
22408         * config/vax/vax.c (vax_rtx_cost): Never abort.
22409
22410         * config/vax/vax.h (REAL_ARITHMETIC): Define.
22411
22412 2002-01-09  Jan Hubicka  <jh@suse.cz>
22413
22414         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
22415
22416 2002-01-09  Richard Henderson  <rth@redhat.com>
22417
22418         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
22419         Unify code from various alternatives.
22420
22421 2002-01-09  Richard Henderson  <rth@redhat.com>
22422
22423         * regrename.c (copy_value): Ignore the copy if the source register
22424         is present in the value chain with a narrower mode.
22425
22426 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
22427
22428         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
22429         for the c4x target. Also improve layout.
22430
22431 2002-01-09  Richard Henderson  <rth@redhat.com>
22432
22433         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
22434         * config/m32r/m32r.md (and ior xor splitters): Swap operands
22435         to match insn patterns.
22436
22437 2002-01-09  Richard Henderson  <rth@redhat.com>
22438
22439         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
22440         (copyprop_hardreg_forward_1): Likewise.
22441
22442 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
22443
22444         * pa.md (decrement_and_branch_until_zero): Change predicate for
22445         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
22446
22447 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
22448
22449         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
22450         gets undefined. For Darwin.
22451
22452 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
22453
22454         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
22455
22456 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22457
22458         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
22459
22460 2002-01-08  Richard Henderson  <rth@redhat.com>
22461
22462         * regrename.c (copy_value): Ignore overlapping copies.
22463
22464 2002-01-08  Richard Henderson  <rth@redhat.com>
22465
22466         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
22467         as needed to avoid shared structure.
22468
22469 2002-01-08  Kazu Hirata  <kazu@hxi.com>
22470
22471         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
22472         H8/300H and H8/S.
22473
22474 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
22475
22476         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
22477         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
22478         documentation of obsolete macros.
22479         * system.h: Poison these macros.
22480         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
22481         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
22482         config/c4x/c4x.h, config/clipper/clipper.h,
22483         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
22484         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
22485         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
22486         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
22487         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
22488         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
22489         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
22490         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
22491         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
22492         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
22493         config/sparc/sparc.h, config/stormy16/stormy16.h,
22494         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
22495         definitions and commented out definitions of obsolete macros.
22496         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
22497         of MAX_INT_TYPE_SIZE.
22498
22499 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
22500
22501         * config/s390/s390.c (s390_preferred_reload_class): Never
22502         return ADDR_REGS if it isn't a subset of the given class.
22503         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
22504         FP_REGS, but all superclasses as well.
22505
22506         * config/s390/s390.c (s390_function_profiler): Fix thinko.
22507
22508         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
22509         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
22510         must not be a const_int.
22511
22512 2002-01-08  Richard Henderson  <rth@redhat.com>
22513
22514         * Makefile.in (toplev.o): Depend on options.h.
22515         (gcc.o): Depend on specs.h.
22516
22517 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
22518
22519         * expr.c (store_expr): Convert VOIDmode constants back to target's
22520         mode.
22521
22522 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
22523
22524         * doc/invoke.texi: Markup gcc as @command.  Refer to
22525         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
22526         of http://gcc.gnu.org/thanks.html.
22527
22528 2002-01-08  Dale Johannesen  <dalej@apple.com>
22529
22530         * config/rs6000/rs6000.md: Add missing int register
22531         target case to movdf_low.
22532
22533 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
22534
22535         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
22536         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
22537         (cppinit.o): Depend on except.h.
22538         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
22539         s-specs): New rules.
22540
22541         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
22542         Don't create specs.h/options.h/gencheck.h here.  Remove
22543         unnecessary variable settings from last argument of AC_OUTPUT.
22544         * config.in, configure: Regenerate.
22545         * intl.c: Hardcode package name as "gcc".
22546
22547         * cppinit.c: Include except.h.
22548         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
22549         appropriate.
22550         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
22551         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
22552         (!)USING_SJLJ_EXCEPTIONS.
22553         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
22554
22555 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
22556
22557         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
22558         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
22559         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
22560         documentation of obsolete macros.
22561         * system.h: Poison these macros.
22562         * config/d30v/d30v.h, config/ns32k/encore.h,
22563         config/stormy16/stormy16.h: Remove definitions and commented out
22564         definitions of obsolete macros.
22565
22566 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
22567
22568         * objc/objc-act.c (handle_class_ref): Mark the declaration of
22569         %sobjc_class_ref_%s as used - to prevent unwanted compiler
22570         warnings.
22571
22572 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
22573
22574         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
22575         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
22576         to insn adjusting stack/frame pointer.
22577         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
22578         accept operands that cause the insn to be non-splittable.
22579
22580 2002-01-08  Graham Stott  <grahams@redhat.com>
22581
22582         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
22583         (C_TYPE_FIELDS_VOLATILE): Likewise.
22584         (C_TYPE_BEING_DEFINED): Likewise.
22585         (C_IS_RESERVED_WORD): Likewise.
22586         (C_TYPE_VARIABLE_SIZE): Likewise.
22587         (C_DECL_VARIABLE_SIZE): Likewise.
22588         (C_MISSING_PROTOTYPE_WARNED): Likewise.
22589         (C_SET_EXP_ORIGINAL_CODE): Likewise.
22590         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
22591         parenthesis.
22592         (C_DECL_ANTICIPATED): Likewise.
22593         (c_build_type_variant): Add parenthesis.
22594
22595 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
22596
22597         * gcc.c (option_map): Remove --version.
22598         (process_command): Handle -fversion following the GNU Coding
22599         Standards.  Partially addresses PR other/704.
22600
22601 2002-01-08  Graham Stott  <grahams@redhat.com>
22602
22603         * combine.c (combine_instructions): Fix typo.
22604
22605 2002-01-08  Graham Stott  <grahams@redhat.com>
22606
22607         * debug.h: Use "tree" and "rtx" throughout.
22608
22609         * debug.c: Likewise.
22610
22611 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
22612
22613         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
22614         constant pool, use the pool's version of the symbol instead.
22615
22616 2002-01-07  Richard Henderson  <rth@redhat.com>
22617
22618         * regrename.c (find_oldest_value_reg): Ignore the value chain if
22619         the original register was copied in a mode with a fewer number of
22620         hard registers than the desired mode.
22621         (copyprop_hardreg_forward_1): Likewise.
22622         (debug_value_data): Fix loop test.
22623         * toplev.c (parse_options_and_default_flags): Reenable
22624         -fcprop-registers at -O1.
22625
22626 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
22627
22628         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
22629         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
22630
22631         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
22632         predicates.
22633
22634         * config/rs6000/rs6000.md: Add altivec predicate patterns.
22635
22636 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
22637
22638         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
22639         (pa_output_function_prologue): Output local label at the beginning of
22640         the prologue when profiling.
22641         (hppa_profile_hook): Use the local label rather than the function label.
22642         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
22643
22644 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
22645
22646         * config/rs6000/rs6000.c (print_operand): Remove extra space.
22647         (altivec_expand_unop_builtin): Fix thinko.
22648         (altivec_expand_binop_builtin): Same.
22649         (altivec_expand_ternop_builtin): Same.
22650         (altivec_expand_builtin): Same.
22651
22652 2002-01-07  Richard Henderson  <rth@redhat.com>
22653
22654         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
22655
22656 2002-01-07  Jason Merrill  <jason@redhat.com>
22657
22658         * unwind-dw2.c (execute_cfa_program): Use < again.
22659
22660 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
22661
22662         * predict.c (combine_predictions_for_insn): Avoid division by zero.
22663
22664 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
22665
22666         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
22667         Don't allow -1 - x -> ~x simplifications in the first pass.
22668
22669 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
22670
22671         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
22672         arguments.
22673         (altivec_expand_binop_builtin): Same.
22674         (altivec_expand_unop_builtin): Same.
22675         (print_operand): Fix typo.
22676         (bdesc_1arg): Add vupk* variants.
22677
22678         * rs6000.h (rs6000_builtins): Add vupk* enums.
22679
22680         * rs6000.md: Add altivec_vupk* variants.
22681
22682 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
22683
22684         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
22685         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
22686         and last update dates.
22687
22688 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
22689
22690         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
22691
22692 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
22693
22694         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
22695         * config/avr/avr.h (CPP_SPEC): Likewise.
22696         (LINK_SPEC): Likewise.
22697         (CRT_BINUTILS_SPECS): Likewise.
22698         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
22699         * doc/invoke.texi (AVR Options): Document them.
22700
22701 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
22702
22703         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
22704         LABEL_NUSES.
22705
22706 2002-01-07  Graham Stott  <grahams@redhat.com>
22707
22708         * config/i386/i386.h: Update copyright date.
22709         (HALF_PIC_PTR): Add parenthesis.
22710         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
22711         (CONSTANT_ALIGNMENT): Add parenthesis.
22712         (DATA_ALIGNMENT): Likewise.
22713         (LOCAL_ALIGNMENT): Likewise.
22714         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
22715         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
22716         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
22717         (HARD_REGNO_NREGS): Add paranethesis.
22718         (VALID_SSE_REG_MODE): Whitespace.
22719         (VALID_MMX_REG_MODE): Whitespace.
22720         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
22721         (ix86_hard_regno_mode_ok): Add parenthesis.
22722         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
22723         (RETURN_IN_MEMORY): Whitespace.
22724         (N_REG_CLASSES): Add parenthesis.
22725         (INTEGER_CLASS_P): Add parenthesis and wrap.
22726         (FLOAT_CLASS_P): Likewise.
22727         (SSE_CLASS_P): Likewise.
22728         (MMX_CLASS_P): Likewise.
22729         (MAYBE_INTEGER_CLASS_P): Likewise.
22730         (MAYBE_FLOAT_CLASS_P): Likewise.
22731         (MAYBE_SSE_CLASS_P): Likewise.
22732         (MAYBE_MMX_CLASS_P): Likewise.
22733         (Q_CLASS_P): Likewise.
22734         (GENERAL_REGNO_P): Uppercase macro parameter.
22735         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
22736         (FP_REGNO_P): Likewise.
22737         (ANY_FP_REGNO_P): Uppercase macro parameter.
22738         (SSE_REGNO_P): Likewise.
22739         (SSE_REGNO): Likewise.
22740         (SSE_REG_P): Likewise.
22741         (SSE_FLOAT_MODE_P): Likewise.
22742         (MMX_REGNO_P): Likewise.
22743         (MMX_REG_P):Likewise.
22744         (STACK_REG_P): Likewise.
22745         (NON_STACK_REG_P): Likewise.
22746         (STACK_TOP_P): Likewise.
22747         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
22748         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
22749         (SECONDARY_MEMORY_NEEDED): Likewise.
22750         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
22751         (MD_ASM_CLOBBERS): Whitespace and wrap.
22752         (MUST_PASS_IN_STACK): Whitespace and wrap.
22753         (RETURN_POPS_ARGS): Add parenthesis.
22754         (INIT_CUMULATIVE_ARGS): Likewise.
22755         (FUNCTION_ARG): Likewise.
22756         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
22757         (SETUP_INCOMING_VARARGS): Likewise.
22758         (BUILD_VA_LIST_TYPE):  Add parenthesis.
22759         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
22760         parenthsis.
22761         (EXPAND_BUILTIN_VA_ARG): Likewise.
22762         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
22763         (INITIALIZE_TRAMPOLINE): Add parenthesis.
22764         (INITIAL_ELIMINATION_OFFSET): Likewise.
22765         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
22766         (REGNO_OK_FOR_BASE_P): Likewise.
22767         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
22768         (REGNO_OK_FOR_DIREG_P): Likewise.
22769         (REG_OK_FOR_INDEX_P): Whitespace.
22770         (REG_OK_FOR_BASE_P): Whitespace.
22771         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
22772         parenthesis.
22773         (FIND_BASE_TERM): Fix typo.
22774         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
22775         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
22776         (SYMBOLIC_CONST; Whitespace.
22777         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
22778         (ENCODE_SECTION_INFO): Whitespace.
22779         (FINALIZE_PIC): Remove do { ... } while (0).
22780         (PROMOTE_MODE): Wrap in do { ... } while (0).
22781         (CONST_COSTS): Whitespace.
22782         (RTX_COSTS): Add paramethesis, whitespace and wrap.
22783         (REGISTER_MOVE_COST): Add parenthesis.
22784         (MEMORY_MOVE_COST): Likewise.
22785         (EXTRA_CC_MODES): Whitespace.
22786         (SELECT_CC_MODE): Add parenthesis and whitespace.
22787         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
22788         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
22789         (ASM_OUTPUT_LABEL): Add paramethesis.
22790         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
22791         (ASM_OUTPUT_REG_POP): Likewise.
22792         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
22793         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
22794
22795         * config/i386/i386.c: Update copyright.
22796         (CHECK_STACK_LIMIT): Add parenthesis.
22797         (AT_BP): Uppercase macro parameter.
22798         (x86_64_int_parameter_registers): Constify.
22799         (x86_64_int_return_registers): Likewise.
22800         (ix86_compare_op0): Use rtx.
22801         (construct_container): Constify INTREG parameter.
22802         (function_arg): Use rtx.
22803
22804         * diagnostic.h: Update copyright date.
22805         (output_buffer_state): Add parenthesis.
22806         (output_buffer_format_args): Likewise.
22807
22808         * combine.c (combine_instructions): Replace XEXP (links, 0)
22809         with link.
22810
22811 2002-01-06  H.J. Lu <hjl@gnu.org>
22812
22813         * cfgcleanup.c (thread_jump): Fix 2 typos.
22814
22815 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
22816
22817         * config.gcc: Add support for --enable-altivec.
22818
22819 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
22820
22821         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
22822
22823 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
22824
22825         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
22826         __objc_class_name_*.
22827
22828 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
22829
22830         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
22831
22832 2002-01-06  Richard Henderson  <rth@redhat.com>
22833
22834         * reorg.c (emit_delay_sequence): Remove death notes, not merely
22835         nop them out.  Increment label reference count for REG_LABEL.
22836         (fill_slots_from_thread): Frob label reference count around
22837         delete_related_insns.
22838
22839 2002-01-05  Richard Henderson  <rth@redhat.com>
22840
22841         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
22842         jump threading.
22843
22844 2002-01-05  Richard Henderson  <rth@redhat.com>
22845
22846         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
22847         * integrate.c (output_inline_function): Likewise.
22848         * toplev.c (rest_of_compilation): Do it here instead.  Move call
22849         to remove_unnecessary_notes after emitting abstract instance.
22850         Force an emitted nested function to have its parent emited as well.
22851         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
22852         for null.
22853         (rtl_for_decl_location): Do not look at reload data structures
22854         before reload has run.
22855
22856 2002-01-05  Kazu Hirata  <kazu@hxi.com>
22857
22858         * cse.c: Fix formatting.
22859         * dwarf2asm.c: Likewise.
22860         * dwarf2out.c: Likewise.
22861         * explow.c: Likewise.
22862         * expmed.c: Likewise.
22863         * function.c: Likewise.
22864         * gcov.c: Likewise.
22865         * gencheck.c: Likewise.
22866         * genrecog.c: Likewise.
22867         * ggc-common.c: Likewise.
22868         * ggc-page.c: Likewise.
22869         * global.c: Likewise.
22870
22871 2002-01-05  Kazu Hirata  <kazu@hxi.com>
22872
22873         * combine.c: Fix formatting.
22874
22875 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
22876
22877         PR middle-end/1557
22878         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
22879
22880 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
22881
22882         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
22883         as 1 for __powerpc64__ as well.
22884
22885         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
22886
22887         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
22888         return it.
22889
22890 2002-01-05  Daniel Berlin  <dan@dberlin.org>
22891
22892         * lcm.c: Revert change, due to performance regression it causes on
22893         SPEC because it's slightly more conservative (sigh, I hate
22894         edge-based LCM).
22895
22896 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
22897
22898         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
22899
22900 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
22901
22902         * doc/cppinternals.texi: Update.
22903
22904 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
22905
22906         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
22907         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
22908         negatives.
22909         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
22910         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
22911         kludge for pre-october-14th mmix versions to handle new-found bug
22912         with PUSHJ/PUSHGO and the register stack.
22913         * config/mmix/mmix.h (struct machine_function): Rename member
22914         has_call_value_without_parameters to has_call_without_parameters.
22915         All referers changed.
22916         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
22917         TARGET_MASK_BRANCH_PREDICT): New macros.
22918         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
22919         -mno-reg-stack-fill-bug-workaround.
22920         * config/mmix/mmix.md ("call"): Set struct machine member
22921         has_call_without_parameters.
22922
22923 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
22924
22925         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
22926
22927 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
22928
22929         * cfgcleanup.c: Include tm_p.h
22930         (mark_effect): Fix handling of hard register; fix handling of SET
22931
22932 2002-01-04  Kazu Hirata  <kazu@hxi.com>
22933
22934         * config/h8300/h8300.md (anonymous patterns): Check that
22935         operands are registers before using REGNO on them.
22936
22937 2002-01-03  Roland McGrath  <roland@frob.com>
22938
22939         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
22940
22941 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
22942
22943         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
22944         * c-common.h (genrtl_expr_stmt_value): Likewise.
22945         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
22946         (expand_expr_stmt_value): Add maybe_last argument.
22947         Don't warn about statement with no effect if it is the last statement
22948         in expression statement.
22949         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
22950         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
22951         expand_expr_stmt_value.
22952         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
22953         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
22954         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
22955         as maybe_last to expand_expr_stmt_value.
22956
22957 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
22958
22959         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
22960         be passed in, do not build it.
22961         (c_begin_if_stmt): New function.
22962         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
22963         * c-common.h (c_expand_start_cond): Update prototype.
22964         (c_begin_if_stmt): Prototype new function.
22965         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
22966         * c-parse.in (if_prefix): Use c_begin_if_stmt,
22967         c_begin_while_stmt and c_finish_while_stmt_cond.
22968
22969 2002-01-04  William Cohen  <wcohen@redhat.com>
22970
22971         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
22972         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
22973         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
22974         * config/pa/som.h (ASM_FILE_START): Likewise.
22975
22976 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
22977
22978         * lcm.c: Include df.h.
22979         Add available_transfer_function prototype.
22980         (compute_available): Rework to use iterative dataflow framework.
22981         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
22982         with bb_info in df.h
22983         (available_transfer_function): New function.
22984
22985         * Makefile.in (lcm.o): add df.h to dependencies.
22986
22987 2002-01-04  Richard Henderson  <rth@redhat.com>
22988
22989         * config/alpha/alpha.c (some_operand): Accept HIGH.
22990         (input_operand): Likewise; accept simple references to globals.
22991         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
22992         (alpha_const_double_ok_for_letter_p): Likewise.
22993         (alpha_extra_constraint): Likewise.
22994         (alpha_preferred_reload_class): Likewise.  Do not force
22995         symbolic constants to memory.
22996         (alpha_legitimate_address_p): Accept simple references
22997         to small_symbolic_operand.
22998         (alpha_legitimize_address): New arg scratch.  Be prepared to be
22999         called when no_new_pseudos.  Emit simple symbolic references.
23000         Split integers into low, high, and rest.
23001         (alpha_expand_mov): Use alpha_legitimize_address.
23002         (some_small_symbolic_mem_operand): New.
23003         (split_small_symbolic_mem_operand): New.
23004         * config/alpha/alpha-protos.h: Update.
23005         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
23006         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
23007         (EXTRA_CONSTRAINT): Likewise.
23008         (PREFERRED_RELOAD_CLASS): Likewise.
23009         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
23010         (PREDICATE_CODES): Update.
23011         * config/alpha/alpha.md: New post-reload splitters to convert
23012         simplfied symbolic operands to the form that references $29.
23013         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
23014         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
23015
23016 2002-01-03  Richard Henderson  <rth@redhat.com>
23017
23018         * local-alloc.c (function_invariant_p): Update commentary.
23019
23020 2002-01-04  H.J. Lu <hjl@gnu.org>
23021
23022         * toplev.c (rest_of_compilation): Fix a typo when calling
23023         cleanup_cfg.
23024
23025 2002-01-03  Kazu Hirata  <kazu@hxi.com>
23026
23027         * c-common.c: Fix formatting.
23028         * diagnostic.c: Likewise.
23029         * doloop.c: Likewise.
23030         * dwarf2out.c: Likewise.
23031
23032 2002-01-03  Kazu Hirata  <kazu@hxi.com>
23033
23034         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
23035         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
23036
23037 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
23038
23039         * cpperror.c: Update comments and copyright.
23040         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
23041         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
23042
23043 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23044
23045         * collect2.c (main): Use strcmp when testing for "-shared".
23046
23047 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
23048
23049         * cppmacro.c: Don't include intl.h.  Update comments.
23050         (new_number_token): Allocate enough buffer for 64-bit unsigned
23051         integers; update prototype.
23052         * cppmain.c: Update comments.
23053
23054 2002-01-03  William Cohen  <wcohen@redhat.com>
23055
23056         * function.h (struct function): Add profile.
23057         (current_function_profile): New.
23058         doc/extend.texi: Update documentation.
23059         * final.c (final_start_function): Use current_function_profile
23060         instead of profile_flag.
23061         (profile_after_prologue): Likewise.
23062         * function.c (expand_function_start): Likewise.
23063         (expand_function_start): Likewise.
23064         * config/alpha/alpha.c (direct_call_operand):
23065         (alpha_does_function_need_gp): Likewise.
23066         (alpha_expand_prologue): Likewise.
23067         * config/arm/arm.c (arm_expand_prologue): Likewise.
23068         thumb_expand_prologue: Likewise.
23069         * config/d30v/d30v.c (d30v_stack_info): Likewise.
23070         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
23071         (fr30_expand_prologue): Likewise.
23072         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
23073         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
23074         * config/i386/i386.h (FINALIZE_PIC): Likewise.
23075         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
23076         * config/i960/i960.c (i960_output_function_prologue): Likewise.
23077         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
23078         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
23079         (m32r_expand_prologue): Likewise.
23080         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
23081         (m88k_expand_prologue): Likewise.
23082         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
23083         * config/mips/mips.c (compute_frame_size): Likewise.
23084         (mips_expand_prologue): Likewise.
23085         (mips_can_use_return_insn): Likewise.
23086         * config/pa/elf.h (ASM_FILE_START): Likewise.
23087         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
23088         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
23089         * config/pa/som.h (ASM_FILE_START): Likewise.
23090         * config/romp/romp.c (romp_using_r14): Likewise.
23091         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
23092         (rs6000_stack_info): Likewise.
23093         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
23094         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
23095         * config/v850/v850.c (compute_register_save_size): Likewise.
23096
23097 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
23098
23099         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
23100         gen_lowpart_common fails, use gen_lowpart_SUBREG.
23101
23102 2002-01-03  Turly O'Connor  <turly@apple.com>
23103
23104         * darwin.c (machopic_output_possible_stub_label): Don't generate
23105         stub routines for pseudo-stubs which we've just defined.
23106
23107 2002-01-03  Kazu Hirata  <kazu@hxi.com>
23108
23109         * builtins.c: Fix formatting.
23110         * c-typeck.c: Likewise.
23111         * combine.c: Likewise.
23112         * expr.c: Likewise.
23113         * loop.c: Likewise.
23114
23115 2002-01-03  Andreas Schwab  <schwab@suse.de>
23116
23117         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
23118         and return true if _cpp_push_next_buffer pushed a new include
23119         file.
23120         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
23121         _cpp_pop_file_buffer did not push a new file.
23122         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
23123
23124 2002-01-02  Eric Christopher  <echristo@redhat.com>
23125
23126         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
23127         FIND_REG_INC_NOTE call. Update copyright.
23128         * loop.c (canonicalize_condition): Ditto.
23129         * reorg.c (delete_scheduled_jump): Ditto.
23130
23131 2002-01-03  Kazu Hirata  <kazu@hxi.com>
23132
23133         * gcse.c: Fix formatting.
23134
23135 2002-01-03  Graham Stott  <grahams@redhat.com>
23136
23137         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
23138         forward defs for struct tags rtx_def, union_tree, rtvec_def
23139         also output corresponding typedefs for rtx, tree, and rtvec.
23140
23141         * system.h: Move forward defs for struct tags rtx_def, union_tree,
23142         rtvec_def along with corresponding typedefs for rtx, tree, and
23143         rtvec to config.h, hconfig.h, tconfig.h.
23144
23145 2002-01-03  Graham Stott  <grahams@redhat.com>
23146
23147         * tree.h: Update copyright date.
23148         (IS_EXPR_CODE_CLASS): Add parenthesis.
23149         (TREE_SET_CODE): Add whitespace.
23150         (TREE_CHECK): Add parenthesis.
23151         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
23152         (CST_OR_CONSTRUCTOR_CHECK):
23153         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
23154         (TREE_SYMBOL_REFERENCED): Whitespace.
23155         (INT_CST_LT): Likewise.
23156         (INT_CST_LT_UNSIGNED): Likewise.
23157         (tree_real_cst): Unwrap comment.
23158         (tree_string): Likewise.
23159         (tree_complex): Likewise.
23160         (IDENTIFIER_POINTER): correct cast.
23161         (SAVE_EXPR_CONTEXT): Whitespace.
23162         (EXPR_WFL_FILENAME_NODE): Likewise.
23163         (EXPR_WFL_FILENAME): Remove parenthesis.
23164         (DECL_ORIGIN): Add parenthesis.
23165         (DECL_FROM_INLINE): Use NULL_TREE.
23166         (build_int_2): Whitespace.
23167         (build_type_variant): Add parenthesis.
23168
23169         * gcc/jcf-parse.c: Update copyright date.
23170         (yyparse): Constify resource_filename.
23171
23172 2002-01-03  Graham Stott  <grahams@redhat.com>
23173
23174         * rtl.h: Update copyright date.
23175         (RTL_CHECK1): Wrap long line.
23176         (RTL_CHECK2): Likewise.
23177         (RTL_CHECKC1): Wrap long line and whitespace.
23178         (RTL_CHECKC2): Likewise.
23179         (XWINT): Whitespace.
23180         (XINT): Likewise.
23181         (XSTR): Likewise.
23182         (XEXP): Likewise.
23183         (XVEC): Likewise.
23184         (XMODE): Likewise.
23185         (XBITMAP): Likewise.
23186         (XTREE): Likewise.
23187         (XBBDEF): Likewise.
23188         (XTMPL): Likewise.
23189         (X0WINT): Likewise.
23190         (X0INT):Likewise.
23191         (X0UINT): Likewise.
23192         (X0STR): Likewise.
23193         (X0EXP): Likewise.
23194         (X0VEC): Likewise.
23195         (X0MODE): Likewise.
23196         (X0BITMAP): Likewise.
23197         (X0TREE): Likewise.
23198         (X0BBDEF): Likewise.
23199         (X0ADVFLAGS): Likewise.
23200         (X0CSELIB): Likewise.
23201         (X0MEMATTR): Likewise.
23202         (XCWINT): Likewise.
23203         (XCINT): Likewise.
23204         (XCUINT): Likewise.
23205         (XCSTR): Likewise.
23206         (XCEXP): Likewise.
23207         (XCVEC): Likewise.
23208         (XCMODE): Likewise.
23209         (XCBITMAP): Likewise.
23210         (XCTREE): Likewise.
23211         (XCBBDEF): Likewise.
23212         (XCADVFLAGS): Likewise.
23213         (XCCSELIB): Likewise.
23214         (XC2EXP): Likewise.
23215         (INSN_UID): Likewise.
23216         (PREV_INSN): Likewise.
23217         (PATTERN): Likewise.
23218         (INSN_CODE): Likewise.
23219         (PUT_REG_NOTE_KIND): Likewise.
23220         (CODE_LABEL_NUMBER): Likewise.
23221         (NOTE_SOURCE_FILE): Likewise.
23222         (NOTE_BLOCK): Likewise.
23223         (NOTE_EH_HANDLER): Likewise.
23224         (NOTE_RANGE_INFO): Likewise.
23225         (NOTE_LIVE_INFO): Likewise.
23226         (NOTE_BASIC_BLOCK): Likewise.
23227         (NOTE_EXPECTED_VALUE): Likewise.
23228         (NOTE_LINE_NUMBER): Likewise.
23229         (LABEL_NAME): Likewise.
23230         (LABEL_NUSES): Likewise.
23231         (LABEL_ALTERNATE_NAME): Likewise.
23232         (ADDRESSOF_DECL): Likewise.
23233         (JUMP_LABEL): Likewise.
23234         (LABEL_NEXTREF): Likewise.
23235         (REGNO): Likewise.
23236         (ORIGINAL_REGNO: Likewise.
23237         (HARD_REGISTER_NUM_P): Add parenthesis.
23238         (SUBREG_REG): Whitespace.
23239         (SUBREG_BYTE): Likewise.
23240         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
23241         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
23242         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
23243         (ASM_OPERANDS_INPUT_VEC): Likewise.
23244         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
23245         (ASM_OPERANDS_INPUT): Likewise.
23246         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
23247         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
23248         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
23249         (ASM_OPERANDS_INPUT_MODE): Likewise.
23250         (ASM_OPERANDS_SOURCE_FILE): Likewise.
23251         (ASM_OPERANDS_SOURCE_LINE): Likewise.
23252         (MEM_SET_IN_STRUCT_P): Minor reformat.
23253         (TRAP_CONDITION): Whitespace.
23254         (TRAP_CODE): Likewise.
23255         (COND_EXEC_TEST): Likewise.
23256         (COND_EXEC_CODE): Likewise.
23257         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
23258         (PHI_NODE_P): Add parenthesis.
23259         (plus_constant): Whitespace and add parenthesis.
23260
23261 2002-01-03  Kazu Hirata  <kazu@hxi.com>
23262
23263         * config/avr/avr.c: Fix comment typos.
23264         * config/c4x/c4x.md: Likewise.
23265         * config/dsp16xx/dsp16xx.h: Likewise.
23266         * config/dsp16xx/dsp16xx.md: Likewise.
23267         * config/i386/i386.md: Likewise.
23268         * config/ia64/ia64.c: Likewise.
23269         * config/m32r/m32r.h: Likewise.
23270         * config/m68hc11/m68hc11.md: Likewise.
23271         * config/mmix/mmix.c: Likewise.
23272         * config/mn10200/mn10200.c: Likewise.
23273         * config/romp/romp.c: Likewise.
23274         * config/sh/sh.c: Likewise.
23275         * config/stormy16/stormy16.c: Likewise.
23276         * config/stormy16/stormy16.h: Likewise.
23277         * config/stormy16/stormy16.md: Likewise.
23278
23279 2002-01-03  Graham Stott  <grahams@redhat.com>
23280
23281         * loop.h: Update copyright date.
23282         (LOOP_MOVABLES): Fix typo.
23283         (LOOP_REGS): Likewise.
23284         (LOOP_IVS): Likewise.
23285
23286 2002-01-03  Graham Stott  <grahams@redhat.com>
23287
23288         * cppinit.c: Update copyright date.
23289         Don't include output.h
23290         * Makefile.in: Update copyright date.
23291         Update dependency.
23292
23293 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
23294
23295         PR c/5226
23296         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
23297         (-pthread) Add to RS/6000 options.
23298
23299 2002-01-02  Kazu Hirata  <kazu@hxi.com>
23300
23301         * except.c: Fix comment typos.
23302         * loop.c: Likewise.
23303         * varasm.c: Likewise.
23304         * doc/tm.texi: Fix a typo.
23305
23306 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
23307
23308         * c-typeck.c (output_init_element): Allow initializing static storage
23309         duration objects with compound literals.
23310
23311 2002-01-02  Richard Henderson  <rth@redhat.com>
23312
23313         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
23314         after abusing it.
23315
23316 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23317
23318         * gcc.c (default_compilers): Const-ify.
23319         * mips-tdump.c (stab_names): Likewise.
23320         * mips-tfile.c (map_coff_types, map_coff_storage,
23321         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
23322         pseudo_ops_t, pseudo_ops): Likewise.
23323         * protoize.c (default_include): Likewise
23324
23325         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
23326         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
23327         Add array size in declaration.
23328         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
23329         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
23330         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
23331         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
23332         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
23333         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
23334         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
23335         emtens, make_nan): Const-ify.
23336         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
23337         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
23338
23339 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
23340
23341         * config.gcc (ia64-*-*): Set extra_headers.
23342         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
23343         * config/alpha/t-osf: Remove.
23344         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
23345
23346 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
23347
23348         * config/rs6000/t-aix43: Revert previous change.
23349
23350 2002-01-02  Jason Merrill  <jason@redhat.com>
23351
23352         * c-decl.c (c_expand_body): Call outlining_inline_function when
23353         emitting an inline function out of line.
23354
23355 2002-01-02  Richard Henderson  <rth@redhat.com>
23356
23357         * dwarf2out.c (limbo_die_node): Add created_for member.
23358         (new_die): New argument created_for.  Update all callers.
23359         (mark_limbo_die_list): New.
23360         (dwarf2out_init): Register limbo_die_list as a root.
23361         (dwarf2out_finish): Force insert limbo dies into their function
23362         context.
23363
23364 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
23365
23366         PR c++/5089
23367         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
23368
23369 2002-01-02  Kazu Hirata  <kazu@hxi.com>
23370
23371         * config/h8300/fixunssfsi.c: Update copyright.
23372         Fix comment typos.
23373         Fix formatting.
23374         * config/h8300/h8300.c: Update copyright.
23375         Eliminate warnings.
23376
23377 2002-01-02  Kazu Hirata  <kazu@hxi.com>
23378
23379         * config/romp/romp.c: Fix comment formatting.
23380         * config/romp/romp.h: Likewise.
23381         * config/romp/romp.md: Likewise.
23382         * config/s390/s390.c: Likewise.
23383         * config/stormy16/stormy16.c: Likewise.
23384         * config/stormy16/stormy16.h: Likewise.
23385
23386 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
23387
23388         * c-common.h (genrtl_expr_stmt_value): Declare.
23389         * c-semantics.c (genrtl_goto_stmt): Redirect to...
23390         (genrtl_goto_stmt_value): ... this new function.  Pass new
23391         argument down to expand_expr_stmt_value, taking
23392         TREE_ADDRESSABLE into account.
23393         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
23394         STMT_EXPR as addressable, i.e., one whose result we want.
23395         * expr.c (expand_expr): Don't save expression statement value
23396         of labeled_blocks or loop_exprs.
23397         * stmt.c (expand_expr_stmt): Redirect to...
23398         (expand_expr_stmt_value): ... this new function.  Use new
23399         argument to tell whether to save expression value.
23400         (expand_end_stmt_expr): Reset last_expr_type and
23401         last_expr_value if we don't have either.
23402         * tree-inline.c (declare_return_variable): Mark its use
23403         statement as addressable.
23404         * tree.h: Document new use of TREE_ADDRESSABLE.
23405         (expand_expr_stmt_value): Declare.
23406
23407 2002-01-01  Tom Rix  <trix@redhat.com>
23408
23409         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
23410         rs6000_emit_allocate_stack.
23411
23412 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
23413
23414         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
23415         ${srcdir}/ginclude/ to every entry in extra_headers.
23416         * configure: Regenerate.
23417         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
23418         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
23419         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
23420         * ginclude/proto.h: Rename to config/convex/proto.h.
23421
23422 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23423
23424         * attribs.c (handle_vector_size_attribute): Use host_integerp
23425         and tree_int_cst; remove warnings.
23426         * caller-save.c (insert_restore): Add cast to get rid of warning.
23427         (insert_save): Likewise.
23428         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
23429         * regmove.c (find_matches): Add temporary var to kill a warning.
23430
23431 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
23432
23433         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
23434         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
23435         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
23436         (vms-dwarf2eh.o): Add Makefile rule.
23437         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
23438         * config/alpha/vms-dwarf2eh.asm: New file.
23439
23440         * gcc.c (delete_if_ordinary): Delete all versions.
23441
23442 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
23443
23444         * config/mmix/mmix.md: Update FIXME to not mention
23445         define_constants.
23446         (MMIX_rJ_REGNUM): New define_constants constant.
23447         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
23448         "*movdicc_real"): Adjust contraints formatting.
23449         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
23450         for branch prediction.
23451         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
23452         output template.
23453         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
23454         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
23455         number.  Delete related FIXMEs.
23456         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
23457         from number to MMIX_rJ_REGNUM.
23458         (TARGET_MASK_BRANCH_PREDICT): New.
23459         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
23460         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
23461         value.  Add -mbranch-predict and -mno-branch-predict.
23462         (TARGET_VERSION): Drop date.
23463         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
23464         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
23465         for finding out global symbols.
23466         (mmix_asm_output_labelref): Revert condition for global symbol.
23467         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
23468         (mmix_print_operand_punct_valid_p): A '+' is valid.
23469
23470 See ChangeLog.6 for earlier changes.