OSDN Git Service

* c-lex.c (indent_level): Remove.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
2
3         * c-lex.c (indent_level): Remove.
4         (cb_file_change, c_lex): Remove indent level handling.
5         * c-lex.h (indent_level): Remove.
6         * input.h (struct file_stack): Remove indent_level.
7         * toplev.c (push_srcloc): Remove indent_level handling.
8
9 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
10
11         PR target/6753
12         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
13         of x in constraints for clarity.
14         (sse_mov?fcc split): abort if op2 == op3.
15         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
16         sse_movsfcc_const0_4): Add earlyclobber.
17         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
18         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
19         Use Y instead of x in constraints.
20
21 2002-05-23  Richard Henderson  <rth@redhat.com>
22
23         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
24         (C++98 Thread-Local Edits): New subsection.
25
26         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
27         (ix86_arch): Set type to enum processor_type.
28
29         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use 
30         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
31
32 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
33
34         * configure.in: Fix as version test for binutils 2.12.1 releases
35         (without dates).
36         * configure: Rebuilt.
37
38 2002-05-23  Richard Henderson  <rth@redhat.com>
39
40         * config/i386/i386.c (get_pic_label_name): New.
41         (load_pic_register): Remove.
42         (output_set_got): New.
43         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
44         * config/i386/i386.md (UNSPEC_SET_GOT): New.
45         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
46         (prologue_set_got, prologue_get_pc): Remove.
47         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
48         (builtin_setjmp_receiver): Use gen_set_got.
49         * config/i386/i386-protos.h: Update.
50
51 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
52
53         * gcse.c (hash_expr): Do not use alias set for hashing.
54
55 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
56
57         * dbxout.c (dbxout_class_name_qualifiers): New function.
58         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
59
60 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
61
62         * cpperror.c (_cpp_begin_message): No special casing
63         of CPP_FATAL_LIMIT.
64         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
65         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
66         * cpplib.c (do_include_common): Use DL_ERROR.
67         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
68         (DL_ICE): Renumber.
69         * fix-header.c (read_scan_file): Update.
70
71 2002-05-22  Richard Henderson  <rth@redhat.com>
72
73         * config/i386/i386.c (ix86_expand_call): New function, extracted
74         from md call patterns.  Add pic_offset_table_rtx to
75         CALL_INSN_FUNCTION_USAGE when needed.
76         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
77         (call_value_pop, call_value, untyped_call): Likewise.
78         (call_exp, call_value_exp): Remove.
79         * config/i386/i386-protos.h: Update.
80
81 2002-05-22  Richard Henderson  <rth@redhat.com>
82
83         * varasm.c (default_section_type_flags): Check for VAR_DECL
84         before using DECL_THREAD_LOCAL.
85
86 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
87
88         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
89         (STARTFILE_SPEC): Delete PE crt0.o.
90         * config/rs6000/aix51.h: Same.
91         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
92         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
93         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
94         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
95         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
96
97 2002-05-22  Richard Henderson  <rth@redhat.com>
98
99         * varasm.c (default_section_type_flags): Handle tls data and
100         default sections.
101         (default_unique_section): Handle tls sections.
102
103 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
104
105         * configure.in (CROSS): Define NATIVE_CROSS.
106         * configure: Regenerate.
107         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
108         (startfile_prefix_spec): New var.
109         (static_specs): Add startfile_prefix_spec.
110         (do_spec_2): Split out from..
111         (do_spec): ..here.
112         (main): Process startfile_prefix_spec.
113         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
114         dynamic linker.
115         (STARTFILE_PREFIX_SPEC): Define.
116         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
117         absolute paths.
118
119 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
120
121         * cpperror.c: Fix formatting.
122         * cppexp.c: Likewise.
123         * cppfiles.c: Likewise.
124         * cpphash.c: Likewise.
125         * cpphash.h: Likewise.
126         * cppinit.c: Likewise.
127         * cpplex.c: Likewise.
128         * cpplib.c: Likewise.
129         * cppmacro.c: Likewise.
130         * cppmain.c: Likewise.
131         * cppspec.c: Likewise.
132
133 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
134
135         * combine.c (force_to_mode): Use gen_int_mode.
136         Don't clear CONST_INT bits outside of mode.
137
138 2002-05-22  Richard Henderson  <rth@redhat.com>
139
140         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
141         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
142
143 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
144
145         PR c/6643
146         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
147         if DECL_SIZE_UNIT is INTEGER_CST.
148
149 2002-05-22  Richard Henderson  <rth@redhat.com>
150
151         * flow.c (life_analysis): Delete broken reg_label check.
152
153 2002-05-22  Richard Henderson  <rth@redhat.com>
154
155         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
156         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
157
158 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
159
160         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
161         (embed-bb.c): New rule.
162         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
163         * config/sh/embed_bb.c: Delete.
164
165 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
166
167         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
168
169 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
170
171         * config/h8300/h8300.md (*andorqi3): New.
172
173 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
174
175         PR preprocessor/6517
176         * Makefile.in: Update.
177         * c-common.c (c_common_post_options): Add preprocessor
178         errors to the error count.
179         * c-lang.c (c_post_options): Kill.
180         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
181         * hooks.h: Add header guards.
182         * langhooks-def.h: Include hooks.h.
183         (LANG_HOOKS_POST_OPTIONS): Update.
184         * langhooks.h (struct lang_hooks): Update post_options.
185         * toplev.c (parse_options_and_default_flags): Update.
186 objc:
187         * objc-lang.c (objc_post_options): Kill.
188         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
189
190 2002-05-21  Bruce Korb  <bkorb@gnu.org>
191
192         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
193         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
194         * fixinc/fixincl.x: regen.
195
196 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
197
198         * cfgbuild.c: Fix formatting.
199         * cfg.c: Likewise.
200         * cfgcleanup.c: Likewise.
201         * cfglayout.c: Likewise.
202         * cfgloop.c: Likewise.
203         * cfgrtl.c: Likewise.
204
205 2002-05-21  Richard Henderson  <rth@redhat.com>
206
207         * c-common.h (enum rid): Add RID_THREAD.
208         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
209         (grokdeclarator): Grok __thread.
210         * c-parse.in (reswords): Add __thread.
211         (rid_to_yy): Add RID_THREAD.
212
213         * tree.h (DECL_THREAD_LOCAL): New.
214         (struct tree_decl): Add thread_local_flag.
215         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
216         * tree.c (staticp): TLS variables are not static.
217
218         * target-def.h (TARGET_HAVE_TLS): New.
219         * target.h (have_tls): New.
220         * output.h (SECTION_TLS): New.
221         * varasm.c (assemble_variable): TLS variables can't be common for now.
222         (default_section_type_flags): Handle .tdata and .tbss.
223         (default_elf_asm_named_section): Handle SECTION_TLS.
224         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
225
226         * flags.h (flag_tls_default): Declare.
227         * toplev.c (flag_tls_default): Define.
228         (display_help): Display help for it.
229         (decode_f_option): Set it.
230
231         * doc/extend.texi (Thread-Local): New node describing language-level
232         thread-local storage.
233         * doc/invoke.texi (-ftls-model): Document.
234
235         * fixinc/inclhack.def (thread_keyword): New.
236         * fixinc/fixincl.x: Rebuild.
237
238 2002-05-21  Jeffrey A Law  <law@redhat.com>
239
240         * optabs.c (expand_binop): For double-word integer multiplies,
241         do not compute intermediate results into something that is
242         not a register (such as a SUBREG or MEM).
243
244         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
245         (ix86_sched_reorder): Make sure to initialize scheduling
246         data even when there's only one insn in the ready queue.
247
248 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
249
250         * genautomata.c (reserv_sets_hash_value): Fix a typo.
251
252 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
253
254         * genautomata.c (reserv_sets_hash_value): Define hash_value as
255         set_el_t.  Transform the hash value into unsigned.
256         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
257         (transform_3): Add code to process `(A,B)+(D,E)'.
258
259 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
260
261         * reload1.c (do_output_reload): Run delete_output_reload
262         only if optimizing.
263
264 2002-05-21  Roger Sayle  <roger@eyesopen.com>
265
266         PR middle-end/6600
267         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
268         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
269         (can_store_by_pieces): ... and here to limit the largest mode used.
270         Add a comment to document this function.
271
272 2002-05-21  Richard Henderson  <rth@redhat.com>
273
274         * flow.c (life_analysis): Fix test for deleted label.
275
276 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
277
278         * doc/tm.texi: Fix typo.
279
280 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
281
282         * c-common.c (c_common_init): Set options->unsigned_char from
283         flag_signed_char.
284         (cb_register_builtins): Define __STRICT_ANSI__ and
285         __CHAR_UNSIGNED__ here...
286         * cppinit.c (init_builtins): Not here.
287         (cpp_create_reader): unsigned_char option defaults to 0, not
288         !DEFAULT_SIGNED_CHAR.
289         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
290         and -funsigned-char.
291
292         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
293         * cpphash.c (_cpp_init_hashtable): Don't set it.
294         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
295         directly.  Clarify comment.
296
297 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
298
299         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
300         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
301         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
302         BASIC_BLOCK (n_basic_blocks - 1).
303         * cfganal.c (can_fallthru, flow_call_edges_add,
304         flow_preorder_transversal_compute): Too.
305         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
306         find_sub_basic_blocks): Too.
307         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
308         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
309         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
310         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
311         * combine.c (this_basic_block): Type changed to basic_block.
312         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
313         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
314         get_last_value, distribute_notes, distribute_links): Too.
315         * final.c (compute_alignments): Too.
316         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
317         * function.c (thread_prologue_and_epilogue_insns): Too.
318         * gcse.c (compute_code_hoist_vbeinout): Too.
319         * global.c (build_insn_chain): Too.
320         * ifcvt.c (find_if_block, find_cond_trap): Too.
321         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
322         * regmove.c (regmove_optimize): Too.
323         * resource.c (find_basic_block): Too.
324         * sched-ebb.c (schedule_ebbs): Too.
325         * ssa-dce.c (find_control_dependence, find_pdom): Too.
326
327 2002-05-21  Andreas Jaeger  <aj@suse.de>
328
329         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
330
331 2002-05-21  Richard Henderson  <rth@redhat.com>
332
333         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
334         unspec names, not numbers.
335
336 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
337
338         * doc/sourcebuild.texi: Mention snapshot-README and
339         snapshot-index.html as needing updating for new front ends.
340
341 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
342
343         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
344         disabling checking, and avoid multiple evaluation of RTX.
345
346 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
347
348         * bitmap.c (bitmap_find_bit): Return early if we have the correct
349         element cached.
350
351 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
352
353         * profile.c (gen_edge_profiler):  Set alias set before the memory is
354         used.
355
356 2002-05-20  David S. Miller  <davem@redhat.com>
357
358         * cselib.c (max_value_regs): New.
359         (cselib_lookup, cselib_invalidate_regno): Initialize it when
360         adding new entries to the REG_VALUES table and we are dealing with
361         a hard register.
362         (clear_table): Initialize it.
363         (cselib_invalidate_regno): Use it to determine which hard
364         registers to scan when mode is not VOIDmode.
365
366 2002-05-20  Duraid Madina   <duraid@fl.net.au>
367
368         * tradcpp.c (fixup_newlines): Use old-style function header.
369
370 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
371
372         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
373
374 2002-05-20  H.J. Lu  (hjl@gnu.org)
375
376         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
377
378         * config/mips/mips.h (DFMODE_NAN): Defined.
379         (SFMODE_NAN): Likewise.
380
381 2002-05-20  Dale Johannesen  <dalej@apple.com>
382
383         * combine.c (cant_combine_insn_p):  Back out my
384         previous patch.
385
386 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
387
388         * params.c: Fix formatting.
389         * params.h: Likewise.
390         * predict.c: Likewise.
391         * prefix.c: Likewise.
392         * print-rtl.c: Likewise.
393         * print-tree.c: Likewise.
394         * profile.c: Likewise.
395
396 2002-05-20  H.J. Lu  (hjl@gnu.org)
397
398         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
399
400 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
401
402         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
403         switches straight on to the assembler, do not abbreviate them.
404         * config/arm/elf.h (ASM_SPEC): As above.
405         * config/arm/semi.h (ASM_SPEC): As above.
406         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
407         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
408         -mcpu=xscale on to the assembler by default.
409         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
410
411 2002-05-20  Richard Henderson  <rth@redhat.com>
412
413         * cse.c (canon_hash): Reorder do_not_record test.  Always
414         allow pic_offset_table_rtx.
415
416 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
417
418         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
419         (expand_binop): Ditto (3 times).
420
421 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
422
423         * Makefile.in (distclean): Remove QMTest stuff.
424         (QMTEST_PATH): New variable.
425         (QMTESTFLAGS): Likewise.
426         (QMTESTRUNFLAGS): Likewise.
427         (QMTEST): Likewise.
428         (QMTEST_GPP_TESTS): Likewise.
429         (QMTEST_DIR): Likewise.
430         (QMTEST_DIR/context): New target.
431         (qmtest-g++): Likeise.
432         (qmtest-gui): Likewise.
433         (QMTEST_DIR/gpp-expected.qmr): Likewise.
434
435 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
436
437         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
438         an altivec register if TARGET_ALTIVEC.
439
440         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
441         to ALTIVEC_VECTOR_MODE.
442         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
443         (rs6000_va_arg): Vectors may go in registers if they are not
444         altivec vectors.
445
446 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
447
448         * protoize.c: Fix formatting.
449
450 2002-05-19  Richard Henderson  <rth@redhat.com>
451
452         * gensupport.c (init_include_reader): Merge into ...
453         (process_include): ... here.  Simplify composite path creation.
454         Plug memory leaks.  Fix file/line number tracking.  Do not
455         process_define_cond_exec.  Return void.
456         (process_rtx): Don't check process_include return value.
457
458 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
459
460         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
461         fields.
462         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
463         traversing basic block chain.
464         (create_basic_block_structure, create_basic_block): Declaration changed.
465         (link_block, unlink_block): Declare.
466         * cfg.c (entry_exit_blocks): Initialize new fields.
467         (link_block, unlink_block): New.
468         (expunge_block_nocompact): Unlink basic block.
469         (dump_flow_info): Print prev_bb/next_bb fields.
470         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
471         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
472         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
473         * cfgrtl.c (create_basic_block_structure, create_basic_block,
474         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
475         (verify_flow_info): Check that list agrees with numbering.
476
477 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
478
479         * c-common.c (preprocessing_asm): New macro.
480         * c-lex.h (builtin_define, builtin_assert): Use pfile.
481 doc:
482         * tm.texi: Update.
483 config/alpha:
484         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
485         (CPP_SPEC): Simplify.
486         (TARGET_CPU_CPP_BUILTINS): Update.
487         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
488         (CPP_SPEC): Simplify.
489         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
490         (TARGET_OS_CPP_BUILTINS): Update.
491         * osf.h (CPP_XFLOAT_SPEC): Kill.
492         (TARGET_OS_CPP_BUILTINS): Update.
493         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
494         * osf5.h (CPP_XFLOAT_SPEC): Kill.
495         * vms.h (CPP_SUBTARGET_SPEC): Kill.
496         (TARGET_OS_CPP_BUILTINS): Update.
497
498 2002-05-19  Richard Henderson  <rth@redhat.com>
499
500         * varasm.c (default_binds_local_p): Fix typo.
501
502 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
503
504         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
505         CONST_INT operand to the correct mode after adding 1 to it.
506
507 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
508
509         * config.gcc (powerpc-wrs-windiss*): New target.
510
511 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
512
513         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
514         (ashrdi3): Use it.
515
516 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
517
518         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
519         alphasort.
520         * config.in: Regenerated.
521         * configure: Regenerated.
522
523 2002-05-19  Richard Henderson  <rth@redhat.com>
524
525         * target-def.h (TARGET_BINDS_LOCAL_P): New.
526         * target.h (struct gcc_target): Move boolean fields to the end.
527         Add binds_local_p.
528         * varasm.c (default_binds_local_p): New.
529         * output.h: Declare it.
530
531         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
532         * config/cris/cris.c (cris_encode_section_info): Likewise.
533         * config/i386/i386.c (i386_encode_section_info): Likewise.
534         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
535         * config/sh/sh.c (sh_encode_section_info): Likewise.
536
537         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
538         (TARGET_BINDS_LOCAL_P): New.
539
540 2002-05-19  Richard Henderson  <rth@redhat.com>
541
542         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
543         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
544         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
545
546         * toplev.c (display_help): Kill -a -ax help.
547
548         * config/1750a/1750a.h, config/alpha/alpha.h,
549         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
550         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
551         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
552         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
553
554         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
555         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
556
557         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
558         (ix86_output_function_block_profiler): Kill.
559         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
560         (m68hc11_function_block_profiler): Kill.
561         * config/m68hc11/m68hc11-protos.h: Update.
562         * config/m88k/m88k.c (output_block_profiler): Kill.
563         (output_function_block_profiler): Kill.
564         * config/m88k/m88k-protos.h: Update.
565
566 2002-05-19  Richard Henderson  <rth@redhat.com>
567
568         * system.h (STRIP_NAME_ENCODING): Poison it.
569         * output.h (STRIP_NAME_ENCODING): Remove.
570         (default_strip_name_encoding): Declare.
571         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
572         * target.h (strip_name_encoding): New.
573         * varasm.c (default_strip_name_encoding): New.
574
575         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
576         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
577         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
578         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
579         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
580         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
581         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
582         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
583         config/v850/v850.h: Use the hook, not the macro.
584
585         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
586         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
587         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
588         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
589         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
590         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
591         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
592         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
593         config/v850/v850.c, config/v850/v850.h:
594         Move STRIP_NAME_ENCODING to out-of-line function and add
595         TARGET_STRIP_NAME_ENCODING.
596
597         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
598         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
599         with TARGET_STRIP_NAME_ENCODING referencing existing function;
600         make function static.
601
602         * xcoffout.c: Include target.h
603         * Makefile.in (xcoffout.o): Update.
604
605         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
606         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
607         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
608         reloc argument unused.
609         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
610
611         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
612         STRIP_NAME_ENCODING docs.
613
614 2002-05-19  Andreas Jaeger  <aj@suse.de>
615
616         * gengenrtl.c: Add prototype for excluded_rtx.
617
618         * real.h: Add prototype for exact_real_truncate.
619
620 2002-05-18  Richard Henderson  <rth@redhat.com>
621
622         * system.h (ENCODE_SECTION_INFO): Poison it.
623         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
624         * target.h (encode_section_info): New.
625         * varasm.c (make_decl_rtl, output_constant_def): Use it.
626         * hooks.c (hook_tree_int_void): New.
627         * hooks.h: Declare it.
628
629         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
630         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
631         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
632         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
633         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
634         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
635         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
636         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
637         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
638         config/mcore/mcore-protos.h, config/mcore/mcore.c,
639         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
640         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
641         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
642         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
643         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
644         referencing existing function.  Make function static.
645
646         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
647         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
648         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
649         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
650         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
651         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
652         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
653         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
654         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
655         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
656         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
657         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
658         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
659         Move ENCODE_SECTION_INFO to out-of-line function and add
660         TARGET_ENCODE_SECTION_INFO.
661
662         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
663         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
664
665         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
666         from SUBTARGET_*
667         (switch_to_section): Replace in_rdata case with in_readonly_data.
668
669         * config/h8300/h8300.c (h8300_encode_label): Make static.
670         * config/h8300/h8300-protos.h: Update.
671
672         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
673         from rs6000_encode_section_info; make static.
674         (rs6000_xcoff_encode_section_info): New.
675
676         * config/v850/v850.c (v850_encode_data_area): Make static.
677         * config/v850/v850-protos.h: Update.
678
679         * config/vax/vax.c: Include flags.h.
680         (vms_select_section): Fix typo.
681
682         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
683         ENCODE_SECTION_INFO docs.
684
685 2002-05-18  Richard Henderson  <rth@redhat.com>
686
687         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
688         REGISTER_TARGET_PRAGMAS.
689         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
690
691         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
692
693 2002-05-18  Richard Henderson  <rth@redhat.com>
694
695         * system.h (SELECT_RTX_SECTION): Poison.
696         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
697         * target.h (select_rtx_section): New.
698         * varasm.c (output_constant_pool): Use it.
699         (default_select_rtx_section, default_elf_select_rtx_section): New.
700         * output.h: Declare them.
701
702         * config/darwin.h (SELECT_RTX_SECTION): Move ...
703         * config/darwin.c (machopic_select_rtx_section): ... here.
704         * config/darwin-protos.h: Update.
705
706         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
707         * config/nextstep.c (machopic_select_rtx_section): ... here.
708         (nextstep_select_section): Rename variable to avoid macro clash.
709         * config/nextstep-protos.h: Update.
710
711         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
712         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
713         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
714         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
715         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
716         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
717         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
718         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
719         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
720         (SELECT_RTX_SECTION): Remove.
721
722         * config/darwin.h, config/elfos.h, config/nextstep.h,
723         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
724         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
725         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
726         config/sparc/lynx.h, config/xtensa/xtensa.c
727         (TARGET_ASM_SELECT_RTX_SECTION): New.
728
729         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
730         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
731         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
732         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
733         (ia64_aix_select_rtx_section): New.
734         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
735         redefining.
736         * config/mips/mips.c (mips_select_rtx_section): Make static.
737         Support ELF SHF_MERGE features.
738         * config/mips/mips-protos.h: Update.
739         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
740         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
741         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
742         make static, fall back to default_elf_select_rtx_section.
743         * config/rs6000/rs6000-protos.h: Update.
744         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
745         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
746         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
747         * config/romp/romp.c (romp_select_rtx_section): New.
748         * config/s390/s390.c (s390_select_rtx_section): New.
749         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
750         declarations before target macro definition.
751         (xtensa_emit_call): Use static buffer.
752         (xtensa_select_rtx_section): New.
753         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
754         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
755         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
756
757         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
758         SELECT_RTX_SECTION docs.
759
760 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
761
762         * i386.md (movsi/movdi): Fix template.
763         (sse2 patterns): Set attributes consistently.
764
765         * i386.md (pushqi2, ashrqi_*): Fix constraint.
766
767 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
768
769         * optabs.c (complex_part_zero_p): New.
770         * (expand_cmplxdiv_straight): Use it.
771         * (expand_cmplxdiv_wide): Ditto.
772         * (expand_binop): Ditto.
773
774 2002-05-18  Richard Henderson  <rth@redhat.com>
775
776         * final.c (HAVE_READONLY_DATA_SECTION): New.
777         (shorten_branches): Use it instead of ifdefs.
778         * varasm.c (enum in_section): Add in_readonly_data.
779         (text_section, data_section): Tidy.
780         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
781
782         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
783         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
784         (READONLY_DATA_SECTION): Don't undef.
785
786         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
787         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
788         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
789
790         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
791         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
792         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
793         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
794
795         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
796         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
797         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
798         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
799         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
800         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
801         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
802         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
803         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
804
805         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
806         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
807         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
808         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
809         config/pa/pa64-hpux.h, config/sparc/litecoff.h
810         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
811
812         * config/elfos.h, config/netware.h, config/svr3.h,
813         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
814         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
815         config/h8300/h8300.h, config/i386/i386-interix.h,
816         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
817         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
818
819         * config/elfos.h, config/netware.h, config/svr3.h,
820         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
821         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
822         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
823         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
824
825         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
826         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
827         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
828         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
829         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
830         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
831         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
832         config/rs6000/sysv4.h, config/v850/v850.h
833         (EXTRA_SECTIONS): Remove in_const/in_rdata.
834         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
835
836         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
837         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
838         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
839         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
840         * config/alpha/alpha.c (alpha_start_function): Likewise.
841         (alpha_write_linkage): Likewise.
842         * config/m32r/m32r.c (m32r_select_section): Likewise.
843         * config/m88k/m88k.c (m88k_select_section): Likewise.
844         * config/mips/mips.c (mips_select_rtx_section): Likewise.
845         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
846         (rs6000_elf_select_section): Likewise.
847         * config/v850/v850.c (v850_select_section): Likewise.
848
849         * config/1750a/1750a.h, config/i860/sysv3.h
850         (READONLY_DATA_SECTION_ASM_OP): New.
851         READONLY_DATA_SECTION_ASM_OP.
852         * config/i386/interix.c, config/i386/winnt.c
853         (i386_pe_unique_section): Always use .rdata prefix.
854         * config/pa/som.h (readonly_data): Always switch to read-only section.
855         (READONLY_DATA_SECTION): Predicate on flag_pic.
856         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
857         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
858         (READONLY_DATA_SECTION): Update.
859
860 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
861
862         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
863         is used without -Wformat.
864         * c-common.h (warn_format_zero_length): Declare extern.
865         * c-decl.c (warn_options): Add "format-zero-length".
866         * c-format.c (warn_format_zero_length): Declare.
867         (set_Wformat): Set warn_format_zero_length for -Wformat.
868         (check_format_info): Only warn about zero-length formats if
869         warn_format_zero_length is true.  Include the format type
870         name in the warning message.
871         * doc/invoke.texi: Document -Wformat-zero-length.
872         * testsuite/gcc.dg/format/zero-length-1.c: New test.
873
874 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
875
876         * timevar.c: Fix formatting.
877         * tlink.c: Likewise.
878         * toplev.c: Likewise.
879         * tree-dump.c: Likewise.
880         * tree-inline.c: Likewise.
881
882 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
883
884         * cppinit.c (cpp_post_options): If preprocessed, turn off
885         traditional.  If traditional, turn off column numbers.
886         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
887         * cpptrad.c (handle_newline): Update line_base.
888         (skip_comment): Handle -Wcomment.
889
890 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
891
892         * cppinit.c (struct builtin): Remove unused fields.
893         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
894         (operator_array): New - was second half of builtin_array.
895         (init_builtins): Simplify loop over builtin_array/operator_array.
896
897 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
898
899         * defaults.h (UNIQUE_SECTION): Remove.
900         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
901
902 2002-05-17  Richard Henderson  <rth@redhat.com>
903
904         * expr.c (init_expr_once): Don't use start/end_sequence.
905         Use rtx_alloc instead of emit_insn.
906         * toplev.c (lang_dependent_init): Run init_expr_once here ...
907         (lang_independent_init): ... not here.
908
909 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
910
911         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
912
913 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
914
915         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
916         for fixed registers, possibly used for global register variables.
917         (initial_elimination_offset, avr_output_function_prologue,
918         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
919
920 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
921
922         * Makefile.in: Update for cpptrad.c.
923         * cpphash.h (struct cpp_buffer): New members for buffer
924         overlays.
925         (struct cpp_reader): New members for traditional output.
926         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
927         * cppinit.c (cpp_create_reader): Set trad_line.
928         (cpp_destroy): Free trad_out_base if used.
929         (cpp_read_main_file): Overlay an empty buffer if traditional.
930         (cpp_finish_options): Don't do builtins.
931         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
932         (cpp_handle_option): Handle it.
933         * cpplex.c (continue_after_nul): New.
934         (_cpp_lex_direct): Use handle_nul.
935         * cpplib.h (struct cpp_options): New traditional option.
936         * cpptrad.c: New file.
937
938 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
939
940         * c-common.c (c_common_init_options): Use C89 for Objective-C,
941         and set the options flag.
942         * cppinit.c (lang_flags): Remove objc.
943         (lang_defaults): Remove OBJC and OBJCXX.
944         (set_lang): Update.
945         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
946         (cpp_handle_option): Remove -+ and -lang-objc++.
947         For ObjC, just set a flag.
948         (print_help): Update.
949         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
950
951 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
952
953         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
954         bootstrap with -mips3.
955
956 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
957
958         * final.c: Fix formatting.
959         * fix-header.c: Likewise.
960         * flow.c: Likewise.
961         * fold-const.c: Likewise.
962         * function.c: Likewise.
963
964 2002-05-17  David S. Miller  <davem@redhat.com>
965
966         PR c/6689, PR optimization/6615
967         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
968         and make it a pointer to rtx.  Update comments.
969         (update_equiv_regs): When scanning for equivalences, record
970         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
971         it while making the equiv replacements.
972
973 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
974
975         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
976
977 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
978
979         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
980         when encoding visibility into SYMBOL_REF_FLAG.
981
982 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
983
984         * expr.c (force_operand): Fix reversed move.
985
986 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
987
988         * doc/install.texi (Testing): Mention two common DejaGnu warnings
989         that can be ignored.
990
991 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
992
993         * doc/install.texi (Final install): Recommend to install into a
994         "clean" target directory.
995
996 2002-05-17  Richard Henderson  <rth@redhat.com>
997
998         * config/ia64/ia64.md: Use braced strings instead of quoted strings
999         for code blocks.  Tidy whitespace.
1000
1001 2002-05-17  Richard Henderson  <rth@redhat.com>
1002
1003         * hooks.c (hook_tree_bool_false): New.
1004         * hooks.h: Declare it.
1005         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
1006         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
1007         * target.h (select_section, unique_section): New.
1008         (in_small_data_p): New.
1009         * varasm.c (resolve_unique_section): Use hooks instead of macros.
1010         (variable_section, output_constant_def_contents): Likewise.
1011         (default_select_section, default_unique_section): New.
1012         (categorize_decl_for_section, default_elf_select_section): New.
1013         * output.h: Declare them.
1014
1015         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
1016         (TARGET_ASM_SELECT_SECTION): New.
1017         (SELECT_SECTION): Move ...
1018         * config/darwin.c (machopic_select_section): ... here.
1019         * config/darwin-protos.h: Update.
1020
1021         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
1022         (SELECT_SECTION): Move ...
1023         * config/nextstep.c (nextstep_select_section): ... here.
1024         * config/nextstep-protos.h: Update.
1025
1026         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
1027         (TARGET_ASM_SELECT_SECTION): New.
1028         * config/svr3.h (SELECT_SECTION): Remove.
1029
1030         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
1031         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
1032         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
1033         (alpha_encode_section_info): Use it.
1034         * config/alpha/alpha-protos.h: Update.
1035         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
1036         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1037         (TARGET_ASM_SELECT_SECTION): New.
1038         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
1039
1040         * config/arm/pe.h (UNIQUE_SECTION): Remove.
1041         (TARGET_ASM_UNIQUE_SECTION): New.
1042
1043         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
1044         (avr_unique_section): Rename from unique_section; make static.
1045         * config/avr/avr-protos.h: Update.
1046         * config/avr/avr.h (UNIQUE_SECTION): Remove.
1047
1048         * config/c4x/c4x.h (SELECT_SECTION): Remove.
1049
1050         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
1051         (TARGET_ASM_UNIQUE_SECTION): New.
1052         * config/i386/i386-interix.h: Likewise.
1053         * config/i386/win32.h: Likewise.
1054         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
1055         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
1056         * config/i386/sco5.h (SELECT_SECTION): Remove.
1057         (TARGET_ASM_SELECT_SECTION): New.
1058         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
1059
1060         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
1061         instead of SELECT_SECTION.
1062         * config/m68k/dpx2.h: Likewise.
1063         * config/rs6000/lynx.h: Likewise.
1064
1065         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1066         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1067         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
1068         (ia64_in_small_data_p): New.
1069         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
1070         (ia64_aix_select_section, ia64_aix_unique_section): New.
1071         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
1072         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1073
1074         * config/m32r/m32r.h (SELECT_SECTION): Remove.
1075         (TARGET_ASM_SELECT_SECTION): New.
1076         * config/m32r/m32r.c (m32r_select_section): Take align argument.
1077         * config/m32r/m32r-protos.h: Update.
1078
1079         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
1080         (SELECT_SECTION): Move ...
1081         * config/m88k/m88k.c (m88k_select_section): ... here.
1082
1083         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
1084         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
1085         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
1086         (mcore_unique_section): Make static.
1087         * config/mcore/mcore-protos.h: Update.
1088
1089         * config/mips/elf.h (UNIQUE_SECTION): Remove.
1090         (TARGET_ASM_UNIQUE_SECTION): New.
1091         * config/mips/elf64.h: Likewise.
1092         * config/mips/iris6gld.h: Likewise.
1093         * config/mips/linux.h: Likewise.
1094         * config/mips/mips-protos.h: Update.
1095         * config/mips/mips.c (mips_select_section): Add align argument.
1096         * config/mips/mips.h (SELECT_SECTION): Remove.
1097         (TARGET_ASM_SELECT_SECTION): New.
1098
1099         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1100         * config/mmix/mmix.c (mmix_select_section): Remove.
1101         (mmix_unique_section): Remove.
1102         * config/mmix/mmix-protos.h: Update.
1103
1104         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
1105         (SELECT_SECTION): Move ...
1106         * config/pa/pa.c (pa_select_section): ... here.
1107         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
1108
1109         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
1110         from rs6000_select_section and make static.
1111         (rs6000_elf_unique_section): Similarly.
1112         (rs6000_xcoff_select_section): From xcoff.h.
1113         (rs6000_xcoff_unique_section): Likewise.
1114         * config/rs6000/rs6000-protos.h: Update.
1115         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1116         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1117         * config/rs6000/xcoff.h: Likewise.
1118
1119         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
1120         (SELECT_SECTION): Move ...
1121         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
1122
1123         * config/v850/v850.h (SELECT_SECTION): Move ...
1124         * config/v850/v850.c (v850_select_section): ... here.
1125         (TARGET_ASM_SELECT_SECTION): New.
1126
1127         * config/vax/vms.h (SELECT_SECTION): Move ...
1128         * config/vax/vax.c (vms_select_section): ... here.
1129         (TARGET_ASM_SELECT_SECTION): New.
1130
1131         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
1132         for the target hooks.
1133
1134 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
1135
1136         * config/arm/arm.c (emit_multi_reg_push): Do not set
1137         RTX_FRAME_RELATED_P on the SEQUENCE.
1138
1139 2002-05-16  Richard Henderson  <rth@redhat.com>
1140
1141         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
1142         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
1143
1144 2002-05-16  Richard Henderson  <rth@redhat.com>
1145
1146         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
1147
1148         * config/ia64/ia64.c (saveable_obstack): Do not declare.
1149
1150 2002-05-16  Richard Henderson  <rth@redhat.com>
1151
1152         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
1153         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
1154         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
1155         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
1156         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
1157         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
1158         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
1159         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
1160         Revert "Basic block renumbering removal", and two followup patches.
1161
1162 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
1163
1164         * lcm.c (optimize_mode_switching): Revert previous change.
1165
1166 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1167
1168         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
1169         with only extant block numbers.
1170
1171 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
1172
1173         * lcm.c (optimize_mode_switching): Fix typo.
1174
1175 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1176
1177         * flow.c (calculate_global_regs_live): Queue blocks in program order.
1178
1179 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1180
1181         * doc/install.texi (Configuration): Document PWDCMD.
1182
1183 2002-05-16  Dale Johannesen  <dalej@apple.com>
1184
1185         * combine.c (cant_combine_insn_p):  Reenable combinations
1186         involving hard regs unless CLASS_LIKELY_SPILLED_P.
1187
1188 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1189
1190         * c-common.c (cb_register_builtins): Handle more built-ins
1191         here rather than in gcc.c specs.
1192         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
1193         (cpp_options): Pass -O flags even when only preprocessing.
1194         * toplev.c (set_fast_math_flags): New prototype.
1195         (fast_math_flags_set_p): New.
1196         (set_no_fast_math_flags): Remove.
1197         (decode_f_option): Update.
1198         * toplev.h (set_fast_math_flags): Update.
1199         (fast_math_flags_set_p): New.
1200         (set_no_fast_math_flags): Remove.
1201 config:
1202         * c4x/c4x.c (c4x_override_options): Update.
1203
1204 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
1205
1206         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
1207         Default-define here.
1208         (builtin_define_with_value): Can now wrap the expansion in
1209         quotation marks if such is wanted.
1210         (cb_register_builtins): Update calls to builtin_define_with_value.
1211         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
1212         here.
1213         (c_common_init): Set options->stdc_0_in_system_headers.
1214         * c-lex.h: Update prototype of builtin_define_with_value.
1215         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
1216         and REGISTER_PREFIX.
1217
1218         * cppinit.c (VERS, ULP, C, X): Kill.
1219         (builtin_array): Remove entries for __VERSION__,
1220         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
1221         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
1222         a constant.
1223         (init_builtins): Kill off a bunch of now-dead code.
1224         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
1225         -fno-leading-underscore.
1226         (cpp_handle_option): Remove code to set user_label_prefix.
1227         (cpp_post_options): Likewise.
1228
1229         * cpplib.h (struct cpp_options): Remove user_label_prefix.
1230         (stdc_0_in_system_headers): New.
1231         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
1232         stdc_0_in_system_headers) too to decide the value of __STDC__.
1233
1234         * tradcpp.c (user_label_prefix): Kill.
1235         (main): Remove code handling -f(no-)leading-underscore.
1236         (initialize_builtins): Don't define __REGISTER_PREFIX__
1237         or __USER_LABEL_PREFIX__.
1238         (install_value): Wrap compound statement in dummy loop so the
1239         macro works properly in an if statement.
1240
1241
1242 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
1243
1244         * loop.h (struct loop_info): Add member has_prefetch.
1245         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
1246         (prescan_loop): Initialize has_prefetch.
1247         (struct prefetch_info): Change prefetch_in_loop and
1248         prefetch_before_loop from bit fields to ints.
1249         (emit_prefetch_instructions): Several small fixes.
1250         (check_dbra_loop): Don't reverse loop that uses prefetch.
1251
1252 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1253
1254         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
1255         * configure.in: Likewise.
1256         * fixinc/check.tpl: Likewise.
1257         * fixinc/fixinc.dgux: Likewise.
1258         * fixinc/fixinc.svr4: Likewise.
1259         * fixinc/fixinc.winnt: Likewise.
1260         * fixinc/fixincl.sh: Likewise.
1261         * fixproto: Likewise.
1262         * configure: Regenerate.
1263
1264 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1265
1266         Basic block renumbering removal:
1267         * basic_block.h (struct basic_block_def): Renamed index to sindex,
1268         added prev_bb and next_bb fields.
1269         (n_basic_blocks): Renamed to num_basic_blocks.
1270         (last_basic_block): New, index of last basic block.
1271         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
1272         traversing basic block chain.
1273         (BLOCK_NUM): index -> sindex.
1274         (create_basic_block_structure, create_basic_block): Declaration changed.
1275         (debug_num2bb): Declare.
1276         (expunge_block_nocompact): Declaration removed.
1277         (link_block, unlink_block, compact_blocks): Declare.
1278         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
1279         * cfg.c (entry_exit_blocks): Initialize new fields.
1280         (clear_edges, alloc_block, expunge_block, cached_make_edge,
1281         redirect_edge_pred, dump_flow_info, dump_edge_info,
1282         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
1283         free_aux_for_edges): Modified.
1284         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
1285         (expunge_block_nocompact): Removed.
1286         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
1287         find_unreachable_blocks, create_edge_list, print_edge_list,
1288         verify_edge_list, flow_edge_list_print, remove_fake_successors,
1289         remove_fake_edges, flow_reverse_top_sort_order_compute,
1290         flow_depth_first_order_compute, flow_preorder_transversal_compute,
1291         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
1292         flow_dfs_compute_reverse_execute): Modified.
1293         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
1294         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
1295         Modified.
1296         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1297         merge_blocks_move_predecessor_nojumps,
1298         merge_blocks_move_successor_nojumps, merge_blocks,
1299         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
1300         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
1301         * cfglayout.c (skip_insns_after_block, label_for_bb,
1302         record_effective_endpoints, scope_to_insns_finalize,
1303         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
1304         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
1305         cfg_layout_duplicate_bb): Modified.
1306         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
1307         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1308         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
1309         flow_loops_find, flow_loop_outside_edge_p): Modified.
1310         * cfgrtl.c (create_basic_block_structure, create_basic_block,
1311         flow_delete_block, compute_bb_for_insn, split_block,
1312         try_redirect_by_replacing_jump, redirect_edge_and_branch,
1313         force_nonfallthru_and_redirect, tidy_fallthru_edge,
1314         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
1315         commit_edge_insertions, commit_edge_insertions_watch_calls,
1316         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
1317         purge_all_dead_edges): Modified.
1318         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
1319         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
1320         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
1321         Modified.
1322         * conflict.c (conflict_graph_compute): Modified.
1323         * df.c (FOR_ALL_BBS): Removed.
1324         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
1325         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
1326         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
1327         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
1328         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
1329         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
1330         * final.c (compute_alignments, final_scan_insn): Modified.
1331         * flow.c (verify_local_live_at_start, update_life_info,
1332         update_life_info_in_dirty_blocks, free_basic_block_vars,
1333         delete_noop_moves, calculate_global_regs_live,
1334         initialize_uninitialized_subregs, allocate_bb_life_data,
1335         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
1336         mark_used_reg, count_or_remove_death_notes): Modified.
1337         * function.c (thread_prologue_and_epilogue_insns): Modified.
1338         * gcse.c (struct null_pointer_info): Change typo of current_block
1339         to basic_block.
1340         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
1341         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
1342         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
1343         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
1344         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
1345         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
1346         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
1347         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
1348         pre_delete, one_pre_gcse_pass, compute_transpout,
1349         invalidate_nonnull_info, delete_null_pointer_checks_1,
1350         free_code_hoist_mem, compute_code_hoist_vbeinout,
1351         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
1352         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
1353         compute_store_table, build_store_vectors, insert_insn_start_bb,
1354         insert_store, replace_store_insn, free_store_memory, store_motion):
1355         Modified.
1356         * global.c (global_alloc, global_conflicts, mark_elimination,
1357         build_insn_chain): Modified.
1358         * graph.c (print_rtl_graph_with_bb): Modified.
1359         * haifa-sched.c (sched_init): Modified.
1360         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
1361         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
1362         if_convert): Modified.
1363         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
1364         compute_insert_delete, pre_edge_lcm, compute_available,
1365         compute_farthest, compute_nearerout, compute_rev_insert_delete,
1366         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
1367         Modified.
1368         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
1369         * loop.c (loop_dump_aux): Modified.
1370         * predict.c (combine_predictions_for_insn, estimate_probability,
1371         last_basic_block_p, process_note_prediction, process_note_predictions,
1372         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
1373         expensive_function_p, estimate_bb_frequencies,
1374         compute_function_frequency): Modified.
1375         * print-rtl.c (print_rtx): Modified.
1376         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
1377         get_exec_counts, compute_branch_probabilities, compute_checksum,
1378         branch_prob, find_spanning_tree): Modified.
1379         * recog.c (split_all_insns, peephole2_optimize): Modified.
1380         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
1381         convert_regs_1, convert_regs_2, convert_regs): Modified.
1382         * regclass.c (scan_one_insn, regclass): Modified.
1383         * regmove.c (mark_flags_life_zones, regmove_optimize,
1384         combine_stack_adjustments): Modified.
1385         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
1386         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
1387         * reorg.c (dbr_schedule): Modified.
1388         * resource.c (find_basic_block, init_resource_info): Modified.
1389         * sbitmap.c (sbitmap_intersection_of_succs,
1390         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
1391         sbitmap_union_of_preds): Modified.
1392         * sched-deps.c (init_dependency_caches): Modified.
1393         * sched-ebb.c (schedule_ebbs): Modified.
1394         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
1395         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
1396         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
1397         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
1398         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
1399         ssa_const_prop): Modified.
1400         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
1401         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
1402         * ssa.c (remove_phi_alternative, find_evaluations,
1403         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
1404         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
1405         make_regs_equivalent_over_bad_edges,
1406         make_equivalent_phi_alternatives_equival,
1407         compute_conservative_reg_partition,
1408         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
1409         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
1410         Modified.
1411
1412 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
1413
1414         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
1415
1416 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
1417
1418         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
1419         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
1420         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
1421         calling CONSTANT_POOL_ADDRESS_P.
1422         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
1423         to decide whether to define __arm__ or __thumb.
1424         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
1425         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
1426
1427 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1428
1429         * config/arc/arc.h (CPP_PREDEFINES): Remove.
1430         (CPP_SPEC): Update.
1431         (TARGET_CPU_CPP_BUILTINS): New.
1432
1433 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1434
1435         * cpphash.h (cpp_macro): Move here, and make expansion a union.
1436         * cppmacro.c (cpp_macro): Remove.
1437         (enter_macro_context, replace_args, warn_of_redefinition,
1438         _cpp_create_definition, cpp_macro_definition): Update.
1439
1440 2002-05-16  Jason Merrill  <jason@redhat.com>
1441
1442         * config/mips/mips.c (mips_output_external): Don't do sdata
1443         optimization for a variable with DECL_COMDAT set.
1444
1445 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1446
1447         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
1448         Cleanups for accepting modifiers on pointers.
1449         Fix predicate typos.
1450         Allow long pointers as well as int pointers.
1451
1452 2002-05-15  Richard Henderson  <rth@redhat.com>
1453
1454         * varasm.c (merge_weak): Remove special case for extern and common.
1455
1456 2002-05-15  Matt Hiller  <hiller@redhat.com>
1457
1458         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
1459         XFAILing.
1460         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
1461         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
1462         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
1463         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
1464         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
1465         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
1466
1467 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1468
1469         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
1470
1471 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1472
1473         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
1474         ("altivec_mfvscr"): Read from VSCR.
1475
1476         Add vscr sets for the following insns: altivec_vctuxs,
1477         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
1478         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
1479         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
1480         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
1481         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
1482         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
1483         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
1484         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
1485         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
1486         altivec_vsum2sws, altivec_vsumsws.
1487
1488         * config/rs6000/rs6000.h: Add VSCR fixed register.
1489         (CALL_REALLY_USED_REGISTERS): Add vscr.
1490         (CALL_USED_REGISTERS): Same.
1491         (FIXED_REGISTERS): Same.
1492         (REG_ALLOC_ORDER): Same.
1493         (reg_class): Add VSCR_REGS.
1494         (REG_CLASS_NAMES): Same.
1495         (REG_CLASS_CONTENTS): Same.
1496         (VSCR_REGNO): New.
1497         (REGISTER_NAMES): Add vscr.
1498         (DEBUG_REGISTER_NAMES): Same.
1499         (ADDITIONAL_REGISTER_NAMES): Same.
1500         (FIRST_PSEUDO_REGISTER): Increment.
1501         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
1502
1503 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
1504
1505         * fold-const.c (fold): Fix a typo.
1506
1507 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
1508
1509         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
1510         comparison against the highest or lowest integer value before
1511         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
1512         transformation and that of an unsigned comparison against 0
1513         right after.
1514
1515 2002-05-15  Richard Henderson  <rth@redhat.com>
1516
1517         * varasm.c (merge_weak): Error for any weakening after definition.
1518         Adjust weakening after use warning to catch more cases.
1519         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
1520         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
1521
1522 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
1523
1524         * invoke.texi (-malign-double): Re-add lost warning.
1525
1526         * i386-protos.h (x86_output_mi_thunk): Declare.
1527         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
1528         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
1529
1530         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
1531         when flag_asynchronous_unwind_tables is set.
1532
1533         * flags.h (flag_reorder_functions): Declare.
1534         * function.c (prepare_function_start): Initialize frequnecy.
1535         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
1536         * Makefile.in (predict.o): Add dependency on target.h and params.h
1537         * defaults.h (HOT_TEXT_SECTION_NAME,
1538         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
1539         * predict.c (choose_function_section): New function.
1540         (estimate_bb_frequencies): Use it.
1541         * toplev.c (flag_reorder_functions): New global variable.
1542         (lang_independent_options): New.
1543         (parse_options_and_default_flags): Set.
1544         * varasm.c (assemble_start_function): Bypass functdion alignment
1545         for never executed functions.
1546         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
1547         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
1548         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
1549         Document.
1550
1551         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
1552
1553         * predict.c: Inlude profile.h
1554         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
1555         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
1556         Use the information about maximal counter in the program.
1557
1558         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
1559
1560         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
1561         probably_never_executed_bb_p): New functions.
1562         * cfgcleanup.c (outgoing_edges_match): Use them.
1563         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
1564         (maybe_hot_bb_p, probably_cold_bb_p,
1565         probably_never_executed_bb_p): New functions.
1566
1567         * function.h (function): Add new field function_frequency.
1568         * predict.c (compute_function_frequency): New function.
1569         (estimate_probability): Call it.
1570
1571 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
1572
1573         PR optimization/5172, optimization/5200
1574         * gcse.c (gcse_main): Disable store_motion.
1575
1576 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
1577
1578         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
1579         (c_common_nodes_and_builtins): Use it.
1580         (builtin_define_with_value): New function.
1581         (cb_register_builtins): Define __SIZE_TYPE__,
1582         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
1583         using builtin_define_with_value.  Use consistent notation when
1584         defining __GXX_WEAK__.
1585         (WCHAR_TYPE_SIZE): Don't redefine.
1586         (combine_strings): Don't use WCHAR_TYPE_SIZE.
1587
1588         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
1589         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
1590         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
1591         * tradcpp.c (initialize_builtins): Likewise.
1592         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
1593
1594         * c-lex.h (builtin_define_with_value): Prototype.
1595         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
1596         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
1597         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
1598
1599         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
1600         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
1601         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
1602         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
1603         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
1604         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
1605         config/sparc/sol2-bi.h, config/sparc/sparc.h:
1606         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
1607         to __SIZE_TYPE__ etc from all spec strings. When this makes
1608         extra specs empty, delete them.
1609
1610 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1611
1612         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
1613         for PA8000 or generating dwarf2 call frame information.
1614         (output_call): Remove DO_FRAME_NOTES check from return pointer
1615         optimization.
1616         (following_call): Return 0 when scheduling for PA8000 or generating
1617         dwarf2 call frame information.  Revise comment.
1618
1619 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1620
1621 config/alpha:
1622         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
1623         and __IEEE_FP_INEXACT as appropriate.
1624         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
1625         (CPP_SPEC): Remove ieee defines.
1626         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
1627
1628 2002-05-14  Richard Henderson  <rth@redhat.com>
1629
1630         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
1631         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
1632
1633 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1634
1635         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
1636         (CPP_SPEC): Update.
1637         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
1638         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
1639         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
1640         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
1641         (EXTRA_SPECS): Update.
1642         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
1643         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
1644         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
1645         define TARGET_OS_CPP_BUILTINS if necessary.
1646
1647 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1648
1649         * gcc.c (cpp_options): Must pass -m* and -f* options
1650         to the front end even when only preprocessing.
1651         (cc1_options): Remove redundant -lang-c.
1652         * tradcpp.c (main): Ignore -m options.
1653 objc:
1654         * lang-specs.h: Similarly.
1655
1656 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
1657
1658         * genautomata.c (transform_3): Add code for transformation
1659         `(A,B,...)+C -> A+C,B,...'.
1660
1661 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
1662
1663         * final.c (end_final): Do not output profile_arcs constructor, when
1664         no functions are instrumented.
1665
1666 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
1667
1668         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
1669
1670 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1671
1672         * doc/install.texi: Remove special markup originally required for
1673         HTML generation with texi2html.
1674
1675 2002-05-14  Andreas Schwab  <schwab@suse.de>
1676
1677         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
1678         SELECT_SECTION.
1679         (UNIQUE_SECTION): Define to get small data correctly.
1680
1681         * varasm.c (resolve_unique_section): Add third parameter
1682         flag_function_or_data_sections and use it instead of
1683         flag_function_sections.
1684         (assemble_start_function): Pass flag_function_sections.
1685         (asm_emit_uninitialised): Pass flag_data_sections.
1686         (assemble_variable): Likewise.
1687
1688 2002-05-14  Richard Henderson  <rth@redhat.com>
1689
1690         * config/i386/i386.md: Use define_constants for unspec numbers.
1691         * config/i386/i386.c: Likewise.
1692
1693 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1694
1695         * doc/contrib.texi: Update my entry.
1696
1697 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
1698
1699         * fixinc/inclhack.def (winidss_valist): Limit applicability.
1700         * fixinc/fixincl.x: Regenerated.
1701         * fixinc/tests/base/math.h: Update.
1702         * fixinc/tests/base/testing.h: Likewise.
1703
1704 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
1705
1706         * genattr.c (gen_attr): Don't emit a comma after the last
1707         enumerator.
1708
1709 2002-05-13  Richard Henderson  <rth@redhat.com>
1710
1711         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
1712         by non-local gotos.
1713         * recog.c (peephole2_optimize): Likewise.
1714
1715 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
1716
1717         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
1718         input to O_BINARY.
1719
1720 2002-05-13  Jeffrey A Law  (law@redhat.com)
1721
1722         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
1723         Update prototype and callers.
1724         (propagate_one_insn): Stack pointer adjustments kill MEMs on
1725         the mem_set_list which reference the stack pointer, as do
1726         calls to constant functions as they may clobber outgoing
1727         argument space.
1728
1729         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
1730
1731         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
1732         (ia32_multipass_dfa_lookahead): New function.
1733
1734 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1735
1736         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
1737         (translate_options): Remove 'V'.
1738         (process_command): Similarly.
1739 doc:
1740         * invoke.texi: Remove documentation of 'V'.
1741
1742 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
1743
1744         * config/s390/linux.h: Revert 2002-04-22 changes.
1745
1746 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
1747
1748         * config/fr30/fr30.md: Only allow splits of immediate loads
1749         if the destination is a register.
1750
1751 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1752
1753         * Makefile.in (c-common.o, cppinit.o): Update.
1754         * c-common.c: Include except.h.
1755         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
1756         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
1757         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
1758         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
1759         CPP_PREDEFINES): Handle here.
1760 config:
1761         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
1762         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
1763         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
1764         TARGET_OS_CPP_BUILTINS.
1765         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
1766         (CPP_SPEC, EXTRA_SPECS): Update.
1767         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
1768         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
1769         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
1770         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
1771         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
1772 doc:
1773         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
1774         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
1775
1776 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
1777
1778         * emit-rtl.c (global_rtl): Update comment.
1779         (const_double_htab, const_double_htab_hash,
1780         const_double_htab_hash, lookup_const_double): New.
1781         (const_int_htab_hash, const_int_htab_eq): Remove const
1782         qualifiers, which cause tons of warnings with RTL checking on.
1783         (gen_rtx_CONST_DOUBLE): Deleted.
1784         (const_double_from_real_value): New function - bears some
1785         resemblance to the former immed_real_const_1.
1786         (immed_double_const): Moved here from varasm.c and
1787         simplified.
1788         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
1789         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
1790         (gen_rtx): Use immed_double_const.
1791         (init_emit_once): Initialize the const_double_htab.  Use
1792         REAL_VALUE_FROM_INT where possible.  Can now use
1793         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
1794         * varasm.c (struct varasm_status): Remove x_const_double_chain.
1795         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
1796         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
1797         (init_varasm_status, mark_varasm_status): Don't touch
1798         x_const_double_chain.
1799
1800         * output.h: Delete prototype for clear_const_double_mem.
1801         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
1802         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
1803         const_double_from_real_value, not immed_real_const_1, and use
1804         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
1805         CONST_DOUBLE_ATOF.
1806         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
1807         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
1808         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
1809         (gen_rtx_REG): Second arg is unsigned.
1810
1811         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
1812         (excluded_rtx): New, return true for CONST_DOUBLE.
1813         (genmacro): Write nothing for excluded codes.
1814         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
1815         * expr.c (expand_expr): Likewise.
1816         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
1817         CONST_DOUBLE_CHAIN.
1818         * toplev.c (rest_of_compilation): Don't call
1819         clear_const_double_mem.
1820
1821         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
1822         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
1823         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
1824         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
1825         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
1826         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
1827         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
1828         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
1829
1830 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1831
1832         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
1833
1834 2002-05-12  Tom Tromey  <tromey@redhat.com>
1835
1836         * tree.h (copy_node): Don't mention TREE_PERMANENT.
1837
1838 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
1839
1840         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
1841         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
1842         * gensupport.h: Prototype new routines.
1843         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
1844         use of printf.
1845         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
1846         (next_comma_elt): Use scan_comma_elt.
1847
1848         * config/i386/i386.md: Use new attribute notation to break up
1849         long lines in define_attr forms.
1850
1851 2002-05-12  Richard Henderson  <rth@redhat.com>
1852
1853         * expr.c (compress_float_constant): New.
1854         (emit_move_insn): Use it.
1855         (float_extend_from_mem): New.
1856         (init_expr_once): Initialize it.
1857         * real.c (exact_real_truncate): New.
1858
1859         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
1860         dropped into memory; penalize for size.
1861         (RTX_COSTS): FLOAT_EXTEND is free.
1862         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
1863         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
1864
1865 2002-05-12  Richard Henderson  <rth@redhat.com>
1866
1867         * profile.h (profile_info): Add missing extern to declaration.
1868         * profile.c (profile_info): Define it.
1869
1870 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1871
1872         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
1873         used for DImode and TImode.
1874
1875 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
1876
1877         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
1878         fake a newline.
1879
1880 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
1881
1882         * config/rs6000/rs6000.c (rs6000_default_long_calls,
1883         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
1884         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
1885         (rs6000_override_options): Handle -m(no-)longcall.
1886         (init_cumulative_args, output_mi_thunk): Check for both
1887         longcall and shortcall attributes on the function.
1888         (rs6000_attribute_table): Add "shortcall".
1889         (rs6000_handle_longcall_attribute): Update comment.
1890         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
1891         altivec_expand_ternop_builtin): Add default clauses to switches
1892         to silence warnings.
1893
1894         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
1895         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
1896         (TARGET_OPTIONS): Add longcall and no-longcall.
1897
1898         * config/rs6000/rs6000.md (call_nonlocal_sysv,
1899         call_value_nonlocal_sysv): Split by alternatives.  One pair
1900         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
1901         the call cookie.  The other pair accepts only LR/CTR and has
1902         no restriction.
1903
1904         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
1905         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
1906         tmake_file.
1907         * config/rs6000/rs6000-c.c: New file.
1908         * config/rs6000/t-rs6000-c-rule: New file.
1909         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
1910         Prototype rs6000_pragma_longcall.
1911
1912         * doc/extend.texi: Document shortcall attribute.
1913         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
1914
1915 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1916
1917         * reorg.c (dbr_schedule): Remove unnecessary test.
1918
1919 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
1920
1921         * i386.md (testsi to testqi spliters): New.
1922
1923         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
1924
1925         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
1926
1927         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
1928
1929         * basic-block.h: New flag EDGE_CAN_FALLTHRU
1930         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
1931         that can be made fallthru.
1932
1933         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
1934
1935         * cfglayout.c (cleanup_unconditional_jumps): New static function.
1936         (cfg_layout_initialize): Use it.
1937
1938 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1939
1940         * config/avr/avr.c (avr_mcu_types): Update supported devices.
1941         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1942         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1943
1944 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1945
1946         * dbxout.c: Fix formatting.
1947         * dependence.c: Likewise.
1948         * df.c: Likewise.
1949         * diagnostic.c: Likewise.
1950         * doloop.c: Likewise.
1951         * dominance.c: Likewise.
1952         * doschk.c: Likewise.
1953         * dwarf2asm.c: Likewise.
1954         * dwarf2out.c: Likewise.
1955         * dwarfout.c: Likewise.
1956
1957 2002-05-10  Richard Henderson  <rth@redhat.com>
1958
1959         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
1960         Convert integers constants as needed.  Replace "nwords" field with
1961         "sizeof_bb".
1962         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
1963         * function.h: Fix typo in comment.
1964         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
1965
1966 2002-05-10  Roger Sayle  <roger@eyesopen.com>
1967
1968         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
1969         into the equivalent (signed char)c > 0.
1970
1971 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
1972
1973         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
1974         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
1975         (struct prefetch_info): Fix spelling of member bytes_accessed.
1976         (emit_prefetch_instructions): Make dump messages more regular;
1977         restructure code to add more dump messages; use new macros for
1978         heuristics. (There are no code generation changes in any of this).
1979
1980 2002-05-10  David S. Miller  <davem@redhat.com>
1981
1982         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
1983         (struct rtx_def): Update unchanging flag comment.
1984         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
1985         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
1986         to be handled to INSN too.
1987         (dbr_schedule): Likewise.
1988         * resource.c (next_insn_no_annul): Likewise.
1989
1990         * cse.c (rtx_cost): Remove multiplication by power of 2 special
1991         casing.
1992
1993 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1994
1995         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
1996         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
1997         (possibly) work around broken /bin/sh.
1998
1999 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2000
2001         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
2002         . as N64/N32 libgcc_s.so subdirs.
2003
2004 2002-05-10  David S. Miller  <davem@redhat.com>
2005
2006         * config/sparc/sparc.md: Use define_constants for unspec numbers.
2007
2008         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
2009         more accurately.
2010         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
2011         comment.
2012         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
2013         * doc/rtl.texi: Document these macros more accurately.
2014         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
2015         JUMP_INSNs and CALL_INSNs.
2016         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
2017         or INSN_FROM_TARGET_P if the code is appropriate.
2018
2019 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2020
2021         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
2022         before using SYMBOL_REF_FLAG (addr).
2023
2024         * config/avr/avr-protos.h (avr_io_address_p): Declare.
2025         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
2026         Make non-static.  Update all callers.
2027         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
2028         New insns to clear/set/test a single bit in I/O address space.
2029
2030 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2031
2032         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
2033
2034 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2035
2036         * Makefile.in: Update.
2037         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
2038         builtin_define_std): New.
2039         (c_common_init): Register CPP builtins callback.
2040         * c-common.h (flag_iso, flag_undef): New.
2041         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
2042         * c-lex.c: Don't include target.h.
2043         (cb_register_builtins): Move to c-common.c.
2044         (init_c_lex): Don't register hook here.
2045         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
2046         (cpp_define, cpp_assert): Remove.
2047         * gcc.c (cc1_options): Pass -undef to front end.
2048         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
2049         (TARGET_INITIALIZER): Update.
2050         * target.h (struct cpp_reader): Don't predeclare.
2051         (struct gcc_target): Remove cpp builtin hook.
2052         * tree.c (default_register_cpp_builtins): Remove.
2053 doc:
2054         * tm.texi: Update.
2055
2056 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2057
2058         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
2059
2060 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2061
2062         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
2063         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
2064
2065 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2066
2067         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
2068         * config/sparc/libgcc-sparc-glibc.ver: New file.
2069         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
2070         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
2071
2072 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2073
2074         PR target/6429
2075         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
2076         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
2077         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
2078         base multilibs.
2079         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
2080         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
2081         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2082         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2083
2084 2002-05-09  Richard Henderson  <rth@redhat.com>
2085
2086         * config/ia64/ia64.md: Use define_constants for unspec numbers.
2087         * config/ia64/ia64.c: Likewise.
2088
2089 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
2090
2091         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
2092         (save_restore_insns): Likewise.
2093         (mips_expand_prologue, mips_expand_epilogue): Update callers.
2094         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
2095
2096 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@cygnus.com)
2097
2098         * athlon.md, k6.md, pentium.md, ppro.md): New files.
2099         * i386.md: Move scheduling information into new files.
2100
2101         * i386.md (type attribute): Add "rotate" for rotate insns.
2102         (rotate insns): Set type to "rotate".
2103         (various attributes and function units): Treat rotate like shift.
2104         (pent_pair attribute): Only rotates by one bit position are
2105         pairable.
2106         (sbb insns): Explicitly set pent_pair attribute on a couple
2107         that were missing it.
2108
2109 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
2110
2111         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
2112         make sure that buffer starts on odd word address.
2113         (sh_va_arg): Skip odd fp registers when reading a double precision
2114         value.
2115
2116 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2117
2118         * tree.h (preserve_data, object_permanent_p, type_precision):
2119         Remove.
2120
2121 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2122
2123         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
2124         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
2125 doc:
2126         * cpp.texi: Update for removal of obsolete features.
2127
2128 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
2129                           Jeffrey A Law  (law@redhat.com)
2130
2131         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
2132         the DFA interface for Pentium processors.
2133         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
2134         (attr_pent_pair, ix86_pent_find_pair): Remove.
2135         (ix86_sched_reorder_pentium): Remove.
2136         (ix86_sched_reorder): Remove reordering for Pentium.
2137         * i386.md (Pentium scheduling): Rewrite using DFA description.
2138
2139 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
2140
2141         * cfganal.c (can_fallthru): Fix fast path.
2142         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
2143         with edges to the next block.
2144
2145 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
2146                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
2147
2148         * final.c (end_final): Use C trees to output data structures for profiling.
2149
2150         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
2151         (profile.o): New dependency profile.h
2152         (final.o): New dependency profile.h
2153         * profile.h: New file. New global structure profile_info.
2154         * final.h (count_edges_instrumented_now): Declare.
2155         (current_function_cfg_checksum): Declare.
2156         (function_list): New structure.
2157         (functions_head, functions_tail): New static variables.
2158         (end_final): Emits more data, removed some -ax stuff.
2159         (final): Stores function names and chcksums.
2160         * gcov-io.h (__write_gcov_string): New function.
2161         (__read_gcov_string): New function.
2162         * gcov.c (read_profile): New function.
2163         (create_program_flow_graph): Uses read_profile instead of reading
2164         da_file.
2165         (read_files): Removed da_file checking, it's done by read_profile now.
2166         * libgcc2.c (bb_function_info): New structure.
2167         (bb): New field in structure, removed some -ax stuff.
2168         (__bb_exit_func): Changed structure of da_file.
2169         * profile.c (count_edges_instrumented_now): New global variable.
2170         (current_function_cfg_checksum): New global variable.
2171         (max_counter_in_program): New global variable.
2172         (get_exec_counts): New function.
2173         (compute_checksum): New function.
2174         (instrument_edges): Sets count_edges_instrumented_now.
2175         (compute_branch_probabilities): Uses get_exec_counts instead of
2176         reading da_file.
2177         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
2178         (init_branch_prob): Removed da_file checking, done in get_exec_counts
2179         now.
2180         (end_branch_prob): Removed da_file checking, done in get_exec_counts
2181         now.
2182         * gcov.texi: Updated information about gcov file format.
2183
2184 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2185
2186         * sbitmap.c: Fix formatting.
2187         * scan.c: Likewise.
2188         * scan-decls.c: Likewise.
2189         * sched-deps.c: Likewise.
2190         * sched-ebb.c: Likewise.
2191         * sched-rgn.c: Likewise.
2192         * sched-vis.c: Likewise.
2193         * sdbout.c: Likewise.
2194         * sibcall.c: Likewise.
2195         * simplify-rtx.c: Likewise.
2196         * ssa.c: Likewise.
2197         * ssa-ccp.c: Likewise.
2198         * ssa-dce.c: Likewise.
2199         * stmt.c: Likewise.
2200         * stor-layout.c: Likewise.
2201         * stringpool.c: Likewise.
2202
2203 2002-05-09  David S. Miller  <davem@redhat.com>
2204
2205         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
2206
2207 2002-05-07  David S. Miller  <davem@redhat.com>
2208
2209         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
2210         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
2211         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
2212         library implementation clobbers the output before the inputs
2213         are fully consumed, use stack temporary for the output.
2214
2215 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
2216
2217         * config/netbsd.h (CPP_SPEC): Remove.
2218         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
2219         * config/i386/netbsd.h (CPP_SPEC): Define.
2220         * config/ns32k/netbsd.h (CPP_SPEC): Define.
2221         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
2222         * config/sparc/netbsd.h (CPP_SPEC): Define.
2223         * config/vax/netbsd.h (CPP_SPEC): Define.
2224
2225 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2226
2227         * read-rtl.c: Fix formatting.
2228         * real.c: Likewise.
2229         * recog.c: Likewise.
2230         * regclass.c: Likewise.
2231         * regmove.c: Likewise.
2232         * reg-stack.c: Likewise.
2233         * reload1.c: Likewise.
2234         * reload.c: Likewise.
2235         * resource.c: Likewise.
2236         * rtlanal.c: Likewise.
2237         * rtl.c: Likewise.
2238         * rtl-error.c: Likewise.
2239
2240 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2241
2242         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
2243         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
2244
2245 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
2246
2247         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
2248         use __SSE2__ macro instead.
2249         * config/i386/xmmintrin.h: Likewise.
2250
2251 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
2252
2253         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
2254         and use it in all invocations of these macros.  Clean up comments.
2255         * rtl.c (rtl_check_failed_flag): Add an argument for the name
2256         of the flag access macro whose check failed.
2257         * doc/rtl.texi (Flags): Document additional flag uses.
2258
2259 2002-05-08  Robert Spier <rspier@pobox.com>
2260             Neil Booth  <neil@daikokuya.demon.co.uk>
2261
2262         PR preprocessor/6521
2263         * cppfiles.c (handle_missing_header): Don't do anything
2264         different for <> includes.
2265 doc:
2266         * cppopts.texi: Update documentation for -MG.
2267
2268 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2269
2270         * cpplex.c (cpp_interpret_charconst): Truncate as well as
2271         sign-extend.
2272 doc:
2273         * cpp.texi: Clarify multichar charconst valuation.
2274
2275 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
2276
2277         * doc/invoke.texi: Document -mwindiss option.
2278
2279 2002-05-08  Jason Merrill  <jason@redhat.com>
2280
2281         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
2282
2283         * dwarf2out.c (gen_type_die): Abort on broken recursion.
2284
2285         PR c++/6381
2286         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
2287         REAL_CST.
2288
2289 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
2290
2291         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
2292         little-endian multilibs to override arm/thumb multilibs.
2293         Do not build hardware floating point multilibs, nor apcs-26
2294         multilibs for the Thumb.
2295
2296 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
2297
2298         PR c/6569.
2299         * varasm.c (mark_weak): New function.
2300         (merge_weak): Use it.  Do not call declare_weak.
2301         (declare_weak): Use merge_weak.
2302
2303 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2304
2305         * cse.c (dead_libcall_p): Update counts.
2306         (delete_trivially_dead_insns): Update call of dead_libcall_p.
2307
2308 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
2309
2310         * cfglayout.c (function_tail_eff_head): Rename to ...
2311         (function_footer): ... this one.
2312         (unlink_insn_chain): New functions.
2313         (label_for_bb): Only call block_label and emit debug message.
2314         (record_effective_endpoints): Actually unlink the headers and footers.
2315         (fixup_reorder_cahin): Re-insert the unlinked sequences.
2316         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
2317         * cfglayout.h (struct reorder_block_def): New fields footer/header;
2318         remove eff_head/eff_end.
2319         * rtl.h (set_first_insn): Declare.
2320         * emit-rtl.c (set_first_insn): New function.
2321
2322         * cfglayout.c (fixup_reorder_chain): Dump duplicated
2323         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
2324         cfg_layout_duplicate_bb): New global function.
2325         (duplicate_insn_chain): New static function.
2326         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
2327         cfg_layout_duplicate_bb): Declare.
2328         (struct reorder_block_def): Add "original" field.
2329         * emit-rtl.c (emit_copy_of_insn_after): New function.
2330         * rtl.h (emit_copy_of_insn_after): Declare.
2331
2332         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
2333         (fixup_reorder_chain): properly handle edges to exit block.
2334
2335 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2336                                Jan Hubicka  <jh@suse.cz>
2337
2338         * basic-block.h (note_prediction_to_br_prob): declare.
2339         * c-semantics.c: Inlucde predit.h
2340         (expand_stmt): predict GOTO_STMT as not taken.
2341         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
2342         (cleanup_cfg): Do not free tail_recursion_list.
2343         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
2344         (flow_delete_block): Kill predictions past end of basic block.
2345         * output.h (delete_unreachable_blocks): Declare.
2346         * predict.c (predicted_by_p, process_note_predictions,
2347         process_note_prediction, last_block_p): New function.
2348         (estimate_probability): Bypass loop on PRED_CONTINUE;
2349         do not handle noreturn heuristics; kill PRED_RETURN; add
2350         PRED_EARLY_RETURN.
2351         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
2352         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
2353         * predict.h (IS_TAKEN): New constant.
2354         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
2355         * rtl.c (NOTE_INSN_PREDICTION): New.
2356         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
2357         New macro.
2358         (insn_note): add NOTE_INSN_PREDICTION.
2359         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
2360         CFG; free tail_recursion_label_list.
2361         * stmt.c: Include predict.h;
2362         (return_prediction): New.
2363         (expand_value_return): Use it.
2364         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
2365
2366 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
2367
2368         * config/mips/mips.md: Name the unspecs with define_constant.
2369         (*HILO_delay): Rename to 'hilo_delay' (no star).
2370         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
2371         (reload_outdi, reload_outsi): Likewise.
2372
2373 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2374
2375         * toplev.c: Fix formatting.
2376
2377 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
2378
2379         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
2380         * configure.in (ac_rtlflag_checking): New.
2381         * doc/install.texi (--enable-checking): Document RTL flag checking.
2382
2383 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2384
2385         * c-common.c (c_common_init): Set options->unsigned_wchar.
2386         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
2387         group target dependencies.
2388         (init_builtins, cpp_handle_option): Update.
2389         * cpplex.c (cpp_interpret_charconst): Update.
2390         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
2391         signed_char to unsigned_char, group target dependencies.
2392         * defaults.h (WCHAR_UNSIGNED): Remove.
2393         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
2394 config:
2395         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
2396         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
2397         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
2398         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
2399         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
2400 doc:
2401         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
2402
2403 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
2404
2405         * fixinc/inclhack.def (windiss_math1): New fix.
2406         (windiss_math2): Likewise.
2407         (windiss_valist): Likewise.
2408         * fixinc/fixincl.x: Regenerated.
2409
2410 2002-05-07  Andreas Jaeger  <aj@suse.de>
2411
2412         * genautomata.c (output_internal_min_issue_delay_func): Add
2413         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
2414         (output_internal_trans_func): Likewise.
2415
2416 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
2417
2418         * pa.c (hppa_profile_hook): Use force_reg to get the address
2419         of the profile hook into an appropriate pseudo register.
2420
2421 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
2422
2423         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
2424         (LINK_START_SPEC): Handle it.
2425         (LINK_OS_SPEC): Likewise.
2426         (CPP_SPEC): Likewise.
2427         (STARTFILE_SPEC): Likewise.
2428         (LIB_SPEC): Likewise.
2429         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
2430         all platforms.
2431         (CRTSAVRES_DEFAULT_SPEC): New macro.
2432         (LIB_WINDISS_SPEC): New macro.
2433         (CPP_OS_WINDISS_SPEC): Likewise.
2434         (STARTFILE_WINDISS_SPEC): Likewise.
2435         (ENDFILE_WINDISS_SPEC): Likewise.
2436         (LINK_START_WINDISS_SPEC): Likewise.
2437         (LINK_OS_WINDISS_SPEC): Likewise.
2438         * config/rs6000/windiss.h: New file.
2439
2440 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
2441
2442         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
2443
2444 2002-05-06  David S. Miller  <davem@redhat.com>
2445
2446         * config/sparc/sparc.md (shift insns): Do not mask off
2447         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
2448         take care of it.
2449
2450 2002-05-06  Richard Henderson  <rth@redhat.com>
2451
2452         PR c++/6212
2453         * expr.c (highest_pow2_factor_for_type): New.
2454         (expand_assignment): Use it.
2455
2456 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
2457
2458         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
2459         unspec_volatile.
2460         ("altivec_mfvscr"): Same.
2461
2462 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2463
2464         * rtl.h (struct rtx_def): Update comments.
2465         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
2466         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
2467         RTL_FLAG_CHECK macros with list of expected RTL codes.
2468         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
2469         (rtl_check_failed_flag): New.
2470         * reload1.c (reload): Use REG macro before changing rtx to MEM.
2471         (reload_cse_noop_set_p): Check rtx code before using access macro.
2472         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
2473         before using access macro.
2474
2475 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2476
2477         * doc/rtl.texi (Flags): Update to reflect current usage.
2478
2479 2002-05-06  Roger Sayle  <roger@eyesopen.com>
2480
2481         PR opt/3995
2482         * fold-const.c (sign_bit_p): New function.
2483         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
2484         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
2485         Reapply fold when converting (A & C) == C into (A & C) != 0.
2486         (fold_binary_op_with_conditional_arg): Fix typo in comment.
2487
2488 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2489
2490         * c-common.c (warn_multichar): New.
2491         (c_common_init): Set CPP's warn_multichar.
2492         * c-common.h (warn_multichar): New.
2493         * c-decl.c (warn_multichar): Remove.
2494         * c-lex.c (lex_charconst): Update.
2495         * c-tree.h (warn_multichar): Remove.
2496         * cppexp.c (eval_token): Sign-extend charconst value.
2497         * cppinit.c (cpp_create_reader): Set warn_multichar.
2498         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
2499         each character.  Update prototype.  Sign-extend the result.
2500         * cpplib.h: Fix conditions.
2501         (struct cpp_options): Add new warning flag.
2502         (cpp_interpret_charconst): Update prototype.
2503 doc:
2504         * cpp.texi: Update documentation.
2505
2506 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
2507
2508         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
2509         Fix typo in usage of allof instead of unit.
2510
2511 2002-05-06  Richard Henderson  <rth@redhat.com>
2512
2513         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
2514         and any jump or call for IN.
2515
2516 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
2517
2518         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
2519         -msse2.
2520         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
2521
2522 2002-05-06  Roger Sayle  <roger@eyesopen.com>
2523
2524         * fold-const.c (lshift-double): Cast the high word to an unsigned
2525         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
2526         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
2527         avoid compiler warning.  (fold): Remove redundant code from
2528         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
2529
2530 2002-05-06  Jeff Law  <law@redhat.com>
2531
2532         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
2533         * pa.c (pa_adjust_cost): Remove all true dependency cost
2534         adjustments.  Also remove support for non-DFA scheduling.
2535         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
2536         to adjust true dependency costs.  Update various comments.
2537         (7100lc, 7200, 7300 scheduling): Simplify by combining the
2538         FP ALU & MPY units into a single unit.
2539
2540 2002-05-06  Catherine Moore  <clm@redhat.com>
2541
2542         * config/v850/v850.c (compute_register_save_size): Make sure
2543         to count all of the registers that will be saved.
2544
2545 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2546
2547         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
2548
2549 2002-05-06  David S. Miller  <davem@redhat.com>
2550
2551         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
2552         allow result to overlap input operands in memory.
2553
2554 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2555
2556 doc:
2557         * cpp.texi: Update multichar charconst docs.
2558
2559 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2560
2561         * cpplex.c (cpp_interpret_charconst): Sign-extend each
2562         character.  Don't ignore excess characters.  Treat
2563         multicharacter character constants as signed.
2564         (cpp_parse_escape): Clarify diagnostic.
2565
2566 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
2567
2568         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
2569         use add instead of shift.
2570         (ashldi3_sp64): Likewise.
2571         (ashlsi3_const1, ashldi3_const1): Remove.
2572         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
2573         * config/sparc/sparc.c (const1_operand): New.
2574
2575 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
2576
2577         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
2578
2579 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
2580
2581         PR target/6561
2582         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
2583
2584 2002-05-05  Richard Henderson  <rth@redhat.com>
2585
2586         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
2587         memory latency adjustments.
2588         (alpha_variable_issue): Remove.
2589         (alpha_use_dfa_pipeline_interface): New.
2590         (alpha_multipass_dfa_lookahead): New.
2591         * config/alpha/alpha.md: Remove define_function_unit scheduling;
2592         include new dfa scheduling.
2593         (attr type): Add none.
2594         (blockage): Use it.
2595         * config/alpha/ev4.md: New.
2596         * config/alpha/ev5.md: New.
2597         * config/alpha/ev6.md: New.
2598
2599 2002-05-05  David S. Miller  <davem@redhat.com>
2600
2601         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
2602
2603 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2604
2605         * cse.c: Fix formatting.
2606         * emit-rtl.c: Likewise.
2607
2608 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
2609
2610         * genautomata.c (initiate_states): Add additional guard to
2611         initialize `units_array'.
2612
2613 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
2614
2615         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
2616         process_unit_to_form_the_same_automaton_unit_lists,
2617         form_the_same_automaton_unit_lists
2618         check_unit_distributions_to_automata): New prototypes and
2619         functions.
2620         (check_automata): Rename it into `check_automata_insn_issues'.
2621         (unit_decl): New fields `the_same_automaton_unit' and
2622         `the_same_automaton_message_reported_p'.
2623         (unit_decl_t): New typedef.
2624         (the_same_automaton_lists): New gloval variable.
2625         (unit_regexp, unit_set_el, units_array, units_cmp,
2626         output_get_cpu_unit_code_func): Use the typedef.
2627         (evaluate_max_reserv_cycles): Increment
2628         `description->max_insn_reserv_cycles'.
2629         (initiate_states): Don't increment `max_cycles_num'.
2630         (transform_insn_regexps): Move code around transformation of
2631         regexps from `generate'.
2632         (generate): Remove call of `transform_insn_regexps'.
2633         (expand_automata): Call `transform_insn_regexps' and
2634         `check_unit_distributions_to_automata'.  Check errors before
2635         `generate'.
2636
2637         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
2638         automaton `ultrasparc3_1'.
2639
2640 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2641
2642         * c-common.c (c_common_init): Set up CPP arithmetic.
2643         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
2644         something reasonable for the host.
2645         (sanity_checks): Add checks.
2646         (cpp_read_main_file): Call sanity_checks() from here...
2647         (cpp_post_options): ... not here.
2648         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
2649         * cpplib.h (struct cpp_options): New member int_precision.
2650
2651 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2652
2653         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
2654
2655 2002-05-04  David S. Miller  <davem@redhat.com>
2656
2657         * config/sparc/linux.h, config/sparc/linux64.h
2658         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
2659
2660         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
2661         more RTX codes.
2662         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
2663
2664         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
2665         of SETs.
2666
2667 2002-05-05  Tim Josling  <tej@melbpc.org.au>
2668
2669         * treelang; New directory for new sample language treelang.
2670
2671 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2672
2673         * Makefile.in (c-lex.o): Update.
2674         * c-lex.c: Include target.h.
2675         (cb_register_builtins): New.
2676         (init_c_lex): Set builtins callback.
2677         * c-lex.h (cpp_define, cpp_assert): New prototypes.
2678         * cppinit.c (init_builtins): Use callback, including for
2679         GXX_WEAK.
2680         * cpplib.h (struct cpp_callbacks): New member.
2681         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
2682         (TARGET_INITIALIZER): Update.
2683         * target.h (struct gcc_target): New hook.
2684         * tree.c (default_register_cpp_builtins): New.
2685         * tree.h (default_register_cpp_builtins): New.
2686 doc:
2687         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
2688
2689 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2690
2691         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
2692         (cpp_post_options): Move sanity checks to...
2693         (sanity_checks): New.
2694         * cpplex.c (maybe_read_ucs): Fix prototype.
2695         (parse_string, cpp_parse_escape): Cast for %c format specifier.
2696         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
2697         if necessary.
2698
2699 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
2700
2701         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
2702         builtins.  Use V2DI patterns instead of TI for logical operations.
2703         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
2704         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
2705         (ix86_expand_builtins): Change the pattern used for movntdq.
2706         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
2707         sse2_nandv2di3): New patterns.
2708         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
2709         on operands.
2710         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
2711         (cvtdq2pd): Correct mode on operand 1.
2712         (sse2_umulsidi3): Describe without unspec.
2713         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
2714         machine modes.
2715         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
2716         (ashlv2di3): Likewise, from sse2_ashlv2di3.
2717         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
2718         ashlv4si3, ashlv2di3): Use SImode for shift count.
2719         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
2720         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
2721         New patterns.
2722         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
2723         New typedefs.
2724         (__m128i, __m128d): New macros.
2725         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
2726         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
2727         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
2728         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
2729         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
2730         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
2731         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
2732         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
2733         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
2734         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
2735         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
2736         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
2737         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
2738         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
2739         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
2740         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
2741         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
2742         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
2743         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
2744         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
2745         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
2746         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
2747         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
2748         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
2749         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
2750         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
2751         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
2752         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
2753         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
2754         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
2755         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
2756         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
2757         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
2758         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
2759         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
2760         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
2761         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
2762         functions.
2763         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
2764         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
2765
2766 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2767
2768         * dwarf2out.c: Fix formatting.
2769         * varasm.c: Likewise.
2770
2771 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
2772
2773         PR c/6543
2774         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
2775         clobber and use result as temporary value.
2776
2777 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
2778
2779         * expr.c (force_operand): Use expand_simple_* to handle more
2780         cases.
2781
2782 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2783
2784         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
2785         and sign-extension.
2786         (lex_charconst): Update for change in prototype of
2787         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
2788         appropriately.
2789         * cpphash.h (BITS_PER_CPPCHAR_T): New.
2790         * cppinit.c (cpp_create_reader): Initialize them for no
2791         change in semantics.
2792         (cpp_post_options): Add sanity checks.
2793         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
2794         and truncation issues.  Calculate in type cppchar_t.
2795         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
2796         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
2797         run-time dependent precision correctly.  Return whether the
2798         result is signed or not.
2799         * cpplib.c (dequote_string): Use cppchar_t; update.
2800         * cpplib.h (cppchar_signed_t): New.
2801         struct cpp_options): New precision members.
2802         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
2803         * cppexp.c (eval_token): Update.
2804
2805 2002-05-03  David S. Miller  <davem@redhat.com>
2806
2807         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
2808         * config/sparc/sparc.c (sparc_rtx_costs): New function
2809         implementing RTX_COSTS and CONST_COSTS.
2810         * config/sparc/sparc.h (CONST_COSTS): Delete.
2811         (RTX_COSTS_CASES): Define.
2812         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
2813         the work.
2814
2815         * config/sparc/sparc.md (DFA schedulers): Split out...
2816         * config/sparc/cypress.md, config/sparc/hypersparc.md,
2817         config/sparc/sparclet.md, config/sparc/supersparc.md,
2818         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
2819
2820         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
2821         checks on it, always defined for Sparc.
2822
2823         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
2824         Tweak, and add more detailed comments.
2825
2826 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
2827
2828         * Re-apply patch accidentally reverted with
2829         DFA scheduler merge: remove all rules and variables to slurp
2830         source files out of libiberty and rebuild them with HOST_CC.
2831         ($(HOST_PREFIX_1)varray.o): New rule.
2832         (genattrtab rule): Word wrap.
2833
2834 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
2835
2836         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
2837         (CPP_SUBTARGET_SPEC): Define.
2838         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
2839         cpp_subtarget specs.
2840         (CPP_SPEC): Redefine to include %(cpp_subtarget).
2841
2842 2002-05-03  David S. Miller  <davem@redhat.com>
2843
2844         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
2845         * target.h (struct gcc_target): Delete cycle_display member.
2846
2847         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
2848         (rtx_needs_barrier): Delete reference to cycle_display unspec.
2849         (ia64_sched_reorder2): Mention need for cycle display handling
2850         once such notes exist.
2851
2852 2002-05-03  Richard Henderson  <rth@redhat.com>
2853
2854         * real.c (etoasc): Strip most trailing zeros for clarity.
2855         * sched-vis.c: Include real.h.
2856         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
2857         * Makefile.in (sched-vis.o): Add real.h.
2858
2859 2002-05-03  David S. Miller  <davem@redhat.com>
2860
2861         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
2862         no longer needed.
2863
2864 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
2865
2866         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
2867         when we get an out of range literal.
2868         (altivec_expand_ternop_builtin): Same.
2869         (altivec_expand_unop_builtin): Same.
2870         (altivec_expand_builtin): Same, for dss.
2871         (altivec_expand_builtin): Use trees instead of rtl when
2872         determining literal argument validity.
2873
2874 2002-05-03  David S. Miller  <davem@redhat.com>
2875
2876         Delete cycle display scheduling hook.
2877         * config/ia64/ia64.c (ia64_cycle_display,
2878         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
2879         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
2880         and use emit_insn_before instead of ia64_emit_insn_before.
2881         * config/ia64/ia64.md (unspec usage): Delete cycle display.
2882         (cycle_display): Delete insn pattern.
2883         * config/sparc/sparc.md (unspec usage): Delete cycle display.
2884         (cycle_display): Delete insn pattern.
2885         * config/sparc/sparc.c (sparc_cycle_display,
2886         TARGET_SCHED_CYCLE_DISPLAY): Delete.
2887         * doc/md.texi (cycle_display): Don't mention.
2888         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
2889
2890 2002-05-03  Richard Henderson  <rth@redhat.com>
2891
2892         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
2893         * recog.h: Declare them.
2894
2895         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
2896         * config/sparc/sparc.md: Use store_data_bypass_p instead.
2897         * config/sparc/sparc-protos.h: Update.
2898
2899 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
2900
2901         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
2902         -D__arch64__.  Add -D_LP64.
2903         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
2904         from sparc.h.
2905         (CPP_ARCH64_SPEC): Likewise.
2906         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
2907         (NO_BUILTIN_SIZE_TYPE): Undef.
2908
2909 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
2910
2911         * genautomata.c (min_issue_delay_pass_states): Change return type
2912         in the prototype.
2913         (min_issue_delay_pass_states): Change the algorithm.
2914         (min_issue_delay): Set up min_insn_issue_delay for the state.
2915         (output_min_issue_delay_table): Interchange the nested loops and
2916         and initiate min_insn_issue_delay for states.
2917
2918 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
2919
2920         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
2921         jump is simplejump.
2922
2923 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
2924
2925         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
2926         sequence.
2927
2928 2002-05-03  Richard Henderson  <rth@redhat.com>
2929
2930         PR opt/6534
2931         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
2932         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
2933         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
2934         code before JUMP, not EARLIEST.
2935
2936 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
2937
2938         * c-format.c (check_format_info_main): Don't check for presence of
2939         parameter for * width until after operand number has been read,
2940         and only check for it if format parameters are available.
2941         Fixes PR c/6547.
2942
2943 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
2944
2945         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
2946         (LINK_SPEC): Undef before defining.
2947
2948 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
2949
2950         PR preprocessor/6489
2951         * tradcpp.c (fixup_newlines): New.
2952         (main, finclude): Use it.
2953
2954 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
2955
2956         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
2957         * config/mips/mips.c (mips_unique_section): Strip encoding from
2958         decl name.
2959
2960 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
2961
2962         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
2963         mode.
2964
2965 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2966
2967         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
2968         (Specific): Removed buildstats references.
2969         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
2970         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
2971         Accomodate Solaris versions beyond 8.
2972         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
2973         (Specific, *-*-solaris2.8): Removed, obsolete.
2974
2975 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
2976
2977         PR target/6542
2978         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
2979         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
2980         fill leaf_reg_remap with identity.
2981         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
2982
2983 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2984
2985         * config/h8300/crti.asm: Remove trailing spaces.
2986         * config/h8300/h8300.c: Likewise.
2987         * config/h8300/lib1funcs.asm: Likewise.
2988
2989 2002-05-02  Jason Merrill  <jason@redhat.com>
2990
2991         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
2992         * c-decl.c (c_init_decl_processing): Use it.
2993         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
2994         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
2995         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
2996
2997 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2998
2999         * regrename.c: Fix formatting.
3000         * tree.c: Likewise.
3001
3002 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
3003
3004         * i386.md (attribute memory): Handle compares properly.
3005
3006 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
3007
3008         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
3009         to none.
3010
3011 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3012
3013         * function.c: Fix formatting.
3014
3015 2002-05-02  Jan Hubicka  <jh@suse.cz>
3016
3017         * haifa-sched.c (schedule_insn): Print table of instructions and
3018         reservations.
3019         (sched_block): Do not print ready list at verbosity level 1.
3020         * sched-vis.c (print_insn): Make global.
3021         * sched-ebb.c (ebb_print_insn): Rename from...
3022         (print_insn): ... this one.
3023         * sched-int.h (print_insn): Declare
3024
3025 2002-05-02  Richard Henderson  <rth@redhat.com>
3026
3027         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
3028         emitted by cycle_display.
3029
3030 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
3031
3032         * doc/install.texi (*-*-freebsd*): Update to latest status.
3033
3034 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
3035
3036         PR target/6540
3037         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
3038         * config/float-sparc.h: Assume 128-bit long double if
3039         __LONG_DOUBLE_128__ is defined.
3040
3041 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
3042
3043         * genattrtab.c (write_function_unit_info): Add a dummy element
3044         when num_units == 0.
3045
3046 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3047
3048         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
3049         TYPE_MODE (double_type_node) instead of DFmode.
3050
3051 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
3052
3053         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
3054         jumps post reload.
3055         * toplev.c (rest_of_compilation): Revert Richard's patch.
3056
3057 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3058
3059         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
3060
3061 2002-05-02  Catherine Moore  <clm@redhat.com>
3062
3063         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
3064
3065 2002-05-02  Kazu Hirata  <kazu@hxi.com>
3066
3067         * combine.c: Fix comment typos.
3068         * expr.c: Likewise.
3069         * genautomata.c: Likewise.
3070         * stmt.c: Likewise.
3071         * tree.h: Likewise.
3072
3073 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3074
3075         * doc/install.texi: State GNAT version requirements.
3076
3077 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
3078
3079         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
3080         of the frame pointer or arg pointer register which strict register
3081         checking is not enabled.
3082
3083 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
3084
3085         * gcc.dg/altivec-8.c: New.
3086
3087         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
3088         PRE_INC and PRE_DEC for altivec modes.
3089
3090 2002-05-01  Bruce Korb  <bkorb@gnu.org>
3091
3092         * fixinc/check.tpl(set-writable): make sure the function exists first
3093         * fixinc/inclhack.def(alpha_assert): fix test_text
3094         * fixinc/tests/base/assert.h: add in missing result
3095
3096 2002-05-01  Jeff Law  <law@redhat.com>
3097
3098         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
3099         'T' constraint.
3100
3101 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
3102
3103         * dbxout.c (dbxout_type): Emit size information for range types,
3104         as well, but only when using GDB extensions.
3105
3106 2002-05-01  Richard Henderson  <rth@redhat.com>
3107
3108         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
3109         target-independent gnu binutils date test.
3110
3111 2002-05-01  Richard Henderson  <rth@redhat.com>
3112
3113         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
3114         info before expunging the block.
3115
3116 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
3117
3118         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
3119         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
3120         -M -or -MM is in effect.
3121
3122 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
3123
3124         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
3125         A29k configurations.
3126         * doc/install.texi: Update to match.
3127
3128 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3129
3130         PR bootstrap/6514
3131         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
3132         for duplicates. Always loop over whole list.
3133
3134 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3135
3136         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
3137
3138 2002-05-01      Joel Sherrill <joel@OARcorp.com>
3139
3140         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
3141         support routines.
3142
3143 2002-05-01      Joel Sherrill <joel@OARcorp.com>
3144
3145         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
3146
3147 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
3148
3149         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
3150         (nabs_nopower): Same.
3151         (floatdisf2): New pattern.
3152         (absdi2): Convert to define_insn_and_split.
3153         (nabsdi2): Same.
3154         (trunctfsf2): Same.
3155         (floatditf2): Same.
3156         (floatsitf2): Same.
3157         (fix_trunctfdi2): Same.
3158         (fix_trunctfsi2): Same.
3159
3160 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
3161
3162         * doc/install.texi: Update Texinfo version requirement
3163         documentation.
3164
3165 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
3166
3167         PR target/6512, PR target/5628
3168         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
3169         when memory is not aligned.
3170         (movdf_insn_v9only_vis): Likewise.
3171         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
3172         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
3173         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
3174
3175 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
3176
3177         * gcc.dg/altivec-7.c: New.
3178
3179         * config/rs6000/altivec.h: Cleanup.
3180
3181 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
3182
3183         * doc/invoke.texi (Option Summary): Add -mvrsave=.
3184         (RS/6000 and PowerPC Options): Document -mvrsave=.
3185
3186         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
3187         (rs6000_altivec_vrsave_string): Same.
3188         (rs6000_override_options): Call rs6000_parse_vrsave_option.
3189         (rs6000_parse_vrsave_option): New.
3190         (rs6000_stack_info): Only generate vrsave instructions when
3191         TARGET_ALTIVEC_VRSAVE.
3192
3193         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
3194         (rs6000_altivec_vrsave_string): Define extern.
3195         (rs6000_altivec_vrsave): Same.
3196         (TARGET_ALTIVEC_VRSAVE): New.
3197
3198 2002-04-30  Richard Henderson  <rth@redhat.com>
3199
3200         PR opt/6516
3201         * toplev.c (rest_of_compilation): Don't run cross-jump before
3202         bb-reorder.
3203
3204 2002-04-30  Tom Rix  <trix@redhat.com>
3205
3206         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
3207         check which_alternative.
3208
3209 2002-04-30  Kazu Hirata  <kazu@hxi.com>
3210
3211         * cpplex.c: Fix comment formatting.
3212         * function.c: Likewise.
3213         * integrate.c: Likewise.
3214         * regrename.c: Likewise.
3215         * sibcall.c: Likewise.
3216         * simplify-rtx.c: Likewise.
3217         * tree-inline.c: Likewise.
3218
3219 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3220
3221         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
3222         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
3223         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
3224         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
3225         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
3226         * pa/x-ada: New file.  Define ADA_CFLAGS.
3227
3228 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
3229
3230         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
3231         from MMIX_LAST_REGISTER_FILE_REGNUM.
3232         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
3233         (struct machine_function): New member highest_saved_stack_register
3234         previously static variable in mmix.c.
3235         (MACHINE_DEPENDENT_REORG): Define.
3236         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
3237         (MMIX_OUTPUT_REGNO): New.
3238         (mmix_target_asm_function_prologue): Move calculation of last used
3239         saved-stack-register into...
3240         (mmix_machine_dependent_reorg): New function.  Update to also handle
3241         !TARGET_ABI_GNU.
3242         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
3243         register names, simplify somewhat by new variable regno.
3244         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
3245         register.
3246         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
3247         emitting register names.
3248         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
3249         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
3250         Remove fixed FIXME.
3251         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
3252         Declare.
3253
3254         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
3255
3256 2002-04-30  Richard Henderson  <rth@redhat.com>
3257
3258         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
3259         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
3260         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
3261         emit_tfmode_cvt): New.
3262         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
3263         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
3264         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
3265         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
3266         * config/sparc/sparc-protos.h: Update.
3267
3268 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
3269
3270         * install.texi (Final install): Add to the list of info to include
3271         in a report of a successful bootstrap, and add link to 3.1 list.
3272
3273 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
3274
3275         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
3276         (mode): Add vector modes
3277         (i387): Kill attribute.
3278         (unit): New attribute.
3279         (length_immediate): Grok new types.
3280         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
3281         (modrm): Use "unit".
3282         (memory): Handle MMX/SSE properly.
3283         (scheduling descriptions): Kill uses of fop1.
3284         (sse, mmx, fp patterns): Set type and mode properly.
3285
3286 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
3287
3288         * pa.c (override_options): Default to PA8000 scheduling.
3289         * doc/invoke.texi (HP-PA options): Mention newly added 7300
3290         scheduling parameter.
3291
3292         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
3293         handling of double precision multiplies.
3294
3295         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
3296         fpdiv and fpsqrt instructions.
3297         (7200 & 7300 scheduling): Fix typo in handling of
3298         store-load and store-store penalties.
3299
3300 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3301
3302         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
3303         mips.  Add two missing commas.
3304
3305 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
3306
3307         * doc/contrib.texi (Contributors): Update Paolo Carlini's
3308         and Benjamin Kosnik's entries.
3309
3310 2002-04-29  David S. Miller  <davem@redhat.com>
3311
3312         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
3313         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
3314         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
3315         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
3316
3317 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3318
3319         * combine.c (find_split_point): Use gen_int_mode.
3320
3321 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
3322
3323         Merging code from dfa-branch:
3324
3325         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
3326
3327         * genautomata.c (output_reserv_sets): Fix typo.
3328
3329         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
3330
3331         * genautomata.c (output_reserv_sets): Remove
3332         next_cycle_output_flag.
3333
3334         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
3335
3336         * sched-rgn.c (init_ready_list): Make the DFA code handle
3337         USE/CLOBBER insns in the same way as the traditional
3338         scheduler.
3339         (new_ready): Similarly..
3340
3341         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
3342
3343         * haifa-sched.c (schedule_block): Change the DFA state only after
3344         issuing insn.
3345
3346         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
3347
3348         * pa.c (hppa_use_dfa_pipeline_interface): New function.
3349         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
3350         (override_options): Add PA7300 scheduling support.
3351         (pa_adjust_cost): Update various comments.  Properly
3352         handle anti and output dependencies when using the
3353         DFA scheduler.
3354         (pa_issue_rate): Add PA7300 scheduling support.
3355         (pa_can_combine_p): Call extract_insn before calling
3356         constrain_operands (taken from mainline tree).
3357         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
3358         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
3359         descriptions using DFA descriptions.  Add PA7300
3360         scheduling support.
3361
3362         2002-03-30  David S. Miller  <davem@redhat.com>
3363
3364         Add UltraSPARC-III DFA scheduling support.
3365         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
3366         Update FP conditional move on register insn patterns to use it, as
3367         appropriate.
3368         (define_attr cpu): Add ultrasparc3.
3369         (define_attr us3load_type): New, update integer load patterns to
3370         set it, as appropriate.
3371         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
3372         (rest): Add UltraSPARC3 scheduling description.
3373         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
3374         (PROCESSOR_ULTRASPARC3): New.
3375         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
3376         ({ASM,CPP}_CPU_SPEC): Likewise.
3377         (REGISTER_MOVE_COST): Likewise.
3378         (RTX_COSTS): Likewise.
3379         * config/sparc/sparc.c (sparc_override_options,
3380         sparc_initialize_trampoline, sparc64_initialize_trampoline,
3381         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
3382         sparc_issue_rate): Likewise.
3383         * config/sparc/sol2.h: Likewise.
3384         * config/sparc/sol2-sld-64.h: Likewise.
3385         * config/sparc/linux64.h: Likewise.
3386
3387         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
3388
3389         * doc/md.texi: Add comments about usage the latency time for the
3390         different dependencies and about case when two or more conditions
3391         in different define_insn_reservations returns TRUE for an insn.
3392
3393         * doc/md.texi: Add reference for automaton based pipeline
3394         description.
3395
3396         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
3397
3398         * doc/passes.texi: Add missed information about genattrtab.
3399
3400         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
3401
3402         * genautomata.c (output_automata_list_transition_code): Check
3403         automata_list on NULL.
3404
3405         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
3406
3407         * genautomata.c (output_insn_code_cases,
3408         output_automata_list_min_issue_delay_code,
3409         output_automata_list_transition_code,
3410         output_automata_list_state_alts_code): Comment the functions.
3411
3412         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
3413
3414         * genautomata.c (automata_list_el_t): New typedef.
3415         (get_free_automata_list_el,free_automata_list_el,
3416         free_automata_list, automata_list_hash, automata_list_eq_p,
3417         initiate_automata_lists, automata_list_start, automata_list_add,
3418         automata_list_finish, finish_automata_lists,
3419         output_insn_code_cases, output_automata_list_min_issue_delay_code,
3420         output_automata_list_transition_code,
3421         output_automata_list_state_alts_code, add_automaton_state,
3422         form_important_insn_automata_lists): New functions and prototypes.
3423         (insn_reserv_decl): Add members important_automata_list and
3424         processed_p.
3425         (ainsn): Add members important_p.
3426         (automata_list_el): New structure.
3427         (first_free_automata_list_el, current_automata_list,
3428         automata_list_table): New global variables.
3429         (create_ainsns): Initiate member important_p.
3430         (output_internal_min_issue_delay_func): Generate the switch and
3431         call output_insn_code_cases.
3432         (output_internal_trans_func, output_internal_state_alts_func):
3433         Ditto.
3434         (generate): Call initiate_automata_lists.
3435         (automaton_states): New global variable.
3436         (expand_automata): Call form_important_insn_automata_lists.
3437         (write_automata): Call finish_automata_lists.
3438
3439         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
3440
3441         * genautomata.c (add_excls, add_presence_absence): Check that
3442         cpu units in the sets belong the same automaton.
3443
3444         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
3445         about that cpu units in the sets belong the same automaton.
3446
3447         * doc/md.texi: Ditto.
3448
3449         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
3450                     Nitin Gupta  <niting@noida.hcltech.com>
3451
3452         * config/sh/sh.c (sh_use_dfa_interface): New function.
3453
3454         (sh_issue_rate): New Function.
3455         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
3456         TARGET_SCHED_ISSUE_RATE: define.
3457
3458         * config/sh/sh.md: Add DFA based pipeline description for SH4.
3459
3460         (define_attr insn_class): New attribute used for DFA
3461          scheduling.
3462         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
3463         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
3464          cmpeqdi_t): Likewise.
3465
3466         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
3467          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
3468          ex_group.
3469         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
3470
3471         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3472
3473         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
3474         break.
3475
3476         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3477
3478         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
3479         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
3480         necessary.
3481         (output_dfa_start_func): Initiate new variable insn_codes_length,
3482         (write_automata): Output definition of the new variable.
3483
3484         2001-10-02  David S. Miller  <davem@redhat.com>
3485
3486         * haifa-sched.c (advance_one_cycle): New function.
3487         (schedule_block): Use it.
3488         (queue_to_ready): Use it, and also make sure to advance the DFA
3489         state on all stall cycles, not just those where insn_queue links
3490         are found.
3491
3492         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
3493
3494         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
3495         non-zero if the highest-priority instruction could be scheduled.
3496         (choose_ready): Remove last argument from max_issue call.
3497
3498         2001-09-28  David S. Miller  <davem@redhat.com>
3499
3500         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
3501         ultrasparc and 3 for other multi-issue sparcs.
3502
3503         2001-09-27  David S. Miller  <davem@redhat.com>
3504
3505         * config/sparc/sparc.md (cycle_display): New pattern.
3506         * config/sparc/sparc.c (sparc_cycle_display): New.
3507         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
3508
3509         2001-09-25  David S. Miller  <davem@redhat.com>
3510
3511         Convert all of Sparc scheduling to DFA
3512         * config/sparc/sparc.md: Kill all define_function_unit
3513         directives and replace with DFA equivalent.
3514         * config/sparc/sparc.c (ultrasparc_adjust_cost,
3515         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
3516         ultra_fpmode_conflict_exists, ultra_find_type,
3517         ultra_build_types_avail, ultra_flush_pipeline,
3518         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
3519         ultrasparc_variable_issue, ultrasparc_sched_init,
3520         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
3521         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
3522         ultra_cur_hist, ultra_cycles_elapsed): Kill.
3523         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
3524         ultrasparc_store_bypass_p): New.
3525         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
3526         Declare.
3527
3528         2001-09-24  David S. Miller  <davem@redhat.com>
3529
3530         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
3531         ready->vec[foo] not ready[foo].
3532
3533         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
3534
3535         * doc/md.texi: Correct examples for define_insn_reservations
3536         `mult' and `div'.
3537
3538         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
3539
3540         * genautomata.c (create_automata): Print message about creation of
3541         each automaton.
3542         (generate): Remove printing meease about creation of
3543         automata.
3544
3545         2001-09-05  David S. Miller  <davem@redhat.com>
3546
3547         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
3548         * config/sparc/linux64.h: Likewise.
3549
3550         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
3551
3552         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
3553         schedule_block, sched_init, sched_finish): Add missed calls of
3554         use_dfa_pipeline_interface.
3555
3556         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
3557         Ditto.
3558
3559         * sched-vis.c (get_visual_tbl_length): Ditto.
3560
3561         2001-08-27  Richard Henderson  <rth@redhat.com>
3562
3563         * genattr.c (main): Emit state_t even when not doing scheduling.
3564
3565         2001-08-27  Richard Henderson  <rth@redhat.com>
3566
3567         * genautomata.c (expand_automata): Always create a description.
3568
3569         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
3570
3571         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
3572         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
3573         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
3574         RTL constructions.
3575
3576         * genattr.c (main): New variable num_insn_reservations.  Increase
3577         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
3578         pipeline hazard recognizer interface.
3579
3580         * genattrtab.h: New file.
3581
3582         * genattrtab.c: Include genattrtab.h.
3583         (attr_printf, check_attr_test, make_internal_attr,
3584         make_numeric_value): Move protypes into genattrtab.h.  Define them
3585         as external.
3586         (num_dfa_decls): New global variable.
3587         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
3588         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
3589         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
3590         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
3591
3592         * genautomata.c: New file.
3593
3594         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
3595
3596         * sched-int.h: (curr_state): Add the external definition for
3597         automaton pipeline interface.
3598         (haifa_insn_data): Add comments for members blockage and units.
3599
3600         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3601         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3602         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3603         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3604         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3605         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3606         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
3607         macros.
3608         (TARGET_SCHED): Use the new macros.
3609
3610         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
3611         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
3612         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
3613         dfa_bubble): New members in gcc_target.sched.
3614
3615         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
3616         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
3617         (insn_queue): Redefine it as pointer to array.
3618         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
3619         INSN_QUEUE_SIZE.
3620         (max_insn_queue_index_macro_value): New variable.
3621         (curr_state, dfa_state_size, ready_try): New varaibles for
3622         automaton interface.
3623         (ready_element, ready_remove, max_issue): New function prototypes
3624         for automaton interface.
3625         (choose_ready): New function prototype.
3626         (insn_unit, blockage_range): Add comments.
3627         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
3628         FUNCTION_UNITS_SIZE == 0.
3629         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
3630         actual_hazard, potential_hazard): Add comments.
3631         (insn_cost): Use cost -1 as undefined value.  Remove
3632         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
3633         pipeline interface.
3634         (ready_element, ready_remove): New functions for automaton
3635         interface.
3636         (schedule_insn): Add new code for automaton pipeline interface.
3637         (queue_to_ready): Add new code for automaton pipeline interface.
3638         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
3639         (debug_ready_list): Print newline when the queue is empty.
3640         (max_issue): New function for automaton pipeline interface.
3641         (choose_ready): New function.
3642         (schedule_block): Add new code for automaton pipeline interface.
3643         Print ready list before scheduling each insn.
3644         (sched_init): Add new code for automaton pipeline interface.
3645         Initiate insn cost by -1.
3646         (sched_finish): Free the current automaton state and finalize
3647         automaton pipeline interface.
3648
3649         * sched-rgn.c: Include target.h.
3650         (init_ready_list, new_ready, debug_dependencies): Add new code for
3651         automaton pipeline interface.
3652
3653         * sched-vis.c: Include target.h.
3654         (get_visual_tbl_length): Add code for automaton interface.
3655         (target_units, print_block_visualization):  Add comments.
3656
3657         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
3658         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
3659         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
3660         (getruntime.o, genautomata.o): New entries.
3661         (genattrtab.o): Add new dependency file genattrtab.h.
3662         (genattrtab): Add new dependencies.  Link it with `libm.a'.
3663         (getruntime.o, hashtab.o): New entries for canadian cross.
3664
3665         * doc/md.texi: Description of automaton based model.
3666
3667         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
3668         Add comments.
3669         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3670         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3671         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3672         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3673         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3674         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3675         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
3676         hook descriptions.
3677         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
3678         MAX_DFA_ISSUE_RATE): New macro descriptions.
3679
3680         * doc/contrib.texi: Add dfa based scheduler contribution.
3681
3682         * doc/gcc.texi: Add more information about genattrtab.
3683
3684 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3685
3686         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
3687         adjust_address_nv call.
3688
3689 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
3690
3691         * doc/install.texi (Testing): Provide additional information, and
3692         a stronger encouragement, for running the testsuites.
3693
3694 2002-04-29  DJ Delorie  <dj@redhat.com>
3695
3696         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
3697         given in upper case.
3698
3699 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3700
3701         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
3702         Solaris 2 <widec.h> if missing.
3703         * fixinc/fixincl.x: Regenerate.
3704         * fixinc/tests/base/widec.h: New file.
3705
3706 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
3707
3708         * toplev.c (f_options): Add "profile" switch so that
3709         -fno-profile can be used to disable -p.
3710
3711 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
3712
3713         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
3714         UV2DImode.
3715         * tree.c (build_common_tree_nodes_2): Likewise.
3716         * tree.h (enum tree_index): Likewise.
3717         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
3718
3719         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
3720         entries.
3721         (init_mmx_sse_builtins): Initialize SSE2 builtins.
3722         (ix86_expand_builtin): Add support for SSE2 builtins.
3723         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
3724         (VALID_SSE_REG_MODE): Use it.
3725         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
3726         (enum ix86_builtins): Add SSE2 builtins.
3727         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
3728         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
3729         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
3730         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
3731         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
3732         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
3733         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
3734         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
3735         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
3736         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
3737         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
3738         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
3739         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
3740         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
3741         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
3742         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
3743         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
3744         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
3745         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
3746         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
3747         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
3748         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
3749         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
3750         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
3751         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
3752         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
3753         lfence_insn): New patterns.
3754         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
3755         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
3756
3757 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
3758
3759         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
3760
3761 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3762
3763         * doc/contrib.texi (Contributors): Add Paolo Carlini and
3764         Janis Johnson.
3765         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
3766         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
3767         and CPU instead of cpu.
3768
3769 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
3770
3771         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
3772         variables.
3773         (lang_independent_options): Add -fif-conversion, -fif-conversion2
3774         (rest_of_compilation): Do if conversion only when asked for.
3775         (parse_options_and_default_flags): Set new variables to 1 for -O1
3776         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
3777
3778 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
3779
3780         * i386.c (dbx64_register_map): Fix typo.
3781
3782 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
3783
3784         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
3785         real_one_half, real_bb_freq_max): New static variables.
3786         (debug_profile_bbauxs): Kill.
3787         (process_note_predictions): Kill unused variable.
3788         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
3789         volatile double.
3790         (propagate_freq): Use REAL_ARITHMETICS.
3791         (estimate_bb_frequencies): Likevise; init new static variables.
3792         * Makefile.in (predict.o): Add dependency on real.h
3793
3794 2002-04-28  David S. Miller  <davem@redhat.com>
3795
3796         PR target/6500
3797         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
3798         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
3799         several {reads,writes} instead.
3800         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
3801         Define.
3802
3803 2002-04-27  David S. Miller  <davem@redhat.com>
3804
3805         PR target/6494
3806         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
3807         of the stack bias.
3808
3809         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
3810         including signal.h and sys/ucontext.h, not needed.
3811
3812 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
3813
3814         * varasm.c (output_constant_def): Correct test for not calling
3815         ENCODE_SECTION_INFO for INTEGER_CST.
3816
3817 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3818
3819         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
3820         keep most cases as function eval_token.
3821         (eval_token): New function.
3822         (_cpp_parse_expr): Read token here for improved diagnostics.
3823         Don't use op_as_text.  Detect bad ':' here.
3824         (reduce): Don't detect bad ':' here.
3825         (op_as_text): Remove.
3826         * cpphash.h (_cpp_test_assertion): Change prototype.
3827         * cpplib.c (_cpp_test_assertion): Change prototype.
3828
3829 2002-04-28  Richard Henderson  <rth@redhat.com>
3830
3831         PR c/5154
3832         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
3833         (ggc_mark_rtx_children): New.
3834
3835 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3836
3837         PR target/6496
3838         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
3839         after call peepholes for UltraSPARC.
3840         (call + jump 64-bit peepholes): Remove.
3841
3842 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3843
3844         PR c/6497
3845         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
3846         result as temporary value.
3847
3848 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3849
3850         PR c++/6396
3851         * toplev.c (rest_of_compilation): Only run regrename and copy
3852         propagation if optimizing.
3853
3854 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3855
3856         PR optimization/6475
3857         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
3858         register of REGNO_DECL (i).
3859         * Makefile.in (reload1.o): Add $(TREE_H).
3860
3861 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3862
3863         * cppexp.c (lex): Update to use state.skip_eval.
3864         (struct op): Remove prio and flags members.
3865         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
3866         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
3867         (LEFT_ASSOC): New macro.
3868         (optab): New table of operator priorities and flags.
3869         (SHIFT): Update.
3870         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
3871         malloc-ed parser stack.
3872         (reduce): New; reduce the operator stack.
3873         (_cpp_expand_op_stack): Expand the operator stack as necessary.
3874         * cpphash.h (struct op): Predeclare.
3875         (struct cpp_reader): New members op_stack, op_limit.
3876         (struct lexer_state): New member skip_eval.
3877         (_cpp_parse_expr): Update.
3878         (_cpp_expand_op_stack): New.
3879         * cpplib.c (do_if): Update.
3880         * cppinit.c (cpp_create_reader): Create op stack.
3881         (cpp_destroy): And destroy it.
3882         * cpplib.h (CPP_LAST_CPP_OP): Correct.
3883         (TTYPE_TABLE): Correct.
3884
3885 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3886
3887         PR c/6343
3888         * c-decl.c (duplicate_decls): Call merge_weak.
3889         * c-pragma.c (apply_pragma_weak): Warn about misuse.
3890         * output.h (merge_weak): Prototype merge_weak.
3891         * varasm.c (merge_weak): New function.
3892         (declare_weak): Make sure we don't give an error on VAR_DECLs.
3893         Mark RTL with SYMBOL_REF_WEAK.
3894
3895 2002-04-27  Kurt Garloff <garloff@suse.de>
3896
3897         * tree-inline.c (inlinable_function_p): Improve heuristics
3898         by using a smoother function to cut down allowable inlinable size.
3899         * param.def: Add parameters max-inline-insns-single,
3900         max-inline-slope, min-inline-insns that determine the exact
3901         shape of the above function.
3902         * param.h: Likewise.
3903
3904 2002-04-26  Richard Henderson  <rth@redhat.com>
3905
3906         * c-parse.in (malloced_yyss, malloced_yyvs): New.
3907         (yyoverflow): Re-add.  Set them.
3908         (free_parser_stacks): New.
3909         * c-common.h: Declare it.
3910         * c-lex.c (c_common_parse_file): Call it.
3911
3912 2002-04-26  Richard Henderson  <rth@redhat.com>
3913
3914         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
3915         for fallthru search.
3916
3917 2002-04-26  Eric Christopher  <echristo@redhat.com>
3918
3919         PR optimization/3700
3920         * config/mips/mips.c (mips_issue_rate): Define.  New function.
3921         (TARGET_SCHED_ISSUE_RATE): Use.
3922
3923 2002-04-25  David S. Miller  <davem@redhat.com>
3924
3925         PR target/6422
3926         * reorg.c (optimize_skip): Do not allow exception causing
3927         instructions to be considered for delay slots.
3928         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
3929         (relax_delay_slots): Do not try to consider exception causing
3930         instructions as redundant.
3931
3932 2002-04-26  Richard Henderson  <rth@redhat.com>
3933
3934         PR c/5225
3935         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
3936
3937 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
3938
3939         PR bootstrap/6445
3940         * config/i386/i386.md (untyped_call): Return the value in a float
3941         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
3942         TARGET_80387.
3943
3944 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
3945
3946         * tree.c (tree_int_cst_lt): Compare constants whose types differ
3947         in unsigned-ness correctly.
3948
3949 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3950
3951         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
3952         portable runtime model.
3953
3954 2002-04-26  Richard Henderson  <rth@redhat.com>
3955
3956         * c-parse.in (yyoverflow): Revert.
3957
3958 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
3959             Richard Henderson  <rth@redhat.com>
3960
3961         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
3962         result as temporary value.
3963
3964 2002-04-26  Richard Henderson  <rth@redhat.com>
3965
3966         PR c/3581
3967         * c-common.c (fix_string_type): Split out of ...
3968         (combine_strings): ... here.  Take a varray, not a tree list.
3969         (c_expand_builtin_printf): Use fix_string_type.
3970         * c-common.h: Update decls.
3971         * c-parse.in (string): Remove.  Update all uses to use STRING
3972         instead, and not call combine_strings.
3973         (yylexstring): New.
3974         (_yylex): Use it.
3975         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
3976         (build_asm_stmt): Likewise.
3977         * objc/objc-act.c (my_build_string): Use fix_string_type.
3978         (build_objc_string_object): Build varray for combine_strings.
3979
3980 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
3981
3982         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
3983         x86-64.
3984
3985 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3986
3987         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
3988         (HAVE_NO_R_OPERAND): Remove.
3989         (HAVE_VALUE): Remove.
3990         (op_to_prio): Update.
3991         (UNARY): Don't alter flags.
3992         (_cpp_parse_expr): want_value used to indicate whether
3993         a number or unary operator is expected next.  Distinguish
3994         unary and binary +/-.
3995         (op_as_text): Update for unary operators.
3996
3997 2002-04-25  Richard Henderson  <rth@redhat.com>
3998
3999         PR c/2161
4000         * c-parse.in (yyoverflow): New.
4001
4002 2002-04-25  Richard Henderson  <rth@redhat.com>
4003
4004         PR c/2098
4005         * c-common.c (shorten_compare): Simplfy conditions leading to
4006         the generation of a warning.
4007
4008 2002-04-25  Richard Henderson  <rth@redhat.com>
4009
4010         PR c/2035
4011         * expmed.c (extract_bit_field): Fall through to generic code rather
4012         than aborting on subreg special case.
4013
4014 2002-04-25  David S. Miller  <davem@redhat.com>
4015
4016         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
4017         for DECL being NULL.
4018
4019 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
4020
4021         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
4022
4023 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
4024
4025         * c-decl.c (grokdeclarator): Remove outdated ??? note
4026         on invalid declaration of flexible array members.
4027
4028 2002-04-25  Richard Henderson  <rth@redhat.com>
4029
4030         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
4031
4032 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
4033
4034         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
4035         needed by the compiler, even if they are used as global regs.
4036
4037 2002-04-25  Matt Hiller  <hiller@redhat.com>
4038
4039         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
4040         functions.
4041         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
4042         of the corresponding functions.
4043         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
4044         New prototypes.
4045
4046 2002-04-25  Matt Hiller  <hiller@redhat.com>
4047
4048         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
4049
4050         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
4051         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
4052         registers, adjust comment accordingly.
4053         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
4054         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
4055         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
4056         for coprocessor registers.
4057         (ADDITIONAL_REGISTER_NAMES): Include
4058         ALL_COP_ADDITIONAL_REGISTER_NAMES.
4059
4060         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
4061         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
4062         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
4063         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
4064         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
4065
4066         (mips_char_to_class): Adjust comment to include coprocessor
4067         constraint letters.
4068
4069         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
4070         New functions.
4071         (mips_reg_names, mips_regno_to_class): Include coprocessor
4072         information.
4073         (mips_sw_reg_names): Ditto, make non-static.
4074         (mips_move_1word): Handle moves to and from coprocessor registers.
4075         (mips_move_2words): Handle moves to and from coprocessor
4076         registers.
4077         (mips_class_max_nregs, mips_register_move_cost): Handle
4078         coprocessor register classes.
4079         (override_options): Initialize mips_char_to_class and
4080         mips_hard_regno_mode_ok properly for coprocessor registers.
4081
4082         * config/mips/mips.md (movdi_internal, movdi_internal2,
4083         movsi_internal1, movsi_internal2): Add constraint-sets for
4084         coprocessor registers.
4085         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
4086         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
4087         isn't mips.
4088         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
4089         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
4090         isn't mips.
4091         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
4092         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
4093         isn't mips.
4094         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
4095         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
4096         isn't mips.
4097
4098         * doc/tm.texi: Document feature.
4099
4100 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4101
4102         * integrate.c (function_attribute_inlinable_p): Simplify.
4103         Check the table pointer is not NULL.
4104
4105 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
4106
4107         * doc/c-tree.texi: Fix typo in introduction.
4108
4109 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4110
4111         * c-common.h (c_common_parse_file): Update.
4112         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
4113         * c-lex.c (YYDEBUG): Get from c-lex.h.
4114         (c_common_parse_file): Update.
4115         * c-lex.h (YYDEBUG, yydebug): New.
4116         * c-parse.in (YYDEBUG): Get from c-lex.h.
4117         (c_set_yydebug): Remove.
4118         * c-tree.h (c_set_yydebug): Remove.
4119         * langhooks-def.h (lhd_do_nothing_i): New.
4120         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
4121         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
4122         * langhooks.c  (lhd_do_nothing_i): New.
4123         (lhd_set_yydebug): Remove.
4124         * langhooks.h (struct lang_hooks): Update.
4125         * toplev.c (set_yydebug): New.
4126         (compile_file): Update call to parse_file hook.
4127         (decode_d_option): Update.
4128 objc:
4129         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
4130
4131 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
4132
4133         * loop.c (load_mems): Don't change the interface of called functions.
4134
4135         * calls.c (expand_call): Take current_function_pretend_args_size
4136         into account when setting argblock for sibcalls.
4137
4138 2002-04-24  Matt Hiller  <hiller@redhat.com>
4139
4140         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
4141         * c-lex.c: Ditto.
4142
4143         * cpplex.c (skip_line_comment): Process comment one multibyte
4144         character at a time rather than one char at a time, if
4145         appropriate.
4146         (parse_string): Process string one multibyte character at a time
4147         rather than one char at a time, if appropriate.
4148         * c-lex.c (lex_string): Lex and copy multibyte strings
4149         appropriately.
4150         * cpplib.h (cppchar_t): Change to unsigned.
4151
4152 2002-04-24  Richard Henderson  <rth@redhat.com>
4153
4154         PR c/3467
4155         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
4156         for c99.
4157
4158 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
4159
4160         * sh.c (sh_va_arg): If argument was passed by reference,
4161         dereference the pointer.
4162
4163         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
4164
4165         * sh.md (divsi3_i4_media): Use match_operand for input values
4166         rather than hard registers.
4167         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
4168         unnecessarily through hard registers.  Keep copies of pseudo
4169         registers outside of the libcall sequence.
4170
4171         * sh.md (casesi_shift_media): Add modes.
4172
4173         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
4174         values in memory.
4175
4176 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4177
4178         * attribs.c (c_common_attribute_table): Move table and handlers
4179         to c-common.c.
4180         (format_attribute_table, lang_attribute_table,
4181         lang_attribute_common): Remove.
4182         (init_attributes): Replace NULL pointers with pointers to the
4183         empty table.
4184         (handle_packed_attribute, handle_nocommon_attribute,
4185         handle_common_attribute, handle_noreturn_attribute,
4186         handle_noinline_attribute, handle_always_inline_attribute,
4187         handle_used_attribute, handle_unused_attribute,
4188         handle_const_attribute, handle_transparent_union_attribute,
4189         handle_constructor_attribute, handle_destructor_attribute,
4190         handle_mode_attribute, handle_section_attribute,
4191         handle_aligned_attribute, handle_weak_attribute,
4192         handle_alias_attribute, handle_visibility_attribute,
4193         handle_no_instrument_function_attribute, handle_malloc_attribute,
4194         handle_no_limit_stack_attribute, handle_pure_attribute,
4195         handle_deprecated_attribute, handle_vector_size_attribute,
4196         vector_size_helper): Move to c-common.c.
4197         * c-common.c (c_common_attribute_table,
4198         handle_packed_attribute, handle_nocommon_attribute,
4199         handle_common_attribute, handle_noreturn_attribute,
4200         handle_noinline_attribute, handle_always_inline_attribute,
4201         handle_used_attribute, handle_unused_attribute,
4202         handle_const_attribute, handle_transparent_union_attribute,
4203         handle_constructor_attribute, handle_destructor_attribute,
4204         handle_mode_attribute, handle_section_attribute,
4205         handle_aligned_attribute, handle_weak_attribute,
4206         handle_alias_attribute, handle_visibility_attribute,
4207         handle_no_instrument_function_attribute, handle_malloc_attribute,
4208         handle_no_limit_stack_attribute, handle_pure_attribute,
4209         handle_deprecated_attribute, handle_vector_size_attribute,
4210         vector_size_helper): Move from attribs.c.
4211         * c-common.h (c_common_attribute_table,
4212         c_common_format_attribute_table): New.
4213         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4214         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
4215         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
4216         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
4217         (LANG_HOOKS_INITIALIZER): Update.
4218         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
4219         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
4220         * target.h: Update comment.
4221         * tree.c (default_target_attribute_table): Remove.
4222         * tree.h (default_target_attribute_table, format_attribute_table,
4223         lang_attribute_table, lang_attribute_common): Remove.
4224 objc:
4225         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4226         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
4227
4228 2002-04-24  Jason Merrill  <jason@redhat.com>
4229
4230         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
4231         * dwarf2out.c (dwarf_attr_name): Support it.
4232         (gen_array_type_die): Emit it.
4233         (lookup_type_die): No special handling for VECTOR_TYPE.
4234         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
4235
4236 2002-04-24  Richard Henderson  <rth@redhat.com>
4237
4238         * config/mips/mips.md (movdi_usd): Renumber.
4239
4240 2002-04-24  David S. Miller  <davem@redhat.com>
4241
4242         PR target/6420
4243         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
4244         32-bit Sparc and current_function_returns_struct is true.
4245
4246 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
4247
4248         * loop.c (canonicalize_condition): Use gen_int_mode.
4249
4250 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
4251
4252         * config/rs6000/altivec.h: Cleanup file.  Add non individual
4253         variants.
4254         (vec_vaddubm): New.
4255         (vec_vadduhm): New.
4256         (vec_vadduwm): New.
4257         (vec_vaddfp): New.
4258         (vec_vaddcuw): New.
4259         (vec_vaddubs): New.
4260         (vec_vaddsbs): New.
4261         (vec_vadduhs): New.
4262         (vec_vadduws): New.
4263         (vec_vaddsws): New.
4264         (vec_vand): New.
4265         (vec_vandc): New.
4266         (vec_vavgub): New.
4267         (vec_vavgsb): New.
4268         (vec_vavguh): New.
4269         (vec_vavgsh): New.
4270         (vec_vavguw): New.
4271         (vec_vavgsw): New.
4272         (vec_vrfip): New.
4273         (vec_vcmpbfp): New.
4274         (vec_vcmpequb): New.
4275         (vec_vcmpequh): New.
4276         (vec_vcmpequw): New.
4277         (vec_vcmpeqfp): New.
4278         (vec_vcmpgefp): New.
4279         (vec_vcmpgtub): New.
4280         (vec_vcmpgtsb): New.
4281         (vec_vcmpgtuh): New.
4282         (vec_vcmpgtsh): New.
4283         (vec_vcmpgtuw): New.
4284         (vec_vcmpgtsw): New.
4285         (vec_vcmpgtfp): New.
4286         (vec_vcmpgefp): New.
4287         (vec_vcfux): New.
4288         (vec_vcfsx): New.
4289         (vec_vctsxs): New.
4290         (vec_vctuxs): New.
4291         (vec_vexptefp): New.
4292         (vec_vrfim): New.
4293         (vec_lvx): New.
4294         (vec_lvebx): New.
4295         (vec_lvehx): New.
4296         (vec_lde): Add vector float variant.
4297         (vec_lvewx): New.
4298         (vec_lvxl): New.
4299         (vec_vlogefp): New.
4300         (vec_vmaddfp): New.
4301         (vec_vmhaddshs): New.
4302         (vec_vmaxub): New.
4303         (vec_vmaxsb): New.
4304         (vec_vmaxuh): New.
4305         (vec_vmaxsh): New.
4306         (vec_vmaxuw): New.
4307         (vec_vmaxsw): New.
4308         (vec_vmaxsw): New.
4309         (vec_vmaxfp): New.
4310         (vec_vmrghb): New.
4311         (vec_vmrghh): New.
4312         (vec_vmrghw): New.
4313         (vec_vmrglb): New.
4314         (vec_vmrglh): New.
4315         (vec_vmrglw): New.
4316         (vec_vminub): New.
4317         (vec_vminsb): New.
4318         (vec_vminuh): New.
4319         (vec_vminsh): New.
4320         (vec_vminuw): New.
4321         (vec_vminsw): New.
4322         (vec_vminfp): New.
4323         (vec_vmladduhm): New.
4324         (vec_vmhraddshs): New.
4325         (vec_msumubm): New.
4326         (vec_vmsummbm): New.
4327         (vec_vmsumuhm): New.
4328         (vec_vmsumshm): New.
4329         (vec_vmsumuhs): New.
4330         (vec_vmsumshs): New.
4331         (vec_vmuleub): New.
4332         (vec_vmulesb): New.
4333         (vec_vmuleuh): New.
4334         (vec_vmulesh): New.
4335         (vec_vmuloub): New.
4336         (vec_mulosb): New.
4337         (vec_vmulouh): New.
4338         (vec_vmulosh): New.
4339         (vec_vnmsubfp): New.
4340         (vec_vnor): New.
4341         (vec_vor): New.
4342         (vec_vpkuhum): New.
4343         (vec_vpkuwum): New.
4344         (vec_vpkpx): New.
4345         (vec_vpkuhus): New.
4346         (vec_vpkshss): New.
4347         (vec_vpkuwus): New.
4348         (vec_vpkswss): New.
4349         (vec_vpkshus): New.
4350         (vec_vpkswus): New.
4351         (vec_vperm): New.
4352         (vec_vrefp): New.
4353         (vec_vrlb): New.
4354         (vec_vrlh): New.
4355         (vec_vrlw): New.
4356         (vec_vrfin): New.
4357         (vec_vrsqrtefp): New.
4358         (vec_vsel): New.
4359         (vec_vslb): New.
4360         (vec_vslh): New.
4361         (vec_vslw): New.
4362         (vec_vsldoi): New.
4363         (vec_vsl): New.
4364         (vec_vslo): New.
4365         (vec_vspltb): New.
4366         (vec_vsplth): New.
4367         (vec_vspltw): New.
4368         (vec_vspltisb): New.
4369         (vec_vspltish): New.
4370         (vec_vspltisw): New.
4371         (vec_vsrb): New.
4372         (vec_vsrh): New.
4373         (vec_vsrw): New.
4374         (vec_vsrab): New.
4375         (vec_vsrah): New.
4376         (vec_vsraw): New.
4377         (vec_vsr): New.
4378         (vec_vsro): New.
4379         (vec_stvx): New.
4380         (vec_stvebx): New.
4381         (vec_stvehx): New.
4382         (vec_stvewx): New.
4383         (vec_stvxl): New.
4384         (vec_vsububm): New.
4385         (vec_vsubuhm): New.
4386         (vec_vsubuwm): New.
4387         (vec_vsubfp): New.
4388         (vec_vsubcuw): New.
4389         (vec_vsububs): New.
4390         (vec_vsubsbs): New.
4391         (vec_vsubuhs): New.
4392         (vec_vsubshs): New.
4393         (vec_vsubuws): New.
4394         (vec_vsubsws): New.
4395         (vec_vsum4ubs): New.
4396         (vec_vsum4sbs): New.
4397         (vec_vsum4shs): New.
4398         (vec_vsum2sws): New.
4399         (vec_vsumsws): New.
4400         (vec_vrfiz): New.
4401         (vec_vupkhsb): New.
4402         (vec_vupkhpx): New.
4403         (vec_vupkhsh): New.
4404         (vec_vupklsb): New.
4405         (vec_vupklpx): New.
4406         (vec_vupklsh): New.
4407         (vec_vxor): New.
4408
4409 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
4410
4411         PR c/5430
4412         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
4413         added literals from substracted literals.
4414         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
4415         (fold) [associate]: Preserve MINUS_EXPR if needed.
4416
4417 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
4418
4419         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
4420         are obsoleted.
4421
4422 2002-04-23  Tom Tromey  <tromey@redhat.com>
4423
4424         * gcc.c: Added --resource.  For PR java/6314.
4425
4426 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
4427
4428         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
4429         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
4430         these libraries.
4431
4432 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
4433
4434         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
4435
4436 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
4437
4438         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
4439         workaround.
4440         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
4441         (ix86_expand_clrstr): Fix typo.
4442         * loop.c (gen_load_of_final_value): New.
4443         (loop_givs_rescan, strength_reduce, check_dbra_loop):
4444         Use it.
4445
4446 2002-04-23  Roger Sayle  <roger@eyesopen.com>
4447
4448         * builtins.c (builtin_memset_gen_str): New function.
4449         (expand_builtin_memset): Optimize the case of constant length, but
4450         unknown value.
4451
4452 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
4453
4454         * config/rs6000/altivec.h (vec_step): Remove extraneous
4455         parentheses.
4456         (vec_ctu): Cast return.
4457
4458 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
4459
4460         PR target/6413
4461         * function.h: (struct function): Add profile_label_no field.
4462         (current_function_profile_label_no): Define.
4463         * function.c: (profile_label_no): New static var.
4464         (expand_function_start): Increment it, and copy to
4465         current_function_profile_label_no.
4466         * output.h (profile_label_no): Delete.
4467         * final.c (profile_label_no): Delete.
4468         (profile_function): Use current_function_profile_label_no.
4469         (final_end_function): Don't increment profile_label_no here.
4470         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
4471         profile_label_no with current_function_profile_label_no.
4472         * config/pa/pa.c (current_function_number): Delete.
4473         (pa_output_function_prologue): Don't output profile label here.
4474         (hppa_profile_hook): Use label_no param rather than
4475         current_function_number.
4476         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
4477         * config/pa/pa.h: .. here.
4478         (FUNCTION_PROFILER): Output profile label here.
4479
4480 2002-04-22  Eric Christopher  <echristo@redhat.com>
4481
4482         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
4483         patch of 2002-04-09 due to binutils issues.
4484         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
4485
4486 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
4487
4488         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
4489         constraint to 'o' for m=r and r=m alternatives.
4490         ("*movv8hi_internal1"): Same.
4491         ("*movv16qi_internal1"): Same.
4492         ("*movv4sf_internal1"): Same.
4493
4494 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
4495
4496         * rtl.h (RTX_FLAG): New macro.
4497         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
4498         * final.c (alter_subreg): Use macro to access rtx flag.
4499         * integrate.c (copy_rtx_and_substitute): Use new access macro.
4500         * print-rtl.c (print_rtx): Use new access macro.
4501
4502         * cse.c (insert): Check rtx code before accessing flag.
4503
4504         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
4505         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
4506         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
4507         convert_const_symbol_ref, make_canonical, make_alternative_compare,
4508         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
4509         simplify_test_exp, optimize_attrs, simplify_by_exploding,
4510         find_and_mark_used_attributes, unmark_used_attributes,
4511         add_values_to_cover, simplify_with_current_value,
4512         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
4513         copy_rtx_unchanging, main): Use new access macros.
4514
4515 2002-04-22  Tom Rix  <trix@redhat.com>
4516
4517         * expmed.c (init_expmed): Generate shifted constant once.
4518
4519 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
4520
4521         * c-lex.c (lex_charconst): Call convert to get constant in
4522         proper type; don't just smash the type field.
4523         Fixes PR c/6300.
4524
4525         * config.gcc: Add list of obsolete configurations.  Disallow
4526         building these without --enable-obsolete.
4527         * doc/install.texi: Document --enable-obsolete and obsoletion
4528         policy.  Mention obsoletion of individual targets in
4529         appropriate places.
4530
4531 2002-04-22  Richard Henderson  <rth@redhat.com>
4532
4533         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
4534
4535 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
4536
4537         PR f/6138.
4538         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
4539         (walk_fixup_memory_subreg): Likewise.
4540         (fixup_var_refs_insn): Adjust accordingly.
4541         (fixup_var_refs_1): Likewise.
4542
4543 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
4544
4545         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
4546         LIBPATH_ARCH64_SPEC): Define.
4547         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
4548         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
4549         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
4550         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
4551
4552 2002-04-22      Joel Sherrill <joel@OARcorp.com>
4553
4554         * gthr-rtems.h: Correct prototypes to remove warnings.
4555
4556 2002-04-22  Richard Henderson  <rth@redhat.com>
4557
4558         PR c/6344
4559         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
4560
4561         * gcse.c (free_insn_expr_list_list): New.
4562         (clear_modify_mem_tables): Use it.  Fix bit set usage.
4563         (canon_list_insert): Use EXPR_LISTs for expressions.
4564         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
4565
4566 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4567
4568         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
4569         file change and include code to _cpp_pop_buffer.
4570         * cpphash.h (struct pending_option): Predeclare.
4571         (struct cpp_reader): New member next_include_file.
4572         (_cpp_pop_file_buffer): Update.
4573         (_cpp_push_next_buffer): Update, rename.
4574         * cppinit.c (cpp_destroy): Free include chain and pending here.
4575         (cpp_finish_options): Simplify.
4576         (_cpp_push_next_buffer): Rename and clean up.
4577         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
4578         Clarify.
4579         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
4580
4581 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
4582
4583         * config/rs6000/altivec.h (vec_xor): Add variant for both args
4584         being vector signed int.
4585         (vec_andc): Same.
4586         (vec_xor): Add variant for both args being vector signed char.
4587         Remove redundant variant.
4588         (vec_andc): Same.
4589
4590 2002-04-21  David S. Miller  <davem@redhat.com>
4591
4592         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
4593         compare mode in output RTL.
4594
4595 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
4596
4597         * config/rs6000/rs6000.c (rs6000_override_options): Correct
4598         style and formatting of previous patch.
4599
4600 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
4601
4602         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
4603         flag_pic for ABI_AIX.
4604
4605 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4606
4607         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
4608         * cppfiles.c (read_include_file): Similarly.
4609         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
4610         uxstrdup ustrchr, ufputs): Similarly.
4611         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
4612         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
4613         cpp_ideq, parse_identifier, parse_number): Similarly.
4614         * cpplib.c (struct directive, dequote_string, D, run_directive,
4615         cpp_push_buffer): Similarly.
4616         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
4617         _cpp_create_definition, check_trad_stringification,
4618         cpp_macro_definition): Similarly.
4619
4620 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4621
4622         * cppmacro.c (funlike_invocation_p): Don't step back
4623         over CPP_EOF.
4624
4625 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
4626
4627         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
4628         labelno.
4629
4630 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
4631
4632         * doc/invoke.texi: Remove Chill references.
4633         * doc/gcc.texi: Update last modified date.
4634
4635 2002-04-20  Kazu Hirata  <kazu@hxi.com>
4636
4637         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
4638         push and pop.  Replace add.l with add.w.
4639
4640 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4641
4642         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
4643         multiply instructions for H8/300H case.
4644
4645 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4646
4647         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
4648         Bum three instructions from each routine.
4649
4650 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4651
4652         * Makefile.in: Update.
4653         * decl.c (push_c_function_context, pop_c_function_context,
4654         mark_c_function_context): Rename for consistency.
4655         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
4656         * c-tree.h (push_c_function_context, pop_c_function_context,
4657         mark_c_function_context): Rename for consistency.
4658         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4659         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
4660         * function.c (init_lang_status, save_lang_status,
4661         restore_lang_status, mark_lang_status, free_lang_status):
4662         Move to langhooks.h.
4663         (push_function_context_to, pop_function_context_from,
4664         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
4665         Update.
4666         * function.h (init_lang_status, save_lang_status,
4667         restore_lang_status, mark_lang_status, free_lang_status):
4668         Move to langhooks.h.
4669         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
4670         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
4671         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
4672         LANG_HOOKS_FUNCTION_INITIALIZER): New.
4673         (LANG_HOOKS_INITIALIZER): Update.
4674         (lhd_do_nothing_f): New.
4675         * langhooks.h (struct lang_hooks_for_functions): New.
4676         (struct lang_hooks): New hooks.
4677         * langhooks.c (lhd_do_nothing_f): New.
4678 objc:
4679         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4680         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
4681
4682 2002-04-19  David S. Miller  <davem@redhat.com>
4683
4684         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
4685         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
4686
4687 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
4688
4689         PR optimization/3756
4690         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
4691         x = ((int) y < 0) ? cst1 : cst2.
4692
4693 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
4694
4695         PR c/6358
4696         * function.c: Reapply patch for c/6358.
4697         (expand_function_end): Copy decl_rtl's mode, not
4698         current_function_return_rtx mode.
4699
4700 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
4701
4702         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
4703         targets.
4704
4705 2002-04-19  Tom Tromey  <tromey@redhat.com>
4706
4707         * doc/install.texi (Specific): Update status of Solaris 2.8.
4708         For PR libgcj/6158.
4709
4710 2002-04-19  Andreas Schwab  <schwab@suse.de>
4711
4712         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
4713         (PUT_REAL): Restore old definition.
4714
4715 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
4716             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4717
4718         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
4719         binutils 2.11.2 and higher generate smaller binaries than Sun's
4720         native tools.
4721
4722 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
4723
4724         PR c++/6352
4725         * toplev.c (rest_of_compilation): Do not defer functions for which
4726         TREE_SYMBOL_REFERENCED has already been set.
4727
4728 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
4729
4730         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
4731         alternative.
4732
4733 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4734
4735         * builtins.c: Include langhooks.h.
4736         (lang_type_promotes_to): Remove.
4737         (expand_builtin_va_arg): Use new hook.
4738         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
4739         (simple_type_promotes_to): Move to c-typeck.c.
4740         * c-common.h (simple_type_promotes_to): Remove.
4741         * c-decl.c (duplicate_decls, grokdeclarator): Update.
4742         * c-format.c: Include langhooks.h.
4743         (check_format_types): Update.
4744         * c-tree.h (c_type_promotes_to): New.
4745         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
4746         (type_lists_compatible_p): Update.
4747         * langhooks-def.h (lhd_type_promotes_to): New.
4748         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
4749         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
4750         * langhooks.c (lhd_type_promotes_to): New.
4751         * langhooks.h (struct lang_hooks_for_types): New hook.
4752         * tree.h (lang_type_promotes_to): Remove.
4753 objc:
4754         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
4755
4756 2002-04-18  Richard Henderson  <rth@redhat.com>
4757
4758         * function.c: Revert patch for c/6358.
4759
4760 2002-04-18  Richard Henderson  <rth@redhat.com>
4761
4762         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
4763         blocks.  Handle multiple references to the TRAP block.  Handle
4764         non-adjacent THEN and OTHER blocks.
4765
4766 2002-04-18  Richard Henderson  <rth@redhat.com>
4767
4768         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
4769         crash with no type for by-mode libcalls.
4770
4771         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
4772
4773 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
4774
4775         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
4776         __xtensa_nonlocal_goto): Use a syscall instructions to flush
4777         the register windows.
4778
4779 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
4780
4781         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
4782         appropriate.  Document need for extended precision even when
4783         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
4784         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
4785         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
4786         instead of relying on later syntax error when REAL_WIDTH > 5.
4787         * real.c: Define NE based only on whether or not we have a
4788         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
4789         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
4790         define GET_REAL and PUT_REAL as simple memcpy operations; no
4791         need to byteswap or round.
4792         Use #error instead of #ifdef-ing out the entire file, for
4793         prompt error detection.
4794
4795         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
4796
4797 2002-04-18  David S. Miller  <davem@redhat.com>
4798
4799         * config/sparc/sparc.h (BRANCH_COST): Define.
4800
4801         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
4802         does it.
4803
4804 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
4805
4806         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
4807         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
4808         propagate_block calls after relaxation loop using new variable
4809         stabilized_prop_flags.
4810
4811 2002-04-18  Richard Henderson  <rth@redhat.com>
4812
4813         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
4814         (ia64_va_arg): Expect variable sized types by reference.
4815         * config/ia64/ia64-protos.h: Update.
4816         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
4817         ia64_function_arg_pass_by_reference.
4818
4819 2002-04-18  Richard Henderson  <rth@redhat.com>
4820
4821         * ifcvt.c: Include except.h.
4822         (block_has_only_trap): Break out from find_cond_trap.
4823         (find_cond_trap): Use it.  Always delete the trap block.
4824         (merge_if_block): Allow then block null.  Be less simplistic about
4825         what insns can end a block.
4826         * Makefile.in (ifcvt.o): Depend on except.h.
4827
4828         * config/ia64/ia64.md (trap, conditional_trap): New.
4829
4830 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
4831
4832         PR c/6358
4833         * function.c (assign_parms): Assign hard current_function_return_rtx
4834         register here...
4835         (expand_function_end): ...not here.
4836
4837 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4838
4839         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
4840         * c-tree.h (c_incomplete_type_error): New.
4841         * c-typeck.c (require_complete_type, build_component_ref): Update.
4842         (incomplete_type_error): Rename.
4843         * langhooks-def.h (lhd_incomplete_type_error): New.
4844         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
4845         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
4846         * langhooks.c (lhd_incomplete_type_error): New.
4847         * langhooks.h (struct lang_hooks_for_types): New hook.
4848         * tree.c (size_in_bytes): Use new hook.
4849         * tree.h (incomplete_type_error): Remove.
4850 objc:
4851         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
4852
4853 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
4854
4855         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
4856         TARGET_FLOAT_FORMAT blocks.
4857
4858 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4859
4860         * doc/install.texi (Downloading the source): Do not mention Chill
4861         any longer, but mention Ada.
4862         (Configuration): Do not mention Chill any longer.
4863
4864 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
4865
4866         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
4867
4868 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
4869
4870         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
4871         in last patch.
4872
4873 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
4874
4875         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
4876         instead of unsigned_type.
4877
4878 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
4879
4880         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
4881         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
4882         later.
4883
4884 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
4885
4886         * attribs.c (vector_type_node_list): New static variable.
4887         (handle_vector_size_attribute): Use it to avoid generating a
4888         new type node each time we are called.
4889
4890         * combine.c (subst): Avoid trying to make a vector mode subreg of
4891         an integer constant.
4892         (gen_lowpart_for_combine): Likewise.
4893
4894 2002-04-18  Roger Sayle  <roger@eyesopen.com>
4895             Jakub Jelinek  <jakub@redhat.com>
4896
4897         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
4898         for integer constant c (if x has unsigned type or sign bit is not
4899         set in c).  This folds the zero/sign extension into the bit-wise and
4900         operation.
4901
4902 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
4903
4904         PR middle-end/6205
4905         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
4906         otherwise xorps.
4907
4908 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
4909
4910         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
4911
4912 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
4913
4914         * gcc.c (read_specs): Detect and fail if an attempt is made to
4915         rename a spec string to an already existing string.
4916
4917 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
4918
4919         * config/s390/s390.c (legitimize_pic_address): Do not generate
4920         illegal address constant without CONST.
4921
4922 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4923
4924         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
4925         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
4926
4927 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
4928
4929         PR optimization/6305
4930         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
4931         to make sure previous reloads are taken into account.  Generate
4932         better code if one operand is an in-range immediate constant.
4933
4934 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
4935
4936         * doc/install.texi (Building): libgcj requires GNU make.
4937
4938 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
4939
4940         PR bootstrap/6315
4941         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
4942         even if hard quad and register is not floating.
4943         (movtf reg<-mem split): Disallow splitting if hard quad and
4944         register is floating.
4945         (movtf mem<-reg split): Likewise.
4946         * config/sparc/sparc.c (fp_register_operand): New predicate.
4947         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
4948
4949 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
4950
4951         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
4952         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
4953         (unprotoize.o): Ditto.  Build from protoize.c.  Define
4954         UNPROTOIZE on command line.
4955         * protoize.c: Include cppdefault.h.  Delete include_defaults.
4956         (in_system_include_dir): Use cpp_include_defaults (defined in
4957         cppdefault.o).
4958         * unprotoize.c: Delete file.
4959
4960 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
4961
4962         * config/rs6000/altivec.h (vec_ld): Add array variants.
4963         (vec_lde): Same.
4964         (vec_ldl): Same.
4965
4966 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
4967             Aldy Hernandez <aldyh@redhat.com>
4968
4969         * config/rs6000/altivec.h: Define __ALTIVEC__.
4970         (bool): New.
4971         (__pixel): New.
4972         (pixel): New.
4973         (vec_cfux): New.
4974         (vec_vmaddfp): New.
4975         (vec_vsldoi): New.
4976         Add parentheses to all macro arguments.
4977
4978 2002-04-16  Richard Henderson  <rth@redhat.com>
4979
4980         PR c++/6320
4981         * except.c (remove_eh_handler): Insert inner regions at beginning
4982         of sibling chain.  Refactor expressions.
4983
4984 2002-04-16  Richard Henderson  <rth@redhat.com>
4985
4986         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
4987         * config/sparc/sol2-gas-bi.h: New file.
4988         * config.gcc (sparc*-solaris): Add it as needed.
4989         * configure.in (AS_SPARC64_FLAG): Remove check.
4990         * config.in, configure: Regenerate.
4991
4992         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
4993
4994 2002-04-16  Richard Henderson  <rth@redhat.com>
4995
4996         * config/mips/mips.c (override_options): Don't override N32 for
4997         a 64-bit ISA.
4998
4999         PR 6202
5000         * config/mips/mips.md (can_delay): Split out of existing define_delays.
5001         (HILO_delay): Set can_delay false.
5002
5003 2002-04-16  Dale Johannesen <dalej@apple.com>
5004
5005         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
5006         instruction addresses.
5007         (rs6000_output_function_epilogue): Likewise.
5008
5009 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
5010
5011         * c-parse.in (poplevel, compstmt_start,
5012         compstmt_primary_start): Add ending ';', in accordance
5013         with POSIX.
5014
5015 2002-04-16  Richard Henderson  <rth@redhat.com>
5016
5017         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
5018         Adjust tm_file order to get TARGET_DEFAULT set properly.
5019         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
5020         * doc/install.texi (sparc-solaris): Update.
5021
5022 2002-04-16  Dale Johannesen <dalej@apple.com>
5023
5024         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
5025         comparison operands do not match each other or if modes of
5026         conditions do not match result.
5027
5028 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
5029
5030         PR target/6305
5031         * config/s390/s390.md (mulsidi3): Set both subregs of the
5032         multiword register.
5033
5034 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
5035
5036         * config/rs6000/altivec.h (vec_addc): Type check.
5037
5038 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
5039
5040         PR middle-end/6279
5041         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
5042
5043         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
5044
5045 2002-04-15  Richard Henderson  <rth@redhat.com>
5046
5047         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
5048         call_really_used_regs too.
5049
5050 2002-04-15  Richard Henderson  <rth@redhat.com>
5051
5052         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
5053
5054 2002-04-15  David S. Miller  <davem@redhat.com>
5055
5056         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
5057         as being CLOBBERed.
5058
5059 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
5060
5061         PR c/6290
5062         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
5063         CONST_VECTOR is { 0, ... 0 }.
5064
5065 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
5066
5067         * doc/install.texi (Installing GCC: Configuration): Clarify
5068         the only supported ways to configure gcc.
5069
5070 2002-04-15  Roland McGrath  <roland@frob.com>
5071
5072         * config.gcc (alpha*-*-gnu*): New target configuration.
5073         * config/alpha/gnu.h: New file for it.
5074         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
5075
5076 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
5077
5078         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
5079         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
5080         * tree.h (expand_start_stmt_expr): Update prototype.
5081         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
5082         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
5083         on the STMT_EXPR created for the inline function.
5084
5085 2002-04-15  Richard Henderson  <rth@redhat.com>
5086
5087         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
5088         config/i386/linux-aout.h, config/i386/linux-oldld.h,
5089         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
5090         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
5091         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
5092         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
5093         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
5094         Define __gnu_linux__, not gnu_linux.
5095         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
5096
5097 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
5098
5099         Remove Chill front end.
5100         * gcc.c (default_compilers): Remove Chill entries.
5101         * ch: Remove directory.
5102         * doc/frontends.texi: Remove information about Chill.
5103         * doc/sourcebuild.texi: Likewise.
5104         * doc/standards.texi: Likewise.
5105
5106 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
5107
5108         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
5109         (LONGLONG_STANDALONE): Define.
5110
5111 2002-04-15  David S. Miller  <davem@redhat.com>
5112
5113         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
5114         Call emit_library_call with LCT_NORMAL.
5115         (sparc_initialize_trampoline): Use LCT_foo instead of
5116         magic constant in emit_library_call invocations.
5117         (sparc64_initialize_trampoline): Likewise.
5118         (sparc_profile_hook): Likewise.
5119         * config/sparc/sparc.md: Likewise.
5120
5121         * config/sparc/sparc.c (sparc_extra_constraint_check):
5122         Fix type of argument 'c'.
5123         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
5124         Likewise.
5125
5126 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
5127
5128         * diagnostic.h (output_buffer_state): Redefine.
5129         (output_format_decoder): New macro.
5130         (output_prefixing_rule): Likewise.
5131         (output_line_cutoff): Likewise.
5132         (diagnostic_format_decoder): Adjust.
5133         (diagnostic_prefixing_rule): Likewise.
5134         (diagnostic_line_cutoff): Likewise.
5135         (diagnostic_state): Likewise.
5136         (diagnostic_kind_count): Likewise.
5137         (diagnostic_buffer): Now a macro.
5138
5139         * diagnostic.c (diagnostic_buffer): Remove definition.
5140         (output_is_line_wrapping): Adjust.
5141         (set_real_maximum_length): Likewise.
5142         (output_set_maximum_length): Likewise.
5143         (init_output_buffer): Likewise.
5144         (lhd_print_error_function): Likewise.
5145         (output_do_verbatim): Likewise.
5146
5147 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5148
5149         * cpperror.c (print_location): Don't print include chain
5150         if line == 0.
5151         (cpp_begin_message): Update to use DL_ macros.
5152         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
5153         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
5154         cpp_notice, cpp_notice_from_errno): Remove.
5155         (cpp_error, cpp_error_with_line): Update to take a diagnostic
5156         level.
5157         (cpp_errno): New.
5158         * cppexp.c (CPP_ICE): Remove.
5159         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
5160         lex, integer_overflow, _cpp_parse_expr): Update.
5161         * cppfiles.c (read_include_file, find_include_file,
5162         handle_missing_header, _cpp_read_file, remap_filename): Update.
5163         * cpphash.h (enum error_type): Remove.
5164         (_cpp_begin_message): Update.
5165         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
5166         cpp_handle_option, cpp_post_options): Update.
5167         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
5168         skip_whitespace, parse_identifier, parse_slow, parse_string,
5169         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
5170         cpp_interpret_charconst): Update.
5171         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
5172         lex_macro_node, do_undef, glue_header_name, parse_include,
5173         do_include_common, read_flag, do_line, do_linemarker, do_ident,
5174         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
5175         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
5176         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
5177         _cpp_pop_buffer, do_diagnostic): Update.
5178         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
5179         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
5180         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
5181         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
5182         cpp_notice, cpp_notice_from_errno): Remove.
5183         (cpp_error, cpp_error_with_line): Update to take a diagnostic
5184         level.
5185         (cpp_errno): New.
5186         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
5187         collect_args, enter_macro_context, save_parameter, parse_params,
5188         _cpp_create_definition, check_trad_stringification,
5189         cpp_macro_definition): Update.
5190         * cppmain.c (cpp_preprocess_file): Update.
5191         * fix-header.c (read_scan_file): Update.
5192
5193 2002-04-14  Andreas Schwab  <schwab@suse.de>
5194
5195         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
5196
5197 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
5198
5199         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
5200
5201 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
5202
5203         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
5204         not gnu_hurd.
5205
5206 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
5207
5208         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
5209
5210 2002-04-13      Joel Sherrill <joel@OARcorp.com>
5211
5212         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
5213         sparc-elf and sparc-rtems targets.
5214
5215 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
5216
5217         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
5218         defined, and __gnu_hurd__ wherever __GNU__ is defined.
5219         * arm/linux-elf.h: Likewise.
5220         * cris/aout.h: Likewise.
5221         * cris/linux.h: Likewise.
5222         * i370/linux.h: Likewise.
5223         * i386/gnu.h: Likewise.
5224         * i386/linux-aout.h: Likewise.
5225         * i386/linux-oldld.h: Likewise.
5226         * i386/linux.h: Likewise.
5227         * i386/linux64.h: Likewise.
5228         * ia64/linux.h: Likewise.
5229         * m68k/linux-aout.h: Likewise.
5230         * m68k/linux.h: Likewise.
5231         * mips/linux.h: Likewise.
5232         * pa/pa-linux.h: Likewise.
5233         * pj/linux.h: Likewise.
5234         * rs6000/sysv4.h: Likewise.
5235         * s390/linux.h: Likewise.
5236         * sh/linux.h: Likewise.
5237         * sparc/linux-aout.h: Likewise.
5238         * sparc/linux.h: Likewise.
5239         * sparc/linux64.h: Likewise.
5240         * xtensa/linux.h: Likewise.
5241
5242 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
5243
5244         * stmt.c (check_unique_operand_names): Expect operand names to
5245         be strings rather than identifiers.  Use simple_cst_equal to
5246         compare them.
5247         (resolve_operand_name_1): Make same identifier to string change here.
5248         * c-parse.in (asm_operand): Convert a named operand into a string.
5249         * cp/parse.y (asm_operand): Likewise.
5250
5251 2002-04-13  Andreas Schwab  <schwab@suse.de>
5252
5253         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
5254
5255 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
5256
5257         Revert these changes:
5258
5259         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
5260
5261         PR c++/5571
5262         * stor-layout.c (layout_decl): Reset the RTL for the decl.
5263
5264 2002-04-12  Richard Henderson  <rth@redhat.com>
5265
5266         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
5267         (sparc*-*-solaris): Clean up header files.
5268         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
5269         and plan on generating 64-bit code.
5270         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
5271         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
5272         * config/sparc/sol2-sld-64.h: Rename ...
5273         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
5274         for AS_SPARC64_FLAG not defined.
5275         * config/sparc/sol2-gld-bi.h: New.
5276         * config/sparc/sol2-sld.h: Remove.
5277         * config/sparc/sol26-sld.h: New.
5278         * config/sparc/sol2.h: Tidy comments.
5279         * doc/install.texi: Document sparc-solaris configury changes.
5280
5281 2002-04-12  Richard Henderson  <rth@redhat.com>
5282
5283         * recog.c (offsettable_address_p): Match the logic in adjust_address.
5284
5285         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
5286         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
5287
5288 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5289
5290         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
5291
5292 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
5293
5294         * pa.c (pa_can_combine_p): Call extract_insn before calling
5295         constrain_operands.
5296
5297 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
5298
5299         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
5300         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
5301         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
5302         (CPP_PREDEFINES): Handle __declspec.
5303         * config/i386/t-interix (USER_H): Remove.
5304
5305 2002-04-12  DJ Delorie  <dj@redhat.com>
5306
5307         * integrate.c (compare_blocks): Make comparisons safe for when
5308         sizeof(int) < sizeof(char *).
5309         (find_block): Likewise.
5310
5311 2002-04-12  Jan Hubicka  <jh@suse.cz>
5312             David Edelsohn  <edelsohn@gnu.org>
5313
5314         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
5315         registers.
5316         (symbol_ref_operand): New.
5317         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
5318         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
5319
5320 2002-04-12  Andreas Schwab  <schwab@suse.de>
5321
5322         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
5323         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
5324         overrides the definition in config/svr4.h.
5325
5326 2002-04-12      Eric Norum <eric.norum@usask.ca>
5327
5328         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
5329         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
5330         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
5331         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
5332         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
5333         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
5334         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
5335         definitions to config/rtems.h and make the targets more similar.
5336
5337 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5338
5339         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
5340         POINTERS_EXTEND_UNSIGNED.
5341         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
5342         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
5343
5344         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
5345         not specified.
5346
5347 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
5348
5349         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
5350         depends on TARGET_SHMEDIA, not TARGET_SH5.
5351
5352 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
5353
5354         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
5355         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
5356
5357 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
5358
5359         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
5360         no r0 clobber.
5361
5362 2002-04-12  Andreas Schwab  <schwab@suse.de>
5363
5364         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
5365
5366 2002-04-12  Richard Henderson  <rth@redhat.com>
5367
5368         PR bootstrap/4191
5369         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
5370
5371         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
5372         modes spanning multiple hard regs.
5373
5374         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
5375
5376 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5377
5378         * pa.c (pa_output_function_prologue): Don't accumulate the total
5379         number of code bytes when using TARGET_64BIT, or gas, SOM and not
5380         the portable runtime.
5381         (output_deferred_plabels): Handle 64bit plabels.
5382         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
5383         generating pic code using the GAS assembler for object formats that
5384         are not SOM (ie., ELF32 and ELF64).
5385         (output_millicode_call): Check attribute type if attribute length is 28.
5386         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
5387         dbr_sequence_length once.
5388         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
5389         dbr_sequence_length once.
5390         * pa.h (TARGET_SOM): Define if not defined.
5391         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
5392         with GAS and not SOM.
5393         (jump, call_internal_reg, call_value_internal_reg): Likewise.
5394         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
5395
5396 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5397
5398         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
5399         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
5400         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
5401         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
5402         elfos.h and dbxelf.h values are fine now.
5403         * config/i386/freebsd.h, config/alpha/freebsd.h
5404         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
5405
5406 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5407
5408         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
5409         or set Acpu or Amachine.  Reformat.
5410         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5411         define.
5412         (LINK_SPEC): Do not need to undef.
5413         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
5414         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
5415         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5416         define.
5417         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
5418         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
5419         (LINK_SPEC): Do not need to undef.
5420         (DONT_USE_BUILTIN_SETJMP): Do not define.
5421         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
5422         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
5423         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
5424         Remove trailing spaces.
5425         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
5426         __ELF__, or set Acpu or Amachine.  Reformat.
5427         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5428         define.
5429
5430 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5431
5432         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
5433         all other *-*-freebsd* targets.
5434
5435 2002-04-11  Richard Henderson  <rth@redhat.com>
5436
5437         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
5438
5439 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5440
5441         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
5442         Include {cpu}/{cpu}.h thru tm_file.
5443         (alpha*-*-linux*ecoff): Remove target.
5444         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
5445         (LINK_SPEC): Remove, is not OS independent.
5446         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
5447         (LINK_SPEC): Do not need to #undef any longer.
5448         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
5449         any longer.
5450         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
5451         __ELF__.
5452         (LINK_SPEC): Moved here from alpha/elf.h.
5453         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
5454         SUB_CPP_PREDEFINES.
5455         * config/alpha/linux-ecoff.h: Remove.
5456         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
5457         (CPP_SPEC): Define _POSIX_SOURCE as needed.
5458         (CPP_SUBTARGET_SPEC): Do not define.
5459         (LINK_SPEC): Do not need to #undef any longer.
5460         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
5461         * config/alpha/vms.h: Likewise.
5462
5463 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
5464
5465         * doc/extend.texi: Remove old claim that typedefs cannot have
5466         an alignment attribute.
5467
5468 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
5469
5470         PR optimization/6177
5471         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
5472         bitpos is 0 and bitsize CONCAT size.
5473
5474 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
5475
5476         PR c/6223
5477         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
5478
5479 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
5480
5481         * config/alpha/freebsd.h: Minor reformatting.
5482         (CPP_SPEC): Define ELF and add cpp_subtarget.
5483         (ASM_SPEC): No longer needed.
5484
5485 2002-04-11  Richard Henderson  <rth@redhat.com>
5486
5487         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
5488         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
5489         (dimode mem/zero splitter): New.
5490
5491 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
5492
5493         * config/cris/cris.c (cris_override_options): Tweak error message
5494         for PIC not implemented.
5495
5496         * config/cris/cris.h: Tweak comments related to parameter-passing.
5497
5498         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
5499
5500 2002-04-10  Richard Henderson  <rth@redhat.com>
5501
5502         * except.c (add_ehl_entry): Allow duplicates after landing pad
5503         creation.
5504
5505 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
5506
5507         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
5508
5509 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
5510
5511         * c-decl.c (c_init_decl_processing): Move generation of
5512         decls for g77_integer_type_node and friends from here ...
5513         * c-common.c (c_common_nodes_and_builtins): ... to here.
5514
5515 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
5516
5517         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
5518         is only used as frame pointer when frame_pointer_needed is true.
5519
5520 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
5521
5522         PR target/817
5523         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
5524         for the fact that the pool entry uses two words.
5525         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
5526         1k bytes.
5527         (movdf_soft_insn): Similarly.
5528         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
5529         for the fact that the pool entry uses three words.
5530
5531 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
5532
5533         * config/mips/mips.c (mips_va_arg): When using the struct version
5534         of the EABI va_list, allow arguments in the register save area to
5535         take up less room than a stack argument.
5536
5537 2002-04-10  Richard Henderson  <rth@redhat.com>
5538
5539         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
5540         if EXPAND_INITIALIZER.
5541
5542 2002-04-09  Richard Henderson  <rth@redhat.com>
5543
5544         * config/alpha/alpha.md (movdi_er_maybe_g): New.
5545         * config/alpha/alpha.c (alpha_expand_mov): Use it.
5546
5547 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
5548
5549         PR optimization/6233
5550         * rtlanal.c (pure_call_p): New function.
5551         * rtl.h (pure_call_p): Declare.
5552         * loop.c (prescan_loop): Use it to set has_nonconst_call.
5553         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
5554
5555 2002-04-09  Eric Christopher  <echristo@redhat.com>
5556
5557         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
5558         information to .comm directive.
5559
5560 2002-04-09  Richard Henderson  <rth@redhat.com>
5561
5562         PR c/5078
5563         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
5564
5565 2002-04-09  Richard Henderson  <rth@redhat.com>
5566
5567         * basic-block.h (flow_delete_block_noexpunge): Declare.
5568         (expunge_block_nocompact): Declare.
5569         * cfg.c (expunge_block_nocompact): Split out from ...
5570         (expunge_block): ... here.
5571         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
5572         (flow_delete_block_noexpunge): Split out from ...
5573         (flow_delete_block): ... here.
5574         * cfgcleanup.c (delete_unreachable_blocks): Compact while
5575         removing dead blocks.
5576         * except.c (exception_handler_labels): Remove.
5577         (exception_handler_label_map): New.
5578         (struct eh_region): Add aka member.
5579         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
5580         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
5581         (for_each_eh_label, for_each_eh_label_1): New.
5582         (init_eh): Register exception_handler_label_map.
5583         (free_eh_status): Use free_region.
5584         (find_exception_handler_labels): Use the map, not the list.
5585         (remove_exception_handler_label): Likewise.
5586         (maybe_remove_eh_handler): Likewise.
5587         (remove_eh_handler): Use the region aka bitmap.
5588         * except.h (exception_handler_labels): Remove.
5589         (for_each_eh_label): Declare.
5590         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
5591         * loop.c (invalidate_loops_containing_label): New.
5592         (find_and_verify_loops): Use it.  Use for_each_eh_label.
5593         * sched-rgn.c (is_cfg_nonregular): Use
5594         current_function_has_exception_handlers.
5595
5596 2002-04-09  Richard Henderson  <rth@redhat.com>
5597
5598         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
5599         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
5600         Do not return changed status.
5601         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
5602         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
5603         New functions that do return changed status.
5604         * sbitmap.h: Update decls.
5605         * gcse.c, lcm.c: Use _cg functions as needed.
5606
5607 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
5608
5609         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
5610         (sh64-*-elf*, sh-*-rtemself*): Likewise.
5611         * config/sh/embed_bb.c: New file.
5612         * config/sh/embed-elf.h: New file.
5613         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
5614         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
5615         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
5616         __PTRDIFF_TYPE__ .
5617         (SUBTARGET_CPP_PTR_SPEC): Don't define.
5618         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
5619         Add subtarget_asm_endian_spec.
5620         (ASM_SPEC): Use subtarget_asm_endian_spec.
5621         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
5622         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
5623         (WCHAR_UNSIGNED): Define.
5624         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
5625         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
5626         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
5627         Fix value.
5628         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
5629         (sh_adjust_cost): Likewise.
5630         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
5631         __PTRDIFF_TYPE__ .
5632         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
5633         (WCHAR_TYPE_SIZE): Likewise.
5634         (ASM_SPEC): Use subtarget_asm_endian_spec.
5635         (SH_ELF_WCHAR_TYPE): #undef/ #define.
5636         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
5637         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
5638         (MAX_WCHAR_TYPE_SIZE): Don't #define .
5639         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
5640         (USER_LABEL_PREFIX): Don't #undef /#define .
5641         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
5642         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
5643         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
5644         (ASM_SPEC): Likewise.
5645         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
5646         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
5647         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
5648         (LIB2FUNCS_EXTRA): Define.
5649         * t-sh64 (LIB2FUNCS_EXTRA): Define.
5650         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
5651         (LIB1ASMFUNCS_CACHE): Define.
5652         (LIB2FUNCS_EXTRA): Redefine empty.
5653
5654 2002-04-08  Richard Henderson  <rth@redhat.com>
5655
5656         * reorg.c (get_branch_condition): Use reversed_comparison_code.
5657
5658 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5659
5660         * config/m68hc11/larith.asm (__map_data_section): Fix condition
5661         and optimize for size.
5662         (__do_global_ctors): Fix pointer comparison.
5663         (__do_global_dtors): Likewise.
5664
5665 2002-04-09  David S. Miller  <davem@redhat.com>
5666
5667         * config/sparc/sparc.c (sparc_extra_constraint_check): New
5668         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
5669         allow reloading pseudos.
5670         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
5671         * config/sparc/sparc-protos.h: Declare it.
5672
5673         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
5674         unsigned comparison warning.
5675         (output_restore_regs): Mark leaf_function as unused.
5676
5677 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5678
5679         * expr.c (is_aligning_offset): New function.
5680         (expand_expr, case COMPONENT_EXPR): Call it.
5681
5682 2002-04-08  David S. Miller  <davem@redhat.com>
5683
5684         PR target/6082
5685         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
5686
5687         Make init_priority work on Sparc when using GNU ld.
5688         * config/sparc/linux.h, config/sparc/linux64.h,
5689         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
5690         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
5691         * config/sparc/sol2-gld.h: New file to do the same.
5692         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
5693         sparc/sol2-gld.h to tm_file.
5694
5695         PR optimization/4328
5696         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
5697         * doc/md.texi: Document it.
5698         * config/sparc/sparc.md (movdi_insn_sp64_novis,
5699         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
5700         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
5701         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
5702         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
5703
5704 2002-04-08  Andreas Jaeger  <aj@suse.de>
5705
5706         * stmt.c (expand_asm_operands): Revert last patch from Richard
5707         Henderson.
5708
5709 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5710
5711         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
5712         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
5713
5714 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5715
5716         * doc/contrib.texi (Contributors): Add David O'Brien.
5717
5718 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
5719
5720         * configure.in (auto-build.h): Use target_alias and build_alias
5721         when running configure.
5722         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
5723         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
5724         * configure: Regenerate.
5725
5726 2002-04-07  David S. Miller  <davem@redhat.com>
5727
5728         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
5729
5730 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5731
5732         PR 5933
5733         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
5734         generating 32-bit pic code.
5735
5736 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
5737
5738         * cppinit.c (cpp_create_reader): Initialize
5739         discard_comments_in_macro_exp.
5740         (COMMAND_LINE_OPTIONS): Add "-CC" option.
5741         (cpp_handle_option): Handle "-CC" option.
5742         * cpplex.c (save_comment): If saving a C++ comment in
5743         a directive, convert it to a C comment.
5744         (_cpp_lex_direct): Pass second comment start character to
5745         save_comment to indicate comment type.
5746         * cpplib.c (_cpp_handle_directive): If processing
5747         a "#define" directive and discard_comments_in_macro_exp
5748         is false,  re-enable saving of comments.
5749         (lex_macro_node): If discard_comments_in_macro_exp is false,
5750         discard any comments before the macro identifier.
5751         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
5752         member.
5753         * cppmacro.c (cpp_get_token): If expanding a macro while
5754         processing a directive, discard any comments we might encounter.
5755         (parse_params): If discard_comments_in_macro_exp is false,
5756         ignore comments in the macro parameter list.
5757         * gcc.c (cpp_unique_options): Add "-CC" option.
5758         (option_map): Map "--comments-in-macros" to "-CC".
5759         * doc/cppopts.texi: Document "-CC" option.
5760         * f/lang-specs.h: Add "-CC" option.
5761         * testsuite/gcc.dg/cpp/maccom1.c: New test.
5762         * testsuite/gcc.dg/cpp/maccom2.c: New test.
5763         * testsuite/gcc.dg/cpp/maccom3.c: New test.
5764         * testsuite/gcc.dg/cpp/maccom4.c: New test.
5765         * testsuite/gcc.dg/cpp/maccom5.c: New test.
5766         * testsuite/gcc.dg/cpp/maccom6.c: New test.
5767
5768 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5769
5770         PR middle-end/6180
5771         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
5772
5773 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
5774
5775         PR c++/5571
5776         * stor-layout.c (layout_decl): Reset the RTL for the decl.
5777
5778         PR opt/5120
5779         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
5780         RTX_UNCHANGING_P for the functions arguments when a tail call
5781         is made.
5782
5783 2002-04-06  Jason Merrill  <jason@redhat.com>
5784
5785         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
5786         (parse_options_and_default_flags): Set them appropriately.
5787         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
5788
5789 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
5790
5791         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
5792         here.
5793
5794         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
5795         semicolon.
5796
5797         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
5798         types come in by-reference.  Fix typo in comment.
5799
5800 2002-04-05  David S. Miller  <davem@redhat.com>
5801
5802         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
5803         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
5804         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
5805         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
5806
5807 2002-04-05  David S. Miller  <davem@redhat.com>
5808
5809         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
5810         are not going to emit return instructions, emit at least a nop
5811         for the sake of sane backtraces.
5812
5813 2002-04-05  Richard Henderson  <rth@redhat.com>
5814
5815         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
5816
5817 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
5818
5819         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
5820
5821 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
5822
5823         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
5824         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
5825         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
5826
5827 2002-04-05  Andreas Schwab  <schwab@suse.de>
5828
5829         * c-convert.c: Include c-common.h.
5830         * Makefile.in (c-convert.o): Updated.
5831
5832 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
5833
5834         * mklibgcc.in: Use separate libgcc.map for each multilib.
5835         * Makefile.in (distclean): Don't remove libgcc.map here.
5836
5837 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
5838
5839         * Makefile.in (s-mlib): Handle --disable-multilib by separate
5840         genmultilib invocation.
5841
5842 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
5843
5844         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
5845         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
5846         to num_gprs for symmetry.
5847         * config/mips/mips.c: Adjust accordingly.
5848
5849 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5850
5851         * c-common.c (truthvalue_conversion): Rename, update.
5852         * c-common.h (c_common_truthvalue_conversion): New.
5853         * c-convert.c (convert): Update.
5854         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
5855         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
5856         * c-typeck.c (build_binary_op, build_unary_op,
5857         build_conditional_expr): Update.
5858         * fold-const.c (constant_boolean_node, fold): Use langhook.
5859         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
5860         * langhooks.h (struct lang_hooks): New hook.
5861         * stmt.c (expand_decl_cleanup): Use langhook.
5862         * tree.h (truthvalue_conversion): Remove.
5863 objc:
5864         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
5865
5866 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
5867
5868         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
5869         Add rules to make null object file.
5870
5871 2002-04-04  Jim Blandy  <jimb@redhat.com>
5872
5873         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
5874         macro formal parameter names.
5875
5876 2002-04-04  David S. Miller  <davem@redhat.com>
5877
5878         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
5879
5880 2002-04-04  Richard Henderson  <rth@redhat.com>
5881
5882         PR middle-end/5099
5883         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
5884         Support copies into and out of memory.  Don't accept allows_reg
5885         and allows_mem as gospel.
5886
5887 2002-04-04  Richard Henderson  <rth@redhat.com>
5888
5889         PR opt/6165
5890         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
5891         (write_dependence_p): Likewise.
5892
5893 2002-04-04  Richard Henderson  <rth@redhat.com>
5894
5895         * predict.c (estimate_bb_frequencies): Do frequency calculation
5896         with a volatile temporary.
5897
5898 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
5899
5900         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
5901
5902 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
5903
5904         PR c++/6119
5905         * final.c (final_start_function): Don't bump profile_label_no here...
5906         (final_end_function): ...but here.
5907
5908 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
5909
5910         * config/sparc/sparc.md (pic): New attribute.
5911         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
5912         into stack slots.
5913         (split after do_builtin_setjmp_setup): New.
5914
5915 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
5916
5917         PR fortran/6106
5918         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
5919         change.
5920
5921 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
5922
5923         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
5924         UNITS_PER_WORD for zero sized aggregates.
5925
5926 2002-04-03  David S. Miller  <davem@redhat.com>
5927
5928         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
5929         one-character spec for this, just use %(link_gcc_c_sequence).
5930
5931 2002-04-03  David S. Miller  <davem@redhat.com>
5932
5933         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
5934         handling.
5935
5936 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5937
5938         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
5939         (DWARF_FRAME_RETURN_COLUMN): Move.
5940         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5941         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
5942         * pa.c (except.h, predict.h): Include.
5943         (FRP): Delete.
5944         (store_reg_modify, set_reg_plus_d): Revise prototypes.
5945         (output_ascii): Add cast.
5946         (store_reg_modify): Revise to add frame notes.
5947         (set_reg_plus_d): Likewise.
5948         (compute_frame_size): Include space for eh data registers in frame if
5949         the current function calls eh_return.
5950         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
5951         function calls eh_return.  Save eh data registers if the current
5952         function calls eh_return.  Fix code to add frame notes.  Emit
5953         blockage to prevent insns with frame notes being scheduled in the
5954         delay slot of calls.
5955         (hppa_expand_epilogue): Restore eh data registers and do final stack
5956         adjustment if the current function calls eh_return.  Don't add frame
5957         notes.
5958         (output_call): Revise for change in length of call insn.  Don't do
5959         return pointer adjustment for an unconditional jump in the delay slot
5960         of a call when using frame notes.
5961         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
5962         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
5963         (ARG_POINTER_CFA_OFFSET): Define.
5964         * pa.md (return_external_pic): New pattern.
5965         (prologue): Correct formatting.  Use return_external_pic if current
5966         function calls eh_return.
5967         (call_internal_symref, call_value_internal_symref,
5968         sibcall_internal_symref, sibcall_value_internal_symref): Change default
5969         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
5970         respectively.
5971         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
5972
5973         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
5974         list of targets to check using "nop" insn.
5975         * configure: Rebuilt.
5976
5977 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
5978
5979         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
5980
5981 2002-04-03  David S. Miller  <davem@redhat.com>
5982
5983         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
5984         library sequence passed to the linker.
5985         (LINK_COMMAND_SPEC): Use it.
5986         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
5987         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
5988         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5989
5990 2002-04-03  Jason Merrill  <jason@redhat.com>
5991
5992         * except.c (struct eh_status): Remove protect_list.
5993         (begin_protect_partials, end_protect_partials): Remove.
5994         (add_partial_entry): Remove.
5995         * except.h: Remove prototypes.
5996
5997         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
5998         expand_decl_cleanup_eh.
5999
6000         PR c++/5636
6001         * tree.h (CLEANUP_EH_ONLY): New macro.
6002         * stmt.c (expand_decl_cleanup_eh): New fn.
6003         (expand_cleanups): Check CLEANUP_EH_ONLY.
6004         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
6005         Use expand_decl_cleanup_eh.
6006         (expand_stmt): Adjust.
6007         * c-common.h: Adjust prototype.
6008
6009 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
6010
6011         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
6012         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
6013         (cris_target_asm_function_epilogue): Ditto.
6014         (cris_initial_frame_pointer_offset): Ditto.
6015         (cris_simple_epilogue): Ditto.
6016         (cris_expand_builtin_va_arg): Variable-size types come in
6017         by-reference.
6018
6019 2002-04-03  David S. Miller  <davem@redhat.com>
6020
6021         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
6022         little-endian.
6023         (set_fast_math): Correct 'fsr' type.
6024
6025 2002-04-03  Richard Henderson  <rth@redhat.com>
6026
6027         PR opt/3569
6028         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
6029         * toplev.c (check_global_declarations): Use it.
6030         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
6031         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6032         (LANG_HOOKS_DECLS): Add it.
6033         * langhooks.c (lhd_warn_unused_global_decl): New.
6034         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6035         * c-objc-common.c (c_warn_unused_global_decl): New.
6036         * c-tree.h (c_warn_unused_global_decl): Declare.
6037         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6038
6039 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6040
6041         * langhooks-def.h (lhd_set_decl_assembler_name,
6042         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
6043         (LANG_HOOKS_INITIALIZER): Update.
6044         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
6045         * langhooks.h (struct lang_hooks): New hook.
6046         * tree.c (set_decl_assembler_name): Move to langhooks.c.
6047         (lang_set_decl_assembler_name): Remove.
6048         (init_obstacks): Don't set hook.
6049         (decl_assembler_name): New function.
6050         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
6051         (decl_assembler_name): New.
6052         (lang_set_decl_assembler_name): Remove.
6053
6054 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
6055
6056         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
6057         works properly with .hidden symbols.
6058         * configure: Rebuilt.
6059         * config.in: Rebuilt.
6060         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
6061         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
6062         properly with .hidden symbols.
6063
6064 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
6065
6066         PR middle-end/6102
6067         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
6068         USE argument.
6069
6070 2002-04-03  Richard Henderson  <rth@redhat.com>
6071
6072         PR opt/4120
6073         * sched-rgn.c (sets_likely_spilled): New.
6074         (sets_likely_spilled_1): New.
6075         (add_branch_dependences): Use it.
6076
6077 2002-04-02  Richard Henderson  <rth@redhat.com>
6078
6079         PR opt/4311
6080         * loop.h (LOOP_FIRST_PASS): New.
6081         * loop.c (strength_reduce): Mind it when deciding to unroll.
6082         * toplev.c (rest_of_compilation): Set it.
6083
6084 2002-04-02  David S. Miller  <davem@redhat.com>
6085
6086         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
6087         mems_ok_for_ldd_peep when the order of the loads being examined
6088         is reversed.
6089         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
6090         existing comment to increase comprehension of this situation.
6091
6092 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
6093
6094         * config/sh/sh.md: Don't use union real_extract.
6095
6096 2002-04-02  Richard Henderson  <rth@redhat.com>
6097
6098         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
6099
6100 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
6101
6102         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
6103         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
6104         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
6105         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
6106         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
6107         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
6108         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
6109         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
6110         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
6111         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
6112         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
6113         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
6114         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
6115         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
6116         Include as many configury headers via tm_file as possible.  This
6117         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
6118         * config/openbsd-oldgas.h: New file.
6119         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
6120         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
6121         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
6122         config/i386/i386-coff.h, config/i386/i386-interix.h,
6123         config/i386/iscdbx.h, config/i386/linux-aout.h,
6124         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
6125         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
6126         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
6127         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
6128         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
6129         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
6130         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
6131         config/i386/vxi386.h: Do not directly include configury headers.
6132         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
6133         Directly include configury headers that are no longer automatically
6134         included by the above headers.
6135         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
6136         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
6137         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
6138         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
6139         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
6140         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
6141         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
6142         (TARGET_VERSION): Define.
6143         * config/i386/beos-elf.h, config/i386/freebsd.h,
6144         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
6145         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
6146         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
6147         config/i386/sco5.h, config/i386/sysv4.h
6148         (TARGET_VERSION): Do not need to protect.
6149         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
6150         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
6151         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
6152         config/i386/i386-interix.h, config/i386/linux-aout.h,
6153         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
6154         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
6155         (YES_UNDERSCORES): Do not define - not needed.
6156         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
6157         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
6158         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
6159         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
6160         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
6161         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
6162         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
6163         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
6164
6165 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
6166             Richard Henderson  <rth@redhat.com>
6167
6168         PR c/5484
6169         * function.c (assign_temp): Accept either type or decl argument.
6170         Detect variables whose size is too large to fit into an integer.
6171         * stmt.c (expand_decl): Pass the decl, not the type.
6172
6173 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
6174
6175         * protoize.c: Match include directory usage with cppdefault.c.
6176
6177 2002-04-03  Jeffrey A Law  (law@redhat.com)
6178             Hans-Peter Nilsson  <hp@bitrange.com>
6179
6180         * combine.c (simplify_comparison): Avoid narrowing a comparison
6181         with a paradoxical subreg when doing so would drop signficant bits.
6182
6183 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
6184
6185         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
6186         if POINTERS_EXTEND_UNSIGNED is defined.
6187
6188 2002-04-02  Richard Henderson  <rth@redhat.com>
6189
6190         PR opt/3967
6191         * local-alloc.c (contains_replace_regs): LO_SUM may contain
6192         replace regs.
6193
6194 2002-04-02  Richard Henderson  <rth@redhat.com>
6195
6196         * doc/standards.texi: Document required freestanding libc entry points.
6197
6198 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
6199
6200         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
6201         associated splitter.  Remove MQ constraint.
6202         (ctrdi_internal4): Correct CCmode clobber.
6203
6204 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6205
6206         * milli64.S ($$dyncall): New function.
6207         * t-linux (LIB1ASMFUNCS): Revise module list.
6208         (LIB1ASMSRC): Use pa/milli64.S.
6209
6210 2002-04-02  Richard Henderson  <rth@redhat.com>
6211
6212         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
6213         rename solaris_sys_varargs_h.
6214
6215 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6216
6217         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
6218         the same mode as its component.
6219
6220 2002-04-02  Richard Henderson  <rth@redhat.com>
6221
6222         PR opt/190
6223         * final.c (this_is_asm_operands): Export.
6224         * output.h (this_is_asm_operands): Declare.
6225         * config/i386/i386.c (print_operand): Error odd asm operands.
6226
6227 2002-04-02  Richard Henderson  <rth@redhat.com>
6228
6229         PR opt/420
6230         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
6231
6232 2002-04-01  Richard Henderson  <rth@redhat.com>
6233
6234         PR target/1538
6235         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
6236         * fixinc/fixincl.x: Rebuild.
6237
6238 2002-04-01  Richard Henderson  <rth@redhat.com>
6239
6240         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
6241         (atomic_alloc, atomic_free): New.
6242         (SIZE, MASK_FOR, PTR_IN): New.
6243         (emergency_reg_state, emergency_reg_state_free): New.
6244         (emergency_labeled_state, emergency_labeled_state_free): New.
6245         (reg_state_alloced, labeled_state_alloced): New.
6246         (alloc_reg_state, free_reg_state): New.
6247         (alloc_label_state, free_label_state, free_label_states): New.
6248         (push, pop, dup_state_stack, free_state_stack): Use them.
6249         (desc_label_state): Likewise.
6250         (uw_frame_state_for): Free label states and state stack.
6251         (uw_update_reg_address): Eliminate warnings.
6252
6253 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
6254
6255         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
6256         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
6257
6258 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6259
6260         * c-decl.c (grokdeclarator): Update.
6261         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
6262         * c-tree.h (c_mark_addressable): New.
6263         * c-typeck.c (default_function_array_conversion, build_unary_op,
6264         build_array_ref, convert_for_assignment): Update.
6265         (mark_addressable): Rename.
6266         * calls.c (try_to_integrate, expand_call): Use langhook.
6267         * expr.c (expand_expr): Use langhook.
6268         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
6269         * langhooks.h (struct lang_hooks): New hook.
6270         * stmt.c (expand_asm_operands): Use langhook.
6271         * tree.h (mark_addressable): Remove.
6272 objc:
6273         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
6274
6275 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
6276
6277         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
6278         in previous change.
6279
6280 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
6281
6282         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
6283         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
6284
6285 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6286
6287         * c-common.c (unsigned_conversion_warning, convert_and_check,
6288         unsigned_type, signed_type, shorten_compare,
6289         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
6290         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
6291         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
6292         New.
6293         * c-decl.c (grokdeclarator): Update.
6294         * c-format.c (check_format_types): Update.
6295         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
6296         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
6297         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
6298         * convert.c (convert_to_integer): Use new hooks.
6299         * expmed.c (make_tree): Use new hooks.
6300         * expr.c (store_expr): Use new hooks.
6301         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
6302         all_ones_mask_p, unextend, fold): Use new hooks.
6303         * langhooks.h (struct lang_hooks_for_types): New hooks.
6304         * tree.h (signed_or_unsigned_type, signed_type,
6305         unsigned_type): Remove.
6306 objc:
6307         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
6308         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
6309
6310 2002-03-31  Richard Henderson  <rth@redhat.com>
6311
6312         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
6313         (desc_frgr_mem): Fix reference to f16-f31.
6314
6315 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6316
6317         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
6318         RTVEC_ELT): Const-ify.
6319         * varray.h (VARRAY_CHECK): Const-ify.
6320         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
6321         ggc_mark_rtvec, ggc_mark): Const-ify.
6322
6323 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6324
6325         * diagnostic.c: Include langhooks-def.h.
6326         * Makefile.in (diagnostic.o): Update.
6327
6328 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
6329
6330         * c-common.c (c_unsafe_for_reeval): Rename.
6331         * c-common.h (c_unsafe_for_reeval): Rename.
6332         * c-decl.c (finish_incomplete_decl): Rename.
6333         (c_init_decl_processing): Don't set langhook.
6334         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
6335         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
6336         * c-objc-common.c (c_objc_common_init): Don't set langhook.
6337         * c-tree.h (finish_incomplete_decl): Rename.
6338         * langhooks-def.h (lhd_unsafe_for_reeval): New.
6339         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
6340         (LANG_HOOKS_INITIALIZER): Update.
6341         * langhooks.c (lhd_unsafe_For_reeval): New.
6342         * langhooks.h (struct langhooks): New hooks.
6343         * toplev.c (incomplete_decl_finalize_hook): Remove.
6344         (wrapup_global_declarations): Update.
6345         * tree.c (lang_unsafe_for_reeval): Remove.
6346         (unsafe_for_reeval): Update.
6347         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
6348         Remove.
6349 objc:
6350         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
6351         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
6352
6353 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
6354
6355         * diagnostic.c (print_error_function): Remove.
6356         (default_print_error_function): Rename.
6357         (report_error_function): Update.
6358         * diagnostic.h (print_error_function): Remove.
6359         (default_print_error_function): Remove.
6360         * langhooks-def.h (struct diagnostic_context): Predeclare.
6361         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
6362         (LANG_HOOKS_INITIALIZER): Update.
6363         * langhooks.h (struct diagnostic context): Predeclare.
6364         (struct lang_hooks): New hook.
6365
6366 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6367
6368         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
6369         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
6370         !flag_pic.
6371         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
6372         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
6373         of PIC_OFFSET_TABLE_REGNUM thruout.
6374         * config/rs6000/rs6000.md: Likewise.
6375         * config/rs6000/darwin.h: Likewise.
6376
6377 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6378
6379         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
6380         unsigned HOST_WIDE_INT, not unsigned int.
6381
6382 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6383
6384         PR middle-end/6096, middle-end/6098, middle-end/6099
6385         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
6386         CODE_LABELs.
6387         (fill_slots_from_thread): Likewise.
6388
6389 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6390
6391         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
6392         floating fields in float regs.
6393         (function_arg_record_value_2): Likewise.
6394
6395 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
6396
6397         * config/mmix/mmix.md (define_constants): Remove misleading
6398         FIXME.  Add MMIX_fp_rO_OFFSET.
6399         ("nonlocal_goto_receiver"): Don't have stack-frame address of
6400         saved rO as part of the pattern.  Remove FIXME.
6401         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
6402         here, at output-time.
6403
6404 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6405
6406         PR middle-end/6100
6407         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
6408         REG_BR_PRED.
6409         (output_v9branch): Likewise.
6410
6411 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
6412
6413         * gcc.c: Revert previous patch for now.
6414         * config/i386/djgpp.h: Likewise.
6415
6416 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
6417
6418         * config/mmix/crti.asm (_init): Register _fini with atexit.
6419         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
6420
6421 2002-03-31  Richard Henderson  <rth@redhat.com>
6422
6423         PR target/3997
6424         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
6425         (ASM_OUTPUT_DEF_FROM_DECLS): New.
6426
6427 2002-03-31  Richard Henderson  <rth@redhat.com>
6428
6429         * libgcc2.c (__bb_exit_func): Make static.
6430
6431         * config/alpha/alpha.md (trap): New.
6432
6433 2002-03-31  Richard Henderson  <rth@redhat.com>
6434
6435         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
6436         promoted argument types; build trap.
6437         (expand_builtin_trap): New.
6438         (expand_builtin): Use it.
6439         * stmt.c (expand_nl_goto_receivers): Likewise.
6440         * expr.h (expand_builtin_trap): Declare.
6441         * libfuncs.h (LTI_abort, abort_libfunc): New.
6442         * optabs.c (init_optabs): Init abort_libfunc.
6443
6444 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
6445
6446         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
6447         (LINK_COMMAND_SPEC): ... from here.
6448         (init_gcc_specs): Duplicate it here too, omitting
6449         shared_name in the second copy.
6450         (init_spec): Test for duplicate
6451         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
6452
6453 2002-03-30  David S. Miller  <davem@redhat.com>
6454
6455         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
6456         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
6457
6458 2002-03-30  Roger Sayle <roger@eyesopen.com>
6459             Richard Henderson  <rth@redhat.com>
6460
6461         * regmove.c (combine_stack_adjustments_for_block): Avoid
6462         emitting a stack adjustment of zero bytes.  Let delete_insn
6463         update bb->head.
6464
6465 2002-03-30  Richard Henderson  <rth@redhat.com>
6466
6467         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
6468         (sparc_emitting_epilogue): New.
6469         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
6470         * config/sparc/sparc-protos.h: Update.
6471         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
6472         (TARGET_SWITCHES): Update.
6473         * config/sparc/sparc.md (return): Remove.
6474         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
6475         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
6476         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
6477         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
6478         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
6479         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
6480         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
6481         Remove MASK_EPILOGUE.
6482         * doc/invoke.texi: Update.
6483
6484 2002-03-30  Daniel Berlin  <dan@dberlin.org>
6485
6486         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
6487         CPP will start the file for us.
6488
6489 2002-03-30  Richard Henderson  <rth@redhat.com>
6490
6491         PR target/5446
6492         * config/ia64/ia64.c (group_barrier_needed_p): Special case
6493         prologue_allocate_stack.
6494         (ia64_single_set): Use insn codes for recognition of special
6495         cases, not rtl matching.
6496         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
6497
6498 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
6499
6500         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
6501
6502 2002-03-30  Richard Henderson  <rth@redhat.com>
6503
6504         PR target/6032
6505         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
6506         or -fomit-frame-pointer with profiling.
6507         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
6508         (FUNCTION_PROFILER): Do nothing.
6509         (PROFILE_HOOK): New.
6510         * config/sparc/sparc.c (sparc_override_options): Don't check
6511         code models for profiling.
6512         (sparc_function_profiler): Remove.
6513         (sparc_profile_hook): New.
6514         * config/sparc/sparc-protos.h: Update.
6515
6516 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
6517
6518         PR optimization/6086
6519         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
6520         of SUBREG of volatile MEM or because the MEM was mode dependent,
6521         return CLOBBER instead of unmodified SUBREG.
6522
6523 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
6524
6525         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
6526         when not optimizing.
6527
6528         * toplev.c (rest_of_compilation): Cann mark_constant_function
6529         only when optimizing.
6530
6531         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
6532         are NULL.
6533
6534         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
6535         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
6536         (try_optimize_cfg): clear all AUX fields.
6537
6538         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
6539         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
6540         (ix86_address_cost): Be prepared for SUBREGed registers.
6541         (legitimate_address_p): Accept SUBREGed registers.
6542
6543 2002-03-29  Richard Henderson  <rth@redhat.com>
6544
6545         PR target/5672
6546         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
6547
6548 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6549
6550         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
6551         for aggregate and TFmode types.
6552
6553 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
6554
6555         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
6556
6557 2002-03-29  Richard Henderson  <rth@redhat.com>
6558
6559         PR target/5886
6560         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
6561         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
6562
6563 2002-03-29  Richard Henderson  <rth@redhat.com>
6564
6565         PR target/6041
6566         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
6567         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
6568         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
6569         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
6570         conditional.
6571         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
6572
6573 2002-03-29  Dale Johannesen <dalej@apple.com>
6574
6575         * loop.c (combine_movables): Do allow combination of pseudos.
6576
6577 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
6578
6579         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
6580         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
6581         No functional change except ...
6582         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
6583         * doc/install.texi (*-*-freebsd*): Document port configuration.
6584
6585 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6586
6587         * Makefile.in (convert.o, calls.o, expmed.o): Update.
6588         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
6589         Use new hooks.
6590         * builtin-types.def (BT_PTRMODE): Update.
6591         * c-common.c (type_for_size): Rename c_common_type_for_size.
6592         (type_for_mode): Similarly.
6593         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
6594         Use new hook.
6595         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
6596         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
6597         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
6598         Redefine.
6599         * c-typeck.c (common_type, comptypes, default_conversion):
6600         Use new hooks.
6601         * calls.c: Include langhooks.h.
6602         (emit_library_call_value_1): Use new hooks.  Avoid redundant
6603         calls.
6604         * convert.c: Include langhooks.h
6605         (convert_to_pointer, convert_to_integer): Use new hooks.
6606         * except.c (init_eh): Similarly.
6607         * expmed.c: Include langhooks.h.
6608         (expand_mult_add): Use new hooks.
6609         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
6610         try_casesi): Similarly.
6611         * fold-const.c (optimize_bit_field_compare, make_range,
6612         decode_field_reference, fold_truthop, fold): Similarly.
6613         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
6614         put_var_into_stack): Similarly.
6615         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
6616         LANG_HOOKS_TYPE_FOR_SIZE): New.
6617         (LANG_HOOKS_TYPES_INITIALIZER): Update.
6618         * langhooks.h (lang_hooks_for_types): New hooks.
6619         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
6620         * tree.c (get_unwidened, get_narrower): Similarly.
6621         * tree.h (type_for_mode, type_for_size): Remove.
6622         * varasm.c (force_const_mem): Use new hooks.
6623         * utils2.c (nonbinary_modular_operation): Update.
6624 objc:
6625         * objc-act.c (handle_impent): Update.
6626         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
6627         Redefine.
6628
6629 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
6630
6631         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
6632         * config/ia64/ia64.c (basereg_operand): New.
6633         * config/ia64/ia64-protos.h (basereg_operand): Declare.
6634         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
6635
6636 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
6637
6638         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
6639         unwind information when frame_pointer_needed.
6640         (mmix_assemble_integer): Tweak wording in comment.
6641
6642 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6643
6644         * Makefile.in (except.o): Update.
6645         * except.c: Include langhooks.h.
6646         (init_eh): Use langhook.
6647         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
6648         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
6649         (LANG_HOOKS_INITIALIZER): Update.
6650         * langhooks.h (lang_hooks_for_types): New.
6651         (struct lang_hooks): Add it.
6652         * tree.c (make_lang_type_fn, make_lang_type): Remove.
6653         * tree.h (make_lang_type_fn, make_lang_type): Remove.
6654 config:
6655         * alpha/alpha.c: Include langhooks.h.
6656         (alpha_build_va_list): Use langhook.
6657         * d30v/d30v.c: Include langhooks.h.
6658         (d30v_build_va_list): Use langhook.
6659         * i386/i386.c: Include langhooks.h.
6660         (ix86_build_va_list): Use langhook.
6661         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
6662         * s390/s390.c: Include langhooks.h.
6663         (s390_build_va_list): Use langhook.
6664         * stormy16/stormy16.c: Include langhooks.h.
6665         (stormy16_build_va_list): Use langhook.
6666
6667 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
6668
6669         PR c++/5964
6670         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
6671         attributes.
6672         (length): Compute variable length for branches/calls/jumps here.
6673         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
6674         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
6675         define branch_type attribute.
6676         (divsi3_sp32): Maximum length is 6 not 7.
6677         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
6678         call_address_untyped_struct_value_sp32,
6679         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
6680         * config/sparc/sparc.c (empty_delay_slot): New function.
6681         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
6682         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
6683
6684 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
6685
6686         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
6687         nonzero_bits if not needed.
6688         (nonzero_bits) [XOR]: Likewise.
6689         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
6690         reg_last_set_mode and mode are both MODE_INT, but not equal.
6691         (record_value_for_reg): Compute reg_last_set_nonzero_bits
6692         in nonzero_bits_mode for MODE_INT modes.
6693
6694 2002-03-28  Richard Henderson  <rth@redhat.com>
6695
6696         PR target/5715
6697         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
6698         to GAS.  Correct drift between alternatives.
6699
6700 2002-03-28  Richard Henderson  <rth@redhat.com>
6701
6702         PR target/6087
6703         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
6704
6705 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
6706
6707         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
6708         emulation to the linker.
6709
6710 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
6711
6712         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
6713         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
6714
6715 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
6716
6717         * combine.c (simplify_and_const_int): Make sure to apply mask
6718         when force_to_mode returns a constant integer.  PR3311.
6719
6720 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6721
6722         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
6723
6724 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6725
6726         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
6727         and Objective-C Dialect Options.
6728
6729 2002-03-28  Richard Henderson  <rth@redhat.com>
6730
6731         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
6732         comparison should be done vs !=0 not >0 return code.  Tidy cases.
6733
6734 2002-03-28  Richard Henderson  <rth@redhat.com>
6735
6736         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
6737         on to c_expand_body.
6738         * c-tree.h (finish_function): Update decl.
6739         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
6740
6741 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
6742
6743         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
6744
6745 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
6746
6747         * rtlanal.c: Include flags.h
6748         (may_trap_p): Do not mark FP operations if trapping
6749         if !flag_trapping_math
6750         * Makefile.in (rtlanal.o): Add dependency on flag.h
6751         * ifcvt.c (noce_operand_ok): Avoid the lameness.
6752
6753 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
6754
6755         * mips.md: Use dconst1, not 1.0, as first argument of
6756         REAL_VALUE_LDEXP.  Don't use union real_extract.
6757
6758 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
6759
6760         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
6761         rather than $target.  Heed program_prefix and
6762         program_transform_name.  Search for gas in cross-compiler case too.
6763         "test -x" rather than "test -f".
6764         (gcc_cv_ld): Likewise.
6765         (gcc_cv_nm): Heed program_prefix and program_transform_name.
6766         (gcc_cv_objdump): Likewise.
6767         * configure: Regenerate.
6768
6769 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6770
6771         * Makefile.in (attribs.o): Update.
6772         * attribs.c: Include langhooks.h.
6773         (decl_attributes): Use langhook.
6774         * c-decl.c (insert_default_attributes): Rename.
6775         * c-tree.h (c_insert_default_attributes): New.
6776         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
6777         (LANG_HOOKS_INITIALIZER): Update.
6778         * langhooks.h (struct lang_hooks): New hook.
6779         * tree.h (insert_default_attributes): Remove.
6780 objc:
6781         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
6782
6783 2002-03-27  Andreas Schwab  <schwab@suse.de>
6784
6785         * config/i386/i386.c (classify_argument): Also check for
6786         QUAL_UNION_TYPE.
6787
6788 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6789
6790         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
6791         any more.
6792
6793 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
6794
6795         * i960.md (ret): Set PC.
6796         (nonlocal_goto): Fix expander.
6797         * builtins.c (epxand_builin_longjmp): Check that we've emitted
6798         some jump or call.
6799
6800 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
6801
6802         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
6803         of libcall regions.
6804
6805 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6806
6807         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
6808         assigning to BLOCK_FOR_INSN directly.
6809
6810 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
6811
6812         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
6813
6814 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6815
6816         * c-common.c (c_expand_expr): Fix prototype.
6817         * c-common.h (c_expand_expr): Always declare, update.
6818         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
6819         * c-objc-common.c (c_objc_common_init): No global hook.
6820         * expr.c (expand_expr): Use langhook.
6821         * expr.h (enum expand_modifier): Conditionally declare.
6822         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
6823         (LANG_HOOKS_INITIALIZER): Update.
6824         * langhooks.c (lhd_expand_expr): New.
6825         * langhooks.h (struct lang_hooks): New hook.
6826         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
6827         (lang_independent_init): Don't default hook.
6828 objc:
6829         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
6830
6831 2002-03-27  Richard Henderson  <rth@redhat.com>
6832
6833         PR target/6054
6834         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
6835         TARGET_CONST_GP.  Simplify conditions.
6836
6837 2002-03-27  Richard Henderson  <rth@redhat.com>
6838
6839         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
6840         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
6841         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
6842
6843 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
6844
6845         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
6846         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
6847         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
6848         Remove unnecessary masks.
6849         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
6850         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
6851         -mwindows, -mdll switches and their negations.
6852
6853 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6854
6855         * gcc-common.c (lang_mark_false_label_stack): Remove.
6856         * ggc.h (lang_mark_false_label_stack): Similarly.
6857
6858 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
6859
6860         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
6861
6862         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
6863         or __rtems_ is defined.
6864
6865 2002-03-26  Richard Henderson  <rth@redhat.com>
6866
6867         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
6868         if a non-trivial load was emitted.
6869         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
6870         in high+extra+low case.
6871
6872 2002-03-26  Richard Henderson  <rth@redhat.com>
6873
6874         * config.gcc (sparc*-solaris): Use float_format=sparc.
6875
6876 2002-03-26  Richard Henderson  <rth@redhat.com>
6877
6878         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
6879         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
6880         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
6881         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
6882         (WINT_TYPE_SIZE): Fix at 32.
6883
6884 2002-03-26  Richard Henderson  <rth@redhat.com>
6885
6886         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
6887         until after eh landing pad generation.
6888         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
6889         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
6890
6891 2002-03-26  Richard Henderson  <rth@redhat.com>
6892
6893         * expr.h (ADD_PARM_SIZE): One more convert for INC.
6894
6895 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
6896
6897         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
6898         and warning switches.
6899         (cc1_options):  Likewise.
6900
6901 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
6902
6903         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
6904         Restore more of the signal context.  Set no_reg_stack_frame.
6905         * config/ia64/unwind-ia64.c (unw_state_record):
6906         Add no_reg_stack_frame, comments.
6907         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
6908         (uw_update_context): Adjust bsp when unwinding from leaf,
6909         but not signal frame.
6910
6911 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
6912
6913         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
6914
6915 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
6916
6917         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
6918
6919 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
6920
6921         PR target/5621
6922         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
6923         "Add a pool_range attribute", which was lost during the ARM/Thumb
6924         merge.
6925
6926 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
6927
6928         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
6929         a register into the MAC16 accumulator.
6930
6931 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
6932
6933         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
6934         (Warning Options): Document -Wswitch-enum.
6935         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
6936         -Wswitch.
6937         (warn_switch_enum): Define variables.
6938         * flags.h (warn_switch_enum): Declare variables.
6939         * stmt.c (expand_end_case_type): When warn_switch_enum /
6940         -Wswitch-enum, perform switch checks.
6941         Fix PR c/5044.
6942
6943 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
6944
6945         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
6946         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
6947         (reload_muladdsi_compare0_scratch): Delete.
6948
6949 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
6950
6951         * doc/install.texi (*-*-freebsd*): Update.
6952
6953 2002-03-26  Richard Henderson  <rth@redhat.com>
6954
6955         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
6956         (SUB_PARM_SIZE): Cast DEC to ssizetype.
6957
6958         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
6959         types from the normal argument frame.
6960
6961         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
6962         variable sized objects by reference.
6963         (sparc_va_arg): Receive them by reference too.
6964
6965 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
6966
6967         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
6968         code to not restoring global registers.
6969
6970 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
6971
6972         * Makefile.in (ggc-common.o): Update.
6973         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
6974         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
6975         * c-tree.h (c_mark_tree): New.
6976         * ggc-common.c: Include langhooks.h.
6977         (gcc_mark_trees): Use new langhook.
6978         * ggc-callbacks.c: Delete file.
6979         * ggc.h (lang_mark_tree): Remove.
6980         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
6981         (LANG_HOOKS_INITIALIZER): Update.
6982         * langhooks.h (struct lang_hooks): New hook.
6983 objc:
6984         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
6985
6986 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
6987
6988         * doc/cpp.texi: Exclude entire Top node from printed manual.
6989         Move option index after directive index.  Insert page breaks
6990         before GFDL and concept index.  Index environment variables
6991         with command line options.
6992         * doc/cppenv.texi: Use @vtable for environment variable list.
6993         Add paragraph explaining semantics of empty elements in path
6994         variables.  Exclude a cross-reference to Fishkill from the
6995         manpage.  Remove an unnecessary cross-reference of the entry
6996         right above the referer.  Don't use @anchor in text that goes
6997         into manpage.
6998         * doc/cppopts.texi: Cross-reference the environment variables
6999         section, not the specific environment variable, for consistency.
7000
7001 2002-03-25  Richard Henderson  <rth@redhat.com>
7002
7003         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
7004         anywhere in the block.  Don't refer to insns that have been
7005         removed from the chain.  Iterate backward through the new insns.
7006         Don't refer to edges that have been removed.
7007
7008 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
7009
7010         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
7011         test for overflow of constant.
7012
7013 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
7014
7015         PR target/2623
7016         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
7017         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
7018         these patterns on arm_archv4.
7019
7020 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
7021
7022         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
7023         int".
7024
7025 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
7026
7027         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
7028         float_handled, float_handler, float_signal, set_float_handler,
7029         and do_float_handler.  Set handler for SIGFPE to crash_signal.
7030         * toplev.h: Don't prototype do_float_handler.
7031
7032         * c-lex.c: Fold parse_float into lex_number.  Make warning
7033         about portability of hex float constants more informative, and
7034         don't issue it on top of a syntax error.
7035         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
7036         their callers.
7037         * real.h: Define REAL_VALUE_ABS here...
7038         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
7039         simplify_unary_real, simplify_binary_real, and
7040         simplify_binary_is2orm1 into their callers.
7041         * tree.c: Fold build_real_from_int_cst_1 into caller.
7042
7043         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
7044
7045         * tsystem.h: Include float.h here...
7046         * libgcc2.c: ... not here.
7047
7048 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
7049
7050         Fixes for: PR bootstrap/3591, target/5676
7051         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
7052         defined.  Do not disable exceptions or rtti.
7053         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
7054         mcore.h.  Disable exceptions and rtti, since they are not
7055         supported by EPOC.
7056
7057 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7058
7059         * c-decl.c (maybe_build_cleanup): Remove.
7060         * expr.c (expand_expr): Use langhook.
7061         * langhooks-def.h (lhd_return_null_tree,
7062         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
7063         (LANGHOOKS_INITIALIZER): Update.
7064         * langhooks.c (lhd_return_null_tree): New.
7065         * langhooks.h (struct lang_hooks): New hook.
7066         * tree-inline.c (initialize_inlined_parameters): Use langhook.
7067         * tree.h (maybe_build_cleanup): Remove.
7068
7069 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7070
7071         * regrename.c (build_def_use): Move recog_memoized
7072         before extract_insn.
7073
7074 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7075
7076         PR target/6043
7077         * expr.c (emit_group_store): Handle storing into CONCAT.
7078
7079 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7080
7081         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
7082         corresponding MATCH_DUP.
7083
7084 2002-03-24  Richard Henderson  <rth@redhat.com>
7085
7086         * unroll.c (unroll_loop): Zero label_map.
7087
7088         * gcse.c: Include except.h.
7089         * Makefile.in (gcse.o): Update.
7090
7091 2002-03-24  Richard Henderson  <rth@redhat.com>
7092
7093         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
7094         Do resolve_unique_section before shared data clause.
7095
7096 2002-03-24  Richard Henderson  <rth@redhat.com>
7097
7098         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
7099
7100 2002-03-24  Richard Henderson  <rth@redhat.com>
7101
7102         * recog.c (peephole2_optimize): Split blocks when EH insns are
7103         generated in the middle of a block.  Do global life update if
7104         zapped EH edges.
7105
7106 2002-03-24  Richard Henderson  <rth@redhat.com>
7107
7108         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
7109
7110 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7111
7112         preprocessor/3951
7113         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
7114         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
7115         (init_dependency_output): Don't make no_output decision here.
7116
7117 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
7118
7119         * stmt.c (check_for_full_enumeration_handling): Remove tests of
7120         warn_switch.  Update description.
7121         (expand_end_case_type): Call check_for_full_enumeration_handling
7122         when warn_switch.
7123
7124 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7125
7126         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
7127         (m68hc11_split_move): Call it to see if the source and destination
7128         operands use the same direction auto inc/dec mode, otherwise make the
7129         source an offsetable memory operand and generate an add.
7130
7131 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7132
7133         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
7134         register for operand 2.
7135         ("*subsi3_zero_extendqi"): Likewise.
7136         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
7137         bits so that it is compatible with a pop.
7138         ("*andhi3_gen"): Likewise.
7139         ("xorhi3"): Likewise.
7140
7141 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7142
7143         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
7144         -pedantic here...
7145         (cpp_post_options): ... not here.
7146
7147 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7148             Aldy Hernandez  <aldyh@redhat.com>
7149
7150         Removal of separate preprocessor cpp0.
7151
7152         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
7153         cpp0, install-common): Update.
7154         * c-common.c (flag_preprocess_only): New.
7155         (c_common_init): Preprocess for -E.
7156         * c-common.h (flag_preprocess_only): New.
7157         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
7158         * c-objc-common.c (c_init_decl_processing): Exit quickly
7159         for NULL return from c_common_init.
7160         * cpplib.h (cpp_preprocess_file): New.
7161         * cppmain.c (main, general_init, pfile, progname): Remove.
7162         (do_preprocessing): Rename cpp_preprocess_file, don't call
7163         cpp_finish.  Don't close stdout here.
7164         (setup_callbacks): Update prototype.
7165         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
7166         Update.
7167         * tradcpp.c (main): Ignore -quiet.
7168 objc:
7169         * lang-specs.h (default_compilers): Preprocess with cc1obj.
7170
7171 2002-03-24  Richard Henderson  <rth@redhat.com>
7172
7173         PR optimization/5742
7174         * machmode.def: Add inner mode field to complex modes.
7175         * config/mips/mips.c (mips_function_value): Always define.  Add
7176         new argument to handle libcalls.
7177         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
7178         (FUNCTION_VALUE): Likewise.
7179         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
7180         * config/mips/mips-protos.h: Update.
7181
7182 2002-03-23  Richard Henderson  <rth@redhat.com>
7183
7184         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
7185         * config/sparc/sparc-protos.h: Update.
7186         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
7187
7188 2002-03-23  Richard Henderson  <rth@redhat.com>
7189
7190         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
7191         _start or _init begins the text segment.
7192
7193 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
7194
7195         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
7196         not HOST_WIDEST_INT.
7197         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
7198
7199 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
7200
7201         PR java/5489
7202         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
7203         operand argument to output_return_instruction.
7204         * arm.c (arm_print_operand, case 'd'): If the operand is
7205         const_true_rtx then just return.
7206         (arm_print_operand, case 'D'): If the operand is const_true_rtx
7207         then abort.
7208
7209 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
7210
7211         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
7212         (Warning Options): Document -Wswitch-default.
7213         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
7214         -Wswitch.
7215         (warn_switch_default): Define variable.
7216         (warn_switch): Update comment.
7217         * flags.h (warn_switch_default): Declare variable.
7218         (warn_switch): Update comment.
7219         * stmt.c (expand_end_case): Check for and, when
7220         warn_switch_no_default, warn of a missing default case.
7221
7222 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
7223
7224         * real.h (N): Special case 128 bit doubles.
7225
7226         * combine.c (simplify_comparison): When widening modes, ignore
7227         sign extension on CONST_INTs.
7228
7229 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
7230
7231         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
7232         passed to adjust_address.  Fix comment formatting.
7233
7234
7235 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
7236
7237         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
7238         Always make REAL_VALUE_TYPE a struct containing an array of
7239         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
7240         big it is.  Don't declare or use union real_extract.
7241
7242         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
7243         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
7244         (print_operand), config/arm/arm.c (output_move_double),
7245         config/arm/arm.md (consttable_4, consttable_8),
7246         config/romp/romp.c (output_fpops), config/s390/s390.h
7247         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
7248         (xtensa_output_literal): Don't use union real_extract.
7249
7250         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
7251         (sfmode_constant_to_ulong), config/ns32k/merlin.h
7252         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
7253         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
7254         (PRINT_OPERAND): Don't use local version of union
7255         real_extract.
7256
7257         * config/convex/convex.c (check_float_value), config/vax/vax.c
7258         (vax_float_literal), config/m88k/m88k.md (divdf3),
7259         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
7260         config/pdp11/pdp11.c (output_move_quad): Don't do host
7261         arithmetic on target floating point quantities.
7262
7263         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
7264         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
7265
7266         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
7267         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
7268
7269         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
7270         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
7271         INFINITY.
7272         * print-rtl.c (print_rtx): Disable code which needs
7273         floating-point emulator.
7274         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
7275         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
7276         depending on HOST_FLOAT_FORMAT to be defined properly.
7277
7278         * config/1750a/1750a.c (get_double, float_label): Delete.
7279         (print_operand): Delete huge commented-out chunk.  Use
7280         REAL_VALUE_TO_DECIMAL.
7281         * config/1750a/1750a-protos.h: Delete prototypes of deleted
7282         functions.
7283         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
7284         IEEE_FLOAT_FORMAT.
7285         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
7286         Use REAL_VALUE_TO_DECIMAL as ELF version does.
7287         * config/m88k/m88k.c (real_power_of_2_operand,
7288         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
7289         real_extract out of the union; run the input through
7290         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
7291         from that into the union.
7292         * config/pdp11/pdp11.c (output_move_double): Rearrange
7293         parentheses to make automatic indenter happy.
7294
7295         * doc/tm.texi (Cross-compilation): Rename node to "Floating
7296         Point" and rewrite to describe current situation.  Also adjust
7297         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
7298         match code.
7299         * doc/rtl.texi: Adjust cross reference.
7300
7301 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
7302
7303         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
7304         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
7305         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
7306         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
7307         prevent use of sp as a reload register.
7308         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
7309         non_acc_reg_operand.
7310         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
7311         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
7312         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
7313         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
7314
7315 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7316
7317         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
7318         * cpplex.c (unterminated): Delete.
7319         (parse_string): No string literal may extend over multiple
7320         lines.  Suppress the error when preprocessing assembly.
7321         * cppmain.c (scan_translation_unit): Strings are single-line.
7322
7323         * doc/cpp.texi: Update to match.
7324
7325 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
7326
7327         PR optimization/5854
7328         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
7329         Shut up warnings.
7330         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
7331         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
7332         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
7333         const0 if scratch register was not allocated.
7334         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
7335         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
7336         with GEN_INT (...).
7337         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
7338         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
7339         with GEN_INT (...) everywhere.  Remove constraints in define_split
7340         patterns.
7341         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
7342         require scratch register for setting 0 into regs/non-pushable memory.
7343
7344 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
7345
7346         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
7347         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
7348
7349 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
7350
7351         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
7352         * cppinit.c (cpp_create_reader):  On by default.
7353         (cpp_handle_option):  Handle -W[no-]endif-labels.
7354         (cpp_post_options):  Also enable if -pedantic.
7355         * cpplib.c (do_else):  Use it.
7356         (do_endif):  Likewise.
7357         * doc/cppopts.texi:  Document new option.
7358         * doc/invoke.texi:  Document new option.
7359
7360 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
7361
7362         * config/i386/i386.c, config/i386/i386.md: Change all occurences
7363         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
7364
7365 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
7366
7367         * flow.c (calculate_global_regs_live): Clear aux fields of
7368         ENTRY and EXIT.
7369
7370 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
7371
7372         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
7373         REG or MEM subregs, pass rtx * instead of rtx to it.
7374         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
7375         rtx * instead of rtx to alter_subreg.
7376         * config/m32r/m32r.c (gen_split_move_double): Likewise.
7377         * config/pj/pj.c (pj_output_rval): Likewise.
7378
7379 2002-03-22  Richard Henderson  <rth@redhat.com>
7380
7381         PR target/3177
7382         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
7383         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
7384         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
7385         (ia64_expand_prologue): Look at int_regs, not words, for number
7386         of incomming int regs.
7387
7388 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
7389
7390         * expr.c (expand_expr): A RESULT_DECL is part of a call.
7391
7392 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
7393
7394         * toplev.c (flag_loop_optimize, flag_crossjumping):
7395         New static variables.
7396         (rest_of_compilation): Conditionalize crossjumping and
7397         loop optimizer.
7398         (parse_options_and_default_flags): Default loop_optimize and
7399         crossjumping.
7400         (lang_independent_options): Add -fcrossjumping and -floop-optimize
7401         * invoke.texi (crossjumping, loop-optimize): Document.
7402
7403 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7404
7405         * real.c (eiisneg): Move outside #ifdef NANS.
7406
7407 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
7408
7409         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
7410         frequencies match; avoid match on different loop depths.
7411         (try_crossjump_to_bb): Kill tests that no longer brings time
7412         savings.
7413         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
7414         updating code.
7415         (split_edge): Likewise.
7416
7417         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
7418         variable.
7419
7420         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
7421         * cfgrtl.c: Include insn-config.h
7422         (split_block) Dirtify block in presence of conditional execution
7423
7424 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7425
7426         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
7427         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
7428         (function_arg): Constify CUMULATIVE_ARGS.
7429         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
7430         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
7431         (UNITS_PER_DOUBLE): New macro.
7432         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
7433         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
7434         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
7435         fp_regs and stack_words.
7436         (EABI_FLOAT_VARARGS_P): New macro.
7437         * config/mips/mips.c (struct mips_arg_info): New.
7438         (mips_arg_info): New function.
7439         (function_arg_advance): Use it.  Add adjustment instructions here
7440         rather than in function_arg.
7441         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
7442         for VOIDmode at the beginning of the function.
7443         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
7444         (function_arg_pass_by_reference): Likewise.
7445         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
7446         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
7447         (mips_va_start): Likewise.  Use the new stack_words field of
7448         CUMULATIVE_ARGS to set up overflow area.  Reformat.
7449         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
7450         doubles and other types, aligning the overflow pointer for non-doubles
7451         too.  Remove some code duplication.  Replace hard-coded constants.
7452
7453 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7454
7455         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
7456         (CLASS_UNITS): Undefine.
7457         (CLASS_MAX_NREGS): Use FP_INC.
7458         * config/mips/mips.c (compute_frame_size): Likewise.
7459         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
7460
7461 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7462
7463         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
7464         prototype, and handle lexing numbers and identifiers.
7465         (parse_identifier): Update to new form of parse_slow.
7466         (parse_number): Fast path only, use parse_slow otherwise.
7467         (_cpp_lex_direct): Update calls to parse_number.
7468
7469 2002-03-21  DJ Delorie  <dj@redhat.com>
7470
7471         * bb-reorder.c (make_reorder_chain_1): Protect against
7472         when redundant edges are omitted.
7473         * predict.c (dump_prediction): Likewise.
7474
7475 2002-03-21  Richard Henderson  <rth@redhat.com>
7476
7477         PR target/5996
7478         * fixinc/inclhack.def (solaris_stdio_tag): New.
7479         * fixinc/fixincl.x: Regenerate.
7480
7481 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
7482
7483         PR c/5597
7484         * c-typeck.c (process_init_element): Flag non-static
7485         initialization of a flexible array member as illegal.
7486
7487 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
7488
7489         * config/rs6000/t-linux64: New.
7490         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
7491         t-ppccomm.  Use t-rs6000 and t-linux64.
7492         (powerpc64-*-gnu* <tmake_file>): Likewise.
7493         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
7494         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
7495         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
7496
7497 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
7498
7499         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
7500         flag_really_no_inline instead of optimize == 0.
7501
7502         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
7503
7504         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
7505
7506         * flags.h (flag_really_no_inline): New.
7507
7508         * c-common.c (c_common_post_options): Initialize
7509         flag_really_no_inline.
7510
7511         * toplev.c (flag_really_no_inline): New.
7512
7513 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
7514
7515         * config/avr/avr.md (length): Fix length computation for
7516         conditional branches.
7517
7518 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7519
7520         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
7521         sdbout.o, profile.o): Update.
7522         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
7523         langhook.
7524         * c-common.h (gettags): Move here from tree.h.
7525         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
7526         insert_block, getdecls, kept_level_p, global_bindings_p): New.
7527         * dbxout.c (dbxout_init): Use getdecls langhook.
7528         * expr.c (expand_expr): Use insert_block langhook.
7529         * fold-const.c: Include langhooks.h.
7530         (fold_range_test, fold_binary_op_with_conditional_arg,
7531         fold): Use global_bindings_p langhook.
7532         * integrate.c (expand_inline_function): Use insert_block langhook.
7533         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
7534         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
7535         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
7536         LANG_HOOKS_GETDECLS): New.
7537         (LANG_HOOKS_INITIALIZER): Update.
7538         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
7539         langhook.
7540         * langhooks.h (struct lang_hooks_for_decls): New.
7541         (struct lang_hooks): Update.
7542         * profile.c: Include langhooks.h.
7543         (output_func_start_profiler): Use new langhooks.
7544         * sdbout.c: Include langhooks.h.
7545         (sdbout_init, sdbout_finish): Use getdecls langhook.
7546         * stmt.c: Include langhooks.h.
7547         (expand_fixup, fixup_gotos): Use new langhooks.
7548         * stor-layout.c: Include langhooks.h.
7549         (variable_size): Use global_bindings_p langhook.
7550         * toplev.c (compile_file): Use getdecls langhook.
7551         * tree-inline.c (remap_block): Use insert_block langhook.
7552         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
7553         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
7554
7555 2002-03-21  Richard Henderson  <rth@redhat.com>
7556
7557         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
7558         constants in .data when -fpic.
7559
7560 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7561
7562         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
7563         where appropriate.
7564
7565 2002-03-21  Tom Tromey  <tromey@redhat.com>
7566
7567         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
7568
7569 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7570
7571         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
7572
7573         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
7574
7575 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
7576             Richard Henderson  <rth@redhat.com>
7577
7578         PR c/5354
7579         * c-common.c (c_expand_expr): Preserve result of a statement
7580         expression if needed.
7581
7582 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
7583
7584         PR bootstrap/4195
7585         * genrecog.c (maybe_both_true_mode): Remove.
7586         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
7587         * machmode.def (Pmode): Likewise.
7588
7589 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
7590
7591         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
7592         (nonlocal_mentioned_p_1): New function.
7593         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
7594         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
7595         (mark_constant_function): Recognize pure functions.
7596         * rtl.h (global_reg_mentioned_p): New prototype.
7597         * rtlanal.c (global_reg_mentioned_p,
7598         global_reg_mentioned_p_1): New function.
7599
7600 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7601
7602         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
7603         UNIX assert.h.
7604         * fixinc/fixincl.x: Regenerate.
7605
7606 2002-03-20  Jason Merrill  <jason@redhat.com>
7607
7608         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
7609
7610 2002-03-20  Michael Meissner  <meissner@redhat.com>
7611
7612         * doc/invoke.texi (Optimize Options): Document that -O2 sets
7613         -fstrict-aliasing.
7614
7615 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
7616
7617         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
7618         ".literal_position" directive before the constant pool.
7619
7620 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7621
7622         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
7623         Add Craig Rodrigues.
7624         Add Brad Lucier to testers.
7625
7626 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7627
7628         PR target/4792
7629         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
7630         to if_then_else.
7631         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
7632         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
7633         instead of insn_extract.
7634
7635 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7636
7637         PR bootstrap/4192
7638         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
7639
7640         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
7641         stmt if some case has been output.
7642
7643 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7644
7645         PR c/5972
7646         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
7647         movsfcc_1, movdfcc_1): Add %O2.
7648         * config/i386/i386.c (print_operand): Handle %ON.
7649         Print . before float condition codes in Sun as cmov syntax.
7650         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
7651         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
7652         no longer true.
7653
7654 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
7655
7656         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
7657         return instruction if PC was popped.
7658
7659 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
7660
7661         * config/xtensa/xtensa.md: Remove unused type attributes.
7662         (adddi_carry, subddi_carry): Change type attribute to "multi".
7663
7664 2002-03-19  Dale Johannesen  <dalej@apple.com>
7665
7666         PR optimization/5999, middle-end/5731
7667         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
7668         multiplications by reciprocals.
7669
7670 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7671
7672         * Makefile.in: Update.
7673         * c-common.c: Include langhooks.h.
7674         (inline_forbidden_p): Use new hook.
7675         * diagnostic.c: Include langhooks.h.
7676         (format_with_decl, announce_function,
7677         default_print_error_function): Use new hook.
7678         * dwarf2out.c (dwarf2_name): Use new hook.
7679         * function.c: Include langhooks.h.
7680         (init_function_start): Use new hook.
7681         * langhooks-def.h (lhd_decl_printable_name): New.
7682         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
7683         (LANGHOOKS_INITIALIZER): Update.
7684         * langhooks.c (lhd_decl_printable_name): New.
7685         * langhooks.h (struct lang_hooks): New hook.
7686         * toplev.c (decl_name, decl_printable_name): Remove.
7687         (open_dump_file): Use new hook.
7688         (process_options): Remove old hook.
7689         * tree.h (decl_printable_name): Remove.
7690 objc:
7691         * objc-act.c (objc_init): Remove old hook.
7692         (objc_printable_name): Export.
7693         * objc-act.h (objc_printable_name): New.
7694         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
7695
7696 2002-03-19  Jim Blandy  <jimb@redhat.com>
7697
7698         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
7699         the start_source_file debug hook, not the current line number.
7700
7701 2002-03-19  Richard Henderson  <rth@redhat.com>
7702
7703         * flow.c (EH_USES): Provide default.
7704         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
7705         * doc/tm.texi (EH_USES): New.
7706
7707         * config/ia64/ia64.c (ia64_eh_uses): New.
7708         * config/ia64/ia64-protos.h: Update.
7709         * config/ia64/ia64.h (EH_USES): New.
7710
7711 2002-03-19  Richard Henderson  <rth@redhat.com>
7712
7713         * varasm.c (output_constant_def): Fix stupid typo.
7714
7715 2002-03-19  Richard Henderson  <rth@redhat.com>
7716
7717         PR 5879
7718         * except.c (current_function_has_exception_handlers): New.
7719         * except.h: Declare it.
7720         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
7721         Combine tests that disable all sibcalls for the function.
7722
7723 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
7724
7725         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
7726         for INTEGER_CST.
7727
7728 2002-03-19  Richard Henderson  <rth@redhat.com>
7729
7730         PR 5977, 5991
7731         * config/ia64/ia64.c: Revert 2002-03-01 patch.
7732         * config/ia64/ia64.h (INIT_EXPANDERS): New.
7733
7734 2002-03-19  Jim Blandy  <jimb@redhat.com>
7735
7736         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
7737         name, even if the replacement list contains no tokens, as required
7738         by Dwarf.
7739
7740 2002-03-19  Jason Merrill  <jason@redhat.com>
7741
7742         * varasm.c (globalize_decl): Get the name from the RTL, not
7743         DECL_ASSEMBLER_NAME.
7744
7745         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
7746
7747 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
7748
7749         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
7750         subdi_carry): Define.
7751
7752 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
7753
7754         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
7755         about -fpic/-fPIC if extra_warnings set.
7756
7757 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
7758
7759         * expr.c (expand_expr): Sign-extend CONST_INT generated from
7760         TREE_STRING_POINTER.
7761         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
7762
7763 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7764
7765         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
7766         in favor of SP if FRAME_POINTER_REQUIRED is false.
7767
7768 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
7769
7770         * emit-rtl.c (gen_int_mode): New function.
7771         * rtl.h: Prototype for it.
7772         * combine.c (make_extraction, simplify_comparison), expmed.c
7773         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
7774         (convert_modes, store_field), optabs.c (expand_fix),
7775         simplify-rtx.c (neg_const_int, simplify_unary_real),
7776
7777         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
7778         Use it instead of GEN_INT (trunc_int_for_mode (...)).
7779
7780 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
7781
7782         PR c/5656
7783         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
7784         convert_parm_for_inlining.
7785         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
7786         Define.
7787         * langhooks-def.h: Likewise.
7788         * objc/objc-lang.c: Likewise.
7789         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
7790         function.
7791         * tree-inline.c (initialize_inlined_parameters):
7792         Call convert_parm_for_inlining lang hook if needed.
7793         * c-typeck.c (c_convert_parm_for_inlining): New function.
7794         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
7795
7796 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
7797
7798         * calls.c (precompute_arguments): Do not assume that temporaries
7799         can be destroyed after expanding the argument.
7800         (expand_call): Likewise.
7801
7802 2002-03-15  Eric Christopher  <echristo@redhat.com>
7803
7804         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
7805         Fix register preference on last change.
7806         * config/mips/mips.c (mips_return_in_memory): New function.
7807         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
7808         * config/mips/mips-protos.h: Declare.
7809         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
7810         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
7811
7812 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
7813
7814         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
7815         a register too.
7816         (anddi3, iorsi3): Likewise.
7817
7818         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
7819         use %gprel for symbols that are going to be placed in linkonce
7820         sections.
7821
7822         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
7823         RETURN_ADDRESS_POINTER_REGNUM to $ra.
7824         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
7825         not needed.  Disregard leaf_function_p().
7826         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
7827         mips16 frame pointer.
7828         * config/mips/mips.md (store ra): Only to small SP offsets.
7829         2001-08-22  Graham Stott  <grahams@redhat.com>
7830         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
7831         return a REG rtx for the return address register.
7832
7833 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
7834
7835         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
7836         constant-pool addresses as "mode-dependent".
7837         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
7838
7839 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
7840
7841         PR target/5740
7842         * expr.c (emit_group_load): Use extract_bit_field if
7843         needed for CONCAT arguments.
7844
7845 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
7846
7847         PR target/4863
7848         * arm.md (tablejump): Make this a define_expand.  For PIC add the
7849         offset to the base of the table.
7850         (thumb_tablejump): Matcher for Thumb tablejump insn.
7851         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
7852         as the difference of two labels.
7853         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7854         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
7855         tables in the code.
7856         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
7857         * arm.c (get_jump_table_size): If the table is not in the text
7858         section, return zero.
7859
7860 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
7861
7862         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
7863         of gen_rtx_SUBREG.
7864         (arm_reload_out_hi): Use gen_lowpart instead of
7865         gen_rtx_SUBREG to access QImode components.
7866         * config/arm/arm.md: Disable zero_extend split for QImode
7867         subregs in BIG_ENDIAN mode.
7868         (storehi_bigend): Match use of least significant byte.
7869         (storeinthi): Remove extraneous SUBREG.
7870         Add missing construction of operands[2].
7871         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
7872         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
7873         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
7874
7875 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
7876
7877         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
7878         any_operand.
7879
7880 2002-03-17  Richard Henderson  <rth@redhat.com>
7881
7882         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
7883         explicitly.
7884
7885 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
7886
7887         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
7888         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
7889
7890 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7891
7892         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
7893
7894         * predict.c (estimate_bb_frequencies): Delete unused variables.
7895
7896 2002-03-17  Richard Henderson  <rth@redhat.com>
7897
7898         * config/ia64/ia64.c (ia64_attribute_table): Move before
7899         targetm definition.  Make static.
7900
7901 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7902
7903         * c-common.h (yyparse, c_common_parse_file): New.
7904         * c-lang.c: Include c-common.h.
7905         (LANG_HOOKS_PARSE_FILE): Redefine.
7906         * c-lex.c: Include c-common.h.
7907         (yyparse): Rename c_common_parse_file.  Call yyparse.
7908         * c-parse.in (yyparse): Remove macro.
7909         * c-tree.h (yyparse_1): Remove.
7910         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
7911         (LANG_HOOKS_INITIALIZER): Update.
7912         * langhooks.h (struct lang_hoooks): New hook parse_file.
7913         * toplev.c (compile_file): Use parse_file hook.
7914         * tree.h (yyparse): Remove.
7915         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
7916
7917 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
7918
7919         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
7920         float_truncate, not fix.
7921         ("*truncdfsf2_real"): Ditto.
7922         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
7923
7924         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
7925
7926 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
7927
7928         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
7929         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
7930         where appropriate.  Make the second reference to
7931         leaf_function_p a function call, as intended.  Reindented.
7932
7933         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
7934         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
7935
7936         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
7937         add register to non-constant into sp.
7938
7939         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
7940         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
7941         (mips16_gp_pseudo_rtx): Lose.
7942         (INIT_EXPANDERS): Deleted.
7943         * config/mips/mips.c (mips_init_machine_status): New.
7944         (mips_free_machine_status): New.
7945         (mips_mark_machine_status): New.
7946         (override_options): Set them.
7947         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
7948         (struct machine_function): ... new.  Replaced all references.
7949         (mips_add_gc_roots): Don't mark them.
7950         (embedded_pic_fnaddr_reg): New, extracted from...
7951         (embedded_pic_offset): ... here.
7952         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
7953         (movsi): Likewise.
7954
7955 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
7956
7957         * cppinit.c: Revert -MD removal.
7958
7959 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7960
7961         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
7962         soft registers by default for 68HC12.
7963         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
7964         when compiling with -fomit-frame-pointer.
7965         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
7966         (expand_epilogue): Likewise.
7967         (m68hc11_gen_rotate): Use exg when rotating by 8.
7968
7969 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7970
7971         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
7972         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
7973         (splits): Remove unused add splits.
7974         ("*addhi3_68hc12"): Tune constraints.
7975         ("addhi_sp"): Try to use X instead of Y in all cases and if the
7976         constant fits in 8-bits and D is dead use abx/aby instructions.
7977         ("*addhi3"): Remove extern declaration of ix_reg.
7978         ("*subsi3"): Optimize and provide new split.
7979         ("subhi3"): Cleanup.
7980         ("*subhi3_sp"): Avoid saving X if we know it is dead.
7981         (arith splits): For 68hc12 save the address register on the stack
7982         and do the arithmetic operation with a pop.
7983
7984 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7985
7986         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
7987         allocating QImode in address registers.
7988         ("*movqi_m68hc11"): Likewise.
7989
7990 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
7991
7992         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
7993
7994 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
7995
7996         * cppinit.c (print_help): Display -MD and -MMD.
7997         Don't display usage string.  Update assertion syntax and
7998         typo.
7999         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
8000         (cpp_handle_option): Update.
8001
8002 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
8003
8004         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
8005         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
8006         and define it so that regardless of target CPU size,
8007         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
8008         of "int" rather than "long."
8009
8010 2002-03-15  Richard Henderson  <rth@redhat.com>
8011
8012         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
8013         size as a tree.
8014
8015 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8016
8017         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
8018         ("tstqi" split): Avoid using memory for tstqi on address register.
8019         (splits): Remove constraints.
8020         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
8021         ("cmpdf", "cmpsf"): Remove since not used.
8022         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
8023         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
8024
8025 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8026
8027         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
8028         ("neghi2"): Tighten constraints.
8029         ("one_cmplsi2"): Optimize and simplify split.
8030         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
8031
8032 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8033
8034         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
8035         and split of AND operation to clear the upper bits.
8036         ("*logicalsi3_zextqi"): Likewise.
8037         ("*logicallhi3_zexthi_ashift8"): Likewise.
8038         ("*logicalsi3_silshr16"): Likewise.
8039         ("logicalsi3_silshl16"): Likewise.
8040         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
8041
8042 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8043
8044         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
8045         (m68hc11_indirect_p): New function.
8046         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
8047         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
8048         TARGET_M6812.
8049         (asm_print_register): Likewise.
8050         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
8051         (m68hc11_indirect_p): Declare.
8052         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
8053         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
8054         (TARGET_SWITCHES): New option -mrelax.
8055         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
8056         destination.
8057         ("iorsi3", "xorsi3"): Likewise.
8058         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
8059         ("*andhi3_mem"): New to handle destination in memory with bclr
8060         and a scratch register.
8061         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
8062         ("*andhi3_const"): New when operand2 is constant.
8063         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
8064         ("*andhi3_gen"): Cleanup of the old "andhi3".
8065         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
8066         ("xorqi3"): Update constraints.
8067
8068 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8069
8070         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
8071         for reg_equiv_memory_loc when the operand is a register that does
8072         not get a hard register (stack location).
8073         (tst_operand): After reload, accept all memory operand.
8074         (symbolic_memory_operand): Fix detection of symbolic references.
8075         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
8076         accept symbols and any constant.
8077
8078 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8079
8080         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
8081         note on the insn that sets the soft frame register.
8082         (must_parenthesize): ix and iy are also reserved names.
8083         (print_operand_address): One more place where parenthesis are required
8084         to avoid confusion with register names.
8085         (m68hc11_gen_movhi): Allow push of stack pointer.
8086         (m68hc11_check_z_replacement): Fix handling of parallel with a
8087         clobber.
8088         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
8089         the replacement register is.
8090         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
8091         and D8_REGS classes.
8092         (MODES_TIEABLE_P): All modes are tieable except QImode.
8093
8094 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8095
8096         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
8097         (___subdi3): Likewise.
8098         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
8099         (__map_data_section): Optimize 68hc11 case.
8100
8101 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8102
8103         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
8104         than a shift to avoid adding a register with itself.
8105         (m68hc11_memory_move_cost): Take into account NO_REGS.
8106         (m68hc11_register_move_cost): Update and use memory move cost
8107         for soft registers.
8108         (m68hc11_address_cost): Make cost of valid offset not 0 so that
8109         it gives more opportunities to cse to optimize.
8110         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
8111         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
8112
8113 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
8114
8115         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
8116         * c-common.def (CLEANUP_STMT): New tree node.
8117         * c-common.h (CLEANUP_DECL): New macro.
8118         (CLEANUP_EXPR): Likewise.
8119         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
8120         * expr.c (expand_expr): Tidy.
8121         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
8122         * tree-inline.c (initialize_inlined_parameters): Clean up
8123         new local variables.
8124
8125 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
8126
8127         PR bootstrap/4128
8128         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
8129         before movrXX only, use reg_overlap_mentioned_p.
8130         Only special case NE if just one insn can be generated.
8131
8132 2002-03-15  Jason Merrill  <jason@redhat.com>
8133
8134         * varasm.c (assemble_variable): Call resolve_unique_section before
8135         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
8136         of error_mark_node.
8137
8138 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
8139
8140         PR target/5170
8141         * arm.md (split pattern for thumb shiftable immediates): Add comment
8142         explaining non-obvious test.
8143
8144 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
8145
8146         PR target/5712
8147         * arm.md (movaddr, movaddr_insn): Delete.
8148
8149 2002-03-15  Jason Merrill  <jason@redhat.com>
8150
8151         * toplev.c (wrapup_global_declarations): Clarify variable handling.
8152         -fkeep-static-consts doesn't apply to comdats.
8153
8154 2002-03-14  Richard Henderson  <rth@redhat.com>
8155
8156         * c-decl.c: Include c-pragma.h.
8157         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
8158         (finish_function): Tidy.
8159         * c-pragma.c: Include c-common.h.
8160         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
8161         (handle_pragma_weak): Use them.
8162         (init_pragma): Register pending_weaks.
8163         * c-pragma.h (maybe_apply_pragma_weak): Declare.
8164         * print-tree.c (print_node): Print DECL_WEAK.
8165         * varasm.c (mark_weak_decls): Remove.
8166         (remove_from_pending_weak_list): Remove.
8167         (add_weak): Remove.
8168         (asm_emit_uninitialised): Call globalize_decl for weak commons.
8169         (weak_decls): Make a tree_list.
8170         (declare_weak): Cons weak_decls directly.
8171         (globalize_decl): Remove weak_decls elements directly.
8172         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
8173         symbols.  Don't pretend to handle aliases.
8174         (init_varasm_once): Update weak_decls registry.
8175         * Makefile.in: Update dependencies.
8176
8177 2002-03-14  Richard Henderson  <rth@redhat.com>
8178
8179         PR target/5312
8180         * config/ia64/ia64.c: Include tm_p.h last.
8181         (gen_nop_type): Remove duplicate definition.
8182         (cycle_end_fill_slots): Set sched_data for second L slot.
8183         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
8184         (nop_cycles_until): Fix typos.
8185
8186 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
8187
8188         PR optimization/5891
8189         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
8190
8191 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
8192
8193         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
8194           descriptors correctly.
8195
8196 2002-03-14  Michael Meissner  <meissner@redhat.com>
8197
8198         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
8199         100, allowing MAX_UNROLLED_INSNS to be overridden.
8200
8201         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
8202         --param.
8203
8204         * unroll.c (params.h): Include.
8205         (MAX_UNROLLED_INSNS): Delete, now in params.h.
8206
8207         * doc/invoke.texi (--param max-unroll-insns): Document.
8208
8209         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
8210
8211 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
8212
8213         * arm.md: Fix warnings about constraints in peepholes and splits.
8214
8215 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
8216
8217         * cpphash.h (struct lexer_state): Remove line_extension member.
8218         * cpplib.c (dequote_string, do_linemarker): New functions.
8219         (linemarker_dir): New data object.
8220         (DIRECTIVE_TABLE): No longer need to interpret #line in
8221         preprocessed source.  Delete obsolete comment about return
8222         values of handlers.
8223         (end_directive, directive_diagnostics, _cpp_handle_directive):
8224         Don't muck with line_extension.
8225         (directive_diagnostics): No need to issue warnings for
8226         linemarkers here.
8227         (_cpp_handle_directive): Issue warnings for linemarkers here,
8228         when appropriate.  Dispatch linemarkers to do_linemarker, not
8229         do_line.
8230         (do_line): Code to handle linemarkers split out to do_linemarker.
8231         Convert escape sequences in filename argument, both places.
8232
8233         * cppmacro.c (quote_string): Rename cpp_quote_string and
8234         export.  All callers changed.
8235         * cpplib.h (cpp_quote_string): Prototype.
8236         * cppmain.c (print_line): Call cpp_quote_string on to_file
8237         before printing it.
8238
8239         * doc/cpp.texi: Document that escapes are now interpreted in
8240         #line and in linemarkers, and that non-printing characters are
8241         converted to octal escapes when linemarkers are generated.
8242
8243 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
8244
8245         * emit-rtl.c (try_split): Use delete_insns.
8246         * recog.c (split_all_insns): Fix terminating condition.
8247
8248 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
8249             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
8250
8251         PR target/5828
8252         * arm.c (arm_output_epilogue): Fix floating-point register save
8253         adjustment when using a frame pointer.
8254
8255 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
8256
8257         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
8258         * config/mips/mips.c (compute_frame_size): Retrofit them here.
8259         (save_restore_insns, mips_expand_epilogue): And here.
8260         (build_mips16_call_stub): And here.
8261         (mips_function_value): Use the new macros to decide whether a single
8262         or complex float can be returned in floating-point registers.  Return
8263         a parallel rtx in the complex case.
8264
8265 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
8266
8267         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
8268         call after liveness analysis.
8269
8270         * recog.c (split_insn): Use delete_insn_and_edges.
8271
8272         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
8273         instructions to have branch prediction notes.
8274         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
8275
8276 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
8277
8278         * configure.in: Don't pass -Wno-long-long to a ADA compiler
8279         that doesn't support it.
8280         * configure: Regenerate.
8281
8282 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8283
8284         PR target/5626
8285         * config/sparc/sparc.md (normal_branch, inverted_branch,
8286         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
8287         inverted_fp_branch): Adjust calls to output_cbranch.
8288         Set length attribute.
8289         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
8290         output_v9branch.  Set length attribute.
8291         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
8292         predicates.
8293         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
8294         (output_cbranch): Likewise.  Handle far branches.
8295         (output_v9branch): Handle far branches.
8296         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
8297         Adjust prototypes.
8298         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
8299         noov_compare64_op predicates.
8300
8301 2002-03-13  Jason Merrill  <jason@redhat.com>
8302
8303         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
8304         into the function and constify it.
8305         * gthr-dce.h, gthr-solaris.h: Likewise.
8306
8307 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
8308
8309         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
8310         * config/rs6000/rs6000.c (rs6000_va_arg): Use
8311         std_expand_builtin_va_arg if not ABI_V4.
8312
8313 2002-03-13  Jason Merrill  <jason@redhat.com>
8314
8315         * varasm.c (globalize_decl): New fn.
8316         (assemble_start_function): Use it.
8317         (asm_emit_uninitialized): Use it.
8318         (assemble_alias): Use it.
8319         (assemble_variable): Use it.
8320
8321 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
8322
8323         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
8324         2002-03-12 internal visibility change.
8325         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
8326         visibility into SYMBOL_REF_FLAG.
8327
8328 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
8329
8330         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
8331         VOIDmode operand.  Add compile-time optimization for constant results.
8332
8333 2002-03-12  Jason Merrill  <jason@redhat.com>
8334
8335         * c-typeck.c (convert_for_assignment): Don't allow conversions
8336         between pointers and references.  Only allow lvalues to convert to
8337         reference.
8338
8339 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
8340
8341         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
8342         before prologue, to avoid scheduling problems.
8343
8344 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8345
8346         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
8347         (ELIMINABLE_REGS): Add sfp->sp.
8348         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
8349
8350 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8351
8352         PR optimization/5892
8353         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
8354
8355 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8356
8357         * loop.c (basic_induction_var): Don't call convert_modes if mode
8358         classes are different.
8359
8360 2002-03-12  Richard Henderson  <rth@redhat.com>
8361
8362         PR optimization/5901
8363         * function.c (reposition_prologue_and_epilogue_notes): Position
8364         the markers after/before the last/first insn not deleted.
8365
8366 2002-03-12  Richard Henderson  <rth@redhat.com>
8367
8368         PR optimization/5878
8369         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
8370         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
8371         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
8372
8373         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
8374         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
8375         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
8376
8377         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
8378         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
8379         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
8380         also.  Don't set it if not flag_pic.
8381         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
8382         to be INVALID_REGNUM when not used.
8383
8384 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
8385
8386         * expmed.c (store_bit_field): Reset alias set for memory.
8387         (extract_bit_field): Same.
8388
8389 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8390
8391         * c-common.c (c_tree_code_type, c_tree_code_length,
8392         c_tree_code_name, add_c_tree_codes): Delete.
8393         * c-common.h (add_c_tree_codes): Delete.
8394         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
8395         Define.
8396         * c-objc-common.c (c_objc_common_init): Don't call
8397         add_c_tree_codes, instead set lang_unsafe_for_reeval.
8398         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
8399         objc_tree_code_name, add_objc_tree_codes): Delete.
8400         (objc_init): Don't call add_objc_tree_codes.
8401         * objc/objc-lang.c (tree_code_type, tree_code_length,
8402         tree_code_name): Define.
8403         * toplev.c (lang_independent_init): Don't set
8404         tree_code_length[IDENTIFIER_NODE].
8405         * tree.c (tree_code_type, tree_code_length, tree_code_name):
8406         Delete definitions, moved to language front-ends.
8407         * tree.def (IDENTIFIER_NODE): Hardwire the length.
8408         * tree.h (tree_code_type, tree_code_length, tree_code_name):
8409         Const-ify.
8410         (tree_code_length): Change type to unsigned char.
8411
8412 2002-03-12  Richard Henderson  <rth@redhat.com>
8413
8414         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
8415         internal visibility change.
8416
8417 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8418
8419         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
8420         validize_mem() instead of change_address to avoid clobbering
8421         memory attributes.
8422
8423 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
8424
8425         * c-lex.h (position_after_whitespace): Remove.
8426
8427 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
8428
8429         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
8430         (lex_string): Use unsigned char pointers.
8431
8432 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
8433
8434         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
8435         is not a valid memory_operand.
8436
8437 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8438
8439         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
8440         * config/xtensa/lib1funcs.asm: Fix copyright to include
8441         special case for libgcc files.
8442         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
8443         (__divsi3): Likewise.
8444         (__umodsi3): Likewise.
8445         (__modsi3): Likewise.
8446         * config/xtensa/lib2funcs.S: Fix copyright to include
8447         special case for libgcc files.
8448
8449 2002-03-12  Tom Rix  <trix@redhat.com>
8450
8451         * collect2.c (resolve_lib_name): Move outside of
8452         OBJECT_FORMAT_COFF ifdef.
8453         (ignore_library): Same.
8454
8455 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8456
8457         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
8458
8459 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8460
8461         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
8462         to function_section before writing out the constant pool.
8463
8464 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
8465
8466         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
8467         zero_constant.
8468         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
8469
8470 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
8471
8472         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
8473         (adddi3): Likewise.
8474         (movdf): Likewise.
8475         (movdi): Likewise.
8476         (cmpsi splitter): Likewise.
8477         (modsi3): Fail if <= 0.
8478         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
8479         redundant test when HOST_BITS_PER_WIDE_INT != 32.
8480         (reg_or_sub_cint64_operand): Likewise.
8481         (num_insns_constant_wide): Optimize sign extension.
8482         (rs6000_legitimize_address): Likewise.
8483
8484 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
8485
8486         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
8487         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
8488
8489 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
8490
8491         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
8492         address calculation.
8493
8494 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
8495
8496         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
8497         scratch register to DImode / TImode.
8498         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
8499         register used does not overlap the target.
8500
8501 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8502
8503         * Makefile.in (debug.o): Depend on debug.h.
8504         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
8505         * debug.c (do_nothing_debug_hooks): Likewise.
8506         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
8507         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
8508         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
8509         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
8510         * dwarfout.c (dwarf_debug_hooks): Likewise.
8511         * integrate.c (output_inline_function): Likewise.
8512         * objc/objc-act.c (synth_module_prologue): Likewise.
8513         * sdbout.c (sdb_debug_hooks): Likewise.
8514         * toplev.c (debug_hooks): Likewise.
8515         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8516
8517 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8518
8519         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
8520         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
8521         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
8522         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
8523         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
8524         * defaults.h (POINTER_SIZE): Define.
8525         * doc/tm.texi (POINTER_SIZE): Document default.
8526
8527 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8528
8529         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
8530
8531 2002-03-11  Richard Henderson  <rth@redhat.com>
8532
8533         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
8534         if rebuild_label_notes_after_reload.
8535
8536 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
8537
8538         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
8539         emit pic register load if "internal" visibility.
8540         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
8541         (cris_expand_builtin_va_arg): Do all computations on trees.
8542
8543 2002-03-11  Richard Henderson  <rth@redhat.com>
8544
8545         * rtlanal.c: Include recog.h.
8546         (keep_with_call_p): Fix thinko.
8547         * Makefile.in (rtlanal.o): Update dependencies.
8548
8549 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
8550
8551         * genflags.c (gen_insn): Use IS_VSPACE.
8552         * genoutput.c (output_insn_data): Likewise.
8553         (process_template): Likewise.
8554
8555 2002-03-11  Richard Henderson  <rth@redhat.com>
8556
8557         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
8558
8559 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8560
8561         * Makefile.in: Update.
8562         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
8563         Update documentation.
8564         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
8565         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
8566
8567 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
8568
8569         * Makefile.in: Give texi2pod its input file as a command line
8570         argument, not on stdin.
8571
8572 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
8573             Daniel Berlin  <dan@dberlin.org>
8574
8575         C++ alias analysis improvement.
8576         * alias.c (record_component_aliases): Record aliases for base
8577         classes too.
8578
8579 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8580
8581         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
8582
8583 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
8584
8585         * toplev.c (vms_fopen): Remove, not needed.
8586
8587         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
8588
8589         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
8590
8591         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
8592         for FP, already done later.
8593
8594         * toplev.c (debug_args): Add entry for VMS_DEBUG.
8595         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
8596
8597 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
8598
8599         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
8600         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
8601         LARGEST_EXPONENT_IS_NORMAL for the given mode.
8602         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
8603         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
8604         (ediv, emul, eldexp, esqrt): Likewise.
8605         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
8606         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
8607         (saturate): New function.
8608         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
8609         (make_nan): Use a saturation value instead of a NaN if
8610         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
8611         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
8612         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
8613         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
8614         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
8615         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
8616         !ROUND_TOWARDS_ZERO.
8617         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
8618         (ROUND_TOWARDS_ZERO): Document.
8619
8620 2002-03-11  Andreas Jaeger  <aj@suse.de>
8621
8622         * cfg.c (dump_flow_info): Remove unused variable.
8623
8624 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
8625
8626         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
8627         computations on trees.
8628
8629 2002-03-10  Richard Henderson  <rth@redhat.com>
8630
8631         PR 5693:
8632         * reload.c (copy_replacements_1): New.
8633         (copy_replacements): Use it to recurse through the rtx.
8634
8635 2002-03-10  Richard Henderson  <rth@redhat.com>
8636
8637         * loop.c (strength_reduce): Compute number of iterations as
8638         unsigned HOST_WIDE_INT.
8639
8640 2002-03-10  Richard Henderson  <rth@redhat.com>
8641
8642         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
8643         to move away from the end of the block.
8644
8645 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8646
8647         PR preprocessor/5899
8648         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
8649
8650 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8651
8652         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
8653
8654         * attribs.c (decl_attributes): Fix signed/unsigned warning.
8655
8656 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
8657
8658         * config/mmix/mmix.c: Improve comments.
8659         (mmix_target_asm_function_prologue): Drop variable
8660         empty_stack_frame.  Don't allocate unused slot above fp.
8661         (mmix_target_asm_function_epilogue): Mirror prologue changes.
8662         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
8663         brace in first column.
8664         (enum reg_class): Ditto.
8665         (FIRST_PARM_OFFSET): Now 0.
8666         (USER_LABEL_PREFIX): Remove #if 0:d definition.
8667
8668 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8669
8670         * combine.c (make_extraction): Fix error in last change.
8671
8672 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8673
8674         * c4x.c (c4x_fp_reglist): Const-ify.
8675         * cris.c (cris_print_operand): Likewise.
8676         * i386.c (ix86_va_arg): Likewise.
8677         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
8678         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
8679         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
8680         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
8681         * mcore.h (regno_reg_class): Likewise.
8682         * mips.c (gen_int_relational): Likewise.
8683         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
8684         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
8685         * pdp11.c (move_costs): Likewise.
8686         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
8687         * s390.c (s390_branch_condition_mnemonic, regclass_map):
8688         Likewise.
8689         * s390.h (regclass_map): Likewise.
8690         * sh.c (shift_amounts): Likewise.
8691         * sh.md (rotlsi3): Likewise.
8692
8693 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
8694
8695         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
8696         (ne0+5): Use new clobber to generate proper shift pattern.
8697         Patch by Michael Matz <matz@kde.org>.
8698
8699 2002-03-09  Andreas Schwab  <schwab@suse.de>
8700
8701         * gcc.c (validate_all_switches): Also handle `%W{...}'.
8702
8703 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
8704
8705         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
8706
8707 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
8708
8709         PR middle-end/5877
8710         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
8711         even for non-representable constants.
8712
8713 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8714
8715         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
8716         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
8717         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
8718         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
8719         (pop_function_context): Compute MAY_SHARE parameter for
8720         fixup_var_refs.
8721         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
8722         (gen_mem_addressof): Call fixup_var_refs with new parm.
8723
8724         * combine.c (make_extraction): Don't make extension of CONST_INT.
8725
8726 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
8727
8728         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
8729         in o32 and o64 ABIs.
8730         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
8731         but getting fixed-size structs passed in registers regardless of
8732         padding in o32 and o64 ABIs.
8733
8734         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
8735         offset before loading address of argument passed by transparent
8736         reference.
8737
8738 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8739
8740         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
8741
8742 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
8743
8744         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
8745         marker such that registers after it are saved.
8746
8747 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8748
8749         * sparc.c (arith_4096_operand): Fix error in last change.
8750
8751 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
8752
8753         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
8754         defaults for MEABI.
8755
8756 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
8757
8758         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
8759         vectors.
8760
8761 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
8762
8763         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
8764
8765 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
8766
8767         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
8768         removed; fix return value.
8769         * combine.c (combine_instructions): Dirtify blocks where we failed to
8770         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
8771         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
8772
8773 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8774
8775         * gcse.c (insert_insn_end_bb): Fix typo in last change.
8776
8777 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
8778
8779         * recog.c (peephole2_optimize): Re-distribute EH edges.
8780
8781 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
8782
8783         * expr.c (expand_expr): Use unsave lang hook.
8784         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
8785         (LANG_HOOKS_INITIALIZER): Update.
8786         * langhooks.h (struct lang_hooks): New hook unsave.
8787         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
8788         (unsave_expr_1): Remove unused lang_unsave_expr_now.
8789         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
8790         (unsave_expr_now): Remove.
8791         * tree.h (unsave_expr_now, lang_unsave,
8792         lang_unsave_expr_now): Remove.
8793         (lhd_unsave): New.
8794
8795 2002-03-08  Andreas Jaeger  <aj@suse.de>
8796
8797         * flow.c (propagate_block_delete_insn): Remove unused variable.
8798
8799 2002-03-08  Kazu Hirata  <kazu@hxi.com>
8800
8801         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
8802         insn length for memory load/store.
8803
8804 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8805
8806         * doc/install.texi (--with-libiconv-prefix): Document.
8807
8808 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
8809
8810         * doc/sourcebuild.texi: Fix typo.
8811
8812 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
8813
8814         PR c/3711
8815         * builtins.c (std_expand_builtin_va_arg): Do all computations on
8816         trees.
8817
8818 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8819
8820         * rtl.c (copy_most_rtx): Move from here ...
8821         * emit-rtl.c (copy_most_rtx): ... to here.
8822
8823 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
8824
8825         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
8826         SUBTARGET_CPP_SIZE_SPEC.
8827         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
8828
8829         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
8830
8831 2002-03-07  Matt Hiller  <hiller@redhat.com>
8832
8833         * gensupport.c (first_dir_md_include): Renamed from include;
8834         change all references.
8835         (last_dir_md_include): Renamed from last_include; change all
8836         references.
8837         (init_md_reader): Unconditionally initialize base_dir whether or
8838         not filename is a relative path.
8839
8840 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
8841
8842         * config/fp-bit.c (_unord_f2): Compile it in even if
8843         US_SOFTWARE_GOFAST is enabled.
8844
8845         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
8846         NULL_RTX.  Set all HFmode operations as NULL_RTX.
8847         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
8848         NULL_RTX, try reversing the comparison and the operands.
8849
8850 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
8851
8852         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
8853         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
8854         and MATCH_OP_DUP.
8855
8856 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
8857
8858         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
8859
8860 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
8861
8862         * basic-block.h (fixup_abnormal_edges): Declare.
8863         * reload1.c (fixup_abnormal_edges): New function.
8864         * reg-stack.c (convert_regs): Use it.
8865
8866         * gcse.c (insert_insn_end_bb): Handle trapping insns.
8867
8868         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
8869
8870 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
8871
8872         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
8873         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
8874         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
8875         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
8876         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
8877         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
8878         unless x and y could be infinite.
8879         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
8880         Check that the common type of both arguments is a real, even for
8881         targets without unordered comparisons.  Allow an integer argument
8882         to be compared against a real.
8883         (expand_tree_builtin): Use expand_unordered_cmp.
8884         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
8885         * cse.c (fold_rtx): Likewise.  Fix indentation.
8886         * fold-const.c (fold_real_zero_addition_p): New.
8887         (fold): Use it, and the new HONOR_... macros.
8888         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
8889         * jump.c (reversed_comparison_code_parts): After searching for
8890         the true comparison mode, use HONOR_NANS to decide whether it
8891         can be safely reversed.
8892         (reverse_condition_maybe_unordered): Remove IEEE check.
8893         * simplify-rtx.c (simplify_binary_operation): Use the new macros
8894         to decide which simplifications are valid.  Allow the following
8895         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
8896         and (a - -b) to (a + b).
8897         (simplify_relational_operation): Use HONOR_NANS.
8898         * doc/tm.texi: Document the MODE_HAS_... macros.
8899
8900 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
8901
8902         * combine.c (simplify_comparison): If simplifying a logical shift
8903         right and compare with constant, force the comparison to unsigned.
8904
8905 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
8906
8907         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
8908
8909         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
8910         -mabi=no-altivec
8911         (alt_reg_names): Remove % for vrsave.
8912
8913 2002-03-06  Richard Henderson  <rth@redhat.com>
8914
8915         PR optimization/5844
8916         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
8917         if used indicates we've already emitted one copy of an operand.
8918         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
8919         (gen_split): Supply a non-null used.
8920
8921 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
8922
8923         * reload1.c (reload): Unshare all rtl after reload is done.
8924
8925         * simplify-rtx.c (simplify_plus_minus): Do not abort,
8926         but simply fail if the expression is too complex to simplify.
8927         (simplify_gen_binary): Handle simplify_plus_minus failures.
8928
8929 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
8930
8931         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
8932         consistently call delete_trivially_dead_insns after CSE and GCSE;
8933         fix DFI_life dumping; do jump threading after liveness; do crossjumping
8934         after liveness2; update comment in last crossjumping.
8935         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
8936
8937 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
8938
8939         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
8940         after completing fast dead code elimination.
8941
8942         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
8943         COMPARE operator.
8944
8945 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
8946
8947         * version.c:  Fix misplaced leading blanks on first line.
8948
8949 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
8950
8951         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
8952
8953 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
8954
8955         * cfgcleanup.c (mentions_nonequal_regs): New function.
8956         (thread_jump): Use it.
8957         * toplev.c (rest_of_compilation): Run jump threading after
8958         liveness.
8959
8960 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
8961
8962         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
8963         patch.
8964
8965 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
8966
8967         * predict.c (estimate_bb_frequencies): Do not reload the
8968         frequencies from notes.
8969
8970 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
8971
8972         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
8973         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
8974
8975         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
8976         delete_noop_moves): Return indeger.
8977         * flow.c (ndead): New variable.
8978         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
8979         BB argument; update callers.
8980         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
8981         (life_analysis): Do not call purge_all_dead_edges.
8982         (update_life_info): Return number of deleted insns; print statistics.
8983         (update_life_info_in_dirty_blocks): likewise.
8984         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
8985         return number of insns deleted.
8986
8987         * cse.c: Include timevar.h
8988         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
8989         iterate until stabilizes; print statistics; return number of killed
8990         insns.
8991         * Makefile.in: (cse.o): Add timevar.h dependency
8992         * rtl.h (delete_trivially_dead_insns): New.
8993         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
8994         * toplev.c (rest_of_compilation): Update callers.
8995
8996         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
8997         (try_optimize_cfg): Do not update liveness.
8998         (cleanup-cfg): Loop until try_optimize_cfg and dead code
8999         removal stabilizes; use delete_trivially_dead_insns.
9000
9001         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
9002
9003 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
9004
9005         * cppmain.c (setup_callbacks): Disable #pragma and #ident
9006         callbacks when processing assembly language.
9007
9008 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9009
9010         * pa.h (ASM_FILE_END): Define.
9011         * som.h (ASM_FILE_END): Delete.
9012
9013         * pa.c (function_arg): Don't pass floats in general registers in
9014         indirect calls if TARGET_ELF32.
9015
9016 2002-03-05  Richard Henderson  <rth@redhat.com>
9017
9018         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
9019
9020 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
9021
9022         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
9023
9024 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9025
9026         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
9027         -r command line.  Don't hide any symbols if not building
9028         shared libgcc.
9029
9030 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
9031
9032         * cfg.c (dump_flow_info): Warn about profile mismatches.
9033         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
9034         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
9035
9036 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9037
9038         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
9039         wide volatile memory by parts.
9040
9041 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9042
9043         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
9044         is NULL.
9045
9046 2002-03-05  Richard Henderson  <rth@redhat.com>
9047
9048         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
9049
9050 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
9051
9052         * toplev.c (documented_lang_options): Document more
9053         language-specific options.
9054         * doc/invoke.texi (Warning Options): Correct documentation for
9055         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
9056         * c-decl.c (c_decode_option): Use a table to handle warning options.
9057
9058 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
9059
9060         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
9061         parameter to mmix_encode_section_info.
9062         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
9063         relocatably.  Always produce ELF, not mmo if linking relocatably.
9064         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
9065         first is non-zero, don't add symbol prefix.
9066         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
9067         prototype accordingly.
9068
9069 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
9070
9071         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
9072
9073 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
9074
9075         * configure.in: Increase required makeinfo version to 4.1.
9076         * configure: Regenerate.
9077
9078 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
9079
9080         * .cvsignore: Remove *.info* and genrtl*; these files are generated
9081         elsewhere now.
9082
9083 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9084
9085         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
9086         * doc/invoke.texi: Fix @math uses.
9087
9088 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9089
9090         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
9091         removal
9092
9093 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
9094
9095         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
9096         (powerpc-*-eabisimaltivec*): Same.
9097
9098         * config/rs6000/t-ppcendian: New.
9099
9100 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9101
9102         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
9103         nonimmediate_src_operand and nonimmediate_lsrc_operand to
9104         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
9105
9106 2002-03-03  Richard Henderson  <rth@redhat.com>
9107
9108         * toplev.c (rest_of_decl_compilation): Revert last two changes.
9109
9110 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
9111
9112         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
9113         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
9114         tree.c, config/m68k/m68k.c:
9115         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
9116         REAL_ARITHMETIC blocks unconditional.  Delete some further
9117         #ifdef blocks predicated on REAL_ARITHMETIC.
9118         * flags.h, toplev.c: Delete remaining references to
9119         flag_pretend_float.
9120
9121         * doc/invoke.texi: Remove documentation of -fpretend-float.
9122         * doc/tm.texi: Describe the various REAL_* macros as provided by
9123         real.h, not by the target configuration files.
9124
9125         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
9126         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
9127         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
9128         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
9129         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
9130         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
9131         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
9132         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
9133         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
9134         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
9135         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
9136         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
9137         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
9138         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
9139         config/xtensa/xtensa.h:
9140         Do not define, undefine, or mention in comments any of
9141         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
9142         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
9143         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
9144         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
9145         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
9146         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
9147         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
9148         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
9149         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
9150
9151 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9152
9153         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
9154         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
9155         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
9156         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
9157         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
9158         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
9159         Delete.
9160         * defaults.h (BITS_PER_WORD): Define.
9161         * doc/tm.texi (BITS_PER_WORD): Document default value.
9162
9163         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
9164         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
9165         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
9166
9167 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9168
9169         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
9170         lieu of explicit sizeof/sizeof.
9171         * i386.c (override_options, ix86_init_mmx_sse_builtins,
9172         ix86_expand_builtin): Likewise.
9173         * mips.c (mips_add_gc_roots): Likewise.
9174         * mmix.c (mmix_output_condition): Likewise.
9175         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
9176         altivec_init_builtins): Likewise.
9177         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
9178         * cppexp.c (Nsuff, parse_number): Likewise.
9179         * cppinit.c (builtin_array_end): Likewise.
9180         * gcc.c (n_default_compilers, process_command): Likewise.
9181         * genpreds.c (output_predicate_decls): Likewise.
9182         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
9183         * lcm.c (N_ENTITIES): Likewise.
9184         * stor-layout.c (set_sizetype): Likewise.
9185
9186 2002-03-03  Richard Henderson  <rth@redhat.com>
9187
9188         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
9189         for types or labels.
9190
9191 2002-03-03  Richard Henderson  <rth@redhat.com>
9192
9193         * c-decl.c (start_decl): Initialized variables are not common.
9194
9195 2002-03-02  Per Bothner  <per@bothner.com>
9196
9197         * gcc.c (option_map):  Suport new --bootclasspath option.
9198         --CLASSPATH is now just an alias for --classpath.
9199
9200 2002-03-02  Richard Henderson  <rth@redhat.com>
9201
9202         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
9203         load if "internal" visibility.
9204         * doc/extend.texi: Document visibility meanings.
9205
9206 2002-03-02  Richard Henderson  <rth@redhat.com>
9207
9208         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
9209         to functions as well.
9210
9211 2002-03-02  Richard Henderson  <rth@redhat.com>
9212
9213         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
9214         (handle_visibility_attribute): Don't call assemble_visibility.
9215         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
9216         without asmspec.  Invoke assemble_alias when needed.
9217         * varasm.c (maybe_assemble_visibility): New.
9218         (assemble_start_function, assemble_variable, assemble_alias): Use it.
9219
9220 2002-03-02  Richard Henderson  <rth@redhat.com>
9221
9222         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
9223         invoke ENCODE_SECTION_INFO with first call flag.
9224
9225         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
9226         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
9227         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
9228         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
9229         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
9230         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
9231         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
9232         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
9233         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
9234         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
9235         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
9236         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
9237         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
9238         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
9239         config/mcore/mcore-protos.h, config/mcore/mcore.c,
9240         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
9241         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
9242         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
9243         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
9244         config/sh/sh.h, config/sparc/sparc.h,
9245         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
9246         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
9247         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
9248         FIRST argument.  As needed, examine it and do nothing.
9249
9250         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
9251         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
9252         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
9253
9254         * config/arm/t-pe (pe.o): Add dependencies.
9255
9256 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9257
9258         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
9259         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
9260         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
9261         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
9262         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
9263         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
9264         * defaults.h (BITS_PER_UNIT): Define.
9265         * doc/tm.texi (BITS_PER_UNIT): Document default value.
9266
9267 2002-03-02  Kazu Hirata  <kazu@hxi.com>
9268
9269         * config/h8300/h8300-protos.h: Add a prototype for
9270         compute_a_shift_length.
9271         * config/h8300/h8300.c (h8300_asm_insn_count): New.
9272         (compute_a_shift_length): Likewise.
9273         (h8300_adjust_insn_length): Do not adjust insn length of shift
9274         insns.
9275         * config/h8300/h8300.md (anonymous shift patterns): Use
9276         compute_a_shift_length.
9277
9278 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9279
9280         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
9281         trunc_int_for_mode.
9282
9283         * emit-rtl.c (offset_address): Call update_temp_slot_address.
9284
9285 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9286
9287         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
9288         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
9289         * flags.h (flag_zero_initialized_in_bss): Declare.
9290         * toplev.c (flag_zero_initialized_in_bss): New flag.
9291         (lang_independent_options): Add flag_zero_initialized_in_bss.
9292         * tree.c (initializer_zerop): New function.
9293         * tree.h (initializer_zerop): Declare.
9294         * varasm.c (assemble_variable): If we can emit bss, put zero
9295         initializers in the bss section.
9296
9297 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
9298
9299         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
9300         like more than one symbol per .weak directive.
9301
9302 2002-03-01  Richard Henderson  <rth@redhat.com>
9303
9304         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
9305         adjust argument_pointer by pretend_args_size.
9306         (ia64_va_start): Adjust va_start address by -pretend_args_size.
9307
9308 2002-03-01  Kazu Hirata  <kazu@hxi.com>
9309
9310         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
9311
9312 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
9313
9314         * toplev.c (rest_of_compilation): Delete dead jumptables before
9315         loop.
9316         * flow.c (delete_dead_jumptables): Make global.
9317         * rtl.h (delete_dead_jumptables): Declare.
9318
9319 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
9320
9321         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
9322         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
9323         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
9324
9325 2002-03-01  Kazu Hirata  <kazu@hxi.com>
9326
9327         * config/h8300/h8300-protos.h: Fix formatting.
9328         * config/h8300/h8300.c: Likewise.
9329         * config/h8300/h8300.h: Likewise.
9330
9331 2002-03-01  Kazu Hirata  <kazu@hxi.com>
9332
9333         * config/h8300/h8300.c (print_operand): Support 16-bit
9334         constant addresses.
9335         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
9336
9337 2002-02-28  Richard Henderson  <rth@redhat.com>
9338
9339         * expmed.c (store_bit_field): Prevent generation of CONCATs;
9340         pun complex values as integers; use gen_lowpart instead of
9341         gen_rtx_SUBREG.
9342         (extract_bit_field): Likewise.
9343
9344 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
9345             David Edelsohn  <edelsohn@gnu.org>
9346
9347         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
9348         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
9349         (SUPPORTS_WEAK): Likewise.
9350         * output.h (add_weak): Add tree param.
9351         * varasm.c (add_weak): Likewise.  Save decl.
9352         (struct weak_syms): Add decl field.
9353         (mark_weak_decls): New function.
9354         (init_varasm_once): ggc_add_root mark_weak_decls.
9355         (assemble_start_function): Use ASM_WEAKEN_DECL.
9356         (assemble_variable): Likewise.
9357         (assemble_alias): Likewise.
9358         (declare_weak): Pass decl to add_weak.
9359         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
9360         (remove_from_pending_weak_list): Declare and define for
9361         ASM_WEAKEN_DECL.
9362         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
9363         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
9364         * defaults.h (SUPPORTS_WEAK): Likewise.
9365         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
9366         .weak for code sym.  Do emit .size for descriptor sym.
9367         (ASM_DECLARE_FUNCTION_SIZE): Define.
9368         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
9369         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
9370         .lglobl unless TARGET_XCOFF.  Formatting fixes.
9371         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
9372         .weak for code sym.
9373         (HANDLE_PRAGMA_WEAK): Remove.
9374         (ASM_WEAKEN_LABEL): Remove.
9375         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
9376
9377 2002-03-01  Jason Merrill  <jason@redhat.com>
9378
9379         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
9380         (TARGET_EXPR_CLEANUP): New macro.
9381
9382 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
9383
9384         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
9385         to take ptr_extend into account as third type of extension.
9386         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
9387         fields used by SUBREG_PROMOTED_UNSIGNED_P.
9388         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
9389         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
9390         * calls.c (precompute_arguments): Use new macro.
9391         (expand_call): Ditto.
9392         * combine.c (nonzero_bits): Ditto.
9393         (record_promoted_value): Ditto.
9394         * expr.c (store_expr): Ditto.
9395         (expand_expr): Ditto.
9396         * function.c (assign_parms): Ditto.
9397
9398 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
9399
9400         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
9401         override -shared and -shared-libgcc.
9402
9403 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
9404
9405         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
9406         of "ultrasparc".
9407         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
9408         to be broken.
9409
9410 2002-02-28  Richard Henderson  <rth@redhat.com>
9411
9412         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
9413         4 cycle latency from MM producers.
9414         (ia64_internal_sched_reorder): Likewise with pipeline flush.
9415
9416 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
9417
9418         * mklibgcc.in: Don't use GNU make extension.
9419
9420 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
9421
9422         * c-parse.in (STATIC): New terminal.
9423         (scspec): New non-terminal.  Update productions accordingly.
9424         (program): Remove bogus ifc / end ifc.
9425         (array_declarator): Simplify production using STATIC.
9426
9427 2002-02-28  Jim Meyering  <meyering@lucent.com>
9428
9429         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
9430         \a still means TARGET_BELL.
9431
9432 2002-02-28  Richard Henderson  <rth@redhat.com>
9433
9434         * haifa-sched.c (sched_emit_insn): New.
9435         (schedule_block): Use last_scheduled_insn to track last insn.
9436         * sched-int.h (sched_emit_insn): Prototype.
9437         * config/ia64/ia64.c (last_issued): Remove.
9438         (ia64_variable_issue): Don't set it.
9439         (nop_cycles_until): Use sched_emit_insn.
9440
9441 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
9442
9443         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
9444         extended constants.
9445
9446 2002-02-28  Kazu Hirata  <kazu@hxi.com>
9447
9448         * config/h8300/h8300.c: Fix formatting.
9449         * config/h8300/h8300.h: Likewise.
9450
9451 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9452
9453         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
9454         which may overwrite the high byte of the frame pointer.
9455
9456 2002-02-28  Bo Thorsen  <bo@suse.de>
9457
9458         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
9459         (STARTFILE_SPEC): Add 64 bit files.
9460         (ENDFILE_SPEC): Likewise.
9461
9462 2002-02-28  Jason Merrill  <jason@redhat.com>
9463
9464         * c-decl.c (finish_function): Only warn about missing return
9465         statement with -Wreturn-type.
9466
9467 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
9468
9469         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
9470
9471         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
9472         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
9473
9474 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
9475
9476         * basic-block.h (BB_REACHABLE): Renumber.
9477         (BB_DIRTY, BB_NEW): New flags.
9478         (clear_bb_flags): Declare.
9479         (update_life_info_in_dirty_blocks): Declare.
9480         * cfg.c (clear_bb_flags): New function.
9481         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
9482         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
9483         reorder_insns, emit_insn_after): Mark block as dirty.
9484         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
9485         (update_life_info_in_dirty_blocks): New function.
9486         * recog.c (apply_change_group): Dirtify block.
9487
9488         * cse.c (cse_insn): Reorder emitting of jump insn to keep
9489         cfg consistent.
9490         * gcse.c (delete_null_pointer_checks): Likewise.
9491
9492         * toplev.c (dump_file_index): Move cse2 after bp,
9493         add DFI_null
9494         (dump_file_info): Similary.
9495         (rest_of_compilation): Avoid most of CFG rebuilds;
9496         do first if converision after null pointer checks, do cse2
9497         after branch prediction; avoid full liveness rebuild after
9498         initializing subregs.
9499         * invoke.texi (-d options): Document -du, renumber.
9500
9501         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
9502         (notice_new_block): Do not set BB_UPDATE_LIFE.
9503         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
9504          merge_blocks_move_successor_nojumps, merge_blocks,
9505          try_crossjump_to_edge): Likewise.
9506         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
9507         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
9508         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
9509         (merge_of_block): Do not use life_data_ok.
9510         (find_if_case_1): Do not use SET_UPDATE_LIFE.
9511         (if_convert): Use BB_DIRTY mechanizm to update life.
9512         * lcm.c (optimize_mode_switching): Update
9513         update_life_info_in_dirty_blocks
9514
9515 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
9516
9517         * Makefile.in (integrate.o): Update.
9518         * c-decl.c (copy_lang_decl): Rename.
9519         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9520         * integrate.c: Include langhooks.h.
9521         (copy_decl_for_inlining): Update to use langhook.
9522         * langhooks-def.h (lhd_do_nothing_t,
9523         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
9524         (LANG_HOOKS_INITIALIZER): Update.
9525         * langhooks.c (lhd_do_nothing_t): New.
9526         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
9527         * tree.h (copy_lang_decl): Remove.
9528 objc:
9529         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9530
9531 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
9532
9533         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
9534         POST_DEC, and POST_MODIFY.
9535
9536 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9537
9538         * c-typeck.c (digest_init): Remove unused parameter; all
9539         callers changed.
9540
9541 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
9542
9543         * expmed.c (expand_shift): Correctly test for low part of a
9544         subreg.
9545
9546 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
9547
9548         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
9549         insn UIDs with insn addresses.
9550
9551 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9552
9553         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
9554         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
9555         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
9556         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
9557         gcc.c, toplev.c: Delete code implementing -traditional mode.
9558
9559         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
9560         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
9561         Document removal of -traditional mode for compilation, and
9562         remove documentation only relevant to that mode.
9563
9564         * config/nextstep.h, config/ptx4.h, config/svr4.h,
9565         config/convex/convex.h, config/d30v/d30v.h,
9566         config/i386/dgux.h, config/i386/osf1elf.h,
9567         config/i386/osfelf.h, config/i386/osfrose.h,
9568         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
9569         config/m68k/hp310.h, config/m88k/dgux.h,
9570         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
9571         config/m88k/m88k.h, config/m88k/openbsd.h,
9572         config/mips/abi64.h, config/mips/osfrose.h,
9573         config/mips/svr4-5.h, config/mips/svr4-t.h,
9574         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
9575         config/stormy16/stormy16.h: Remove all references to
9576         -traditional from target specs.  Delete all mention of the
9577         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
9578         delete a couple of commented-out definitions of
9579         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
9580         to -traditional.
9581
9582         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
9583         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
9584
9585 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9586
9587         * mklibgcc.in: Don't use \n in a line subject to
9588         interpretation by echo.
9589
9590 2002-02-27  Graham Stott  <grahams@redhat.com>
9591
9592         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
9593         Constify NAME.
9594
9595         * loop.c (prescan_loop): Handle PARALLEL.
9596
9597         * unroll.c (loop_iterations): Return 0 if the add_val for
9598         a BIV is REG.
9599
9600         * final.c (output_operand_lossage): Constify PFX_STR.
9601
9602         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
9603
9604 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9605
9606         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
9607         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
9608
9609 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
9610
9611         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9612
9613 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
9614
9615         * cpplex.c (_cpp_lex_token): Handle directives in macro
9616         arguments.
9617         * cpplib.c (_cpp_handle_directive): Save and restore state
9618         if parsing macro args when entering a directive.
9619         * cppmacro.c (collect_args): No need to handle directives
9620         in macro arguments.
9621         (enter_macro_context, replace_args): Use the original macro
9622         definition in case it was redefined whilst collecting arguments.
9623 doc:
9624         * cpp.texi: Update.
9625
9626 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
9627
9628         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
9629         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
9630         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
9631         method on AIX.
9632         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
9633         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
9634         (load_toc_v4_PIC_2): Same.
9635
9636 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
9637
9638         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
9639
9640 2002-02-26  Richard Henderson  <rth@redhat.com>
9641
9642         * config/alpha/alpha.md (ashldi_se): Re-enable.
9643
9644 2002-02-26  Richard Henderson  <rth@redhat.com>
9645
9646         * config/alpha/alpha.c (alpha_encode_section_info): Examine
9647         MODULE_LOCAL_P; improve commentary.
9648
9649 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
9650
9651         * doc/cpp.texi: Clarify documentation of relationship between
9652         #line and #include.
9653
9654 2002-02-26  Kazu Hirata  <kazu@hxi.com>
9655
9656         * config/h8300/h8300-protos.h: Update the prototype for
9657         compute_logical_op_length.  Add the prototype for
9658         compute_logical_op_cc.
9659         * config/h8300/h8300.c (compute_logical_op_length): Figure out
9660         code from operands.
9661         (compute_logical_op_cc): New.
9662         * config/h8300/h8300.md: Combine all the logical op patterns
9663         in HImode and SImode.  Use compute_logical_op_cc.
9664
9665 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
9666
9667         * config/i386/i386.c (print_operand): Don't append ATT-style
9668         length suffixs to x87 opcodes when in Intel mode.
9669
9670 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
9671
9672         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
9673         (init_emit_once): Update calls.
9674         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
9675         (init_syntax_once): Prototype.
9676
9677 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9678
9679         * pa-linux.h (LIB_SPEC): Update definition.
9680         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
9681
9682 2002-02-26  Richard Henderson  <rth@redhat.com>
9683
9684         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
9685         if we emitted a stop bit.
9686
9687 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9688
9689         * configure.in (libgcc_visibility): Substitute.
9690         * configure: Rebuilt.
9691         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
9692         defined symbols .hidden.
9693
9694 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9695
9696         * attribs.c (c_common_attribute_table): Add visibility.
9697         (handle_visibility_attribute): New function.
9698         * varasm.c (assemble_visibility): New function.
9699         * output.h (assemble_visibility): Add prototype.
9700         * tree.h (MODULE_LOCAL_P): Define.
9701         * crtstuff.c (__dso_handle): Use visibility attribute.
9702         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
9703         for MODULE_LOCAL_P symbols too.
9704         * config/ia64/ia64.c (ia64_encode_section_info): Handle
9705         MODULE_LOCAL_P symbols the same way as local symbols.
9706         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
9707         into .sdata/.sbss by the user.
9708         * doc/extend.texi (Function Attributes): Document visibility
9709         attribute.
9710
9711 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9712
9713         PR debug/5770
9714         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
9715         STRING_CST initializer spanning the whole variable without
9716         embedded zeros.
9717         If expand_expr returned MEM, don't use it.
9718
9719 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
9720
9721         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
9722         generate a die for the lexical block.
9723
9724 2002-02-26  Kazu Hirata  <kazu@hxi.com>
9725
9726         * config/h8300/h8300-protos.h: Add a prototype for
9727         compute_logical_op_length.
9728         * config/h8300/h8300.c (compute_logical_op_length): New.
9729         * config/h8300/h8300.md (anonymous logical patterns): Use
9730         compute_logical_op_length for length.
9731
9732 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
9733
9734         * dwarf2out.c (modified_type_die): Do not call type_main_variant
9735         for vectors.
9736         (gen_type_die): Same.
9737
9738         * attribs.c (handle_vector_size_attribute): Set debug information.
9739
9740 2002-02-26  Daniel Egger  <degger@fhm.edu>
9741
9742         * config/rs6000/rs6000.md: Swap define_insn attributes to
9743         fix incorrect generation of merge high instructions instead
9744         of merge low.
9745
9746 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
9747
9748         * c-typeck.c (really_start_incremental_init): Use
9749         bitsize_zero_node for vectors.
9750
9751 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
9752
9753         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
9754         ("*set_vrsave_internal"): Same.
9755
9756 2002-02-25  Richard Henderson  <rth@redhat.com>
9757
9758         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
9759         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
9760
9761 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
9762
9763         PR target/5755
9764         * config/i386/i386.c (ix86_return_pops_args): Only pop
9765         fake structure return argument if it was passed on the stack.
9766
9767 2002-02-25  Jason Merrill  <jason@redhat.com>
9768
9769         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
9770         RESULT_DECL.
9771
9772 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
9773
9774         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
9775         link with shared_name only.
9776         * doc/invoke.texi (Link Options): Document new behavior.
9777
9778 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
9779
9780         * c-typeck.c (push_init_level): Handle vectors.
9781
9782 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
9783
9784         * config/sparc/sparc.c (const64_high_operand): Zero-extend
9785         operands of SPARC_SETHI_P.
9786         (input_operand): Likewise.
9787         (sparc_emit_set_const32): Likewise.
9788         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
9789         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
9790         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
9791         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
9792         (movdi_insn_sp64_vis): Likewise.
9793         (movdi split, movdf split): Use SETHI32.
9794         * doc/md.texi: Document SPARC constraints L, M and N.
9795
9796 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
9797
9798         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
9799         ("*set_vrsave_internal"): use mfspr for Darwin.
9800
9801         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
9802         gen_get_vrsave_internal.
9803
9804 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9805
9806         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
9807
9808 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
9809
9810         * cpplex.c (cpp_interpret_charconst): Get signedness or
9811         otherwise of wide character constants correct.
9812         * cppexp.c (lex): Get signedness of wide charconsts correct.
9813
9814 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9815
9816         * optabs.c (widen_operand): Only call convert_modes for
9817         promoted SUBREG if signedness matches.
9818         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
9819
9820 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
9821
9822         * cpplib.c (glue_header_name): Use local buffer to build up
9823         header name.
9824
9825 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
9826
9827         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
9828
9829 2002-02-23  Kazu Hirata  <kazu@hxi.com>
9830
9831         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
9832         H8/300[HS] separately.
9833         * config/h8300/h8300.md: Remove the early clobber constraint
9834         from bit field patterns.
9835
9836 2002-02-23  Kazu Hirata  <kazu@hxi.com>
9837
9838         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
9839         register_operand.
9840         (mulhisi3): Likewise.
9841         (umulqisi3): Likewise.
9842         (umulhisi3): Likewise.
9843
9844 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
9845
9846         * cppinit.c (output_deps): Correct test for stdout output.
9847         (init_dependency_output): Cure warning.
9848
9849 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9850
9851         * expr.c (store_expr): When converting expression to promoted
9852         equivalent type, allow using SUBREG_REG of TARGET as the target
9853         of the expansion of EXP.
9854         * loop.c (basic_induction_var, case SUBREG): Always look inside.
9855         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
9856         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
9857         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
9858         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
9859
9860 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
9861
9862         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
9863         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
9864         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
9865
9866 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
9867
9868         PR optimization/5747
9869         * loop.c (scan_loop): Update reg info if move_movables created new
9870         pseudos.
9871
9872 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
9873
9874         * gcc.c (init_gcc_spec): Revert last change.
9875
9876 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
9877
9878         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
9879         gpc_reg_operand constraint.
9880
9881 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
9882
9883         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
9884         Simplify comparison of `low'.
9885         (add_operand): Fix formatting.
9886         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
9887         (mask_operand): Disallow mask to wrap in 64-bit mode.
9888         (rs6000_stack_info): Remove redundant test setting push_p.
9889         (output_toc): Fix formatting.
9890         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
9891         cc_reg_not_cr0_operand constraint.
9892         (booldi3, boolcdi3 splitters): Same.
9893
9894 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
9895
9896         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
9897
9898 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
9899
9900         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
9901         gcc invoked with -shared-libgcc.
9902
9903 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
9904
9905         PR c++/5748
9906         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
9907         decl if any of elements was TREE_USED.
9908
9909 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
9910
9911         * config/sparc/sol2.h: Don't include sys/mman.h.
9912         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
9913         (arith_4096_operand): Don't throw high bits away.
9914         (const64_operand): Take sign extension of CONST_INTs into account.
9915         (const64_high_operand, sparc_emit_set_const32): Likewise.
9916         (GEN_HIGHINT64): Likewise.
9917         (sparc_emit_set_const64_quick1): Likewise.
9918         (const64_is_2insns): Likewise.
9919         (print_operand): Use trunc_int_for_mode for sign extension.
9920         * config/sparc/sparc.h (SMALL_INT32): Likewise.
9921         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
9922         chars.  Assume CONST_INT is already properly sign-extended.
9923         (movdi split): Sign-extend each SImode part.
9924         (andsi3 split): Don't mask high bits off, so that result
9925         remains properly sign-extend.
9926         (iorsi3 split): Likewise.
9927         (xorsi3 split): Likewise.
9928
9929 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
9930
9931         * fold-const.c (fold): Fix typo in comments.
9932
9933 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
9934
9935         * Makefile.in (langhooks.o): Update dependencies.
9936
9937 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
9938
9939         * langhooks.c: Include flags.h.
9940
9941 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
9942
9943         * testsuite/gcc.dg/attr-alwaysinline.c: New.
9944
9945         * c-common.c (c_common_post_options): Set inline trees by
9946         default.
9947
9948         * doc/extend.texi (Function Attributes): Document always_inline
9949         attribute.
9950         Update documentation about inlining when not optimizing.
9951
9952         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
9953
9954         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
9955         unless DECL_ALWAYS_INLINE.
9956
9957         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
9958         unless DECL_ALWAYS_INLINE.
9959         (c_disregard_inline_limits): Disregard if always_inline set.
9960
9961         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
9962         Disregard if always_inline set.
9963         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
9964         unless DECL_ALWAYS_INLINE.
9965
9966         * attribs.c (handle_always_inline_attribute): New.
9967         (c_common_attribute_table): Add always_inline.
9968
9969         * config/rs6000/altivec.h: Add prototypes for builtins
9970         requiring the always_inline attribute.
9971
9972 2002-02-21  Eric Christopher  <echristo@redhat.com>
9973
9974         * expmed.c (store_bit_field): Try to simplify the subreg
9975         before generating a new one when when the mode size of
9976         value is less than maxmode.
9977
9978 2002-02-21  Richard Henderson  <rth@redhat.com>
9979
9980         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
9981         than gen_rtx_PLUS to form the sum.
9982         * explow.c (force_reg): Rearrange to not allocate new pseudo
9983         when force_operand returns a register.
9984         * expr.c (expand_assignment): Allow offset_rtx expansion to
9985         return a sum.  Do not force addresses into registers.
9986         (expand_expr): Likewise.
9987         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
9988         to canonicalize arithmetic that didn't simpify.
9989         (simplify_plus_minus): New argument force; update
9990         all callers.  Don't split CONST unless we can do something with it,
9991         and wouldn't lose the constness of the operands.
9992
9993         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
9994         that we generated earlier.
9995
9996 2002-02-21  Tom Tromey  <tromey@redhat.com>
9997
9998         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
9999         (output_line_info): Use constant `1', with a long explanatory
10000         comment.
10001         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
10002
10003 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
10004
10005         * jump.c (redirect_jump): If old label has no UID, don't try to
10006         delete it.
10007
10008 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
10009
10010         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
10011         If input is constant, do shifts at compile time.
10012
10013 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10014
10015         * doc/extend.texi: Fix some more overfull hboxes.
10016
10017 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10018
10019         PR optimization/4994
10020         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
10021         register moves.
10022
10023 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10024
10025         PR c++/4574
10026         * expr.h (expand_and): Add mode argument.
10027         * expmed.c (expand_and): Add mode argument.
10028         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
10029         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
10030         * except.c (expand_builtin_extract_return_addr): Likewise.
10031         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
10032         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
10033         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
10034         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
10035         * config/c4x/c4x.md: Use GEN_INT (x) instead of
10036         gen_rtx (CONST_INT, VOIDmode, x).
10037
10038 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10039
10040         PR c/4697:
10041         * stmt.c (warn_if_unused_value): Move side effects test once more.
10042
10043 2002-02-20  Torbjorn Granlund  <tege@swox.com>
10044
10045         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
10046         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
10047
10048 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
10049
10050         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
10051         SUBREG or ZERO_EXTEND.
10052
10053 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
10054
10055         * sh.h (current_function_anonymous_args): Remove.
10056         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
10057         of current_function_varargs and current_function_stdarg is set.
10058         * sh.c (sh_expand_prologue): Check current_function_varargs /
10059         current_function_stdarg / TARGET_SH5 instead of
10060         current_function_anonymous_args.
10061
10062         * sh64.h (TARGET_VERSION): Define.
10063
10064 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
10065
10066         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
10067         VRSAVE_REGNO on TARGET_ALTIVEC.
10068
10069 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
10070
10071         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
10072         bits of SImode const_int.
10073         (includes_rshift_p): Likewise.
10074         (print_operand): Call mask_operand and mask64_operand with correct
10075         mode.
10076         (rs6000_output_function_epilogue): Pad traceback table to word.
10077         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
10078         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
10079         mask64_operand with correct mode.
10080         (FUNCTION_ARG_REGNO_P): Correct parentheses.
10081
10082 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10083
10084         PR debug/4461
10085         * varasm.c (get_pool_constant_mark): New.
10086         * rtl.h (get_pool_constant_mark): Add prototype.
10087         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
10088         be represented if it has not been output.
10089
10090 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
10091
10092         * combine.c (do_SUBST): Sanity check substitutions of
10093         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
10094         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
10095         CONST_INT into its operand.
10096         (known_cond): Likewise, for ZERO_EXTEND.
10097         * simplify-rtx.c (simplify_unary_operation): Fix condition to
10098         allow for simplification of wide modes.  Reject CONST_INTs in
10099         ZERO_EXTEND when their actual mode is not given.
10100
10101 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
10102
10103         * c-decl.c (pushdecl): If no global declaration is found for an
10104         extern declaration in block scope, try a limbo one.
10105
10106 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10107
10108         PR c++/4401
10109         * c-common.c (pointer_int_sum): Moved from...
10110         * c-typeck.c (pointer_int_sum): ...here.
10111         * c-common.h (pointer_int_sum): Add prototype.
10112
10113 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10114
10115         PR c++/5713
10116         * c-decl.c (duplicate_decls): Return 0 if issued error about
10117         redeclaration.
10118
10119 2002-02-20  Roger Sayle  <roger@eyesopen.com>
10120             Jakub Jelinek  <jakub@redhat.com>
10121
10122         PR c/4389
10123         * tree.c (host_integerp): Ensure that the constant integer is
10124         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
10125         when pos is zero or non-zero respectively.  Clarify comment.
10126         * c-format.c (check_format_info_recurse): Fix host_integerp
10127         usage; the pos argument should be zero when assigning to a
10128         signed HOST_WIDE_INT.
10129
10130 2002-02-20  Richard Henderson  <rth@redhat.com>
10131
10132         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
10133         of the operand, rather than assuming TImode.
10134         (ix86_expand_binop_builtin): Cope with commutative patterns
10135         using nonimmediate_operand for both operands.
10136         (ix86_expand_timode_binop_builtin): Likewise.
10137         (ix86_expand_store_builtin): Validate operand 1.
10138         (ix86_expand_unop1_builtin): Likewise.
10139
10140 2002-02-20  Philip Blundell  <philb@gnu.org>
10141
10142         PR 5705
10143         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
10144
10145 2002-02-20  Richard Henderson  <rth@redhat.com>
10146
10147         PR c/5615
10148         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
10149
10150 2002-02-20  Tom Tromey  <tromey@redhat.com>
10151
10152         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10153         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10154         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10155         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10156         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
10157         unconditionally.
10158
10159 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
10160
10161         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
10162           for (const_int 0) in X not just INTVAL.
10163
10164 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
10165
10166         * doc/extend.texi: Avoid or reduce overfull hboxes.
10167
10168 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
10169
10170         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
10171         operations if the field does not start at a mode boundary.
10172
10173 2001-02-20      Joel Sherrill <joel@OARcorp.com>
10174
10175         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
10176         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
10177         Also done for -Acpu and -Amachine.
10178
10179 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
10180
10181         * cppinit.c (init_dependency_output): Take deps output file
10182         from -o if none given with -MF.  Suppress normal output.
10183         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
10184         * doc/cpp.texi, doc/invoke.texi: Update.
10185
10186 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
10187
10188         * toplev.c (output_quoted_string): Write unprintable
10189         characters with octal escapes.
10190
10191 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
10192
10193         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
10194         really_call_used[VRSAVE_REGNO] if not Altivec.
10195
10196 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
10197
10198         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
10199         MODE_MASK.
10200         (constant_pool_expr_1): Fix formatting.
10201         (rs6000_legitimize_reload_address): Likewise.
10202
10203 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10204
10205         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
10206         now that we have one.
10207
10208 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
10209
10210         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
10211         end of first block of bitfields (which was only seven bits);
10212         rename dummy to unused_1; remove comment which is no longer true.
10213
10214 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
10215
10216         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
10217
10218 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
10219
10220         PR 5399
10221         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
10222         if generating PIC.
10223
10224         PR 5054
10225         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
10226         arm_is_longcall_p rather than inspecting call-type cookie
10227         directly.
10228         (call_value_insn) [TARGET_THUMB]: Likewise.
10229
10230 2002-02-19  Graham Stott  <grahams@redhat.com>
10231
10232         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
10233
10234 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
10235
10236         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
10237         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
10238         (FP_SAVE_INLINE): Delete.
10239
10240         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
10241         * config/rs6000/eabi.asm: Remove ABI save restore routines.
10242         * config/rs6000/t-ppccomm: Build crtsavres.o.
10243         * config/rs6000/crtsavres.asm: New file.
10244
10245 2002-02-19  Philip Blundell  <philb@gnu.org>
10246
10247         * config/arm/arm.c (use_return_insn): Don't reject interrupt
10248         functions.
10249         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
10250         (output_return_instruction): Allow interrupt functions to return with
10251         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
10252         (arm_expand_prologue): Subtract 4 before stacking LR in an
10253         interrupt function.
10254
10255 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
10256
10257         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
10258         decl, not just FUNCTION_DECL.
10259         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
10260         (arm_assemble_integer): Likewise.
10261         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
10262         marked local.
10263
10264 2002-02-19  matthew green  <mrg@eterna.com.au>
10265
10266         * config.gcc (sparc-*-netbsdelf*): Enable target.
10267         (sparc64-*-netbsd*): New target.
10268         * config/sparc/netbsd-elf.h: New file.
10269         * config/sparc/t-netbsd64: New file.
10270
10271 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
10272
10273         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
10274
10275 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
10276
10277         * doc/invoke.texi: explicitly list the style guidelines that
10278         -Weffc++ checks for.
10279
10280 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
10281
10282         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
10283
10284 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10285
10286         PR other/5718
10287         * gcc.c (cpp_unique_options): Treat -o as indicating object file
10288         only if not -E.  If -E, pass -o through to the preprocessor.
10289
10290 2002-02-19  Kazu Hirata  <kazu@hxi.com>
10291
10292         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
10293         register number with an appropriate macro.
10294
10295 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
10296
10297         * doc/rtl.texi (Constants): Close @code tag.
10298
10299 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
10300
10301         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
10302         ("mmx_uavgv4hi3"): Same.
10303         ("pmulhrwv4hi3"): Same.
10304
10305         * tree-inline.c (walk_tree): Handle vectors.
10306
10307         * c-common.c (constant_expression_warning): Handle vectors.
10308         (overflow_warning): Same.
10309
10310         * sched-deps.c (sched_analyze_2): Handle vectors.
10311
10312         * rtlanal.c (rtx_unstable_p): Handle vectors.
10313         (rtx_varies_p): Same.
10314         (count_occurrences): Same.
10315         (regs_set_between_p): Same.
10316         (modified_between_p): Same.
10317         (modified_in_p): Same.
10318         (volatile_insn_p): Same.
10319         (volatile_refs_p): Same.
10320         (side_effects_p): Same.
10321         (may_trap_p): Same.
10322         (inequality_comparisons_p): Same.
10323         (replace_regs): Same.
10324         (computed_jump_p_1): Same.
10325
10326         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
10327         argument.
10328         (inner_mode_array): New.
10329         (copy_rtx): Handle vectors.
10330         (copy_most_rtx): Same.
10331         (rtx_equal_p): Same.
10332         (get_mode_alignment): Adjust for vectors.
10333
10334         * resource.c (mark_referenced_resources): Handle vectors.
10335         (mark_set_resources): Same.
10336
10337         * reload1.c (eliminate_regs): Handle vectors.
10338         (elimination_effects): Same.
10339         (scan_paradoxical_subregs): Same.
10340
10341         * reload.c (subst_reg_equivs): Handle vectors.
10342
10343         * regrename.c (scan_rtx): Handle vectors.
10344
10345         * regclass.c (reg_scan_mark_refs): Handle vectors.
10346
10347         * recog.c (find_single_use_1): Handle vectors.
10348
10349         * local-alloc.c (equiv_init_varies_p): Handle vectors.
10350         (contains_replace_regs): Same.
10351         (memref_referenced_p): Same.
10352
10353         * integrate.c (copy_rtx_and_substitute): Handle vectors.
10354         (subst_constants): Same.
10355
10356         * genattrtab.c (attr_copy_rtx): Handle vectors.
10357         (encode_units_mask): Same.
10358         (clear_struct_flag): Same.
10359         (count_sub_rtxs): Same.
10360
10361         * gcse.c (want_to_gcse_p): Handle vectors.
10362         (oprs_unchanged_p): Same.
10363         (hash_expr_1): Same.
10364         (oprs_not_set_p): Same.
10365         (expr_killed_p): Same.
10366         (compute_transp): Same.
10367         (store_ops_ok): Same.
10368
10369         * function.c (purge_addressof_1): Do not allow paradoxical subregs
10370         of vectors.
10371         (fixup_var_refs_1): Same.
10372         (instantiate_virtual_regs_1): Same.
10373
10374         * fold-const.c (operand_equal_p): Handle vectors.
10375         (fold): Same.
10376         (rtl_expr_nonnegative_p): Same.
10377
10378         * flow.c (mark_used_regs): Handle vectors.
10379
10380         * df.c (df_uses_record): Handle vectors.
10381
10382         * cselib.c (cselib_subst_to_values): Handle vectors.
10383         (cselib_mem_conflict_p): Same.
10384         (hash_rtx): Same.
10385
10386         * cse.c (canon_reg): Handle vectors.
10387         (fold_rt): Same.
10388         (cse_process_notes): Same.
10389         (count_reg_usage): Same.
10390         (canon_hash): Same.
10391
10392         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
10393
10394         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
10395
10396         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
10397         (gen_rtx): Handle CONST_VECTOR.
10398         (gen_const_vector_0): New.
10399         (copy_rtx_if_shared): CONST_VECTORs can be shared.
10400         (reset_used_flags): Same.
10401         (copy_insn_1): Same.
10402         (initializer_constant_valid_p): Handle VECTOR_CST.
10403
10404         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
10405
10406         * doc/rtl.texi (Constants): Document const_vector.
10407         (CONST0_RTX): Update for vectors.
10408         (RTL sharing): Same.
10409
10410         * print-tree.c (print_node): Add case for VECTOR_CST.
10411
10412         * tree.h (TREE_VECTOR_CST_ELTS): New.
10413         (struct tree_vector): New.
10414         (union tree_node): Add vector node.
10415         (build_vector): Add prototype.
10416
10417         * tree.def (VECTOR_CST): New.
10418
10419         * tree.c (build_vector): New.
10420
10421         * expmed.c (make_tree): Handle CONST_VECTOR.
10422
10423         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
10424         (CONST_VECTOR_ELT): New.
10425         (CONST_VECTOR_NUNITS): New.
10426
10427         * machmode.h (GET_MODE_INNER): New.
10428         (DEF_MACHMODE): Accept 8th arg.
10429
10430         * machmode.def: Add 8th argument for vector inner mode.
10431         Add inner vector modes for vectors.
10432
10433         * rtl.def (VEC_CONST): Remove.
10434         (CONST_VECTOR): New.
10435
10436         * expr.c (clear_storage): Allow vectors.
10437         (is_zeros_p): Handle VECTOR_CST.
10438
10439         * varasm.c (output_constant_pool): Handle vectors.
10440         (rtx_const): Add veclo and vechi fields.
10441         (kind): Add RTX_VECTOR.
10442         (decode_rtx_const): Add case for vector.
10443
10444         * config/rs6000/rs6000-protos.h: Add zero_constant.
10445
10446         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
10447         constants.  Force easy vector constants into memory.
10448         (easy_vector_constant): New.
10449         (emit_easy_vector_constant): New.
10450         (rs6000_legitimize_reload_address): Do not generate bad reloads on
10451         darwin.
10452
10453         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
10454         instruction does.
10455         ("altivec_lvxl"): Same.
10456         (altivec_lvebx): Same.
10457         (altivec_lvehx): Same.
10458         (altivec_lvewx): Same.
10459         ("*movv4si_const0"): New.
10460         ("*movv4sf_const0"): New.
10461         ("*movv8hi_const0"): New.
10462         ("*movv16qi_const0"): New.
10463
10464 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10465
10466         * config/h8300/h8300.c (notice_update_cc): Use
10467         cc_status.value2.
10468
10469 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10470
10471         * config/h8300/h8300.md (divmod patterns): Change the
10472         constraints for operands[1] to register_operand.
10473
10474 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10475
10476         * config/h8300/h8300-protos.h: Remove the prototype for
10477         p_operand.
10478         * config/h8300/h8300.c (p_operand): Remove.
10479         * config/h8300/h8300.md: Replace p_operand with
10480         const_int_operand.
10481
10482 2002-02-18 Philip Blundell <pb@nexus.co.uk>
10483
10484         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
10485         comment.
10486         (output_return_instruction): Allow use of LDR to unstack
10487         return addresss even for interrupt handlers or when
10488         interworking.  If compiling for ARMv5, use interworking-safe
10489         return instructions by default.  Remove duplicated code and
10490         lengthy "strcat" sequences.
10491
10492 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10493
10494         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
10495         (LINK_EH_SPEC): Define.
10496         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
10497
10498 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10499
10500         * config/s390/s390.c (s390_emit_prologue): Do not set the
10501         frame_related flag for call-clobbered registers.
10502
10503 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
10504
10505         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
10506         (construct_container): Fix handling of SSE operands.
10507         (ix86_expand_builtin): Fix handling of 64bit pointers.
10508         (mmx_maskmovq_rex): New pattern.
10509
10510 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
10511
10512         * regrename.c (kill_set_value): Handle subregs properly.
10513
10514 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
10515
10516         * objc/objc-act.c (handle_impent): Remove leading '*'
10517         from objc_class_name.
10518
10519 2002-02-17  Richard Henderson  <rth@redhat.com>
10520
10521         * config/alpha/alpha.c (some_small_symbolic_operand,
10522         some_small_symbolic_operand_1, split_small_symbolic_operand,
10523         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
10524         Handle small SYMBOL_REFs anywhere, not just inside memories.
10525         * config/alpha/alpha-protos.h: Update.
10526         * config/alpha/alpha.h (PREDICATE_CODES): Update.
10527         * config/alpha/alpha.md (small symbolic operand splitter): Update.
10528
10529 2002-02-17  Roland McGrath  <roland@frob.com>
10530
10531         * config.gcc (powerpc-*-gnu-gnualtivec*,
10532         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
10533         * config/rs6000/gnu.h: New file.
10534         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
10535         Grok "gnu" in rs6000_abi_name.
10536         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
10537         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
10538         Grok -mcall-gnu analogous to -mcall-linux et al.
10539         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10540         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
10541         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
10542
10543 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
10544
10545         PR c/3444:
10546         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
10547         shortening.
10548
10549 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10550
10551         * config/cris/cris.h: Undefine STARTFILE_SPEC and
10552         ENDFILE_SPEC before (re)defining them.
10553
10554 2002-02-17  Kazu Hirata  <kazu@hxi.com>
10555
10556         * config/h8300/h8300.c: Fix formatting.
10557         * config/h8300/h8300.h: Likewise.
10558
10559 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10560
10561         * doc/tm.texi: Explain why empty strings should not be
10562         marked for translation.
10563
10564 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10565
10566         * final.c (output_operand_lossage): Changed to accept
10567         printf style arguments. Change calls where necessary.
10568         * output.h (output_operand_lossage): Change declaration
10569         accordingly. Update copyright.
10570         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
10571         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
10572         Update copyright date where necessary.
10573
10574         * config/i386/i386.c (print_operand): Likewise. Remove use of
10575         sprintf.
10576
10577         * config/cris/cris.c (cris_operand_lossage): Likewise.
10578         Rename parameter so that exgettext recognizes it as
10579         translatable message.
10580         (LOSE_AND_RETURN): Rename parameter to msgid.
10581
10582 2002-02-17  Kazu Hirata  <kazu@hxi.com>
10583
10584         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
10585         hard coded register number with an appropriate macro.
10586         (HARD_REGNO_MODE_OK): Likewise.
10587         (ARG_POINTER_REGNUM): Likewise.
10588         (STATIC_CHAIN_REGNUM): Likewise.
10589         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
10590         * config/h8300/h8300.md (define_constants): Define more
10591         register numbers.
10592
10593 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10594
10595         * config/i386/i386.h: Don't mark empty strings for translation.
10596
10597 2002-02-16  H.J. Lu <hjl@gnu.org>
10598
10599         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
10600
10601 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
10602
10603         * cppinit.c (merge_include_chains): Check for brack being
10604         NULL before attempting to merge it with qtail.
10605
10606 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
10607
10608         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
10609         DBX_DEBUG.
10610
10611 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10612
10613         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
10614
10615 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10616
10617         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
10618         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
10619         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
10620
10621 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10622
10623         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
10624         now only if !TARGET_FIX.
10625         (*movsi_nt_vms_fix): New pattern.
10626
10627 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
10628
10629         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
10630         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
10631         (alpha_sa_mask, alpha_sa_size): Reflect above change.
10632         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
10633         (alpha_start_function, alpha_expand_epilogue): Likewise.
10634         (unicosmk_gen_dsib): Likewise.
10635
10636 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10637
10638         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
10639
10640 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
10641
10642         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
10643         check_and_change_labels, s390_final_chunkify): Delete.
10644         (s390_split_branches, s390_chunkify_pool): New functions.
10645         (s390_function_prologue): Call them.
10646
10647         * config/s390/s390.h (S390_REL_MAX): Delete.
10648         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
10649
10650         * config/s390/s390.md (cjump, icjump, jump): Fix length
10651         attribute calculation.
10652
10653
10654 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
10655
10656         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
10657         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
10658
10659 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10660
10661         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
10662         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
10663         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
10664
10665 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
10666
10667         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
10668
10669 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
10670
10671         * reload.c (find_dummy_reload): Check that an output register
10672         is valid for its mode.
10673
10674 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
10675
10676         * combine.c (known_cond): After replacing the REG of a SUBREG, try
10677         to simplify it.
10678
10679         * function.c (assign_parms): Demote promoted argument passed by
10680         transparent reference.
10681
10682 2001-02-14      Joel Sherrill <joel@OARcorp.com>
10683
10684         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
10685         -Acpu() and -Amachine() to eliminate warnings.
10686
10687 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
10688
10689         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
10690
10691 2002-02-14  Kazu Hirata  <kazu@hxi.com>
10692
10693         * config/h8300/h8300-protos.h: Update the prototype for
10694         const_costs.
10695         * config/h8300/h8300.c (const_costs): Treat SET as a little
10696         more expensive operation.
10697         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
10698         reference to const_costs.
10699
10700 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
10701
10702         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
10703
10704 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
10705
10706         PR c/5503:
10707         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
10708         use arguments from newtype.
10709
10710 2002-02-13  Eric Christopher  <echristo@redhat.com>
10711
10712         * config/mips/mips.c (override_options): Add check for march/mipsX
10713         on the same command line. Fix error message in cpu processing.
10714         Remove architecture and ISA checks.
10715
10716 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
10717
10718         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
10719
10720         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
10721
10722 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
10723
10724         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
10725         alternatives.
10726         ("*movv8hi_internal1"): Same.
10727         ("*movv16qi_internal1"): Same.
10728         ("*movv4sf_internal1"): Same.
10729
10730         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
10731         not push_reload for altivec modes.
10732
10733 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
10734
10735         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
10736         all RTEMS targets including removal of #includes from config/*/rtems*.h
10737         file and adding them to tm_file setting. Added xm_defines=POSIX to
10738         many targets.
10739         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
10740         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
10741         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
10742         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
10743         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
10744         config/m68k/rtemself.h: Ditto.
10745         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
10746         config/mips/rtems64.h: Ditto.
10747         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
10748         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
10749         Ditto.
10750         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
10751         config/sparc/rtemself.h: Ditto.
10752         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
10753         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
10754         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
10755         more like arm-elf.
10756         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
10757         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
10758         target made more similar to i386-elf.
10759         * config/i386/t-rtems-i386: Added soft float support and multilibs.
10760         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
10761         be similar to config/m68k/t-m68kelf.
10762         * gthr-rtems.h: Encapsulate with extern "C" for C++.
10763
10764 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
10765
10766         * regmove.c (kill_value): Handle subregs.
10767
10768 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
10769
10770         * i386.md (mul patterns): Allow memory operand to be first;
10771         add expanders where needed; fix constraints.
10772         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
10773         Allow memory operand to be the first.
10774
10775         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
10776         operands.
10777
10778 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
10779
10780         PR c/5681:
10781         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
10782         GET_MODE (x).
10783
10784 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
10785
10786         PR optimization/5547:
10787         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
10788         all valid IA-32 address modes involving non-scaled %ebx and
10789         GOT/GOTOFF as displacement.
10790
10791 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
10792
10793         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
10794         after emitting ltorg insns.
10795
10796         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
10797         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
10798         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
10799         *abssf2): Fix "op_type" attribute.
10800
10801 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
10802
10803         * mkconfig.sh: Avoid using a subshell redirect.
10804         ($output.T): Change to $(output)T.
10805         (ENABLE_NLS): Remove unneeded undef.
10806
10807         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
10808         * config/alpha/x-vms (libsubdir): Define.
10809
10810         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
10811         register frame procedures. Optimize retrieving context.
10812
10813         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
10814         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
10815         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
10816
10817 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10818
10819         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
10820         Make same change as for find_base_value.
10821
10822 2002-02-13  Kazu Hirata  <kazu@hxi.com>
10823
10824         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
10825         of QImode and SImode.
10826
10827 2002-02-13  Kazu Hirata  <kazu@hxi.com>
10828
10829         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
10830         length computation of movsi.
10831         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
10832
10833 2002-02-13  Kazu Hirata  <kazu@hxi.com>
10834
10835         * config/h8300/h8300.md (subqi3): Tighten the predicate for
10836         operands[2] to register_operand.
10837
10838 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
10839
10840         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
10841
10842 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
10843
10844         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
10845         for altivec_lvx* and altivec_stvx*.
10846         ("*movv4si_internal"): Add constraint for loading from GPRs.
10847         ("*movv8hi_internal1"): Same.
10848         ("*movv16qi_internal1"): Same.
10849         ("*movv4sf_internal1"): Same.
10850
10851         * config/rs6000/rs6000.c (altivec_register_operand): New.
10852
10853         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
10854         altivec_register_operand.
10855
10856 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
10857
10858         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
10859         handle SYMBOL_REF.
10860
10861 2002-02-13  Stan Shebs  <shebs@apple.com>
10862
10863         * c-typeck.c (digest_init): Handle vectors.
10864         (really_start_incremental_init): Same.
10865         (pop_init_level): Same.
10866         (process_init_element): Same.
10867
10868         * varasm.c (output_constant): Same.
10869
10870         * expr.c (clear_storage): Same.
10871         (store_constructor): Same.
10872
10873 2002-02-12  Eric Christopher  <echristo@redhat.com>
10874
10875         * explow.c (hard_function_value): Add comment explaining
10876         signed/unsigned comparison.
10877
10878 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
10879
10880         * jump.c (never_reached_warning): Add finish argument.
10881         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
10882         real insn after end.
10883         * rtl.h (never_reached_warning): Adjust prototype.
10884         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
10885         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
10886         never_reached_warning.
10887
10888 2002-02-12  Graham Stott  <grahams@redhat.com>
10889
10890         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
10891
10892 2002-02-12  Kazu Hirata  <kazu@hxi.com>
10893
10894         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
10895         logical shifts on H8/300.
10896         (shift_alg_si): Improve several shifts on H8/300.
10897         (get_shift_alg): Likewise.
10898
10899 2002-02-12  Graham Stott  <grahams@redhat.com>
10900
10901         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
10902
10903 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10904
10905         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
10906         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
10907
10908 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
10909
10910         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
10911         non-CONST_INT through default_assemble_integer.
10912         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
10913         <case 8>: Abort for CONST_DOUBLE.
10914
10915 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10916
10917         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
10918         is specified.
10919         * config/pa/pa-linux.h (LIB_SPEC): Delete.
10920         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
10921
10922 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
10923
10924         * config/stormy16/stormy16.md (zero_extendqihi2): New.
10925
10926 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
10927
10928         * regrename.c (regrename_optimize): Don't accept a
10929         part-clobbered register if the replaced register is not part
10930         clobbered.
10931
10932         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
10933         take padding into account when computing the argument value.
10934
10935         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
10936
10937         * combine.c (try_combine): Apply substitutions in
10938         CALL_INSN_FUNCTION_USAGE too.
10939
10940 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
10941
10942         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
10943         __builtin_altivec_abs*.
10944         (bdesc_abs): New.
10945
10946         * config/rs6000/rs6000.h (rs6000_builtins): Add
10947         ALTIVEC_BUILTIN_ABS*.
10948
10949         * config/rs6000/altivec.h: Use const char for builtins expecting
10950         literals.
10951         (vec_abs): New versions for C and C++.
10952         (vec_abss): Same.
10953
10954 2002-02-10  Kazu Hirata  <kazu@hxi.com>
10955
10956         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
10957         using Pmode.
10958
10959 2002-02-10  Kazu Hirata  <kazu@hxi.com>
10960
10961         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
10962         constant definition from h8300.md.
10963         (FRAME_POINTER_REGNUM): Likewise.
10964         * config/h8300/h8300.md (define_constants): Add FP_REG.
10965
10966 2002-02-10  Kazu Hirata  <kazu@hxi.com>
10967
10968         * config/h8300/h8300.c (print_operand): Remove redundant code.
10969
10970 2002-02-10  Kazu Hirata  <kazu@hxi.com>
10971
10972         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
10973         * config/h8300/h8300.c (byte_reg): Make it static.
10974
10975 2002-02-10  Richard Henderson  <rth@redhat.com>
10976
10977         PR c/5623
10978         * c-typeck.c (incomplete_type_error): Handle flexible array members.
10979
10980 2002-02-10  Richard Henderson  <rth@redhat.com>
10981
10982         PR c++/5624
10983         * tree.c (append_random_chars): Don't abort if main_input_filename
10984         does not exist.
10985
10986 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
10987
10988         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
10989
10990 2002-02-10  Kazu Hirata  <kazu@hxi.com>
10991
10992         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
10993         (pushhi1): Likewise.
10994
10995 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10996
10997         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
10998         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
10999
11000 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
11001
11002         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
11003         remove MASK_VIS.
11004         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
11005
11006 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11007
11008         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
11009         a half of an SImode register on H8/300.
11010
11011 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
11012
11013         * i386.md (movdi_2): Add missing '!'.
11014
11015 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11016
11017         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
11018         definitions.
11019
11020 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11021
11022         * config/h8300/h8300.md (length): Correct the distance valid
11023         for the short branch.
11024
11025 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11026
11027         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
11028
11029 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
11030
11031         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
11032         registers in SImode.
11033         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
11034         part-clobbered.
11035
11036         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
11037         patch.
11038
11039         Contribute sh64-elf.
11040         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
11041         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
11042         (sh_cannot_modify_jumps_p): New function.
11043         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
11044         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
11045         (sh_ms_bitfield_layout_p): New function.
11046         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
11047                     Zack Weinberg  <zack@codesourcery.com>
11048         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
11049         expand_simple_binop instead of expand_binop.
11050         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
11051         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
11052         use of .quad and .uaquad.
11053         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
11054         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
11055         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
11056         * config/sh/sh.md (movdi_const, movdi_const_32bit,
11057         movdi_const_16bit): Make sure all CONSTs have modes.
11058         (sym2PIC): Ditto, but by adjusting all callers.
11059         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
11060         if the prologue calls the SHmedia argument decoder or register
11061         saver.
11062         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
11063         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
11064         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
11065         (sh_expand_epilogue): Don't emit USE of return target register.
11066         (prepare_move_operands): Legitimize DImode PIC addresses.
11067         (sh_media_register_for_return): Skip tr0, used to initialize the
11068         PIC register.
11069         (sh_expand_prologue): Remove explicit USE of return register.
11070         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
11071         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
11072         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
11073         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
11074         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
11075         EXTRA_CONSTRAINT_T.
11076         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
11077         (MOVI_SHORI_BASE_OPERAND_P): New.
11078         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
11079         (EXTRA_CONSTRAINT_T): Define in terms of them.
11080         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
11081         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
11082         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
11083         alternatives supporting TARGET_REGS.
11084         (UNSPEC_GOTPLT): New constant.
11085         (movdi split): Move incrementing of LABEL_NUSES...
11086         (movdi_const, movdi_const_32bit): Here.  Use
11087         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
11088         (movdi_const_16bit): New.
11089         (call, call_value) [flag_pic]: Use GOTPLT.
11090         (call_pop, call_value_pop): New expands.
11091         (call_pop_compact, call_pop_rettramp): New insns.
11092         (call_value_pop_compact, call_value_pop_rettramp): New insns.
11093         (sibcall) [flag_pic]: Use GOT.
11094         (builtint_setjmp_receiver): Remove bogus, unused expand.
11095         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
11096         (*pt, *ptb, ptrel): New insns.
11097         (sym2GOT): Handle DImode GOT.
11098         (sym2GOTPLT, symGOTPLT2reg): New expands.
11099         (sym2PIC): New expand.
11100         (shcompact_return_tramp): Use GOTPLT to return trampoline.
11101         (shcompact_return_tramp_i): Use return register explicitly.
11102         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
11103         disable flag_reorder_blocks.
11104         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
11105         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
11106         clobbers, for clarity.
11107         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
11108         restoring of r0 in macl as MAYBE_DEAD.
11109         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
11110         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
11111         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
11112         alter_subreg all over.
11113         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
11114         reload, instead of emitting instructions that would require
11115         reloading.
11116         (casesi_load_media): Add missing modes.
11117         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
11118         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
11119         as used if the argument decoder is called.
11120         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
11121         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
11122         Pmode, then extend it to DImode if necessary.
11123         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
11124         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
11125         constants in FPU-enabled SHmedia, let them be loaded from memory.
11126         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
11127         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
11128         Adjust whitespace in assembly output templates.
11129         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
11130         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
11131         mode of if_then_else.
11132         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
11133         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
11134         sh.h.
11135         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
11136                     Joern Rennecke <amylaar@redhat.com>
11137         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
11138         (SUBTARGET_CPP_PTR_SPEC): New.
11139         (SUBTARGET_CPP_SPEC): Remove.
11140         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
11141         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
11142         Fix typo in previous checkin.
11143         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
11144         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
11145         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
11146                     Alexandre Oliva  <aoliva@redhat.com>
11147         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
11148         what single FP register can hold for SHmedia target.
11149         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
11150                     Alexandre Oliva  <aoliva@redhat.com>
11151         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
11152         Do not split into SUBREG.
11153         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
11154         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
11155         and added new functions as specified in SH5 ABI r9.
11156         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
11157         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
11158         8-byte boundary.
11159         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
11160         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
11161         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
11162         and consttable_window_ends.
11163         2001-06-03  Graham Stott  <grahams@redhat,com>
11164         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
11165         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
11166         * config/sh/sh.c (print_operand): Handle floating-point pair,
11167         vector and matrix registers.
11168         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
11169         vector modes into account.
11170         * config/sh/sh.md (movv2sf): Split move between registers into
11171         movdf.
11172         (movv4sf, movv16sf): Introduce insns that get split only after
11173         reload.
11174         * config/sh/shmedia.h: Fix Copyright dates.
11175         * config/sh/ushmedia.h: Likewise.  Move loop counter
11176         declarations into conditionals that uses them.
11177         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
11178         loop boundary.
11179         * config/sh/sshmedia.h: Fix Copyright dates.
11180         (sh_media_PUTCFG): Fix constraints.
11181         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
11182         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
11183         ptrmemfunc_vbit_in_delta for SH5.
11184         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
11185         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
11186         * invoke.texi: Likewise.
11187         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
11188         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
11189         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
11190         GCC_pop_shmedia_regs_nofpu): New global symbols.
11191         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
11192         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
11193         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
11194         compact function with nonlocal labels.
11195         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
11196         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
11197         (initial_elimination_offset): Account for their stack space.
11198         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
11199         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
11200         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
11201         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
11202         least one of the operands to be a register.
11203         (movv2sf): Likewise.  Renamed to movv2sf_i.
11204         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
11205         prepare_move_operands() before emitting SHmedia insns.
11206         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
11207         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
11208         Don't save nor initialize r12.  Don't mis-align the stack.
11209         Pad the code with a nop.
11210         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
11211         stack.
11212         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
11213         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
11214         [__SHMEDIA__]: Implement.
11215         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
11216         * config/sh/sh.md: Set latency of `pt' closer to reality.
11217         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
11218         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
11219         Set move, load and store type attributes.
11220         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
11221         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
11222         profiling.
11223         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
11224         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
11225         * config/sh/sh.c (sh_media_register_for_return): New function.
11226         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
11227         branch-target register.
11228         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
11229         * config/sh/sh.md (return_media_i): Use any call-clobbered
11230         branch-target register.
11231         (return_media): If r18 wasn't copied in the prologue, copy it
11232         here.
11233         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
11234         Clear class FP0_REGS.
11235         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
11236         from elf.h.
11237         2001-03-08  DJ Delorie  <dj@redhat.com>
11238         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
11239         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
11240         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
11241         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
11242         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
11243         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
11244         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
11245         return value correctly for call_cookie.
11246         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
11247         * config/sh/crt1.asm (start): Modified so as to call
11248         ___setup_argv_and_call_main.
11249         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
11250         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
11251         SHmedia mode.
11252         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
11253         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
11254         (STRIP_NAME_ENCODING): Use it.
11255         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
11256         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
11257         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
11258         prepare_scc_operands().
11259         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
11260         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
11261         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
11262         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
11263         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
11264         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
11265         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
11266         used in shcompact_incoming_args.
11267         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
11268         change.
11269         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
11270         mode.
11271         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
11272         Adjust accordingly.
11273         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
11274         Simplify.  Adjust.  Add sanity check.
11275         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
11276         FPU_SINGLE_BIT.
11277         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
11278         TARGET_SHCOMPACT.
11279         (udivsi3, divsi3): Use them.
11280         (force_mode_for_call): New insn.
11281         (call, call_value, sibcall_value): Emit it before SHcompact
11282         calls.
11283         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
11284         * config/sh/sh.md (call, call_value, sibcall): Make sure the
11285         call cookie is non-NULL before taking its value.
11286         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
11287         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
11288         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
11289         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
11290         block.
11291         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
11292         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
11293         temporary for stack adjusts.  Use MACL and MACH to pass
11294         arguments to shcompact_incoming_args.
11295         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
11296         clobber r1.
11297         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
11298         (nested_trampoline): Load static chain address into r1.
11299         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
11300         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
11301         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
11302         fp_arith_reg_operand().
11303         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
11304         * config/sh/sh.md (casesi): Sign-extend the first two operands,
11305         and use signed compares for them.
11306         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
11307         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
11308         ones properly aligned.
11309         (find_barrier): Account for extra alignment needed for 8-byte wide
11310         constants.
11311         (machine_dependent_reorg): Require a label for the second 4-byte
11312         constant after an 8-byte one.
11313         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
11314         change.
11315         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
11316         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
11317         last_float when switching float modes.
11318         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
11319         auto-increment for general-purpose registers.
11320         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
11321         result.
11322         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
11323         for stack adjust.
11324         * config/sh/sh.c (sh_builtin_saveregs): Support using all
11325         registers for varargs.
11326         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
11327         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
11328         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
11329         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
11330         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
11331         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
11332         call_cookie accordingly.
11333         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
11334         (SHCOMPACT_BYREF): Likewise.
11335         (SHCOMPACT_FORCE_ON_STACK): New macro.
11336         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
11337         (sh_builtin_saveregs): Likewise.
11338         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11339         shcompact_incoming_args): Use new shift values.  Support
11340         sequences of consecutive and non-consecutive pushes/pops.
11341         * config/sh/sh.md (return): Don't explicitly use PR_REG.
11342         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
11343         * config/sh/sh.h (TEXT_SECTION): Define.
11344         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
11345         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
11346         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
11347         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
11348         return values on FPU-enabled SHmedia.
11349         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
11350         FPU-enabled SHmedia.
11351         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
11352         value is returned in a non-FP reg and is not returned by
11353         reference.
11354         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
11355         jump_ind.
11356         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
11357         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
11358         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
11359         quad-aligned to be passed by callee-copy reference.
11360         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
11361         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
11362         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
11363         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
11364         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
11365         copying low-numbered FP regs to r7 and r8.
11366         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
11367         FP regs to general-purpose regs only if the copy was passed on the
11368         stack.
11369         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
11370         copying FP reg to r9.
11371         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
11372         copy FP regs to general-purpose regs only in outgoing calls.
11373         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
11374         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
11375         HOST_WIDE_INT.
11376         * config/sh/sh.h (struct sh_args): Document all fields.
11377         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
11378         passed partially on the stack should not consider making
11379         sibcalls.
11380         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
11381         stack_regs only for incoming calls.  When passing FP args,
11382         make sure there are FP regs available before modifying
11383         call_cookie.
11384         (SHCOMPACT_BYREF): Pass double args in general-purpose
11385         registers by reference.
11386         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
11387         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
11388         attempt to generate sibcalls if the caller got any arguments
11389         by reference.
11390         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
11391         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
11392         to 8-byte boundaries.
11393         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
11394         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
11395         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
11396         stored in the stack.
11397         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
11398         for the offsets to have the ISA bit set.
11399         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
11400         invocation.  Use beq instead of bgt to mark end of sequence of
11401         loads.
11402         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
11403         bgt to mark end of sequence of stores.
11404         * config/sh/sh.c (arith_operand): Don't check whether
11405         CONST_OK_FOR_J for now.
11406         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
11407         instead of long for conversion.
11408         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
11409         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
11410         before passing it to fprintf.
11411         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
11412         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
11413         Call set_fpscr before reading/writing SR.
11414         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
11415         Call set_fpscr.
11416         * config/sh/lib1funcs.asm: Add `.align 2' directives before
11417         SHmedia code.
11418         (FMOVD_WORKS): Define on SH5 with FPU.
11419         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
11420         setting.
11421         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
11422         _fpscr_values.
11423         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
11424         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
11425         address.
11426         (ia_main_table): Ditto.
11427         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
11428         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
11429         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
11430         the definitions from sh.h.
11431         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
11432         TARGET_SH5.
11433         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
11434         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
11435         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
11436         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
11437         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
11438         Increment LABEL_NUSES.
11439
11440         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
11441         TARGET_SH5.
11442         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
11443         defined.
11444         * config/sh/elf.h (SIZE_TYPE): Likewise.
11445         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
11446         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11447         shcompact_incoming_args): Load switch table addresses using
11448         datalabel.
11449         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
11450         (NO_BUILTIN_SIZE_TYPE): Define.
11451         (SIZE_TYPE): Don't define.
11452         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
11453         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
11454         definition of __SH5__=32 for -m5-compact-nofpu.
11455         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
11456         ADDR_DIFF_VEC.
11457         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
11458         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
11459         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
11460         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
11461         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
11462         (INSN_LENGTH_ALIGNMENT): Likewise.
11463         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11464         * config/sh/sh.md (call, call_value, sibcall): Simplify
11465         copying of non-branch-target register.
11466         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11467         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
11468         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
11469         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11470         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
11471         floating-point values as structs.
11472         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
11473         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
11474         general-purpose register.
11475         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
11476         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
11477         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
11478         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
11479         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
11480         (ENCODE_SECTION_INFO): Enclose variables and constants in
11481         DATALABEL unspecs.
11482         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
11483         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
11484         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
11485         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
11486         only for LABEL_REFs.  For SYMBOL_REFs, prepend
11487         SH_DATALABEL_ENCODING to the symbol name.
11488         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
11489         convert_mode().
11490         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
11491         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
11492         UNSPEC_DATALABEL.
11493         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
11494         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
11495         (DATALABEL_REF_P): Don't require CONST.
11496         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
11497         REL label.
11498         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
11499         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
11500         right.
11501         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
11502         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
11503         Use shallow_copy_rtx and PUT_MODE to change the mode of
11504         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
11505         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
11506         on SHmedia using GENERAL_REGs.
11507         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
11508         bltu_media_i): Fix reversion of conditions.
11509         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
11510         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
11511         * config/sh/sh.c (output_far_jump): Save r13 in macl.
11512         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
11513         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
11514         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
11515         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
11516         (GCC_nested_trampoline): Likewise.
11517         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
11518         * config/sh/sh.c (gen_datalabel_ref): Define.
11519         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
11520         (INITIALIZE_TRAMPOLINE): Likewise.
11521         (TRAMPOLINE_ADJUST_ADDRESS): Define.
11522         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
11523         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
11524         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
11525         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
11526         (ic_invalidate): Adjust for SH5.
11527         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
11528         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
11529         _nested_trampoline.
11530         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
11531         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
11532         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
11533         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
11534         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
11535         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
11536         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
11537         * config/sh/sh.c (target_reg_operand): Match only target-branch
11538         registers and pseudos that aren't virtual registers.
11539         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
11540         Copy operands that don't match target_reg_operand to pseudos.
11541         (call_media, call_value_media, sibcall_media): Use
11542         target_reg_operand instead of target_operand.
11543         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
11544         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
11545         * config/sh/sh.c (target_reg_operand): Match hardware registers
11546         other than branch-target registers.
11547         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
11548         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
11549         (fpscr_values) [SH5 == 32]: Define.
11550         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
11551         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
11552         Handle function addresses coming in SUBREGs.
11553         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
11554         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11555         shcompact_return_trampoline): Use datalabel where appropriate.
11556         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
11557         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
11558         general-purpose register to copy one branch-target register to
11559         another.
11560         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
11561         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
11562         SYMBOL_REFs with VOIDmode.
11563         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
11564         bltu_media_i): New insns.
11565         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
11566         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
11567         (INIT_CUMULATIVE_ARGS): Likewise.
11568         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
11569         * machmode.def (V16SFmode): New mode.
11570         * c-common.c (type_for_mode): Support V2SF and V16SF.
11571         * tree.c (build_common_tree_nodes_2): Likewise.
11572         * tree.h (tree_index): Likewise.
11573         * calls.c (emit_call_1): Take args_so_far.  Adjust all
11574         callers.  Introduce CALL_POPS_ARGS.
11575         * tm.texi (CALL_POPS_ARGS): Document.
11576         * config/sh/crt1.asm: Implement in SHmedia mode.
11577         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
11578         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
11579         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
11580         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
11581         Implement divsi and udivsi in SHmedia mode.  Introduce
11582         SHcompact trampolines.
11583         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
11584         only in SHmedia64.
11585         (regno_reg_class): Rewrite.
11586         (fp_reg_names): Remove.
11587         (sh_register_names, sh_additional_register_names): New.
11588         (print_operand): Added `u'.  Support SUBREGs in addresses.
11589         Add parentheses around shifted CONSTs.
11590         (output_file_start): Output .mode and .abi directives.
11591         (shiftcosts, addsubcosts, multcosts): Adjust.
11592         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
11593         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
11594         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
11595         bytes, not registers.  Take into account the need for the
11596         SHcompact incoming args trampoline.  Adjust all callers.
11597         (sh_expand_prologue): Take stack_regs into account.  Call
11598         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
11599         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
11600         stack aligned as per SH5 ABI.
11601         (sh_builtin_saveregs): Support SH5 ABI.
11602         (sh_build_va_list, sh_va_start): Likewise.
11603         (initial_elimination_offset): Take alignment into account.
11604         Compute location of PR according to the SH5 stack frame.
11605         (arith_reg_operand): Reject branch-target registers.
11606         (shmedia_6bit_operand): New.
11607         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
11608         (target_reg_operand): Match DImode only.  Accept SUBREGs.
11609         (target_operand): New.
11610         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
11611         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
11612         SIBCALL_REGS for SHmedia.
11613         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
11614         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
11615         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
11616         (TARGET_SWITCHES): New SH5 flags.
11617         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
11618         VALID_REGISTER_P to disable unsupported registers.
11619         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
11620         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
11621         (FUNCTION_ARG_PADDING): Define.
11622         (FASTEST_ALIGNMENT): Adjust.
11623         (SH_REGISTER_NAMES_INITIALIZER): New.
11624         (sh_register_names): Declare.
11625         (DEBUG_REGISTER_NAMES): Define.
11626         (REGISTER_NAMES): Define based on sh_register_names.
11627         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
11628         (sh_additional_register_names): Declare.
11629         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
11630         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
11631         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
11632         (REGISTER_NATURAL_MODE): Define.
11633         (FIRST_PSEUDO_REGISTER): Adjust.
11634         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
11635         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
11636         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
11637         (VECTOR_MODE_SUPPORTED_P): Define.
11638         (REG_CLASS_CONTENTS): Adjust.
11639         (SMALL_REGISTER_CLASSES): Adjust.
11640         (REG_ALLOC_ORDER): Adjust.
11641         (INDEX_REG_CLASS): Adjust.
11642         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
11643         (CONST_OK_FOR_LETTER_P): Adjust.
11644         (PREFERRED_RELOAD_CLASS): Adjust.
11645         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
11646         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
11647         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
11648         (FIRST_FP_PARM_REG): Adjust.
11649         (CALL_POPS_ARGS): Define.
11650         (FUNCTION_ARG_REGNO_P): Adjust.
11651         (struct sh_args): New fields.
11652         (GET_SH_ARG_CLASS): Adjust.
11653         (INIT_CUMULATIVE_ARGS): Adjust.
11654         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
11655         (FUNCTION_ARG_ADVANCE): Adjust.
11656         (FUNCTION_ARG): Adjust.
11657         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
11658         (FUNCTION_ARG_CALLEE_COPIES): Define.
11659         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
11660         (STRICT_ARGUMENT_NAMING): Define.
11661         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
11662         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
11663         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
11664         (SETUP_INCOMING_VARARGS): Adjust.
11665         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
11666         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
11667         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
11668         (SUBREG_OK_FOR_INDEX_P): Adjust.
11669         (EXTRA_CONSTRAINT_S): Update.
11670         (EXTRA_CONSTRAINT_T): New.
11671         (EXTRA_CONSTRAINT): Adjust.
11672         (GO_IF_LEGITIMATE_INDEX): Adjust.
11673         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
11674         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
11675         (MOVE_MAX): Adjust.
11676         (MAX_MOVE_MAX): Define.
11677         (Pmode): Adjust.
11678         (CONST_COSTS): Adjust.
11679         (REGISTER_MOVE_COST): Adjust.
11680         (BRANCH_COST): Adjust.
11681         (TEXT_SECTION_ASM_OP): Adjust.
11682         (DBX_REGISTER_NUMBER): Adjust.
11683         (ASM_OUTPUT_DOUBLE_INT): New.
11684         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
11685         (PREDICATE_CODES): Adjust.
11686         (PROMOTE_MODE): Adjust.
11687         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
11688         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
11689         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
11690         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
11691         (DR0_REG, DR2_REG, DR4_REG): Renumber.
11692         (TR0_REG, TR1_REG, TR2_REG): New.
11693         (XD0_REG): Renumber.
11694         (UNSPEC_COMPACT_ARGS): New.
11695         (type): Added pt and ptabs.
11696         (length): Default to 4 on SHmedia.  Default pt length to 12
11697         and     20 on SHmedia32 and SHmedia64, respectively.
11698         (pt): New function unit.
11699         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
11700         Add whitespace between operands of SHmedia instructions.
11701         (movdicc): Fix.
11702         (adddi3_media, addsi3_media): Adjust constraints.
11703         (subsi3) [SHmedia]: Force operand 1 into a register.
11704         (udivsi3_i1_media, udivsi3_i4_media): New.
11705         (udivsi3): Support SHmedia.
11706         (divsi3_i1_media, divsi3_i4_media): New.
11707         (divsi3): Support SHmedia.
11708         (anddi3, iordi3, xordi3): Adjust constraints.
11709         (zero_extendhidi2, zero_extendqidi2): New.
11710         (extendsidi2, extendhidi2, extendqidi2): New.
11711         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
11712         (pop_e, pop_fpul, pop_4): Likewise.
11713         (movsi_media): Support FP and BT registers.
11714         (movsi_media_nofpu): New.  Adjust splits to DImode.
11715         (lduw, ldub): Renamed to zero_extend* above.
11716         (movqi_media): Fix typo.
11717         (movdi_media): Support FP and BT registers.
11718         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
11719         (movdi_const_32bit): New.
11720         (shori_media): Require immediate operand.  Use `u' for output.
11721         (movdf_media, movsf_media): Simplified.
11722         (movdf_media_nofpu, movsf_media_nofpu): New.
11723         (movdf, movsf): Adjust
11724         (movv2sf, movv2sf, movv16sf): New.
11725         (beq_media, beq_media_i): Adjust constraints.  Don't use
11726         scratch BT register.
11727         (bne_media, bne_media_i): Likewise.
11728         (bgt_media, bgt_media_i): Likewise.
11729         (bge_media, bge_media_i): Likewise.
11730         (bgtu_media, bgtu_media_i): Likewise.
11731         (bgeu_media, bgeu_media_i): Likewise.
11732         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
11733         bunordered): Emit jump insn.  Force operands to registers when
11734         needed.
11735         (jump_media, jump): Simplify.
11736         (call_compact, call_compact_rettramp): New.
11737         (call_value_compact, call_value_compact_rettramp): New.
11738         (call_media, call_value_media): Simplify.
11739         (sibcall_compact, sibcall_media): New.
11740         (call, call_value): Adjust for SHmedia and SHcompact.
11741         (sibcall, sibcall_value, untyped_call): Likewise.
11742         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
11743         (indirect_jump): Adjust for SHmedia.
11744         (casesi_jump_media): New.
11745         (nop): Re-enable for SHmedia.
11746         (call_site): Restrict to SH1.
11747         (casesi): Adjust for SHmedia.
11748         (casesi_shift_media, casesi_load_media): New.
11749         (return): Explicitly use PR register.  Call return trampoline
11750         on SHcompact.
11751         (return_i): Explicitly use PR register.
11752         (shcompact_return_tramp, shcompact_return_tramp_i): New.
11753         (return_media): Adjust.
11754         (shcompact_incoming_args): New.
11755         (epilogue): Adjust.
11756         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
11757         (movstrsi): Disable on SH5.
11758         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
11759         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
11760         (subsf3, subsf3_media): Likewise.
11761         (mulsf3, mulsf3_media, mac_media): Likewise.
11762         (divsf3, divsf3_media): Likewise.
11763         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
11764         (floatsisf2, fux_truncsfsi2): Likewise.
11765         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
11766         constraints.
11767         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
11768         (cmpunsf_media, cmpsf): Likewise.
11769         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
11770         (abssf2, abssf2_media): Likewise.
11771         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
11772         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
11773         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
11774         (floatsidf2, fix_truncdfsi2): Likewise.
11775         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
11776         constraints.
11777         (cmpeqdf_media, cmpgtdf_media): Likewise.
11778         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
11779         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
11780         (absdf2, absdf2_media): Likewise.
11781         (extendsfdf2, extendsfdf2_media): Likewise.
11782         (truncsfdf2, truncsfdf2_media): Likewise.
11783         * config/sh/sh64.h: New file.
11784         * config/sh/t-sh64: New file.
11785         * config/sh/shmedia.h: New file.
11786         * config/sh/ushmedia.h: New file.
11787         * config/sh/sshmedia.h: New file.
11788         * configure.in: Added sh64-*-elf.
11789         * configure: Rebuilt.
11790         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
11791         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
11792         (reg_class_from_letter): Use `b' for TARGET_REGS.
11793         (print_operand): Support `%M', `%m', `AND' and
11794         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
11795         (andcosts): Adjust for SHmedia.
11796         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
11797         Likewise.
11798         (target_reg_operand): New function.
11799         * config/sh/sh-protos.h (target_reg_operand): Declare.
11800         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
11801         FP registers on SH5.
11802         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
11803         on SH4.
11804         (TARGET_REGISTER_P): New macro.
11805         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
11806         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
11807         (EXTRA_CONSTRAINT_S): New macro.
11808         (EXTRA_CONSTRAINT): Adjust.
11809         (FLOAT_TYPE_SIZE): Define to 32.
11810         (Pmode): DImode on SHmedia.
11811         (CONST_COSTS): Adjust for SHmedia literals.
11812         (PREDICATE_CODES): Added target_reg_operand.
11813         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
11814         * config/sh/sh.md: Remove all attrs from SHmedia insns.
11815         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
11816         (cmpdi): Accept SHmedia.
11817         (movdicc_false, movdicc_true): New insns.
11818         (movdicc): New expand.
11819         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
11820         no_new_pseudos.
11821         (addsi3_media): Match `S' constraint.
11822         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
11823         (negdi2): Expand for SHmedia.
11824         (one_cmpldi2): New expand.
11825         (zero_extendsidi2): Change from expand to insn.
11826         (extendsidi2): Add constraints.
11827         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
11828         LD/ST address.  Fix SI immediate loading split.
11829         (movhi_media, movqi_media, lduw, ldub): New insns.
11830         (movhi, movqi): Accept SHmedia.
11831         (shori_media, movdi_media): Relax input constraints.  Split
11832         symbolic constants.
11833         (movdf_media, movsf_media): New insn.  New split to movdi.
11834         (movdf, movsf): Match on SHmedia.
11835         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
11836         bgeu_media): New insns and splits.  New insns with `_i' suffix.
11837         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
11838         (bunordered): New expand.
11839         (jump_compact): Renamed from `jump'.
11840         (jump_media): New insn.
11841         (jump): New expand.
11842         (call_media, call_value_media): New insns.
11843         (call, call_value): Adjust.
11844         (indirect_jump_compact): Renamed from `indirect_jump'.
11845         (indirect_jump_media): New insn.
11846         (indirect_jump): New expand.
11847         (untyped_call, return): Accept SHmedia.
11848         (return_media): New insn.
11849         (prologue, epilogue, blockage): Accept SHmedia.
11850         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
11851         (sunordered): New expand.
11852         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
11853         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
11854         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
11855         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
11856         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
11857         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
11858         abssf2_media): New insns.
11859         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
11860         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
11861         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
11862         floatdidf2, floatsidf2_media, fix_truncdfdi2,
11863         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
11864         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
11865         absdf2_media): New insns.
11866         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
11867         (extendsfdf2_media, truncdfsf2_media): New insns.
11868         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
11869         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
11870         * config/sh/sh.h (CONST_OK_FOR_J): Document.
11871         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
11872         * config/sh/sh.md (adddi3): New expand.
11873         (adddi3_media, adddi3z_media): New insns.
11874         (adddi3_compact): Renamed from adddi3.
11875         (addsi3_media): Use add.l r63 to add constant zero.
11876         (subdi3): New expand.
11877         (subdi3_media): New insn.
11878         (subdi3_compact): Renamed from subdi3.
11879         (mulsidi3): New expand.
11880         (mulsidi3_media): New insn.
11881         (mulsidi3_compact): Renamed from mulsidi3.
11882         (umulsidi3): New expand.
11883         (umulsidi3_media): New insn.
11884         (umulsidi3_compact): Renamed from umulsidi3.
11885         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
11886         (ashlsi3, ashrsi3, lshrsi3): Use them.
11887         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
11888         (ashldi3, ashrdi3, lshrdi3): Use them.
11889         (zero_extendsidi2): New expand.
11890         (extendsidi2): New insn.
11891         (movsi_media): New insn.  Split to movdi to load constants.
11892         (movsi): Enable for shmedia.
11893         (movdi_media): New insn.  Use shori_media to load wide constants.
11894         (short_media): New insn.
11895         (movdi): Enable for shmedia.
11896         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
11897         * config/sh/sh.h (CPP_SPEC): Added `m5'.
11898         (SUBTARGET_CPP_SPEC): Added `!m5'.
11899         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
11900         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
11901         to all other SH variants.
11902         (TARGET_DEFAULT): Set to SH1_BIT.
11903         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
11904         (BITS_PER_WORD): Raise to 64 on shmedia.
11905         (MAX_BITS_PER_WORD): Change to 64.
11906         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
11907         (INT_TYPE_SIZE): Keep as 32.
11908         (UNITS_PER_WORD): Raise to 8 on shmedia.
11909         (MIN_UNITS_PER_WORD): Keep as 4.
11910         (POINTER_SIZE): Raise to 64 on shmedia.
11911         (CONST_OK_FOR_J): New macro.
11912         (CONST_OK_FOR_LETTER_P): Use it.
11913         (processor_type): Add PROCESSOR_SH5.
11914         * config/sh/sh.md: Conditionalize all expands, insns and
11915         splits to TARGET_SH1.
11916         (cpu): Added sh5.
11917         (addsi3_compact): Renamed from...
11918         (addsi3): Now an expand.
11919         (addsi3_media, subsi3_media): New insns.
11920         (subsi3): Don't negate constants with SHmedia.
11921
11922         * hooks.c: New file.
11923         * hooks.h: New file.
11924         * Makefile.in (HOOKS_H): New.
11925         (TARGET_DEF_H): Added $(HOOKS_H).
11926         (OBJS): Added hooks.o.
11927         (cfgcleanup.o, bb-reorder.o): Added target.h.
11928         (hooks.o): Added dependencies.
11929         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
11930         (TARGET_INITIALIZER): this.
11931         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
11932         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
11933         * bb-reorder.c: Include target.h.
11934         (reorder_basic_blocks): Skip if cannot modify jumps.
11935         * cfgcleanup.c: Include target.h.
11936         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
11937
11938 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
11939
11940         * config/mips/mips.md (casesi_internal, casesi_internal_di):
11941         Protect jump delay slot instructions with .set noreorder and
11942         .set nomacro.
11943
11944 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
11945
11946         * config/mips/mips.md (casesi_internal_di): Calculate
11947         the index into the target offset table correctly.
11948
11949 2002-02-08  Richard Henderson  <rth@redhat.com>
11950
11951         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
11952         * final.c (output_addr_const): Accept and discard SUBREG.
11953         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
11954         mark them unknown instead.
11955         (simplify_subtraction): Handle RTX_UNKNOWN.
11956         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
11957
11958 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
11959
11960         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
11961
11962 2002-02-08  Richard Henderson  <rth@redhat.com>
11963
11964         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
11965
11966 2002-02-08  Andreas Jaeger  <aj@suse.de>
11967
11968         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
11969         * config/i386/t-linux64: New file.
11970
11971 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
11972
11973         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
11974         * c-parse.in (compstmt): Clear last_expr_type.
11975
11976 2002-02-07  Richard Henderson  <rth@redhat.com>
11977
11978         * loop.c (strength_reduce): Sink final_value when not
11979         eliminating a biv.
11980
11981 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
11982
11983         * config/sparc/freebsd.h: Fix mismatched spec {.
11984
11985 2002-02-07  Richard Henderson  <rth@redhat.com>
11986
11987         * cfgrtl.c: Include recog.h and insn-config.h.
11988         (keep_with_call_p): Fix general_operand invocation.
11989         * Makefile.in (cfgrtl.o): Update dependencies.
11990
11991 2002-02-07  Kazu Hirata  <kazu@hxi.com>
11992
11993         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
11994         comment.  Accept HImode only if TARGET_H8300.
11995
11996 2002-02-07  Eric Christopher  <echristo@redhat.com>
11997
11998         * config/mips/crtn.asm: Cleanup #ifdefs.
11999
12000 2002-02-07  Eric Christopher  <echristo@redhat.com>
12001
12002         * config/mips/crti.asm: Add changes for mips16. mips16 uses
12003         register 7 as RA instead of $31.
12004         * config/mips/crtn.asm: Ditto.
12005         * config/mips/mips.c (mips_move_2words): Add case for
12006         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
12007         (compute_frame_size): Fix typo.
12008         (save_restore_insns): Ditto.  Make documentation about using
12009         register $7 as return register more precise.
12010         (mips_expand_epilogue): Fix comment. Add code to work around not
12011         being able to add to the stack pointer directly.
12012         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
12013         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
12014         epilogue.
12015
12016 2002-02-07  Tom Rix  <trix@redhat.com>
12017
12018         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
12019         immediates in ldu and stdu DS opcode field.
12020         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
12021         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
12022         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
12023
12024 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
12025
12026         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
12027         offset for stack bias.
12028
12029 2002-02-07  H.J. Lu <hjl@gnu.org>
12030
12031         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
12032
12033 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
12034
12035         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
12036
12037 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
12038
12039         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
12040         * i386.c (x86_order_regs_for_local_alloc): New global function.
12041         * i386.h (REG_ALLOC_ORDER): CLeanup.
12042         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
12043
12044 2002-02-07  Richard Henderson  <rth@redhat.com>
12045
12046         PR optimization/2463
12047         * alias.c (find_base_value): Recall base values for fixed hard regs.
12048         * loop.c (loop_regs_update): Don't use single_set on non-insns.
12049
12050 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
12051
12052         * config/mips/mips.md (define_delay) [mips16]: Adjust required
12053         length.
12054
12055 2002-02-06  Richard Henderson  <rth@redhat.com>
12056
12057         PR c/5609
12058         * stmt.c (resolve_operand_name_1): Take more care with mixed
12059         named and unnamed operands.
12060
12061 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
12062             Jan Hubicka  <jh@suse.cz>
12063
12064         * loop.c (remove_constant_addition): Avoid clobbering a shared
12065         CONST expression.
12066
12067 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12068
12069         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
12070         * config/s390/t-linux64: New file.
12071         * config/s390/libgcc-glibc.ver: New file.
12072
12073 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12074
12075         * config/s390/linux64.h: Delete file.
12076         * config/s390/s390x.h: New file.
12077         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
12078         as target header file.
12079         * config/s390/linux.h (TARGET_VERSION): Define depending on
12080         DEFAULT_TARGET_64BIT.
12081         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
12082         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
12083         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
12084         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
12085         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
12086         (EXTRA_SPEC): New define.
12087         * config/s390/s390.h (TARGET_VERSION): Define depending on
12088         DEFAULT_TARGET_64BIT.
12089         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
12090
12091 2002-02-06  Jason Merrill  <jason@redhat.com>
12092
12093         * c-decl.c (finish_function): Warn about a non-void function with
12094         no return statement and no abnormal exit.
12095         (current_function_returns_abnormally): New variable.
12096         (start_function): Clear it.
12097         (struct c_language_function): Add returns_abnormally.
12098         (push_c_function_context): Save it.
12099         (pop_c_function_context): Restore it.
12100         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
12101         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
12102         an explicit return type.
12103         * c-tree.h: Declare current_function_returns_abnormally.
12104         (C_FUNCTION_IMPLICIT_INT): New macro.
12105         * c-typeck.c (build_function_call): Set it.
12106         (c_expand_return): Set current_function_returns_value even if the
12107         value is erroneous.
12108
12109 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
12110
12111         PR c/5420:
12112         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
12113         unsafe for reevaluation.
12114
12115 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
12116
12117         PR c/5482:
12118         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
12119         EXPR_STMT, but COMPOUND_STMT, recurse into it.
12120
12121 2002-02-06  Richard Henderson  <rth@redhat.com>
12122
12123         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
12124         be a general_operand.  Dest for function value must be a pseudo.
12125
12126 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
12127
12128         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
12129         as SYMBOL_REFs from the constant pool.
12130
12131 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
12132
12133         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
12134         passed by invisible reference.
12135
12136 2002-02-05  Richard Henderson  <rth@redhat.com>
12137
12138         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
12139
12140 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
12141
12142         Implement using "base addresses" in insn operands as default.
12143         * config/mmix/mmix.c (mmix_conditional_register_usage): if
12144         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
12145         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
12146         used to read the rtx value.
12147         (mmix_target_asm_function_epilogue): Fix spacing.
12148         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
12149         (mmix_legitimate_address): Ditto.
12150         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
12151         should be loaded with a GETA insn.  Don't allocate needless extra
12152         char for nul termination and fix misleading comment.
12153         (mmix_print_operand_address): Handle constants if
12154         TARGET_BASE_ADDRESSES.
12155         (mmix_output_register_setting): Use base addressing if
12156         TARGET_BASE_ADDRESSES and the number of insns is 3.
12157         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
12158         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
12159         to use R as constraint, add LDA to match s.
12160         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
12161         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
12162         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
12163         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
12164         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
12165         order with other fixed registers.
12166         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
12167         other parameter/call-clobbered registers.
12168         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
12169         -mbase-addresses, -mno-base-addresses.
12170         (MMIX Options): Ditto.
12171
12172 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12173
12174         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
12175
12176 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
12177
12178         * config/rs6000/altivec.h: Change elem to _S_elem.
12179
12180 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
12181
12182         * config/netbsd.h (WCHAR_TYPE): Define.
12183         (WCHAR_TYPE_SIZE): Ditto.
12184         (WINT_TYPE): Ditto.
12185         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
12186         (WCHAR_UNSIGNED): Ditto.
12187         (WCHAR_TYPE_SIZE): Ditto.
12188         (WINT_TYPE): Ditto.
12189         * config/arm/netbsd.h: Likewise.
12190         * config/i386/netbsd-elf.h: Likewise.
12191         * config/i386/netbsd.h: Likewise.
12192         * config/m68k/netbsd-elf.h: Likewise.
12193         * config/m68k/netbsd.h: Likewise.
12194         * config/ns32k/netbsd.h: Likewise.
12195         * config/sparc/netbsd.h: Likewise.
12196         * config/vax/netbsd.: Likewise.
12197
12198 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
12199
12200         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
12201         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
12202         (TARGET_INITIALIZER): this.
12203         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
12204         (BITFIELD_NBYTES_LIMITED): Markup fix.
12205         * tree.h (default_ms_bitfield_layout_p): Declare.
12206         (record_layout_info): Added prev_field.
12207         * tree.c (default_ms_bitfield_layout_p): New fn.
12208         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
12209         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
12210         * stor-layout.c: Include target.h.
12211         (start_record_layout): Initialize prev_field.
12212         (place_field): Handle MS bit-field layout, and disregard
12213         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
12214         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
12215         * Makefile.in (stor-layout.o): Adjust dependencies.
12216
12217 2002-02-05  Jason Merrill  <jason@redhat.com>
12218
12219         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
12220
12221 2002-02-05  Andreas Jaeger  <aj@suse.de>
12222
12223         * crtstuff.c: Fix comments.
12224
12225 2002-02-05  Richard Henderson  <rth@redhat.com>
12226
12227         PR fortran/3393
12228         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
12229         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
12230
12231         PR fortran/3392
12232         * config/mips/mips.c (function_arg): Handle TImode.
12233         (function_arg_advance): Likewise.
12234
12235 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12236
12237         * config/rs6000/altivec.h (vec_step_help): Rename to
12238         __vec_step_help.
12239
12240 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12241
12242         * config/rs6000/altivec.h: Fix typos.
12243
12244 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
12245
12246         * config/arm/netbsd.h: Correct a comment.
12247
12248 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12249
12250         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
12251         building void typed builtins.
12252
12253         * config/rs6000/altivec.h (vec_ld*): Fix typos.
12254         (vec_step): Implement for C++.
12255
12256 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12257
12258         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
12259
12260 2002-02-04  Richard Henderson  <rth@redhat.com>
12261
12262         * combine.c (nonzero_bits): Re-introduce special case for
12263         sp/fp/ap wrt REGNO_POINTER_ALIGN.
12264
12265 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12266
12267         * doc/extend.texi: Warn about unsupported usage of altivec
12268         builtins.
12269
12270         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
12271         (altivec_predicate_*): New.
12272
12273         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
12274         Add C++ version of vec_*() functions.
12275
12276         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
12277         (bdesc_2arg): Remove altivec predicates.
12278         (altivec_expand_builtin): Handle predicates.
12279         (altivec_init_builtins): Handle predicates.
12280         (altivec_expand_predicate_builtin): New.
12281
12282 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12283
12284         * pa.c (DO_FRAME_NOTES): Move forward.
12285         (store_reg): Revise handling of frame notes.
12286         (load_reg): Likewise.
12287         (set_reg_plus_d): Likewise.
12288         (hppa_expand_prologue): Likewise.
12289         (hppa_expand_epilogue): Likewise.
12290
12291 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12292
12293         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
12294
12295 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12296
12297         PR c/4475, c++/3780:
12298         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
12299         * c-common.h (SWITCH_TYPE): Define.
12300         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
12301         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
12302         Rename spareness variable to sparseness.
12303         (expand_end_case_type): Renamed from expand_end_case, use orig_type
12304         if non-NULL instead of TREE_TYPE (orig_index).
12305         * tree.h (expand_end_case_type): Renamed from expand_end_case.
12306         (expand_end_case): Define using expand_end_case_type.
12307         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
12308         to expand_end_case_type.
12309         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
12310
12311 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12312
12313         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
12314         (BIGGEST_ALIGNMENT): Change to 128.
12315
12316 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12317
12318         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
12319
12320 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12321
12322         * pa.md (call_internal_reg_64bit): Remove unused variable.
12323
12324 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
12325
12326         * config/arm/arm.h (machine_function): Add uses_anonymous_args
12327         field.
12328         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
12329         * config/arm/arm.c (current_function_anonymous_args): Delete,
12330         replace uses with cfun->machine->uses_anonymous_args.
12331         (arm_reorg): Do not reset uses_anonymous_args.
12332
12333         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
12334         any geenral register.
12335
12336 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
12337
12338         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
12339         the entry block.
12340
12341 2002-02-04  Richard Henderson  <rth@redhat.com>
12342
12343         * combine.c (force_to_mode): Remove STACK_BIAS code.
12344         (nonzero_bits): Likewise.  Replace sp/fp special case with
12345         REGNO_POINTER_ALIGN.
12346
12347         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
12348         (HARD_FRAME_POINTER_REGNUM): New.
12349         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
12350         (FIXED_REGS, CALL_USED_REGS): Update.
12351         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
12352         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
12353         (HARD_REGNO_NREGS): Update for SFP.
12354         (STACK_POINTER_OFFSET): Include bias here ...
12355         (FIRST_PARM_OFFSET): ... not here.
12356         (STACK_BIAS): Remove.
12357         (INIT_EXPANDERS): New.
12358         (STARTING_FRAME_OFFSET): Do not include bias.
12359         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
12360         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
12361         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
12362         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
12363         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
12364         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
12365         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
12366         (MUST_SAVE_REGISTER): Likewise.
12367         (sparc_flat_function_prologue): Likewise.
12368         (sparc_flat_function_epilogue): Likewise.
12369         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
12370         (sparc_init_modes): SFP is GENERAL_REGS.
12371         (sparc_builtin_saveregs): SFP does not have bias applied.
12372
12373 2002-02-04  Richard Henderson  <rth@redhat.com>
12374
12375         * config/alpha/alpha.c (current_function_is_thunk): Don't check
12376         current_function_is_thunk.
12377         (alpha_sa_mask): Distinguish between current_function_is_thunk
12378         called from ASM_OUTPUT_MI_THUNK and not.
12379         (alpha_does_function_need_gp): Thunks always need gp.
12380         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
12381         (alpha_output_mi_thunk_osf): New.
12382         * config/alpha/alpha-protos.h: Update.
12383         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
12384
12385 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
12386
12387         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
12388         function types, not when they're taken away.
12389
12390 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
12391
12392         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
12393         CODE_LABEL and jump table when replacing a table jump with a
12394         simple jump.
12395
12396 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12397
12398         * config/s390/s390-protos.h (legitimize_la_operand,
12399         s390_secondary_input_reload_class, s390_plus_operand,
12400         s390_expand_plus_operand): Add prototypes.
12401
12402         config/s390/s390.c (s390_secondary_input_reload_class,
12403         s390_plus_operand, s390_expand_plus_operand): New functions.
12404
12405         (struct s390_address): New member 'pointer'.
12406         (s390_decompose_address): Compute it.
12407         (legitimate_la_operand_p): Use it.
12408         (legitimize_la_operand): New function.
12409         (movti, movdi, movdf splitters): Call it.
12410
12411         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
12412         (PREDICATE_CODES): Add s390_plus_operand.
12413
12414         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
12415         (la_ccclobber): Allow GENERAL_REGS as output operand.
12416
12417         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
12418         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
12419         (*la_64, *la_31, reload_indi, reload_insi): ... these.
12420
12421 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12422
12423         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
12424         register names for regular asm () construct.
12425
12426 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12427
12428         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
12429         registers.
12430
12431 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12432
12433         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
12434         pat for recog.
12435
12436 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
12437
12438         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
12439         constant pool to be identical by string address and index.
12440
12441 2002-02-04  Anthony Green  <green@redhat.com>
12442
12443         * output.h (SECTION_OVERRIDE): Define.
12444         * varasm.c (named_section): Obey SECTION_OVERRIDE.
12445
12446 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
12447
12448         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
12449         by existing arm*-*-netbsd* (a.out) target.
12450         (ns32k-*-netbsdelf*): Likewise.
12451         (sparc-*-netbsdelf*): Likewise.
12452         (vax-*-netbsdelf*): Likewise.
12453
12454 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
12455
12456         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
12457         headers and libobjc headers.
12458
12459 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
12460
12461         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
12462         (_mingw.h): Remove duplicate include.
12463
12464 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
12465
12466         * config.gcc: Set cpu_type to m68k for 68010, as well.
12467         (m68010-*-netbsdelf*): New...
12468         (m68k*-*-netbsdelf*): ...targets.
12469         * config/m68k/netbsd-elf.h: New file.
12470
12471 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12472
12473         * config/h8300/h8300.c (hand_list): Move inside function_arg.
12474
12475 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12476
12477         * config/h8300/h8300.c (h8_push_ops): Move inside
12478         h8300_init_once.
12479         (h8_pop_ops): Likewise.
12480         (h8_move_ops): Likewise.
12481
12482 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12483
12484         * config/h8300/h8300.c (os_task): Make it static.
12485         (monitor): Likewise.
12486         (pragma_saveall): Likewise.
12487
12488 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
12489
12490         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
12491         constant is a valid sign-extension for Pmode.
12492
12493 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12494
12495         * config/h8300/h8300.c: Fix formatting.
12496
12497 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12498
12499         * config/h8300/h8300.md: Fix formatting.
12500
12501 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12502
12503         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
12504         predicates of operands[1].  Split the patterns for each
12505         processor variant.
12506
12507 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12508
12509         * config/h8300/h8300.md (xor patterns): Tighten the predicates
12510         of operands[1] to register_operand.
12511
12512 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
12513
12514         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
12515         * cpphash.c (_cpp_init_hashtable): Similarly.
12516         * cppinit.c (cpp_create_reader): Default the signed_char flag.
12517         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
12518         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
12519         (cpp_handle_option): Handle the new options.
12520         * cpplex.c (cpp_interpret_charconst): Use new flag.
12521         * cpplib.h (struct cpp_options): New member signed_char.
12522         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
12523         (cpp_options): Handle -fsigned-char and -funsigned-char.
12524         (static_specs): Remove signed_char_spec.
12525         (do_spec1): Don't handle %c.
12526         * system.h: Poison SIGNED_CHAR_SPEC.
12527         * tradcif.y (yylex): Use flag_signed_char.
12528         * tradcpp.h (flag_signed_char): New.
12529         * tradcpp.c (flag_signed_char): New.
12530         (main): Handle new command-line options.
12531         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
12532 config:
12533         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
12534         * avr/avr.h: Remove old comments.
12535         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
12536         (CC1_SPEC): Pass -fsigned-char if -mic*.
12537         (SIGNED_CHAR_SPEC): Remove.
12538 doc:
12539         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
12540
12541 2002-02-01  Eric Christopher  <echristo@redhat.com>
12542
12543         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
12544         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
12545         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
12546         (ASM_OUTPUT_REG_POP): Ditto.
12547
12548 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
12549
12550         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
12551         patch.
12552
12553 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
12554
12555         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
12556
12557 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
12558
12559         PR c/5304:
12560         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
12561         unconditionally.
12562
12563 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
12564
12565         * cfganal.c: Include tm_p.h.
12566         (keep_with_call_p): Fix the test that determines if a register holds
12567         the return value of a call.
12568
12569 2002-02-01  DJ Delorie  <dj@redhat.com>
12570
12571         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
12572         we are given conflicting registers, switch to the other one we
12573         had allocated for us.
12574         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
12575         as TImode so we know when the "other" register is available.
12576
12577 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
12578
12579         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
12580         sparc/sparc_bi.h.
12581
12582 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
12583
12584         * cfganal.c (keep_with_call_p): New function.
12585         (flow_call_edges_add): Prevent splitting a block between a call and
12586         a single-set instruction that should be kept in the same block.
12587
12588 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12589
12590         * doc/install.texi (avr): Update outdated URL.
12591
12592 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
12593
12594         * config/stormy16/stormy16.md (pushqi): New.
12595         (popqi): New.
12596         (pushhi): New.
12597         (pophi): New.
12598         (movhi): Remove stack operands.
12599         (movqi): Likewise.
12600         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
12601         nonimmediate_nonstack_operand.
12602         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
12603         New.
12604         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
12605         New.
12606
12607 2002-01-31  Jason Merrill  <jason@redhat.com>
12608
12609         * Makefile.in (c-parse.c): Handle .output file.
12610         * objc/Make-lang.in (objc-parse.c): Likewise.
12611
12612 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
12613
12614         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
12615         the -me[lb] option is given.  Don't output the default flag
12616         twice.
12617
12618 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
12619
12620         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
12621         the primary source file; this has not been done yet.
12622         * c-decl.c (c_expand_body): Reset input_filename from
12623         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
12624
12625 2002-01-31  Kazu Hirata  <kazu@hxi.com>
12626
12627         * rtlanal.c (subreg_regno_offset): Do not use
12628         SUBREG_REGNO_OFFSET.
12629         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
12630         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
12631
12632 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
12633
12634         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
12635         version rather than GNATS version in --version output.
12636
12637 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
12638
12639         * ifcvt.c (noce_process_if_block): Make a copy of the destination
12640         when copying back from a temporary.
12641
12642 2002-01-30  Richard Henderson  <rth@redhat.com>
12643
12644         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
12645         and new_dest are the same.
12646
12647 2002-01-30  Richard Henderson  <rth@redhat.com>
12648
12649         PR opt/5076
12650         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
12651         * rtl.c (note_insn_name): Update.
12652         * emit-rtl.c (remove_unnecessary_notes): Kill it.
12653         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
12654         to perform loop rotation.
12655         (expand_exit_loop_top_cond): New.
12656         * tree.h (expand_exit_loop_top_cond): Declare it.
12657         * c-semantics.c (genrtl_while_stmt): Use it.
12658         (genrtl_for_stmt): Likewise.
12659
12660 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
12661
12662         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
12663         arguments to 64-bit boundaries on 64-bit ABIs.
12664
12665 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
12666
12667         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
12668
12669 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
12670
12671         * c-decl.c (grokdeclarator): Handle type being a typedef for an
12672         invalid type.
12673
12674 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
12675
12676         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
12677         * config/sparc/sparc_bi.h: Remove file.
12678         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
12679
12680 2002-01-30  Richard Henderson  <rth@redhat.com>
12681
12682         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
12683
12684 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
12685
12686         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
12687
12688 2002-01-30  Jason Merrill  <jason@redhat.com>
12689
12690         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
12691         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
12692         (reg_save): Use DW_CFA_offset_extended_sf instead.
12693
12694         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
12695
12696 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
12697
12698         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
12699         in cselib_lookup.
12700
12701 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
12702
12703         * rs6000.md ("*call_value_local32"): Remove constraints.
12704         ("*call_value_local64"): Same.
12705         ("*call_value_indirect_nonlocal_aix32"): Same.
12706         ("*call_value_nonlocal_aix32"): Same.
12707         ("*call_value_indirect_nonlocal_aix64"): Same.
12708         ("*call_value_nonlocal_aix64"): Same.
12709         ("*call_value_nonlocal_sysv"): Same.
12710
12711 2002-01-29  Richard Henderson  <rth@redhat.com>
12712
12713         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
12714
12715 2002-01-29  Richard Henderson  <rth@redhat.com>
12716
12717         * expr.c (force_operand): Ignore flag_pic for detecting pic
12718         address loads.
12719         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
12720         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
12721         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
12722         instead of open-coded loop.
12723         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
12724         be fixed when in use.
12725
12726 2002-01-29  Richard Henderson  <rth@redhat.com>
12727
12728         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
12729         * sched-rgn.c (propagate_deps): Update them.
12730         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
12731         clobbers list when either gets too long.
12732
12733 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
12734
12735         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
12736         and INDEX_REGS the same as GENERAL_REGS.
12737         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
12738
12739 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
12740
12741         * tree.c (build_nonstandard_integer_type): Correct prototype.
12742
12743 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
12744
12745         * config/s390/s390.md (movstrsico, movstrdix_64,
12746         movstrsix_31): Remove, replace by ...
12747         (movstrdi_short, movstrsi_short, movstrdi_long,
12748         movstrsi_long): ... these.  New.
12749         (movstrdi, movstrsi): Adapt.
12750
12751         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
12752         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
12753         Remove unnecessary CC clobber.
12754         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
12755         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
12756
12757         (divmoddi4): Don't partially initialize TImode register.
12758
12759 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
12760
12761         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
12762
12763 2002-01-29  Richard Henderson  <rth@redhat.com>
12764
12765         * flow.c (print_rtl_and_abort): Remove.
12766         (print_rtl_and_abort_fcn): Remove.
12767         (verify_local_live_at_start): Use dump_bb instead.
12768         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
12769         (verify_wide_reg_1): Return 2 on mode test failure.
12770
12771 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
12772
12773         PR c/3325, c/3326, c/2511, c/3347
12774         * c-decl.c (enum_decl_context): Remove BITFIELD.
12775         (grokdeclarator): Take bitfield width as an input.
12776         Ensure bitfields are given the correct type.  Perform
12777         bitfield width validation with build_bitfield_integer_type
12778         rather than waiting for finish_struct.
12779         (grok_typename, grok_typename_in_parm_context, start_decl,
12780         push_parmdecl, grokfield, start_function): Update calls to
12781         grokdeclarator.
12782         (build_bitfield_integer_type): New function.
12783         (finish_struct): Move bitfield validation to grokdeclarator
12784         and build_bitfield_integer_type.
12785         * tree.c (build_nonstandard_integer_type): New function.
12786         * tree.h (build_nonstandard_integer_type): New prototype.
12787 objc:
12788         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
12789
12790 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
12791
12792         PR other/1502:
12793         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
12794         don't ignore unrecognized -W* options.
12795         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
12796         * cpplib.h (cpp_handle_option): Adjust prototype.
12797         * c-decl.c (c_decode_options): Pass 0 as last argument to
12798         cpp_handle_option.
12799
12800         PR c/2896:
12801         * gcc.c (cpp_unique_options): Split from cpp_options.
12802         (cpp_options): Source cpp_unique_options.
12803         (default_compilers): Use cpp_unique_options instead of cpp_options
12804         when used together with cc1_options.
12805         (static_specs): Add cpp_unique_options.
12806         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
12807         when used together with cc1_options.
12808
12809 2002-01-29  Kazu Hirata  <kazu@hxi.com>
12810
12811         * config/h8300/h8300-protos.h: Update the prototype of
12812         output_a_shift.
12813         * config/h8300/h8300.c (output_a_shift): Remove an unused
12814         argument 'insn'.  Remove redundant code.
12815         * config/h8300/h8300.md: Adust to the new prototype of
12816         output_a_shift.
12817
12818 2002-01-29  Kazu Hirata  <kazu@hxi.com>
12819
12820         * config/h8300/h8300-protos.h: Update the prototypes of
12821         emit_a_rotate and expand_a_rotate.
12822         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
12823         first argument to 'enum rtx_code'.
12824         (expand_a_rotate): Likewise.
12825
12826 2002-01-28  Kazu Hirata  <kazu@hxi.com>
12827
12828         * config/h8300/h8300-protos.h: Update the prototype of
12829         output_simode_bld.
12830         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
12831         'log2'.
12832         * config/h8300/h8300.md: Adjust to the new prototype.
12833
12834 2002-01-28  Kazu Hirata  <kazu@hxi.com>
12835
12836         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
12837         redundant code.
12838
12839 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12840
12841         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
12842         is a fixed register before returning pic_offset_table_rtx.
12843         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
12844         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
12845
12846 2002-01-28  Jason Merrill  <jason@redhat.com>
12847
12848         * dwarf2.h: Sync with src version.
12849
12850 2002-01-28  Paul Koning  <pkoning@equallogic.com>
12851
12852         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
12853         BT_FN_VOID_PTR_VAR.
12854         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
12855         * doc/extend.texi (__builtin_prefetch): Update documentation:
12856         first argument is now const void ptr.
12857
12858 2002-01-28  Kazu Hirata  <kazu@hxi.com>
12859
12860         * config/h8300/h8300-protos.h: Remove an unused prototype.
12861
12862 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
12863
12864         * toplev.c (lang_independent_init): Round up identifier size.
12865
12866 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
12867
12868         * config.gcc: Revert previous change.
12869
12870 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
12871
12872         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
12873
12874 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
12875
12876         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
12877         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
12878         other non-elf netbsd config frags.
12879         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
12880         collect2 will does that.
12881         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
12882         shared-lib frobbing will work.
12883
12884 2002-01-28  Kazu Hirata  <kazu@hxi.com>
12885
12886         * config/h8300/h8300.h: Fix formatting.
12887         * config/h8300/h8300.md: Likewise.
12888
12889 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
12890
12891         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
12892         the old, removed AAA_standards fix.
12893         * fixinc/fixincl.x: Rebuilt.
12894
12895 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
12896
12897         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
12898         atexit call in crtbegin, hooked in after call to frame_dummy;
12899         register EH before registering __fini__start.
12900
12901 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
12902
12903         * config/rs6000/altivec.h: Remove spurious semicolons.
12904
12905 2002-01-27  Kazu Hirata  <kazu@hxi.com>
12906
12907         * config/h8300/h8300.md: Replace dead bit extraction patterns
12908         with ones that work.
12909
12910 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12911
12912         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
12913         if not STRICT_ALIGNMENT.
12914         * rtl.h (MEM_ALIGN): Likewise.
12915
12916 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12917
12918         * doc/invoke.texi (-fdump-translation-unit): Revert this
12919         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12920
12921 2002-01-27  Kazu Hirata  <kazu@hxi.com>
12922
12923         * config/h8300/h8300.md (define_constants): New.
12924         (anonymous patterns) Use defined constants appropriately.
12925
12926 2002-01-27  Kazu Hirata  <kazu@hxi.com>
12927
12928         * config/h8300/h8300.c (function_arg): Remove redundant code.
12929
12930 2002-01-26  Richard Henderson  <rth@redhat.com>
12931
12932         * sched-deps.c (reg_pending_uses_head): New.
12933         (reg_pending_barrier): Rename from reg_pending_sets_all.
12934         (find_insn_list): Don't mark inline.
12935         (find_insn_mem_list): Remove.
12936         (add_dependence_list, add_dependence_list_and_free): New.
12937         (flush_pending_lists): Replace only_write param with separate
12938         for_read and for_write parameters.  Update all callers.  Use
12939         add_dependence_list_and_free.
12940         (sched_analyze_1): Do not add reg dependencies here; just set
12941         the pending bits.  Use add_dependence_list.
12942         (sched_analyze_2): Likewise.
12943         (sched_analyze_insn): Replace schedule_barrier_found with
12944         reg_pending_barrier.  Add all dependencies for pending reg
12945         uses, sets, and clobbers.
12946         (sched_analyze): Don't add reg dependencies for calls, just
12947         set pending bits.  Use regs_invalidated_by_call.  Treat
12948         sched_before_next_call as a normal list, not a fake insn.
12949         (init_deps): No funny init for sched_before_next_call.
12950         (free_deps): Free pending mems lists.  Don't zero reg_last.
12951         (init_deps_global): Init reg_pending_uses.
12952         (finish_deps_global): Free it.
12953         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
12954         (find_insn_mem_list): Remove.
12955         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
12956         (propagate_deps): Use them.  Zero temp mem lists.
12957
12958 2002-01-26  Richard Henderson  <rth@redhat.com>
12959
12960         * Makefile.in (CRTSTUFF_CFLAGS): New.
12961         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
12962         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
12963         crtstuff.c instead of alpha assembly version.
12964         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
12965         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
12966         not FORCE_{INIT,FINI}_SECTION_ALIGN.
12967         (__do_global_dtors_aux): Mark used.
12968         (frame_dummy, __do_global_ctors_aux): Mark used.
12969         (fini_dummy, init_dummy): Remove.
12970
12971         * config/alpha/crtbegin.asm: Remove file.
12972         * config/alpha/crtend.asm: Remove file.
12973         * config/alpha/t-crtbe: Remove file.
12974         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
12975         (LINK_EH_SPEC): New.
12976
12977         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
12978         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
12979         calling constructors.
12980         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
12981
12982         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
12983         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
12984         CRT_END_INIT_DUMMY hack.
12985         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
12986         FORCE_{INIT,FINI}_SECTION_ALIGN.
12987
12988         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
12989         FORCE_{INIT,FINI}_SECTION_ALIGN.
12990
12991         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
12992         invocation sequence.
12993         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
12994
12995         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
12996         (FORCE_CODE_SECTION_ALIGN): New.
12997
12998 2002-01-26  Richard Henderson  <rth@redhat.com>
12999
13000         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
13001
13002 2002-01-26  Richard Henderson  <rth@redhat.com>
13003
13004         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
13005         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
13006
13007 2002-01-26  Kazu Hirata  <kazu@hxi.com>
13008
13009         * config/h8300/h8300.md: Remove bit extraction patterns that
13010         cannot be triggered.
13011         Restrict each bit extraction pattern to a variant on which the
13012         pattern is tested.
13013
13014 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
13015
13016         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
13017
13018 2002-01-26  Kazu Hirata  <kazu@hxi.com>
13019
13020         * config/h8300/h8300.md: Remove bit test patterns that cannot
13021         be triggered.
13022         Restrict each bit test pattern to a variant on which the
13023         pattern is tested.
13024
13025 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13026
13027         * builtins.c (expand_builtin_strncat): Remove redundant check for
13028         INTEGER_CST.
13029
13030 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
13031
13032         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
13033         default setting.
13034         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
13035         existing setting.
13036
13037 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
13038
13039         * dbxout.c (dbxout_init): Use assemble_name rather than just
13040         stripping off the first character.
13041         (dbxout_source_file): Likewise.
13042
13043 2002-01-25  DJ Delorie  <dj@redhat.com>
13044
13045         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
13046         using rtx_equal_p, not by comparing pointers.
13047
13048 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
13049
13050         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
13051         for PIC_OFFSET_TABLE_REGNUM.
13052         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
13053
13054 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
13055
13056         * config.gcc (x86_64-*-freebsd*): New target.
13057         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
13058         value.
13059         (i[34567]86-*-freebsd*): Don't include svr4.h.
13060         * config/i386/freebsd64.h: New file.
13061
13062 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
13063
13064         * config/alpha/x-vms (version): Make static.
13065
13066         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
13067         in previous checkin.
13068
13069         * Makefile.in (install-headers-cp): New target.
13070         * config.gcc (alpha-dec-*vms*): Install headers with
13071         install-headers-cp
13072
13073 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
13074
13075         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
13076         avoid it's copies.
13077
13078 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13079
13080         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
13081         of compare_tree_int.
13082         (expand_builtin_strncat): Likewise.
13083         * c-decl.c (finish_struct): Use tree_low_cst.
13084         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
13085         * tree.c (compare_tree_int): Likewise.
13086
13087 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
13088
13089         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
13090         adjustments even if they are implemented by more than two insns.
13091
13092 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
13093
13094         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
13095         * df.h (struct ref): Kill B.
13096         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
13097
13098         * basic-block.h (PROP_EQUAL_NOTES): New flag.
13099         * flow.c (propagate_one_insn): Use it.
13100         (mark_used_regs): Handle NIL.
13101
13102 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
13103
13104         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
13105         to help folding.
13106
13107 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
13108
13109         * rs6000.md (prefetch): Make address V4SI mode so that the address
13110         is restricted to legitimate form for instruction.
13111
13112 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
13113
13114         * doc/install.texi (xtensa-*-elf): New target.
13115         (xtensa-*-linux*): New target.
13116         * doc/contrib.texi: Add myself.
13117
13118 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
13119
13120         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
13121         purpose register to hold an SImode (or smaller) value.
13122
13123 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
13124
13125         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
13126         registry only.
13127         * crtstuff.c: Likewise.
13128
13129 2002-01-25  Kazu Hirata  <kazu@hxi.com>
13130
13131         * config/h8300/h8300.md (negation patterns): Tighten
13132         predicates to register_operand.
13133
13134 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
13135
13136         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
13137         mode, not Pmode.
13138
13139         * builtins.c (expand_builtin_prefetch): Same.
13140
13141 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13142
13143         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
13144         modes.
13145
13146 2002-01-24  Kazu Hirata  <kazu@hxi.com>
13147
13148         * config/h8300/h8300.c (print_operand): Remove support for
13149         operand character 'A'.
13150         * config/h8300/h8300.md (three anonymous patterns): Replace
13151         operand character 'A' with either 'T' or 'S'.
13152
13153 2002-01-24  Kazu Hirata  <kazu@hxi.com>
13154
13155         * config/h8300/h8300.c (print_operand): Remove support for
13156         operand character 'U'.
13157
13158 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
13159
13160         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
13161
13162 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
13163
13164         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
13165         values to be assigned to the stack pointer.
13166
13167 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
13168
13169         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
13170         to const_double needs to be done right for big-endian systems.
13171
13172 2002-01-24  Jason Merrill  <jason@redhat.com>
13173
13174         PR c++/2432
13175         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
13176         to can_throw_internal.
13177
13178 2002-01-23  Richard Henderson  <rth@redhat.com>
13179
13180         * fold-const.c (fold): Change UINT_MAX test to check vs precision
13181         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
13182
13183 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13184
13185         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
13186         (symGOT2reg): Use them, then set as GOT value as unchanging.
13187         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
13188         as a temporary, if possible.
13189         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
13190         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
13191
13192 2002-01-23  Kazu Hirata  <kazu@hxi.com>
13193
13194         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
13195         accept to accept 0x80 as operands[2].
13196
13197 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13198
13199         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
13200
13201 2002-01-23  Richard Henderson  <rth@redhat.com>
13202
13203         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
13204
13205 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
13206
13207         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
13208         (parmlist_or_identifiers_1): Verify that only a parmlist follows
13209         an attribute.
13210
13211 2002-01-23  Richard Henderson  <rth@redhat.com>
13212
13213         * expr.c (move_by_pieces_1): Extend size before negation.
13214
13215         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
13216         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
13217         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
13218         * config/m68k/t-m68kelf: Likewise.
13219
13220 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
13221
13222         * config/xtensa/elf.h: New file.
13223         * config/xtensa/lib1funcs.asm: New file.
13224         * config/xtensa/lib2funcs.S: New file.
13225         * config/xtensa/linux.h: New file.
13226         * config/xtensa/t-xtensa: New file.
13227         * config/xtensa/xtensa-config.h: New file.
13228         * config/xtensa/xtensa-protos.h: New file.
13229         * config/xtensa/xtensa.c: New file.
13230         * config/xtensa/xtensa.h: New file.
13231         * config/xtensa/xtensa.md: New file.
13232         * config.gcc (xtensa-*-elf*): New target.
13233         (xtensa-*-linux*): New target.
13234         * cse.c (canon_hash): Compare rtx pointers instead of register
13235         numbers.  This is required for the Xtensa port.
13236         * integrate.c (copy_insn_list): Handle case where the static
13237         chain is in memory and the memory address has to be copied to
13238         a register.
13239         * doc/invoke.texi (Option Summary): Add Xtensa options.
13240         (Xtensa Options): New node.
13241         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
13242
13243 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
13244
13245         * diagnostic.c (internal_error): Do ICE suppression only
13246         when ENABLE_CHECKING is not defined.
13247
13248         * c-typeck.c (require_complete_type): Return error_mark_node
13249         if type is error_mark_node.
13250
13251 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
13252
13253         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
13254         -Os and issue a warning.
13255
13256 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
13257
13258         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
13259         current (lack of) need for host configuration by hand.
13260
13261         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
13262         references.  Documentation of some target macros moved from
13263         hostconfig.texi to tm.texi.
13264
13265 2002-01-23  Will Cohen  <wcohen@redhat.com>
13266
13267         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
13268         defined.
13269
13270 2002-01-23  Kazu Hirata  <kazu@hxi.com>
13271
13272         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
13273         operand[3].
13274
13275 2002-01-23  Jason Merrill  <jason@redhat.com>
13276
13277         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
13278
13279         * function.c (assign_parms): Don't put args of inline functions
13280         into registers when not optimizing.
13281
13282 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
13283
13284         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
13285         (prologue_use): New pattern.
13286         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
13287         preference to gen_rtx_USE.
13288         (thumb_expand_prologue): Use gen_prologue_use in preference to
13289         gen_rtx_USE.
13290         (thumb_expand_epilogue): Use gen_prologue_use in preference to
13291         gen_rtx_USE.
13292
13293 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
13294
13295         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
13296
13297 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13298
13299         PR c/3504
13300         * doc/extend.texi: Correct documentation of __alignof__.
13301
13302 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
13303
13304         * params.h: Rename arguments of DEFPARAM so that it will be
13305         recognized as a translation keyword.
13306
13307 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13308
13309         * extend.texi: Document altivec functions.
13310         Fix N-bit adjectives in X86 builtin documentation.
13311
13312 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
13313
13314         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
13315         auto_inc_dec values.
13316
13317 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
13318
13319         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
13320         after backslash.
13321         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
13322
13323 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
13324
13325         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
13326
13327 2002-01-22  Richard Henderson  <rth@redhat.com>
13328
13329         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
13330         copy_insn not copy_rtx.
13331
13332 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
13333
13334         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
13335         "nonzero" as that might add "1" bits.  Ensure "constop" is
13336         properly sign extened.
13337         (force_to_mode): Tweak for sign extended constop.
13338
13339 2002-01-22  Richard Henderson  <rth@redhat.com>
13340
13341         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
13342         for_each_rtx instead of assuming we're already looking at the MEM.
13343         (split_small_symbolic_mem_operand): Likewise.
13344         * config/alpha/alpha.h (PREDICATE_CODES): Update.
13345         * config/alpha/alpha.md (small symbolic memory splitters): Update.
13346
13347 2002-01-22  Richard Henderson  <rth@redhat.com>
13348
13349         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
13350         sequence number for the literal.
13351         (divmoddi_internal_er): Likewise.
13352
13353 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13354
13355         PR java/4972
13356         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
13357         in LIBICONV variable.
13358         * configure: Regenerated.
13359
13360 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
13361
13362         * dependence.c (build_def_use): Remove array_idx.
13363
13364         * dwarfout.c (last_filename): Remove.
13365         (output_compile_unit_die): Remove last_filename.
13366
13367 2002-01-22  Roger Sayle  <roger@eyesopen.com>
13368             Richard Henderson  <rth@redhat.com>
13369
13370         PR opt/3640
13371         * fold-const.c (fold): Optimize unsigned comparisons against
13372         UINT_MAX (and similar unsigned constants).
13373
13374 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
13375
13376         * Makefile.in (loop.o): Depend on OPTABS_H.
13377         * loop.c (emit_prefetch_instructions): Check the prefetch operand
13378         against the predicate.
13379
13380         PR target/5379
13381         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
13382         for the address operand.
13383
13384 2002-01-22  Richard Henderson  <rth@redhat.com>
13385
13386         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
13387
13388 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13389
13390         PR other/5450
13391         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
13392         preprocessor flags.
13393
13394 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
13395
13396         * config.gcc (x86_64-*-netbsd*): New target.
13397         * config/i386/netbsd64.h: New file.
13398
13399 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13400
13401         * regrename.c (kill_value): Fix typo.
13402
13403 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13404
13405         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
13406
13407         * config/rs6000/rs6000.h: Same.
13408
13409         * function.c (instantiate_virtual_regs): Remove
13410         STARTING_FRAME_PHASE.
13411         (assign_stack_local_1): Same.
13412         Calculate frame phase.
13413
13414 2002-01-22  Nick Clifton  <nickc@redhat.com>
13415
13416         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
13417         variable declaration to outer scope in order to simplify
13418         future extensions.
13419         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
13420         arm_hard_regno_mode_ok.
13421         * config/arm/arm-protos.h: Add a prototype for
13422         arm_hard_regno_mode_ok.
13423         * config/arm/arm.c (soft_df_operand): Remove now redundant
13424         check for DImode values using IP_REGNUM.
13425         (nonimmediate_soft_df_operand): Remove now redundant check for
13426         DImode values using IP_REGNUM.
13427         (arm_hard_regno_mode_ok): New function. New check: make sure
13428         that DImode values are not stored in IP_REGNUM.
13429
13430         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
13431         note with a USE.
13432         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
13433
13434 2002-01-22  Jason Merrill  <jason@redhat.com>
13435
13436         * c-semantics.c (genrtl_compound_stmt): Only check nesting
13437         consistency if this COMPOUND_STMT is scoped.
13438
13439 2002-01-22  Kazu Hirata  <kazu@hxi.com>
13440
13441         * predict.c: Fix formatting.
13442         * print-tree.c: Likewise.
13443         * protoize.c: Likewise.
13444         * real.h: Likewise.
13445         * rtl.h: Likewise.
13446         * sbitmap.h: Likewise.
13447         * scan.c: Likewise.
13448         * sched-deps.c: Likewise.
13449         * sched-vis.c: Likewise.
13450         * sdbout.c: Likewise.
13451         * sibcall.c: Likewise.
13452         * ssa.c: Likewise.
13453         * ssa-ccp.c: Likewise.
13454         * ssa-dce.c: Likewise.
13455         * stmt.c: Likewise.
13456         * stor-layout.c: Likewise.
13457         * system.h: Likewise.
13458
13459 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13460
13461         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
13462         if fits in bounds of base type.
13463
13464         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
13465         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
13466         (add_bound_info, default): If can't find a context, make a
13467         SAVE_EXPR.
13468         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
13469
13470 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
13471
13472         * c-typeck.c (parser_build_binary_op): If result from
13473         build_binary_op is ERROR_MARK just return error_mark_node without
13474         further processing.
13475
13476 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
13477
13478         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
13479         Split a.out-specific bits into...
13480         * config/netbsd-aout.h: ...this.
13481         * config/netbsd-elf.h: New file.
13482         * config/alpha/netbsd-elf.h: Remove.
13483         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
13484         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
13485         (STARTFILE_SPEC): Remove redundant definition.
13486         (ENDFILE_SPEC): Likewise.
13487         (LINK_SPEC): Likewise.
13488         (CPP_SPEC): Likewise.
13489         (ASM_SPEC): Likewise.
13490         (LIB_SPEC): Likewise.
13491         (SWITCH_TAKES_ARG): Likewise.
13492         (TARGET_MEM_FUNCTIONS): Likewise.
13493         (CPP_PREDEFINES): Redefine.
13494         (ASM_FINAL_SPEC): Remove redefinition.
13495         (ASM_COMMENT_START): Redefine.
13496         (FUNCTION_PROFILER): Define.
13497         (TARGET_VERSION): Redefine.
13498         Comment and formatting cleanup.
13499         * config/i386/netbsd.h: Include <netbsd-aout.h>.
13500         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
13501         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
13502         big- or little-endian.
13503         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
13504         * config.gcc (*-*-netbsd*): Add definitions common to all
13505         NetBSD configs.
13506         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
13507         gnu_ld definitions.  Add netbsd-elf.h to and remove
13508         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
13509         tmake_file, and don't lose previous tmake_file contents.
13510         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
13511         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
13512         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
13513         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
13514         (mipsel-*-netbsd*): Rename this to...
13515         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
13516         mips/little.h to tm_file for mips*el-*.
13517         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
13518         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
13519         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
13520
13521 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13522
13523         * pa-protos.h (reg_before_reload_operand): New function prototype.
13524         * pa.c (reg_before_reload_operand): New function implementation.
13525         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
13526         contraints to "*m".
13527
13528 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13529
13530         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
13531
13532 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13533
13534         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
13535         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
13536         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
13537         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
13538         (ENDFILE_SPEC): Undefine.
13539         (STARTFILE_SPEC): Redefine for PA.
13540
13541 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13542
13543         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
13544
13545 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
13546
13547         * config.gcc: Add entries to supported PowerPC --with-cpu
13548         types.
13549
13550 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
13551
13552         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
13553         true for 64-bit mode only SSE registers in 32-bit mode.
13554
13555 2002-01-21  Kazu Hirata  <kazu@hxi.com>
13556
13557         * unwind-dw2.c: Fix formatting.
13558         * unwind-dw2-fde.c: Likewise.
13559         * unwind-dw2-fde.h: Likewise.
13560         * unwind-pe.h: Likewise.
13561         * varasm.c: Likewise.
13562         * varray.h: Likewise.
13563
13564 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
13565
13566         Remove workaround for register stack overwrite bug in mmix.
13567         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
13568         support for TARGET_REG_STACK_FILL_BUG.
13569         * config/mmix/mmix.h: Remove member has_call_without_parameters.
13570         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
13571         Delete.
13572         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
13573         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
13574         -mno-reg-stack-fill-bug-workaround.
13575         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
13576         machine member has_call_without_parameters.
13577         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
13578         -mreg-stack-fill-bug-workaround and
13579         -mno-reg-stack-fill-bug-workaround.
13580         (MMIX Options): Ditto.
13581
13582 2002-01-21  Kazu Hirata  <kazu@hxi.com>
13583
13584         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
13585         as appropriate.
13586         Remove redundant code.
13587
13588 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
13589
13590         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
13591         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
13592         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
13593         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
13594         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
13595         out target macro definitions and non-target-specific comments
13596         mostly taken from old versions of the manual.
13597
13598 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13599
13600         * config/h8300/h8300.h: Fix comment formatting.
13601         * config/ia64/aix.h: Likewise.
13602         * config/ia64/ia64-protos.h: Likewise.
13603         * config/ia64/ia64.c: Likewise.
13604         * config/ia64/ia64.h: Likewise.
13605         * config/ia64/ia64intrin.h: Likewise.
13606         * config/ia64/linux.h: Likewise.
13607         * config/ia64/unwind-aix.c: Likewise.
13608         * config/ia64/unwind-ia64.c: Likewise.
13609
13610 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13611
13612         * config/h8300/h8300.c: Revise comments about shift code.
13613
13614 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13615
13616         * config/h8300/h8300.c (function_arg): Update a comment.
13617
13618 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13619
13620         * config/h8300/h8300.md: Update the comments at the beginning
13621         of the file.
13622
13623 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13624
13625         * config/i370/i370.c: Fix comment formatting.
13626         * config/i370/i370.h: Likewise.
13627         * config/i370/i370.md: Likewise.
13628         * config/i370/linux.h: Likewise.
13629
13630 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13631
13632         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
13633
13634         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
13635         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
13636         in incomplete case.
13637
13638 2002-01-20  Graham Stott  <grahams@redhat.com>
13639
13640         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
13641
13642 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13643
13644         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
13645
13646 2002-01-19  Tom Rix  <trix@redhat.com>
13647
13648         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
13649
13650 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
13651
13652         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
13653
13654         * function.c (assign_stack_local_1): Adjust x_frame_offset with
13655         STARTING_FRAME_PHASE.
13656         (STARTING_FRAME_PHASE): New.
13657         (instantiate_virtual_regs): Check saneness of
13658         STARTING_FRAME_PHASE.
13659
13660         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
13661
13662 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
13663
13664         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
13665
13666 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13667
13668         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
13669         be used for bootstrapping GCC 3.0.
13670
13671 2002-01-18  Kazu Hirata  <kazu@hxi.com>
13672
13673         * config/h8300/h8300.md: Fix an insn length.
13674
13675 2002-01-18  Kazu Hirata  <kazu@hxi.com>
13676
13677         * bitmap.h: Fix comment formatting.
13678         * combine.c: Likewise.
13679         * cppfiles.c: Likewise.
13680         * c-pragma.h: Likewise.
13681         * c-typeck.c: Likewise.
13682         * df.c: Likewise.
13683         * dwarf2out.c: Likewise.
13684         * function.c: Likewise.
13685         * gcc.c: Likewise.
13686         * genattrtab.c: Likewise.
13687         * gthr-win32.h: Likewise.
13688         * haifa-sched.c: Likewise.
13689         * predict.c: Likewise.
13690         * rtlanal.c: Likewise.
13691         * rtl.h: Likewise.
13692         * unwind-dw2-fde.h: Likewise.
13693         * unwind-pe.h: Likewise.
13694         * vmsdbgout.c: Likewise.
13695
13696 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13697
13698         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
13699         if type_required and passed decl.
13700
13701 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
13702
13703         * config.gcc (cpu_type): Include altivec.h in powerpc
13704         extra_headers.
13705         Same for darwin.
13706
13707         * config/rs6000/altivec.h: New.
13708
13709 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
13710
13711         * doc/install.texi (*-ibm-aix*): Update assembler and exception
13712         handling information.
13713         * doc/trouble.texi (Interoperation): Add libstdc++ information
13714         for AIX.
13715         (Misunderstandings): Add template instantiation and static template
13716         member information for AIX.
13717
13718 2002-01-17  Jason Merrill  <jason@redhat.com>
13719
13720         * dbxout.c (dbxout_type): Support const and volatile.
13721
13722         * except.c (add_partial_entry): Remove backwards compatibility code.
13723         (end_protect_partials): Likewise.
13724
13725 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
13726
13727         * config/ia64/ia64.md (prologue_use): New.
13728         * config/ia64/ia64.c (ia64_expand_prologue): Use
13729         gen_prologue_use instead of gen_rtx_USE.
13730         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
13731         as CODE_FOR_pred_rel_mutex.
13732         (ia64_sched_reorder2): Likewise.
13733
13734 2002-01-16  Eric Christopher  <echristo@redhat.com>
13735
13736         * config/mips/r3900.h: Reformat.
13737         (SUBTARGET_CPP_SIZE_SPEC): Remove.
13738         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
13739         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
13740         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
13741         * config/mips/t-elf: Remove mips3 multilib.
13742
13743 2002-01-16  H.J. Lu <hjl@gnu.org>
13744
13745         * config/mips/linux.h: Include "mips/abi64.h".
13746
13747 2002-01-16  H.J. Lu <hjl@gnu.org>
13748
13749         * config/mips/t-linux: New.
13750
13751         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
13752
13753         * config/mips/linux.h: Don't include "gofast.h".
13754         (INIT_SUBTARGET_OPTABS): Removed.
13755
13756 2002-01-16  Kazu Hirata  <kazu@hxi.com>
13757
13758         * config/h8300/h8300-protos.h: Replace emit_a_shift with
13759         output_a_shift.
13760         * config/h8300/h8300.c: Likewise.
13761         * config/h8300/h8300.md: Likewise.
13762
13763 2002-01-16  Kazu Hirata  <kazu@hxi.com>
13764
13765         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
13766         spaces after an opcode name.
13767         (pushqi1_h8300hs): Likewise.
13768         (pushhi1_h8300hs): Likewise.
13769
13770 2002-01-16  Kazu Hirata  <kazu@hxi.com>
13771
13772         * doc/extend.texi: Replace "option" with "attribute"
13773         appropriately.
13774
13775 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
13776
13777         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
13778         (and:DI () (const_int -8)).
13779         (split_small_symbolic_mem_operand): Split
13780         (mem (and:DI () (const_int -8)).
13781
13782 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
13783
13784         PR target/5309:
13785         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
13786         same way as TYPE_IMUL.
13787         (ultrasparc_sched_reorder): Likewise.
13788         * config/sparc/sparc.md (type): Add comment to update
13789         ultrasparc_sched_reorder when making changes.
13790
13791 2002-01-16  Kazu Hirata  <kazu@hxi.com>
13792
13793         * doc/invoke.texi: Change the dump file name of block
13794         reordering pass from 28.bbro to 29.bbro.
13795         Mention -dk option.
13796
13797 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
13798
13799         * i386.md (minsf splitter): Fix pasto.
13800
13801 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
13802
13803         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
13804         to frame pointer initialisation instruction.
13805         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
13806         initialisation instruction.
13807         (soft_df_operand): Do not accept the IP register.
13808         (nonimmediate_soft_df_operand): Do not accept the IP register.
13809
13810 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
13811
13812         PR target/5357:
13813         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
13814         MASK_V8 being both set.
13815
13816 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
13817
13818         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
13819         insn for GOT register; add REG_MAYBE_DEAD notes instead.
13820         config/s390/s390.md (call, call_value): Add GOT register to
13821         CALL_INSN_FUNCTION_USAGE where needed.
13822         (call_exp, call_value_exp): New.
13823
13824 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
13825
13826         * config/arm/arm.c: General formatting tidy up.
13827
13828 2002-01-16  Graham Stott  <grahams@redhat.com>
13829
13830         * calls.c (try_to_integrate): Use "(size_t)" intermediate
13831         cast and when casting an integer literal to "rtx" pointer.
13832         (expand_call): Likewise.
13833         * flow.c (try_pre_increment): Likewise.
13834         (find_use_as_address): Likewise.
13835         * integrate.c (expand_iline_function): Likewise.
13836         * regmove.c (try_auto_increment): Likewise.
13837
13838 2002-01-16  Graham Stott  <grahams@redhat.com>
13839
13840         * sched-rgn.c (passed): Use sbitmap_free.
13841         (header): Likewise.
13842         (inner): Likewise.
13843         (in_queue): Likewise.
13844         (in_stack): Likewise.
13845
13846 2002-01-15  Eric Christopher  <echristo@redhat.com>
13847
13848         * flow.c (propagate_one_insn): Change to use fatal_insn.
13849
13850 2002-01-15  Kazu Hirata  <kazu@hxi.com>
13851
13852         * expmed.c (extract_fixed_bit_field): Remove unused code.
13853         * system.h: Poison SLOW_ZERO_EXTEND.
13854         * doc/tm.texi: Remove.
13855         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
13856         * config/arm/arm.h: Likewise.
13857         * config/avr/avr.h: Likewise.
13858         * config/clipper/clipper.h: Likewise.
13859         * config/convex/convex.h: Likewise.
13860         * config/d30v/d30v.h: Likewise.
13861         * config/dsp16xx/dsp16xx.h: Likewise.
13862         * config/elxsi/elxsi.h: Likewise.
13863         * config/fr30/fr30.h: Likewise.
13864         * config/h8300/h8300.h: Likewise.
13865         * config/i370/i370.h: Likewise.
13866         * config/i386/i386.h: Likewise.
13867         * config/m68k/m68k.h: Likewise.
13868         * config/mips/mips.h: Likewise.
13869         * config/ns32k/ns32k.h: Likewise.
13870         * config/pdp11/pdp11.h: Likewise.
13871         * config/pj/pj.h: Likewise.
13872         * config/s390/s390.h: Likewise.
13873         * config/sh/sh.h: Likewise.
13874         * config/stormy16/stormy16.h: Likewise.
13875         * config/v850/v850.h: Likewise.
13876         * config/vax/vax.h: Likewise.
13877         * config/we32k/we32k.h: Likewise.
13878
13879 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
13880
13881         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
13882         (altivec_lvsl): Change constraint to b.
13883         (altivec_lvsr): Same.
13884         (altivec_lvebx): Same.
13885         (altivec_lvehx): Same.
13886         (altivec_lvewx): Same.
13887         (altivec_lvxl): Same.
13888         (altivec_lvx): Same.
13889         (altivec_stvx): Add parallel.
13890         (altivec_stvxl): Same.
13891         (altivec_stvehx): Same.
13892         (altivec_stvebx): Same.
13893         (altivec_stvebx): Same.
13894
13895 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
13896
13897         * config.gcc: Change altivec.h to altivec-defs.h.
13898
13899         * config/rs6000/altivec.h: Delete.
13900
13901         * config/rs6000/altivec-defs.h: Add.
13902
13903 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13904
13905         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
13906         and UMOD modes.
13907
13908         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
13909         less than or equal to eight bytes.
13910
13911         * vax.md (andsi3): Remove constraints and change SET destination
13912         operand type to nonimmediate_operand.
13913         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
13914         when it is a CONST_INT.
13915
13916 2002-01-15  Jason Merrill  <jason@redhat.com>
13917
13918         * c-common.def (FILE_STMT): New code.
13919         * c-common.c (statement_code_p): It's a statement.
13920         * c-common.h (stmt_tree_s): Add x_last_filename.
13921         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
13922         (last_expr_filename): New macro.
13923         * c-semantics.c (begin_stmt_tree): Initialize it.
13924         (add_stmt): If the filename changed, also insert a
13925         FILE_STMT.
13926         (expand_stmt): Handle seeing one.
13927
13928 2002-01-15  Eric Christopher  <echristo@redhat.com>
13929
13930         * flow.c (propagate_one_insn): Add error message and print out
13931         insn for debugging.
13932
13933 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
13934
13935         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
13936         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
13937         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
13938         TRAMPOLINE_ALIGNMENT.
13939         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
13940         to be in bits.
13941         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
13942         PCC_BITFIELD_TYPE_MATTERS.
13943         * config/interix.h (STDC_VALUE): Remove.  Use
13944         STDC_0_IN_SYSTEM_HEADERS.
13945         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
13946         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
13947         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
13948
13949 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13950
13951         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
13952         not work on this platform currently.
13953
13954 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
13955
13956         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
13957         readonly_warning in _().
13958
13959 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
13960
13961         * gcc.c (delete_if_ordinary): Backout previous change.
13962
13963 2002-01-15  Kazu Hirata  <kazu@hxi.com>
13964
13965         * config/h8300/h8300.c (print_operand): Remove support for
13966         unused operand characters.
13967
13968         * read-rtl.c: Fix formatting.
13969         * real.c: Likewise.
13970         * recog.c: Likewise.
13971         * regclass.c: Likewise.
13972         * regmove.c: Likewise.
13973         * reg-stack.c: Likewise.
13974         * reload1.c: Likewise.
13975         * rtlanal.c: Likewise.
13976
13977 2002-01-15  Kazu Hirata  <kazu@hxi.com>
13978
13979         * config/i386/i386.c: Fix formatting.
13980
13981 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
13982
13983         * c-typeck.c (process_init_element): Don't save_expr
13984         COMPOUND_LITERAL_EXPR if just its initializer will be used.
13985
13986 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
13987
13988         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
13989         emit optional traceback table if optimize_size or TARGET_ELF.
13990         * config/rs6000/rs6000.md (prefetch): New.
13991
13992 2002-01-15  Andreas Jaeger  <aj@suse.de>
13993
13994         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
13995
13996 2002-01-15  Kazu Hirata  <kazu@hxi.com>
13997
13998         * mips-tfile.c: Fix formatting.
13999
14000 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
14001
14002         * unroll.c (final_reg_note_copy): Fix previous commit.
14003
14004 2002-01-14  Kazu Hirata  <kazu@hxi.com>
14005
14006         * config/h8300/h8300-protos.h: Remove the prototype for
14007         eq_operator.
14008         * config/h8300/h8300.c (eq_operator): Remove.
14009
14010 2002-01-14  Richard Henderson  <rth@redhat.com>
14011
14012         * config/i386/i386.md (prefetch): Tidy.
14013         (prefetch_3dnow): Fix locality operand.
14014
14015 2002-01-14  Richard Henderson  <rth@redhat.com>
14016
14017         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
14018         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
14019
14020 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
14021
14022         * reload1.c (reload_combine): Pass reg_sum replacement through
14023         copy_rtx in loop performing multiple changes.
14024
14025 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
14026
14027         * except.c (remove_unreachable_regions): New.
14028         (free_eh_status): Clear exception_handler_labels.
14029         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
14030         (find_exception_handler_labels): Don't add the same label more than
14031         once.
14032         (remove_exception_handler_label): Don't die if
14033         find_exception_handler_labels hasn't been called for the current
14034         function yet.
14035
14036 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
14037
14038         * toplev.c (rest_of_compilation): Rebuild jump labels after
14039         gcse.
14040
14041 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
14042
14043         * doc/extend.texi: Move documentation of X86 built-in functions
14044         here.
14045         * doc/invoke.texi: From here.
14046         * doc/sourcebuild.texi: Document location of documentation for
14047         machine built-in functions.
14048
14049 2002-01-13  Christopher Faylor  <cgf@redhat.com>
14050
14051         * cppfiles.c (TEST_THRESHOLD): New macro.
14052         (SHOULD_MMAP): Ditto.
14053         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
14054         be used.
14055
14056 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
14057
14058         * unroll.c (final_reg_note_copy): Properly handle
14059         REG_LABEL
14060         (unroll_loops): Fix LOOP_CONDITION heuristics.
14061
14062 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
14063
14064         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
14065         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
14066
14067 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
14068
14069         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
14070         threaded loop.
14071
14072 2002-01-14  Tom Rix  <trix@redhat.com>
14073
14074         * config/rs6000/rs6000.md: Fix typo with sradi.
14075
14076 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
14077
14078         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
14079         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
14080         (clrstrdi, clrstrsi): Adapt callers.
14081
14082         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
14083
14084         (movti splitter): Never use register 0 as base register.
14085
14086 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
14087
14088         * combine.c (simplify_shift_const): Always generate new rtx
14089         for shift expression instead of reusing given expression.
14090
14091 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14092
14093         * config/alpha/alpha.c (alpha_expand_mov): Don't call
14094         alpha_legitimize_address unless mode is Pmode.
14095
14096 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
14097
14098         * doc/md.texi (Modifiers): Document the '*' constraint for the
14099         user.
14100
14101         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
14102         * doc/extend.texi (Function Attributes): 'interrupt' is valid
14103         for xstormy16 too.
14104
14105 2002-01-13  Richard Henderson  <rth@redhat.com>
14106
14107         * reload.c (find_reloads): Use a hard reg destination as reload reg
14108         for an input reload of the source.
14109
14110 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14111
14112         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
14113         more generic.
14114
14115 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
14116
14117         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
14118         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
14119
14120         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
14121
14122 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14123
14124         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
14125
14126 2002-01-12  Tom Rix  <trix@redhat.com>
14127
14128         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
14129         TARGET_POWERPC64.
14130
14131 2002-01-12  Richard Henderson  <rth@redhat.com>
14132
14133         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
14134
14135         * doc/invoke.texi: Update Alpha options.
14136
14137         * doc/invoke.texi: Update i386 built-in function lists.
14138
14139 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
14140
14141         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
14142         referencing outside.
14143
14144 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14145
14146         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
14147         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
14148         offsets, and change line folding.
14149         * optabs.c (expand_binop): Remove warnings.
14150         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
14151
14152 2002-01-12  Graham Stott <grahams@redhat.com>
14153
14154         * attribs.c (handle_deprecated_attribute): constify WHAT.
14155         * diagnostic.c (warn_deprecated_use): Add braces, fixes
14156         dangling else warning and constify WHAT.
14157         * except.h (struct function, struct inline_remap): Move
14158         struct tag forward defs before all prototypes.
14159         (duplicate_eh_regions): Whitespace.
14160
14161 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
14162
14163         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
14164         MODE_BASE_REG_CLASS.
14165         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
14166
14167 2002-01-12  Richard Henderson  <rth@redhat.com>
14168
14169         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
14170         (ix86_expand_vector_move): New.
14171         (bdesc_2arg): Remove andps, andnps, orps, xorps.
14172         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
14173         Remove old prefetch builtins.  Special case the logicals removed above.
14174         (ix86_expand_builtin): Likewise.
14175         (safe_vector_operand): Use V4SFmode, not TImode.
14176         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
14177         (ix86_expand_timode_binop_builtin): New.
14178         * config/i386/i386-protos.h: Update.
14179         * config/i386/i386.h (enum ix86_builtins): Update.
14180         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
14181         Use ix86_expand_vector_move in vector move expanders.
14182         (movti_internal, movti_rex64): Add xorps alternative.
14183         (sse_clrv4sf): Rename and adjust from sse_clrti.
14184         (prefetch): Don't work so hard.
14185         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
14186         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
14187         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
14188
14189 2002-01-11  Richard Henderson  <rth@redhat.com>
14190
14191         * config/i386/mmintrin.h: New file.
14192         * config/i386/xmmintrin.h: New file.
14193         * config.gcc (i?86-*-*): Add extra_headers.
14194         * simplify-rtx.c (simplify_unary_operation): Handle saturating
14195         truncation codes.
14196         (simplify_binary_operation): Handle saturating arithmetic codes.
14197         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
14198         not the lowpart subreg.
14199         (ix86_expand_builtin): Return a TImode dummy register instead of 0
14200         on error.
14201         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
14202
14203 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14204
14205         * conflict.c (conflict_graph_compute): Free regsets when finished.
14206         * ssa.c (compute_coalesced_reg_partition): Likewise.
14207
14208 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14209
14210         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
14211         every where we allocate a register.
14212
14213 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14214
14215         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
14216         * lcm.c (compute_earliest, compute_farthest): Likewise.
14217
14218 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
14219
14220         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
14221
14222 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
14223
14224         * doc/rtl.texi (Insns): Fix 2 typos.
14225
14226 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
14227
14228         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
14229         options.  Use @table @gcctabopt for MMIX options.  Add index
14230         entries for MMIX options.  Start new paragraph with first
14231         heading of the machine-dependent options.
14232
14233 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14234
14235         PR other/5299
14236         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
14237         * combine.c (force_to_mode): Same.
14238         * reload1.c (clear_reload_reg_in_use): Same.
14239
14240 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
14241
14242         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
14243         and 'subtargets'.
14244
14245 2002-01-11  Andreas Jaeger  <aj@suse.de>,
14246             Brad Lucier <lucier@math.purdue.edu>
14247
14248         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
14249         mcpu.
14250
14251 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
14252
14253         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
14254         Protect with IN_LIBGCC.
14255         (LINK_EH_SPEC): Add required trailing space.
14256
14257 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
14258
14259         * c-tree.h: Move function declarations so that they are listed
14260         under the filename which contains them.
14261         (check_identifier, finish_decl_top_level,
14262         lookup_name_current_level_global, shadow_record_fields): Remove.
14263
14264 2002-01-11  Andreas Jaeger  <aj@suse.de>
14265
14266         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
14267         march.
14268
14269 2002-01-10  Richard Henderson  <rth@redhat.com>
14270
14271         * config/alpha/alpha.c (print_operand): Add 'J'.
14272         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
14273         new operand with the sequence number for the lituse.  When splitting
14274         the insns, use gen_movdi_er_high_g and generate a sequence number.
14275         (gen_movdi_er_high_g): Print the sequence number if non-zero.
14276
14277 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
14278
14279         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
14280         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
14281         stvxl.
14282         (altivec_expand_builtin): Same.
14283         (altivec_expand_stv_builtin): New.
14284
14285         * config/rs6000/rs6000.h (rs6000_builtins): Same.
14286
14287         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
14288         ("altivec_lvehx"): New.
14289         ("altivec_lvewx"): New.
14290         ("altivec_lvxl"): New.
14291         ("altivec_lvx"): New.
14292         ("altivec_stvx"): New.
14293         ("altivec_stvebx"): New.
14294         ("altivec_stvehx"): New.
14295         ("altivec_stvewx"): New.
14296         ("altivec_stvxl"): New.
14297
14298 2002-01-10  Richard Henderson  <rth@redhat.com>
14299
14300         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
14301         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
14302         care not to delete instructions twice.
14303
14304 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
14305
14306         * toplev.c: Don't declare environ (it's not used anywhere).
14307         * configure.in: Don't check for declaration of environ.
14308         * config/i386/xm-mingw32.h: Don't #define environ.
14309         * config.in, configure: Regenerate.
14310
14311 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
14312
14313         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
14314         * configure: Regenerate.
14315
14316         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
14317         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
14318         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
14319         alpha/xm-vms.h.
14320         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
14321         LIMITS_H_TEST here, not in m68k/x-next.
14322         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
14323         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
14324
14325         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
14326         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
14327         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
14328
14329         * config/i386/x-djgpp: Renamed i386/t-djgpp.
14330         * config/m88k/x-dolph: Renamed m88k/t-dolph.
14331         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
14332         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
14333         replacement of quadlib.asm with quadlib.c.
14334
14335         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
14336         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
14337         config/rs6000/xm-beos.h: Delete file.
14338
14339         * config.gcc: Update to match above changes.
14340
14341 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14342
14343         * config/h8300/h8300.h: Fix comment typos.
14344         * config/h8300/h8300.md: Likewise.
14345         * config/h8300/lib1funcs.asm: Likewise.
14346
14347 2002-01-10  Dale Johannesen  <dalej@apple.com>
14348
14349         PR optimization/5269
14350         * unroll.c (precondition_loop_p): Make *increment be the correct
14351         sign when n_iterations known, to avoid confusing caller.
14352
14353 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14354
14355         * doc/extend.texi (deprecated): Fix a typo.
14356
14357 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
14358
14359         * basic-block.h (update_br_prob_note): Declare.
14360         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
14361         (try_forward_edges): Care negative frequencies and update note.
14362         (outgoing_edges_match): Tweek conditional merging heuristics.
14363         (try_crossjump_to_edge): use update_br_prob_note.
14364         * cfglayout.c (fixup_reorder_chain): Likewise.
14365         * cfrtl.c (update_br_prob_note): New.
14366         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
14367
14368         * i386.c (ix86_decompose_address): Return -1 if address contains
14369         shift.
14370         (legitimate_address_p): Require ix86_decompose_address to return 1.
14371
14372         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
14373         (cprop_insn): Likewise.
14374
14375 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14376
14377         * toplev.c: Fix formatting.
14378         * tree.c: Likewise.
14379         * tree-dump.c: Likewise.
14380         * unroll.c: Likewise.
14381         * unwind-dw2.c: Likewise.
14382         * unwind-dw2-fde.c: Likewise.
14383         * unwind-dw2-fde-glibc.c: Likewise.
14384         * unwind-sjlj.c: Likewise.
14385
14386 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
14387
14388         * doc/invoke.texi: Document PDP-11 options.
14389
14390 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14391
14392         * config/h8300/h8300.h: Fix formatting.
14393
14394 2002-01-10  Ira Ruben   <ira@apple.com>
14395
14396         Add __attribute__ ((deprecated)).
14397         * extend.texi: Document __attribute__ ((deprecated)).
14398         * invoke.texi: Document -Wno-deprecated-declarations.
14399         * testsuite/g++.dg/other/deprecated.C: New C++ test.
14400         * testsuite/gcc.dg/deprecated.c: New C test.
14401         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
14402         (c_common_attribute_table): Add "deprecated" entry.
14403         (handle_deprecated_attribute): New function.
14404         * c-decl.c (deprecated_states): New enum.
14405         deprecated_state: State of "deprecated" handling.
14406         (start_decl): Set deprecated_state based on attributes.
14407         (grokdeclarator): Test for deprecated uses, propagate attribute.
14408         * c-typeck.c (build_component_ref): Test for deprecated fields.
14409         (build_external_ref): Test for deprecated primaries.
14410         * diagnostic.c (warn_deprecated_use) New function to issue
14411         warnings about __attribute__ ((depricated)) references.
14412         * flags.h (warn_deprecated_decl): Extern declared for
14413         -W[no-]deprecated-declarations option.
14414         * print-tree.c (print_node): Show deprecated flag status.
14415         * toplev.c (warn_deprecated_decl): Defined.
14416         (W_options): Added "deprecated-declaration".
14417         * toplev.h (warn_deprecated_use): Extern declared.
14418         * tree.h (struct tree_common): Define deprecated_flag.
14419         (TREE_DEPRECATED): New macro to access flag.
14420         * cp/call.c (build_call): Test for deprecated calls.
14421         * cp/class.c (add_implicitly_declared_members): Set global
14422         flag to tell grokdeclarator to not issue deprecated warnings.
14423         * cp/cp-tree.h: Add extern for adding_implicit_members.
14424         * cp/decl.c (deprecated_states): New enum.
14425         (start_decl): Set deprecated_state based on attributes.
14426         (grokdeclarator): Test for deprecated uses, propagate attribute.
14427         * cp/lex.c (do_identifier): Test for deprecated primaries.
14428         * cp/typeck.c (build_component_ref): Test for deprecated fields.
14429
14430 2002-01-10  Ira Ruben   <ira@apple.com>
14431
14432         Fix to assign attributes to inline member functions.
14433         * cp/decl.c (start_method): Handle attrlist.
14434
14435 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14436
14437         * combine.c (expand_field_assignment): Use subreg_lsb().
14438
14439 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
14440
14441         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
14442         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
14443         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
14444         Recurse for any operand of AND as long as constant is non-zero.
14445
14446 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14447
14448         * config/h8300/h8300.md: Remove constraints from expanders.
14449
14450 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14451
14452         * varasm.c: Fix formatting.
14453         * varray.c: Likewise.
14454         * vmsdbgout.c: Likewise.
14455         * xcoffout.c: Likewise.
14456
14457 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
14458
14459         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
14460         update edge probabilities to match.
14461
14462 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
14463
14464         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
14465         dependencies.
14466         * doc/languages.texi, doc/sourcebuild.texi: New files.
14467         * doc/configfiles.texi: Make a subsubsection.  Update.
14468         * doc/configterms.texi: Add @node.  Remove warning that this isn't
14469         instructions for building GCC.
14470         * doc/makefile.texi: Make a subsection.
14471         * doc/gccint.texi: Update.
14472
14473 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
14474
14475         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
14476
14477 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
14478
14479         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
14480
14481 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
14482
14483         * optabs.c (expand_fix): Look for wider integer modes first.
14484
14485         * i386.md (mov?f): Avoid the fake const double trick for medium
14486         memory model.
14487         (min?f*/max?f*): Prohibit memory operands for i387 variant.
14488         (fop_df_4): Disable for SSE compilation.
14489
14490 2002-01-10  Graham Stott  <grahams@redhat.com>
14491
14492         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
14493         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
14494
14495 2002-01-10  Richard Henderson  <rth@redhat.com>
14496
14497         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
14498
14499 2002-01-10  Richard Henderson  <rth@redhat.com>
14500
14501         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
14502         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
14503
14504 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14505
14506         * combine.c (can_combine_p): Fix a comment typo.
14507
14508 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
14509
14510         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
14511         empty list correctly.  Change loop index $t to $f for
14512         consistency with rest of Makefile.
14513
14514 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
14515
14516         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
14517         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
14518
14519         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
14520         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
14521         (altivec_init_builtins): Same.
14522         (altivec_expand_unop_builtin): Return NULL_RTX on error.
14523         (altivec_expand_binop_builtin): Same.
14524         (altivec_expand_ternop_builtin): Same.
14525         (bdesc_dst): New.
14526
14527         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
14528         ("altivec_vctuxs"): Fix typo.
14529         ("altivec_vnmsubfp"): Same.
14530         ("altivec_dssall"): New.
14531         ("altivec_mfvscr"): New.
14532         ("altivec_dss"): New.
14533         ("altivec_lvsl"): New.
14534         ("altivec_lvsr"): New.
14535         ("altivec_dstt"): New.
14536         ("altivec_dstst"): New.
14537         ("altivec_dststt"): New.
14538         ("altivec_dst"): New.
14539
14540         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
14541         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
14542
14543 2002-01-09  Richard Henderson  <rth@redhat.com>
14544
14545         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
14546
14547 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
14548
14549         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
14550         function.
14551         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
14552         prototype.
14553         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
14554
14555 2002-01-09  Kazu Hirata  <kazu@hxi.com>
14556
14557         * read-rtl.c: Fix formatting.
14558         * real.c: Likewise.
14559         * regclass.c: Likewise.
14560         * regrename.c: Likewise.
14561         * reg-stack.c: Likewise.
14562         * reload1.c: Likewise.
14563         * reload.c: Likewise.
14564         * rtl.c: Likewise.
14565
14566 2002-01-09  Kazu Hirata  <kazu@hxi.com>
14567
14568         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
14569         to extract items in the expr_list chain.
14570
14571 2002-01-09  Richard Henderson  <rth@redhat.com>
14572
14573         * config/vax/vax.c (vax_rtx_cost): Never abort.
14574
14575         * config/vax/vax.h (REAL_ARITHMETIC): Define.
14576
14577 2002-01-09  Jan Hubicka  <jh@suse.cz>
14578
14579         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
14580
14581 2002-01-09  Richard Henderson  <rth@redhat.com>
14582
14583         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
14584         Unify code from various alternatives.
14585
14586 2002-01-09  Richard Henderson  <rth@redhat.com>
14587
14588         * regrename.c (copy_value): Ignore the copy if the source register
14589         is present in the value chain with a narrower mode.
14590
14591 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
14592
14593         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
14594         for the c4x target. Also improve layout.
14595
14596 2002-01-09  Richard Henderson  <rth@redhat.com>
14597
14598         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
14599         * config/m32r/m32r.md (and ior xor splitters): Swap operands
14600         to match insn patterns.
14601
14602 2002-01-09  Richard Henderson  <rth@redhat.com>
14603
14604         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
14605         (copyprop_hardreg_forward_1): Likewise.
14606
14607 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14608
14609         * pa.md (decrement_and_branch_until_zero): Change predicate for
14610         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
14611
14612 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
14613
14614         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
14615         gets undefined. For Darwin.
14616
14617 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14618
14619         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
14620
14621 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14622
14623         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
14624
14625 2002-01-08  Richard Henderson  <rth@redhat.com>
14626
14627         * regrename.c (copy_value): Ignore overlapping copies.
14628
14629 2002-01-08  Richard Henderson  <rth@redhat.com>
14630
14631         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
14632         as needed to avoid shared structure.
14633
14634 2002-01-08  Kazu Hirata  <kazu@hxi.com>
14635
14636         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
14637         H8/300H and H8/S.
14638
14639 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
14640
14641         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
14642         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
14643         documentation of obsolete macros.
14644         * system.h: Poison these macros.
14645         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
14646         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
14647         config/c4x/c4x.h, config/clipper/clipper.h,
14648         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
14649         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
14650         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
14651         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
14652         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
14653         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
14654         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
14655         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
14656         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
14657         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
14658         config/sparc/sparc.h, config/stormy16/stormy16.h,
14659         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
14660         definitions and commented out definitions of obsolete macros.
14661         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
14662         of MAX_INT_TYPE_SIZE.
14663
14664 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
14665
14666         * config/s390/s390.c (s390_preferred_reload_class): Never
14667         return ADDR_REGS if it isn't a subset of the given class.
14668         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
14669         FP_REGS, but all superclasses as well.
14670
14671         * config/s390/s390.c (s390_function_profiler): Fix thinko.
14672
14673         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
14674         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
14675         must not be a const_int.
14676
14677 2002-01-08  Richard Henderson  <rth@redhat.com>
14678
14679         * Makefile.in (toplev.o): Depend on options.h.
14680         (gcc.o): Depend on specs.h.
14681
14682 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
14683
14684         * expr.c (store_expr): Convert VOIDmode constants back to target's
14685         mode.
14686
14687 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14688
14689         * doc/invoke.texi: Markup gcc as @command.  Refer to
14690         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
14691         of http://gcc.gnu.org/thanks.html.
14692
14693 2002-01-08  Dale Johannesen  <dalej@apple.com>
14694
14695         * config/rs6000/rs6000.md: Add missing int register
14696         target case to movdf_low.
14697
14698 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
14699
14700         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
14701         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
14702         (cppinit.o): Depend on except.h.
14703         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
14704         s-specs): New rules.
14705
14706         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
14707         Don't create specs.h/options.h/gencheck.h here.  Remove
14708         unnecessary variable settings from last argument of AC_OUTPUT.
14709         * config.in, configure: Regenerate.
14710         * intl.c: Hardcode package name as "gcc".
14711
14712         * cppinit.c: Include except.h.
14713         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
14714         appropriate.
14715         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
14716         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
14717         (!)USING_SJLJ_EXCEPTIONS.
14718         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
14719
14720 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
14721
14722         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
14723         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
14724         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
14725         documentation of obsolete macros.
14726         * system.h: Poison these macros.
14727         * config/d30v/d30v.h, config/ns32k/encore.h,
14728         config/stormy16/stormy16.h: Remove definitions and commented out
14729         definitions of obsolete macros.
14730
14731 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
14732
14733         * objc/objc-act.c (handle_class_ref): Mark the declaration of
14734         %sobjc_class_ref_%s as used - to prevent unwanted compiler
14735         warnings.
14736
14737 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
14738
14739         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
14740         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
14741         to insn adjusting stack/frame pointer.
14742         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
14743         accept operands that cause the insn to be non-splittable.
14744
14745 2002-01-08  Graham Stott  <grahams@redhat.com>
14746
14747         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
14748         (C_TYPE_FIELDS_VOLATILE): Likewise.
14749         (C_TYPE_BEING_DEFINED): Likewise.
14750         (C_IS_RESERVED_WORD): Likewise.
14751         (C_TYPE_VARIABLE_SIZE): Likewise.
14752         (C_DECL_VARIABLE_SIZE): Likewise.
14753         (C_MISSING_PROTOTYPE_WARNED): Likewise.
14754         (C_SET_EXP_ORIGINAL_CODE): Likewise.
14755         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
14756         parenthesis.
14757         (C_DECL_ANTICIPATED): Likewise.
14758         (c_build_type_variant): Add parenthesis.
14759
14760 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
14761
14762         * gcc.c (option_map): Remove --version.
14763         (process_command): Handle -fversion following the GNU Coding
14764         Standards.  Partially addresses PR other/704.
14765
14766 2002-01-08  Graham Stott  <grahams@redhat.com>
14767
14768         * combine.c (combine_instructions): Fix typo.
14769
14770 2002-01-08  Graham Stott  <grahams@redhat.com>
14771
14772         * debug.h: Use "tree" and "rtx" throughout.
14773
14774         * debug.c: Likewise.
14775
14776 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
14777
14778         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
14779         constant pool, use the pool's version of the symbol instead.
14780
14781 2002-01-07  Richard Henderson  <rth@redhat.com>
14782
14783         * regrename.c (find_oldest_value_reg): Ignore the value chain if
14784         the original register was copied in a mode with a fewer number of
14785         hard registers than the desired mode.
14786         (copyprop_hardreg_forward_1): Likewise.
14787         (debug_value_data): Fix loop test.
14788         * toplev.c (parse_options_and_default_flags): Reenable
14789         -fcprop-registers at -O1.
14790
14791 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
14792
14793         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
14794         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
14795
14796         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
14797         predicates.
14798
14799         * config/rs6000/rs6000.md: Add altivec predicate patterns.
14800
14801 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14802
14803         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
14804         (pa_output_function_prologue): Output local label at the beginning of
14805         the prologue when profiling.
14806         (hppa_profile_hook): Use the local label rather than the function label.
14807         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
14808
14809 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
14810
14811         * config/rs6000/rs6000.c (print_operand): Remove extra space.
14812         (altivec_expand_unop_builtin): Fix thinko.
14813         (altivec_expand_binop_builtin): Same.
14814         (altivec_expand_ternop_builtin): Same.
14815         (altivec_expand_builtin): Same.
14816
14817 2002-01-07  Richard Henderson  <rth@redhat.com>
14818
14819         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
14820
14821 2002-01-07  Jason Merrill  <jason@redhat.com>
14822
14823         * unwind-dw2.c (execute_cfa_program): Use < again.
14824
14825 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
14826
14827         * predict.c (combine_predictions_for_insn): Avoid division by zero.
14828
14829 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
14830
14831         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
14832         Don't allow -1 - x -> ~x simplifications in the first pass.
14833
14834 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
14835
14836         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
14837         arguments.
14838         (altivec_expand_binop_builtin): Same.
14839         (altivec_expand_unop_builtin): Same.
14840         (print_operand): Fix typo.
14841         (bdesc_1arg): Add vupk* variants.
14842
14843         * rs6000.h (rs6000_builtins): Add vupk* enums.
14844
14845         * rs6000.md: Add altivec_vupk* variants.
14846
14847 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
14848
14849         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
14850         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
14851         and last update dates.
14852
14853 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
14854
14855         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
14856
14857 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
14858
14859         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
14860         * config/avr/avr.h (CPP_SPEC): Likewise.
14861         (LINK_SPEC): Likewise.
14862         (CRT_BINUTILS_SPECS): Likewise.
14863         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
14864         * doc/invoke.texi (AVR Options): Document them.
14865
14866 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
14867
14868         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
14869         LABEL_NUSES.
14870
14871 2002-01-07  Graham Stott  <grahams@redhat.com>
14872
14873         * config/i386/i386.h: Update copyright date.
14874         (HALF_PIC_PTR): Add parenthesis.
14875         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
14876         (CONSTANT_ALIGNMENT): Add parenthesis.
14877         (DATA_ALIGNMENT): Likewise.
14878         (LOCAL_ALIGNMENT): Likewise.
14879         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
14880         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
14881         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
14882         (HARD_REGNO_NREGS): Add paranethesis.
14883         (VALID_SSE_REG_MODE): Whitespace.
14884         (VALID_MMX_REG_MODE): Whitespace.
14885         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
14886         (ix86_hard_regno_mode_ok): Add parenthesis.
14887         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
14888         (RETURN_IN_MEMORY): Whitespace.
14889         (N_REG_CLASSES): Add parenthesis.
14890         (INTEGER_CLASS_P): Add parenthesis and wrap.
14891         (FLOAT_CLASS_P): Likewise.
14892         (SSE_CLASS_P): Likewise.
14893         (MMX_CLASS_P): Likewise.
14894         (MAYBE_INTEGER_CLASS_P): Likewise.
14895         (MAYBE_FLOAT_CLASS_P): Likewise.
14896         (MAYBE_SSE_CLASS_P): Likewise.
14897         (MAYBE_MMX_CLASS_P): Likewise.
14898         (Q_CLASS_P): Likewise.
14899         (GENERAL_REGNO_P): Uppercase macro parameter.
14900         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
14901         (FP_REGNO_P): Likewise.
14902         (ANY_FP_REGNO_P): Uppercase macro parameter.
14903         (SSE_REGNO_P): Likewise.
14904         (SSE_REGNO): Likewise.
14905         (SSE_REG_P): Likewise.
14906         (SSE_FLOAT_MODE_P): Likewise.
14907         (MMX_REGNO_P): Likewise.
14908         (MMX_REG_P):Likewise.
14909         (STACK_REG_P): Likewise.
14910         (NON_STACK_REG_P): Likewise.
14911         (STACK_TOP_P): Likewise.
14912         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
14913         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
14914         (SECONDARY_MEMORY_NEEDED): Likewise.
14915         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
14916         (MD_ASM_CLOBBERS): Whitespace and wrap.
14917         (MUST_PASS_IN_STACK): Whitespace and wrap.
14918         (RETURN_POPS_ARGS): Add parenthesis.
14919         (INIT_CUMULATIVE_ARGS): Likewise.
14920         (FUNCTION_ARG): Likewise.
14921         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
14922         (SETUP_INCOMING_VARARGS): Likewise.
14923         (BUILD_VA_LIST_TYPE):  Add parenthesis.
14924         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
14925         parenthsis.
14926         (EXPAND_BUILTIN_VA_ARG): Likewise.
14927         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
14928         (INITIALIZE_TRAMPOLINE): Add parenthesis.
14929         (INITIAL_ELIMINATION_OFFSET): Likewise.
14930         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
14931         (REGNO_OK_FOR_BASE_P): Likewise.
14932         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
14933         (REGNO_OK_FOR_DIREG_P): Likewise.
14934         (REG_OK_FOR_INDEX_P): Whitespace.
14935         (REG_OK_FOR_BASE_P): Whitespace.
14936         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
14937         parenthesis.
14938         (FIND_BASE_TERM): Fix typo.
14939         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
14940         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
14941         (SYMBOLIC_CONST; Whitespace.
14942         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
14943         (ENCODE_SECTION_INFO): Whitespace.
14944         (FINALIZE_PIC): Remove do { ... } while (0).
14945         (PROMOTE_MODE): Wrap in do { ... } while (0).
14946         (CONST_COSTS): Whitespace.
14947         (RTX_COSTS): Add paramethesis, whitespace and wrap.
14948         (REGISTER_MOVE_COST): Add parenthesis.
14949         (MEMORY_MOVE_COST): Likewise.
14950         (EXTRA_CC_MODES): Whitespace.
14951         (SELECT_CC_MODE): Add parenthesis and whitespace.
14952         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
14953         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
14954         (ASM_OUTPUT_LABEL): Add paramethesis.
14955         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
14956         (ASM_OUTPUT_REG_POP): Likewise.
14957         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
14958         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
14959
14960         * config/i386/i386.c: Update copyright.
14961         (CHECK_STACK_LIMIT): Add parenthesis.
14962         (AT_BP): Uppercase macro parameter.
14963         (x86_64_int_parameter_registers): Constify.
14964         (x86_64_int_return_registers): Likewise.
14965         (ix86_compare_op0): Use rtx.
14966         (construct_container): Constify INTREG parameter.
14967         (function_arg): Use rtx.
14968
14969         * diagnostic.h: Update copyright date.
14970         (output_buffer_state): Add parenthesis.
14971         (output_buffer_format_args): Likewise.
14972
14973         * combine.c (combine_instructions): Replace XEXP (links, 0)
14974         with link.
14975
14976 2002-01-06  H.J. Lu <hjl@gnu.org>
14977
14978         * cfgcleanup.c (thread_jump): Fix 2 typos.
14979
14980 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
14981
14982         * config.gcc: Add support for --enable-altivec.
14983
14984 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14985
14986         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
14987
14988 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
14989
14990         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
14991         __objc_class_name_*.
14992
14993 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14994
14995         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
14996
14997 2002-01-06  Richard Henderson  <rth@redhat.com>
14998
14999         * reorg.c (emit_delay_sequence): Remove death notes, not merely
15000         nop them out.  Increment label reference count for REG_LABEL.
15001         (fill_slots_from_thread): Frob label reference count around
15002         delete_related_insns.
15003
15004 2002-01-05  Richard Henderson  <rth@redhat.com>
15005
15006         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
15007         jump threading.
15008
15009 2002-01-05  Richard Henderson  <rth@redhat.com>
15010
15011         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
15012         * integrate.c (output_inline_function): Likewise.
15013         * toplev.c (rest_of_compilation): Do it here instead.  Move call
15014         to remove_unnecessary_notes after emitting abstract instance.
15015         Force an emitted nested function to have its parent emited as well.
15016         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
15017         for null.
15018         (rtl_for_decl_location): Do not look at reload data structures
15019         before reload has run.
15020
15021 2002-01-05  Kazu Hirata  <kazu@hxi.com>
15022
15023         * cse.c: Fix formatting.
15024         * dwarf2asm.c: Likewise.
15025         * dwarf2out.c: Likewise.
15026         * explow.c: Likewise.
15027         * expmed.c: Likewise.
15028         * function.c: Likewise.
15029         * gcov.c: Likewise.
15030         * gencheck.c: Likewise.
15031         * genrecog.c: Likewise.
15032         * ggc-common.c: Likewise.
15033         * ggc-page.c: Likewise.
15034         * global.c: Likewise.
15035
15036 2002-01-05  Kazu Hirata  <kazu@hxi.com>
15037
15038         * combine.c: Fix formatting.
15039
15040 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
15041
15042         PR middle-end/1557
15043         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
15044
15045 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
15046
15047         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
15048         as 1 for __powerpc64__ as well.
15049
15050         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
15051
15052         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
15053         return it.
15054
15055 2002-01-05  Daniel Berlin  <dan@dberlin.org>
15056
15057         * lcm.c: Revert change, due to performance regression it causes on
15058         SPEC because it's slightly more conservative (sigh, I hate
15059         edge-based LCM).
15060
15061 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
15062
15063         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
15064
15065 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
15066
15067         * doc/cppinternals.texi: Update.
15068
15069 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
15070
15071         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
15072         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
15073         negatives.
15074         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
15075         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
15076         kludge for pre-october-14th mmix versions to handle new-found bug
15077         with PUSHJ/PUSHGO and the register stack.
15078         * config/mmix/mmix.h (struct machine_function): Rename member
15079         has_call_value_without_parameters to has_call_without_parameters.
15080         All referers changed.
15081         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
15082         TARGET_MASK_BRANCH_PREDICT): New macros.
15083         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
15084         -mno-reg-stack-fill-bug-workaround.
15085         * config/mmix/mmix.md ("call"): Set struct machine member
15086         has_call_without_parameters.
15087
15088 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
15089
15090         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
15091
15092 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
15093
15094         * cfgcleanup.c: Include tm_p.h
15095         (mark_effect): Fix handling of hard register; fix handling of SET
15096
15097 2002-01-04  Kazu Hirata  <kazu@hxi.com>
15098
15099         * config/h8300/h8300.md (anonymous patterns): Check that
15100         operands are registers before using REGNO on them.
15101
15102 2002-01-03  Roland McGrath  <roland@frob.com>
15103
15104         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
15105
15106 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
15107
15108         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
15109         * c-common.h (genrtl_expr_stmt_value): Likewise.
15110         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
15111         (expand_expr_stmt_value): Add maybe_last argument.
15112         Don't warn about statement with no effect if it is the last statement
15113         in expression statement.
15114         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
15115         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
15116         expand_expr_stmt_value.
15117         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
15118         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
15119         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
15120         as maybe_last to expand_expr_stmt_value.
15121
15122 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
15123
15124         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
15125         be passed in, do not build it.
15126         (c_begin_if_stmt): New function.
15127         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
15128         * c-common.h (c_expand_start_cond): Update prototype.
15129         (c_begin_if_stmt): Prototype new function.
15130         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
15131         * c-parse.in (if_prefix): Use c_begin_if_stmt,
15132         c_begin_while_stmt and c_finish_while_stmt_cond.
15133
15134 2002-01-04  William Cohen  <wcohen@redhat.com>
15135
15136         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
15137         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
15138         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
15139         * config/pa/som.h (ASM_FILE_START): Likewise.
15140
15141 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
15142
15143         * lcm.c: Include df.h.
15144         Add available_transfer_function prototype.
15145         (compute_available): Rework to use iterative dataflow framework.
15146         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
15147         with bb_info in df.h
15148         (available_transfer_function): New function.
15149
15150         * Makefile.in (lcm.o): add df.h to dependencies.
15151
15152 2002-01-04  Richard Henderson  <rth@redhat.com>
15153
15154         * config/alpha/alpha.c (some_operand): Accept HIGH.
15155         (input_operand): Likewise; accept simple references to globals.
15156         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
15157         (alpha_const_double_ok_for_letter_p): Likewise.
15158         (alpha_extra_constraint): Likewise.
15159         (alpha_preferred_reload_class): Likewise.  Do not force
15160         symbolic constants to memory.
15161         (alpha_legitimate_address_p): Accept simple references
15162         to small_symbolic_operand.
15163         (alpha_legitimize_address): New arg scratch.  Be prepared to be
15164         called when no_new_pseudos.  Emit simple symbolic references.
15165         Split integers into low, high, and rest.
15166         (alpha_expand_mov): Use alpha_legitimize_address.
15167         (some_small_symbolic_mem_operand): New.
15168         (split_small_symbolic_mem_operand): New.
15169         * config/alpha/alpha-protos.h: Update.
15170         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
15171         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
15172         (EXTRA_CONSTRAINT): Likewise.
15173         (PREFERRED_RELOAD_CLASS): Likewise.
15174         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
15175         (PREDICATE_CODES): Update.
15176         * config/alpha/alpha.md: New post-reload splitters to convert
15177         simplfied symbolic operands to the form that references $29.
15178         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
15179         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
15180
15181 2002-01-03  Richard Henderson  <rth@redhat.com>
15182
15183         * local-alloc.c (function_invariant_p): Update commentary.
15184
15185 2002-01-04  H.J. Lu <hjl@gnu.org>
15186
15187         * toplev.c (rest_of_compilation): Fix a typo when calling
15188         cleanup_cfg.
15189
15190 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15191
15192         * c-common.c: Fix formatting.
15193         * diagnostic.c: Likewise.
15194         * doloop.c: Likewise.
15195         * dwarf2out.c: Likewise.
15196
15197 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15198
15199         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
15200         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
15201
15202 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
15203
15204         * cpperror.c: Update comments and copyright.
15205         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
15206         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
15207
15208 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15209
15210         * collect2.c (main): Use strcmp when testing for "-shared".
15211
15212 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
15213
15214         * cppmacro.c: Don't include intl.h.  Update comments.
15215         (new_number_token): Allocate enough buffer for 64-bit unsigned
15216         integers; update prototype.
15217         * cppmain.c: Update comments.
15218
15219 2002-01-03  William Cohen  <wcohen@redhat.com>
15220
15221         * function.h (struct function): Add profile.
15222         (current_function_profile): New.
15223         doc/extend.texi: Update documentation.
15224         * final.c (final_start_function): Use current_function_profile
15225         instead of profile_flag.
15226         (profile_after_prologue): Likewise.
15227         * function.c (expand_function_start): Likewise.
15228         (expand_function_start): Likewise.
15229         * config/alpha/alpha.c (direct_call_operand):
15230         (alpha_does_function_need_gp): Likewise.
15231         (alpha_expand_prologue): Likewise.
15232         * config/arm/arm.c (arm_expand_prologue): Likewise.
15233         thumb_expand_prologue: Likewise.
15234         * config/d30v/d30v.c (d30v_stack_info): Likewise.
15235         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
15236         (fr30_expand_prologue): Likewise.
15237         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
15238         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
15239         * config/i386/i386.h (FINALIZE_PIC): Likewise.
15240         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
15241         * config/i960/i960.c (i960_output_function_prologue): Likewise.
15242         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
15243         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
15244         (m32r_expand_prologue): Likewise.
15245         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
15246         (m88k_expand_prologue): Likewise.
15247         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
15248         * config/mips/mips.c (compute_frame_size): Likewise.
15249         (mips_expand_prologue): Likewise.
15250         (mips_can_use_return_insn): Likewise.
15251         * config/pa/elf.h (ASM_FILE_START): Likewise.
15252         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
15253         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
15254         * config/pa/som.h (ASM_FILE_START): Likewise.
15255         * config/romp/romp.c (romp_using_r14): Likewise.
15256         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
15257         (rs6000_stack_info): Likewise.
15258         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15259         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
15260         * config/v850/v850.c (compute_register_save_size): Likewise.
15261
15262 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
15263
15264         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
15265         gen_lowpart_common fails, use gen_lowpart_SUBREG.
15266
15267 2002-01-03  Turly O'Connor  <turly@apple.com>
15268
15269         * darwin.c (machopic_output_possible_stub_label): Don't generate
15270         stub routines for pseudo-stubs which we've just defined.
15271
15272 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15273
15274         * builtins.c: Fix formatting.
15275         * c-typeck.c: Likewise.
15276         * combine.c: Likewise.
15277         * expr.c: Likewise.
15278         * loop.c: Likewise.
15279
15280 2002-01-03  Andreas Schwab  <schwab@suse.de>
15281
15282         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
15283         and return true if _cpp_push_next_buffer pushed a new include
15284         file.
15285         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
15286         _cpp_pop_file_buffer did not push a new file.
15287         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
15288
15289 2002-01-02  Eric Christopher  <echristo@redhat.com>
15290
15291         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
15292         FIND_REG_INC_NOTE call. Update copyright.
15293         * loop.c (canonicalize_condition): Ditto.
15294         * reorg.c (delete_scheduled_jump): Ditto.
15295
15296 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15297
15298         * gcse.c: Fix formatting.
15299
15300 2002-01-03  Graham Stott  <grahams@redhat.com>
15301
15302         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
15303         forward defs for struct tags rtx_def, union_tree, rtvec_def
15304         also output corresponding typedefs for rtx, tree, and rtvec.
15305
15306         * system.h: Move forward defs for struct tags rtx_def, union_tree,
15307         rtvec_def along with corresponding typedefs for rtx, tree, and
15308         rtvec to config.h, hconfig.h, tconfig.h.
15309
15310 2002-01-03  Graham Stott  <grahams@redhat.com>
15311
15312         * tree.h: Update copyright date.
15313         (IS_EXPR_CODE_CLASS): Add parenthesis.
15314         (TREE_SET_CODE): Add whitespace.
15315         (TREE_CHECK): Add parenthesis.
15316         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
15317         (CST_OR_CONSTRUCTOR_CHECK):
15318         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
15319         (TREE_SYMBOL_REFERENCED): Whitespace.
15320         (INT_CST_LT): Likewise.
15321         (INT_CST_LT_UNSIGNED): Likewise.
15322         (tree_real_cst): Unwrap comment.
15323         (tree_string): Likewise.
15324         (tree_complex): Likewise.
15325         (IDENTIFIER_POINTER): correct cast.
15326         (SAVE_EXPR_CONTEXT): Whitespace.
15327         (EXPR_WFL_FILENAME_NODE): Likewise.
15328         (EXPR_WFL_FILENAME): Remove parenthesis.
15329         (DECL_ORIGIN): Add parenthesis.
15330         (DECL_FROM_INLINE): Use NULL_TREE.
15331         (build_int_2): Whitespace.
15332         (build_type_variant): Add parenthesis.
15333
15334         * gcc/jcf-parse.c: Update copyright date.
15335         (yyparse): Constify resource_filename.
15336
15337 2002-01-03  Graham Stott  <grahams@redhat.com>
15338
15339         * rtl.h: Update copyright date.
15340         (RTL_CHECK1): Wrap long line.
15341         (RTL_CHECK2): Likewise.
15342         (RTL_CHECKC1): Wrap long line and whitespace.
15343         (RTL_CHECKC2): Likewise.
15344         (XWINT): Whitespace.
15345         (XINT): Likewise.
15346         (XSTR): Likewise.
15347         (XEXP): Likewise.
15348         (XVEC): Likewise.
15349         (XMODE): Likewise.
15350         (XBITMAP): Likewise.
15351         (XTREE): Likewise.
15352         (XBBDEF): Likewise.
15353         (XTMPL): Likewise.
15354         (X0WINT): Likewise.
15355         (X0INT):Likewise.
15356         (X0UINT): Likewise.
15357         (X0STR): Likewise.
15358         (X0EXP): Likewise.
15359         (X0VEC): Likewise.
15360         (X0MODE): Likewise.
15361         (X0BITMAP): Likewise.
15362         (X0TREE): Likewise.
15363         (X0BBDEF): Likewise.
15364         (X0ADVFLAGS): Likewise.
15365         (X0CSELIB): Likewise.
15366         (X0MEMATTR): Likewise.
15367         (XCWINT): Likewise.
15368         (XCINT): Likewise.
15369         (XCUINT): Likewise.
15370         (XCSTR): Likewise.
15371         (XCEXP): Likewise.
15372         (XCVEC): Likewise.
15373         (XCMODE): Likewise.
15374         (XCBITMAP): Likewise.
15375         (XCTREE): Likewise.
15376         (XCBBDEF): Likewise.
15377         (XCADVFLAGS): Likewise.
15378         (XCCSELIB): Likewise.
15379         (XC2EXP): Likewise.
15380         (INSN_UID): Likewise.
15381         (PREV_INSN): Likewise.
15382         (PATTERN): Likewise.
15383         (INSN_CODE): Likewise.
15384         (PUT_REG_NOTE_KIND): Likewise.
15385         (CODE_LABEL_NUMBER): Likewise.
15386         (NOTE_SOURCE_FILE): Likewise.
15387         (NOTE_BLOCK): Likewise.
15388         (NOTE_EH_HANDLER): Likewise.
15389         (NOTE_RANGE_INFO): Likewise.
15390         (NOTE_LIVE_INFO): Likewise.
15391         (NOTE_BASIC_BLOCK): Likewise.
15392         (NOTE_EXPECTED_VALUE): Likewise.
15393         (NOTE_LINE_NUMBER): Likewise.
15394         (LABEL_NAME): Likewise.
15395         (LABEL_NUSES): Likewise.
15396         (LABEL_ALTERNATE_NAME): Likewise.
15397         (ADDRESSOF_DECL): Likewise.
15398         (JUMP_LABEL): Likewise.
15399         (LABEL_NEXTREF): Likewise.
15400         (REGNO): Likewise.
15401         (ORIGINAL_REGNO: Likewise.
15402         (HARD_REGISTER_NUM_P): Add parenthesis.
15403         (SUBREG_REG): Whitespace.
15404         (SUBREG_BYTE): Likewise.
15405         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
15406         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
15407         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
15408         (ASM_OPERANDS_INPUT_VEC): Likewise.
15409         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
15410         (ASM_OPERANDS_INPUT): Likewise.
15411         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
15412         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
15413         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
15414         (ASM_OPERANDS_INPUT_MODE): Likewise.
15415         (ASM_OPERANDS_SOURCE_FILE): Likewise.
15416         (ASM_OPERANDS_SOURCE_LINE): Likewise.
15417         (MEM_SET_IN_STRUCT_P): Minor reformat.
15418         (TRAP_CONDITION): Whitespace.
15419         (TRAP_CODE): Likewise.
15420         (COND_EXEC_TEST): Likewise.
15421         (COND_EXEC_CODE): Likewise.
15422         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
15423         (PHI_NODE_P): Add parenthesis.
15424         (plus_constant): Whitespace and add parenthesis.
15425
15426 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15427
15428         * config/avr/avr.c: Fix comment typos.
15429         * config/c4x/c4x.md: Likewise.
15430         * config/dsp16xx/dsp16xx.h: Likewise.
15431         * config/dsp16xx/dsp16xx.md: Likewise.
15432         * config/i386/i386.md: Likewise.
15433         * config/ia64/ia64.c: Likewise.
15434         * config/m32r/m32r.h: Likewise.
15435         * config/m68hc11/m68hc11.md: Likewise.
15436         * config/mmix/mmix.c: Likewise.
15437         * config/mn10200/mn10200.c: Likewise.
15438         * config/romp/romp.c: Likewise.
15439         * config/sh/sh.c: Likewise.
15440         * config/stormy16/stormy16.c: Likewise.
15441         * config/stormy16/stormy16.h: Likewise.
15442         * config/stormy16/stormy16.md: Likewise.
15443
15444 2002-01-03  Graham Stott  <grahams@redhat.com>
15445
15446         * loop.h: Update copyright date.
15447         (LOOP_MOVABLES): Fix typo.
15448         (LOOP_REGS): Likewise.
15449         (LOOP_IVS): Likewise.
15450
15451 2002-01-03  Graham Stott  <grahams@redhat.com>
15452
15453         * cppinit.c: Update copyright date.
15454         Don't include output.h
15455         * Makefile.in: Update copyright date.
15456         Update dependency.
15457
15458 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15459
15460         PR c/5226
15461         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
15462         (-pthread) Add to RS/6000 options.
15463
15464 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15465
15466         * except.c: Fix comment typos.
15467         * loop.c: Likewise.
15468         * varasm.c: Likewise.
15469         * doc/tm.texi: Fix a typo.
15470
15471 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
15472
15473         * c-typeck.c (output_init_element): Allow initializing static storage
15474         duration objects with compound literals.
15475
15476 2002-01-02  Richard Henderson  <rth@redhat.com>
15477
15478         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
15479         after abusing it.
15480
15481 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15482
15483         * gcc.c (default_compilers): Const-ify.
15484         * mips-tdump.c (stab_names): Likewise.
15485         * mips-tfile.c (map_coff_types, map_coff_storage,
15486         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
15487         pseudo_ops_t, pseudo_ops): Likewise.
15488         * protoize.c (default_include): Likewise
15489
15490         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
15491         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
15492         Add array size in declaration.
15493         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
15494         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
15495         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
15496         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
15497         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
15498         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
15499         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
15500         emtens, make_nan): Const-ify.
15501         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
15502         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
15503
15504 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
15505
15506         * config.gcc (ia64-*-*): Set extra_headers.
15507         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
15508         * config/alpha/t-osf: Remove.
15509         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
15510
15511 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
15512
15513         * config/rs6000/t-aix43: Revert previous change.
15514
15515 2002-01-02  Jason Merrill  <jason@redhat.com>
15516
15517         * c-decl.c (c_expand_body): Call outlining_inline_function when
15518         emitting an inline function out of line.
15519
15520 2002-01-02  Richard Henderson  <rth@redhat.com>
15521
15522         * dwarf2out.c (limbo_die_node): Add created_for member.
15523         (new_die): New argument created_for.  Update all callers.
15524         (mark_limbo_die_list): New.
15525         (dwarf2out_init): Register limbo_die_list as a root.
15526         (dwarf2out_finish): Force insert limbo dies into their function
15527         context.
15528
15529 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
15530
15531         PR c++/5089
15532         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
15533
15534 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15535
15536         * config/h8300/fixunssfsi.c: Update copyright.
15537         Fix comment typos.
15538         Fix formatting.
15539         * config/h8300/h8300.c: Update copyright.
15540         Eliminate warnings.
15541
15542 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15543
15544         * config/romp/romp.c: Fix comment formatting.
15545         * config/romp/romp.h: Likewise.
15546         * config/romp/romp.md: Likewise.
15547         * config/s390/s390.c: Likewise.
15548         * config/stormy16/stormy16.c: Likewise.
15549         * config/stormy16/stormy16.h: Likewise.
15550
15551 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
15552
15553         * c-common.h (genrtl_expr_stmt_value): Declare.
15554         * c-semantics.c (genrtl_goto_stmt): Redirect to...
15555         (genrtl_goto_stmt_value): ... this new function.  Pass new
15556         argument down to expand_expr_stmt_value, taking
15557         TREE_ADDRESSABLE into account.
15558         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
15559         STMT_EXPR as addressable, i.e., one whose result we want.
15560         * expr.c (expand_expr): Don't save expression statement value
15561         of labeled_blocks or loop_exprs.
15562         * stmt.c (expand_expr_stmt): Redirect to...
15563         (expand_expr_stmt_value): ... this new function.  Use new
15564         argument to tell whether to save expression value.
15565         (expand_end_stmt_expr): Reset last_expr_type and
15566         last_expr_value if we don't have either.
15567         * tree-inline.c (declare_return_variable): Mark its use
15568         statement as addressable.
15569         * tree.h: Document new use of TREE_ADDRESSABLE.
15570         (expand_expr_stmt_value): Declare.
15571
15572 2002-01-01  Tom Rix  <trix@redhat.com>
15573
15574         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
15575         rs6000_emit_allocate_stack.
15576
15577 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
15578
15579         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
15580         ${srcdir}/ginclude/ to every entry in extra_headers.
15581         * configure: Regenerate.
15582         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
15583         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
15584         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
15585         * ginclude/proto.h: Rename to config/convex/proto.h.
15586
15587 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15588
15589         * attribs.c (handle_vector_size_attribute): Use host_integerp
15590         and tree_int_cst; remove warnings.
15591         * caller-save.c (insert_restore): Add cast to get rid of warning.
15592         (insert_save): Likewise.
15593         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
15594         * regmove.c (find_matches): Add temporary var to kill a warning.
15595
15596 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
15597
15598         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
15599         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
15600         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
15601         (vms-dwarf2eh.o): Add Makefile rule.
15602         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
15603         * config/alpha/vms-dwarf2eh.asm: New file.
15604
15605         * gcc.c (delete_if_ordinary): Delete all versions.
15606
15607 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
15608
15609         * config/mmix/mmix.md: Update FIXME to not mention
15610         define_constants.
15611         (MMIX_rJ_REGNUM): New define_constants constant.
15612         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
15613         "*movdicc_real"): Adjust contraints formatting.
15614         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
15615         for branch prediction.
15616         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
15617         output template.
15618         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
15619         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
15620         number.  Delete related FIXMEs.
15621         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
15622         from number to MMIX_rJ_REGNUM.
15623         (TARGET_MASK_BRANCH_PREDICT): New.
15624         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
15625         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
15626         value.  Add -mbranch-predict and -mno-branch-predict.
15627         (TARGET_VERSION): Drop date.
15628         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
15629         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
15630         for finding out global symbols.
15631         (mmix_asm_output_labelref): Revert condition for global symbol.
15632         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
15633         (mmix_print_operand_punct_valid_p): A '+' is valid.
15634
15635 See ChangeLog.6 for earlier changes.