OSDN Git Service

c6f6f39d336dc6f712b5beb9f92fe72a3026ea12
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2
3         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
4         ("tsthi_1"): Avoid allocation in register y.
5         ("*movqi_68hc12"): Reorganize and fix constraints.
6         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
7         ("addqi3"): Likewise.
8         ("addhi3"): Fix constraints.
9         ("*logicalhi3_zexthi"): Disparage soft registers.
10
11 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12
13         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
14         to tmp reg.
15
16 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
17
18         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
19         that we use setjmp/longjmp exceptions.
20
21 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
22
23         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
24         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
25         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
26         _cpp_pool_alloc, _cpp_next_chunk): Remove.
27         (_cpp_extend_buff, BUFF_ROOM): Update.
28         (_cpp_append_extend_buff): New.
29         (struct cpp_reader): Remove macro_pool, add a_buff.
30         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
31         macro_pool.
32         (cpp_destroy): Free a_buff instead of macro_pool.
33         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
34         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
35         _cpp_pool_alloc, ): Remove.
36         (parse_number, parse_string): Update use of _cpp_extend_buff.
37         (_cpp_extend_buff): Update.
38         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
39         * cpplib.c (glue_header_name, parse_answer):
40         Update use of _cpp_extend_buff.
41         (cpp_register_pragma, cpp_register_pragma_space): Use
42         _cpp_aligned_alloc.
43         (do_assert, do_unassert): Check for EOL, update.
44         * cppmacro.c (stringify_arg, collect_args): Update to use
45         _cpp_extend_buff and _cpp_append_extend_buff.
46         (save_parameter, parse_params, alloc_expansion_token,
47         _cpp_create_definition): Rework memory management.
48
49 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
50
51         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
52         update md_exec_prefix.
53         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
54         to string constant.
55
56 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
57
58         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
59         (SELECT_CC_MODE): Use s390_select_ccmode.
60         * config/s390/s390-protos.h (s390_select_ccmode): Add.
61         * config/s390/s390.c (s390_select_ccmode): New.
62         (s390_match_ccmode): Add CCLmode.
63         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
64         (output_branch_condition, output_inverse_branch_condition): Removed.
65         (print_operand): Use s390_branch_condition_mnemonic.
66         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
67         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
68         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
69
70         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
71         when converting conditional branches to far branches.
72         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
73         cmpint_di): Use CCSmode instead of CCUmode.
74
75         * config/s390/s390.c (legitimate_la_operand_p): New.
76         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
77         * config/s390/s390.md (movsi): Convert load address patterns to
78         arithmetic operations when necessary.
79         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
80         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
81         (*do_la_reg_0): Don't use before reload.
82
83         * config/s390/s390.c (legitimize_address): Make more efficient
84         use of two-register addressing mode.
85
86         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
87         with -mno-backchain in some corner cases.
88
89         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
90
91 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
92
93         * reload.c (find_reloads): Mark new USE insns with QImode.
94         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
95         find_reloads_subreg_address): Likewise.
96         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
97         encountered.
98         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
99         CLOBBERs.
100         (reload): Make sure there are no USEs with mode other than
101         VOIDmode.  At the end, remove those marked with QImode.
102
103 2001-09-29  Per Bothner  <per@bothner.com>
104
105         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
106         * Makefile.in (includedir):  Rename to local_includedir.
107         (includedir):  Define as $(prefix)/include.
108         * config.in (PREFIX_INCLUDE_DIR):  New variable.
109         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
110
111 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
112
113         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
114         storehps builtins.
115         * doc/extend.texi (Vector Extensions): New node.
116         * doc/invoke.texi (Machine Dependent Options): Add documentation for
117         i386 -mmmx, -msse, -m3dnow.
118
119 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
120
121         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
122
123 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
124
125         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
126
127         * doc/invoke.texi (Optimize Options): Delete spurious @table.
128
129 2001-09-28  Richard Henderson  <rth@redhat.com>
130
131         * varasm.c (assemble_integer): Bound alignment check by
132         BIGGEST_ALIGNMENT.
133
134         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
135
136 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
137
138         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
139
140 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
141
142         Mostly from Graham Stott  <grahams@redhat.com>
143         * c-common.c (type_for_mode): Add support for V2SFmode.
144         * tree.c (build_common_tree_nodes_2): Likewise.
145         * tree.h (enum tree_index, global_trees): Likewise.
146         * config/i386/i386.c (x86_3dnow_a): New variable.
147         (override_options): Support 3Dnow extensions.
148         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
149         Athlon's version of 3Dnow.
150         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
151         (ix86_expand_builtin): Handle them.
152         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
153         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
154         TARGET_3DNOW_A): New macros.
155         (TARGET_SWITCHES): Add 3Dnow switches.
156         (VALID_MMX_REG_MODE_3DNOW): New macro.
157         (VECTOR_MODE_SUPPORTED_P): Use it.
158         (enum ix86_builtins): Add entries for 3Dnow builtins.
159         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
160         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
161         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
162         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
163         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
164         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
165         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
166         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
167         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
168         sfence_insn, prefetch): Make these available if TARGET_SSE or
169         TARGET_3DNOW_A.
170         
171 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
172
173         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
174         ix86_va_start, ix86_build_va_list): Declare.
175         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
176         ix86_va_start, ix86_build_va_list): New global functions.
177         * i386.md (sse_prologue_save_insn): New insn.
178         (sse_prologue_save): New expander.
179         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
180         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
181
182 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
183
184         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
185         Use size_t everywhere, make definitions consistent with
186         prototypes.     
187
188 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
189
190         * gcse.c (replace_store_insn): Use delete_insn.
191         * loop.c (move_movables): Likewise; avoid delete_insn
192         from clobbering notes moved elsewhere.
193         (check_dbra_loop): Use delete_insn.
194         * ssa.c (convert_from_ssa): Likewise.
195         * cse.c (cse_insn): Use delete_insn.
196
197 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
198
199         * cpphash.h (struct cpp_buff): Make unsigned.
200         (_cpp_get_buff): Take length of size_t.
201         (_cpp_unaligned_alloc): New.
202         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
203         (struct cpp_reader): Remove ident_pool.  Add u_buff.
204         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
205         (cpp_destroy): Destroy u_buff, not ident_pool.
206         * cpplex.c (parse_number, parse_string, save_comment,
207         cpp_token_as_text): Update to use the unaligned buffer.
208         (new_buff): Make unsigned.
209         (_cpp_unaligned_alloc): New.
210         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
211         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
212         Similarly.
213         (collect_args): Make unsigned.
214
215 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
216
217         * cpplex.c (cpp_output_token): Use a putc loop for
218         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
219
220         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
221         * configure, config.in: Regenerate.
222         * system.h: Replace fwrite and fprintf with their unlocked
223         variants if available.
224
225 2001-09-27  Richard Henderson  <rth@redhat.com>
226
227         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
228         in favour of .eh_frame.
229
230 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
231
232         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
233         to macros.
234         (LIBCALL_VALUE): Likewise.
235
236 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
237
238         * cpphash.h: Update comment.
239         * cpplex.c: Update comments.
240         (_cpp_can_paste): Remove.
241         * cpplib.h (_cpp_can_paste): Remove.
242         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
243         lexer rather than _cpp_can_paste.
244
245 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
246
247         * doc/cppinternals.texi: Update.
248
249 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
250
251         * cpphash.h (struct cpp_pool): Remove locks and locked.
252         (struct cpp_context): Add member buff.
253         (struct cpp_reader): Remove member argument_pool.
254         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
255         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
256         * cpplex.c (chunk_suitable): Remove pool argument.
257         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
258         (new_buff, _cpp_extend_buff): Update.
259         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
260         which buffer is returned.
261         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
262         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
263         * cppmacro.c (lock_pools, unlock_pools): Remove.
264         (push_ptoken_context): Take a _cpp_buff.
265         (enter_macro_context): Pool locking removed.
266         (replace_args): Use a _cpp_buff for the replacement list with
267         arguments replaced.
268         (push_token_context): Clear buff.
269         (expand_arg): Use _cpp_pop_context.
270         (_cpp_pop_context): Free a context's buffer, if any.
271
272 2001-09-26  DJ Delorie  <dj@redhat.com>
273
274         * c-typeck.c (digest_init): Check for sizeless arrays.
275
276 2001-09-26  Richard Henderson  <rth@redhat.com>
277
278         * optabs.c (init_one_libfunc): Create a dummy function type
279         instead of using error_mark_node.
280
281 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
282
283         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
284         _cpp_extend_buff, _cpp_free_buff): New.
285         (struct cpp_reader): New member free_buffs.
286         * cppinit.c (cpp_destroy): Free buffers.
287         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
288         _cpp_extend_buff, _cpp_free_buff): New.
289         * cpplib.h (struct cpp_options): Remove unused member.
290         * cppmacro.c (collect_args): New.  Combines the old parse_arg
291         and parse_args.  Use _cpp_buff for memory allocation.
292         (funlike_invocation_p, replace_args): Update.
293
294 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
295
296         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
297
298 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
299
300         * except.c (sjlj_mark_call_sites): Change address inside sequence.
301
302 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
303
304         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
305         glibc.
306
307 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
308             Jim Wilson  <wilson@redhat.com>
309
310         * doc/install.texi (Specific, ia64-*-linux): Document.
311
312 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
313
314         * Makefile.in (cfgrtl.o): Add.
315         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
316         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
317         free_aux_for_edge): Declare.
318         * cfg.c
319         (HAVE_return): Undefine.
320         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
321         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
322         free_aux_for_edge): New global functions.
323         (first_delete_block): New static variable.
324         (init_flow): Clear first_delete_block.
325         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
326          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
327          try_redirect_by_replacing_jump, last_loop_beg_note,
328          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
329          delete_insn, delete_insn_chain, create_basic_block_structure,
330          create_basic_block, flow_delete_block, compute_bb_for_insn,
331          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
332          set_block_for_new_insns, split_block, merge_blocks_nomove,
333          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
334          redirect_edge_and_branch, force_nonfallthru_and_redirect,
335          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
336          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
337          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
338          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
339          purge_all_dead_edges): Move to ....
340         * cfgrtl.c: New file; .... Here.
341
342         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
343         (reroder_basic_block): Use alloc_aux_for_blocks.
344         * predict.c (estimate_bb_frequencies): Likewise; use
345         alloc_aux_for_edges.
346         * profile.c (compute_branch_probabilities): Likewise.
347         (branch_prob): Likewise.
348         * reg-stack.c (reg_to_stack): Likewise.
349
350         * emit-rtl.c (emit_insns_after): Never return NULL.
351
352         * basic-block.h (set_block_for_new_insns): Delete.
353         * cfgrtl.c (set_block_for_new_insns): Delete.
354
355         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
356         calls when crossjumping.
357
358         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
359         * unroll.c (copy_loop_body): Use delete_insn.
360
361         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
362         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
363         keep_stack_depressed): Likewise.
364         * gcse.c (cprop_cc0_jump): Likewise.
365         * local-alloc.c (update_equiv_regs): Likewise.
366         * loop.c (scan_loop, loop_delete_insns): Likewise.
367         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
368         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
369         delete_output_reload, delete_address_reloads_1,
370         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
371         Likewise.
372         * sibcall.c (replace_call_placeholder): Likewise.
373         * cse.c (cse_insn): Likewise.
374
375 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
376
377         From Graham Stott  <grahams@redhat.com>
378         (def_builtin): Only define builtins appropriate for target_flags.  All
379         callers changed.
380         (builtin_decsription): Add new field mask which is used to determine
381         when to define the builtin via the macro def_builtin.
382
383         (bdesc_comi): Initialise new mask fields.
384         (bdesc_2srg): Likewise.
385         (bdesc_1arg): Likewise.
386
387         * config/i386/i386.c (ix86_init_builtins): Correct return type
388         building v4hi_ftype_v4hi_int_int tree node.
389         (ix86_expand_sse_comi): Fix typo swapping operands.
390         Don't swap comparision condition, it is already swapped.
391         (ix86_expand_sse_compare): Before swapping operands
392         move operand 1 into new rtx and not the target rtx.
393         Don't swap comparison condition, it is already swapped.
394         Always check whether we need to create a new TARGET.
395
396         * config/i386/i386.md: (sse_comi) Fix typos.
397         (sse_ucomi): Likewise.
398         (cvtss2si): Fix operand 0 contraint.
399         (cvttss2si): Likewise.
400         (sse_unpckhps): Fix mode for operand 2.
401         (sse_unpcklps): Likewise.
402
403 2001-09-25  Graham Stott  <grahams@redhat.com>
404
405         * sibcall.c (skip_copy_to_return_value): Tighten return value
406         copy check.
407
408 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
409
410         * rs6000.c (lwa_operand): Address must be word aligned.
411
412 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
413
414         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
415         number has been set.
416         (type_hash_mark): Mark type itself.
417
418 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
419
420         * c-lex.c (cb_def_pragma): Update.
421         (c_lex): Update, and skip padding.
422         * cppexp.c (lex, parse_defined): Update, remove unused variable.
423         * cpphash.h (struct toklist): Delete.
424         (union utoken): New.
425         (struct cpp_context): Update.
426         (struct cpp_reader): New members eof, avoid_paste.
427         (_cpp_temp_token): New.
428         * cppinit.c (cpp_create_reader): Update.
429         * cpplex.c (_cpp_temp_token): New.
430         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
431         (cpp_output_token): Don't print leading whitespace.
432         (cpp_output_line): Update.
433         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
434         do_include_common, do_line, do_ident, do_pragma,
435         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
436         parse_assertion): Update.
437         (get_token_no_padding): New.
438         * cpplib.h (CPP_PADDING): New.
439         (AVOID_LPASTE): Delete.
440         (struct cpp_token): New union member source.
441         (cpp_get_token): Update.
442         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
443         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
444         replace_args, quote_string, stringify_arg, parse_arg, next_context,
445         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
446         _cpp_backup_tokens, _cpp_create_definition): Update.
447         (push_arg_context): Delete.
448         (padding_token, push_token_context, push_ptoken_context): New.
449         (make_string_token, make_number_token): Update, rename.
450         (cpp_get_token): Update to handle tokens as pointers to const,
451         and insert padding appropriately.
452         * cppmain.c (struct printer): New member prev.
453         (check_multiline_token): Constify.
454         (do_preprocessing, cb_line_change): Update.
455         (scan_translation_unit): Update to handle spacing.
456         * scan-decls.c (get_a_token): New.
457         (skip_to_closing_brace, scan_decls): Update.
458         * fix-header.c (read_scan_file): Update.
459
460         * doc/cpp.texi: Update.
461
462 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
463
464         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
465         leak by passing malloc'ed pointer to reconcat, not concat.
466
467 2001-09-24  DJ Delorie  <dj@redhat.com>
468
469         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
470
471 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
472
473         * flow.c (delete_dead_jumptables): Delete jumptable if the only
474         reference is from the literal pool.
475
476 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
477
478         * doc/install.texi (Final install): Request additional information
479         in mail about successful builds.
480
481 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
482
483         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
484         initial value of return pointer register instead of value in frame-20.
485         Revise comments.
486
487 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
488
489         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
490         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
491         the libcall if there isn't a referenced identifier for the symbol.
492
493 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
494
495         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
496         non 64-bit machines.  Use these as a plabel for the trampoline.
497         (TRAMPOLINE_SIZE): Adjust size for new words.
498         (INITIALIZE_TRAMPOLINE): Initialize new words.
499         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
500         pointer to the plabel in the trampoline.
501
502 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
503
504         * pa.c (function_arg): Pass floating arguments in both general and
505         floating registers in indirect (dynamic) calls when generating code
506         for the 32 bit ABI and the HP assembler.
507
508 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
509
510         * doc/install.texi: Markup fixes.
511         Use Solaris 2, SunOS 4 as appropriate.
512         (Specific, *-*-solaris2*): Explain this.
513         Unconditionally warn against /usr/ucb tools.
514         Remove Sun as warning, obsolete.
515         Move X11 header bug workaround here, update patches.
516         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
517         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
518
519 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
520
521         * errors.h (warning, error, fatal, internal_error): Don't mark
522         with ATTRIBUTE_PRINTF_n.
523         * toplev.h (internal_error, fatal_io_error, warning, error,
524         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
525         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
526         Likewise.
527
528 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
529
530         * function.c (pop_function_context_from): var_refs_queue
531         and temp slots now in GC memory.
532         (mark_function_status, free_after_compilation): Likewise;
533         also struct function now in GC memory.
534         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
535         (combine_temp_slots): Likewise.
536         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
537         (prepare_function_start): Use GC memory for struct function.
538         (mark_temp_slot): Deleted.
539         (gcc_mark_struct_function): struct function now in GC memory.
540
541         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
542         code for division, not modulus.
543
544         * rtl.def (MEM): Remove obsolete part of comment.
545
546 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
547
548         * c-format.c (init_function_format_info): Check __builtin_printf
549         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
550         in gnu89 mode.
551
552 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
553
554         * c-common.c (format_attribute_table): Remove decl.
555         * tree.h (format_attribute_table, lang_attribute_table): New decls.
556         (lang_attribute_common): Likewise.
557
558         * function.c (fix_lexical_address): Use set_mem_alias_set.
559         (expand_function_start): Likewise.
560         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
561
562         * varasm.c (output_constant): Fix unused variable warning.
563
564         * attribs.c: New file, from c-common.c.
565         (attribute_tables): Now four elements.
566         (format_attribute_table, lang_attribute_common): New variables.
567         (init_attributes): Reflect above changes.
568         (handle_mode_attribute): Delete check for wider than uintmax.
569         * c-common.c: Delete parts moved to attribs.c.
570         (enum attrs): Deleted; unused.
571         (c_format_attribute_table): New variable.
572         (c_common_lang_init): Initialize format_attribute_table with it.
573         * c-common.h (decl_attributes): Remove decl.
574         * tree.h (decl_attribute): Move it to here.
575         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
576         (attribs.o): New rule.
577
578 2001-09-22  Andreas Jaeger  <aj@suse.de>
579
580         * builtins.c (c_getstr): Remove unused variable.
581
582 2001-09-21  Richard Henderson  <rth@redhat.com>
583
584         * reload1.c (reload): Use delete_insn instead of splatting
585         NOTE_INSN_DELETED.
586
587 2001-09-21  Richard Henderson  <rth@redhat.com>
588
589         * reload.c (push_secondary_reload): Don't check for "=" in output
590         constraint after ""->ALL_REGS check.
591
592 2001-09-21  Richard Henderson  <rth@redhat.com>
593
594         * predict.c (expected_value_to_br_prob): Use pc_set.
595
596         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
597         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
598
599 2001-09-21  Richard Henderson  <rth@redhat.com>
600
601         * rtl.h (LCT_RETURNS_TWICE): New.
602         * calls.c (emit_call_1): Set current_function_calls_setjmp for
603         ECF_RETURNS_TWICE.
604         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
605         to ECF_RETURNS_TWICE.
606         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
607         call to setjmp.
608
609         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
610
611         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
612         (JMP_BUF_SIZE): New.
613
614 2001-09-21  Richard Henderson  <rth@redhat.com>
615
616         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
617         to R8_REGS.
618
619 2001-09-21  Richard Henderson  <rth@redhat.com>
620
621         * tree.def (FDESC_EXPR): New.
622         * expr.c (expand_expr): Handle it.
623         * varasm.c (initializer_constant_valid_p): Likewise.
624         (output_constant): Likewise.
625         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
626         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
627         (ASM_OUTPUT_FDESC): New.
628         * doc/tm.texi: Document the new macros.
629
630 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
631
632         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
633         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
634         once merging is complete.
635
636 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
637
638         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
639
640 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
641
642         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
643         that would be invalid after a merge.
644
645 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
646
647         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
648         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
649         remove some labels.
650         (flow_delete_insn): This one.
651         (delete_insn_chain): Rename from ...; do not care labels.
652         (flow_delete_insn_chain): ... this one.
653         (flow_delete_block): Remove the insns one BB has been expunged.
654         (merge_blocks_nomove): Likewise.
655         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
656         updating BB boundaries.
657         (tidy_fallthru_edge): Likewise.
658         (commit_one_edge_insertion): Likewise.
659         * cfgbuild.c (find_basic_block): Likewise.
660         (find_basic_blocks_1): Likewise.
661         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
662         (try_crossjump_to_edge): Likewise.
663         (try_optimize_cfg): Likewise.
664         * cse.c (delete_trivially_dead_insns): Likewise.
665         * df.c (df_insn_delete): Likewise.
666         * doloop.c (doloop_modify): Use delete_related_insns.
667         * emit-rtl.c (try_split): Likewise.
668         (remove_insn): Update BB boundaries.
669         * expect.c (connect_post_landing_pads): Use delete_related_insns.
670         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
671         updating BB boundaries.
672         (propagate_block_delete_insn): Likewise.
673         (propagate_block_delete_libcall): Likewise.
674         * function.c (delete_handlers): Use delete_related_insns.
675         (thread_prologue_and_epilogue_insns): Likewise.
676         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
677         * genpeep.c (gen_peephole): Use delete_related_insns.
678         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
679         BB boundaries.
680         (find_cond_trap): Likewise.
681         * integrate.c (save_for_inline): Use delete_related_insns.
682         (copy_insn_list): Likewise.
683         * jump.c (pruge_linie_number_notes): Likewise.
684         (duplicate_loop_exit_test): Likewise.
685         (delete_computation): Likewise.
686         (delete_related_insn): Rename from ...; use delete_insn
687         (delete_insn): ... this one.
688         (redirect_jump): Use delete_related_insns.
689         * loop.c (scan_loop): Likewise.
690         (move_movables): Likewise.
691         (find_and_verify_loops): Likewise.
692         (check_dbra_loop): Likewise.
693         * recog.c (peephole2_optimize): Likewise.
694         * reg-stack.c (delete_insn_for_stacker): Remove.
695         (move_for_stack_reg): Use delete_insn.
696         * regmove.c (combine_stack_adjustments_for_block): Likewise.
697         * reload1.c (delete_address_reloads): Use delete_related_insns.
698         (fixup_abnormal_edges): Use delete_insn.
699         * recog.c (emit_delay_sequence): Use delete_related_insns.
700         (delete_from-delay_slot): Likewise.
701         (delete_scheduled_jump): likewise.
702         (optimize_skip): Likewise.
703         (try_merge_delay_insns): Likewise.
704         (full_simple_delay_slots): Likewise.
705         (fill_slots_from_thread): Likewise.
706         (relax_delay_slots): Likewise.
707         (make_return_insns): Likewise.
708         (dbr_schedule): Likewise.
709         * rtl.h (delete_insn): Rename to delete_related_insns.
710         (delete_insn, delete_insn_chain): New prototypes.
711         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
712         by df_insn_delete already.
713         * ssa-dce.c (delete_insn_bb): Use delete_insn.
714         * ssa.c (convert_from_ssa): Use delete_related_insns.
715         * unroll.c (unroll_loop): Likewise.
716         (calculate_giv_inc): Likewise.
717         (copy_loop_body): Likewise.
718
719         * i386-protos.h (ix86_libcall_value, ix86_function_value,
720         ix86_function_arg_regno_p, ix86_function_arg_boundary,
721         ix86_return_in_memory, ix86_function_value): Declare.
722         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
723         new static valurables.
724         (x86_64_reg_class): New enum
725         (x86_64_reg_class_name): New array.
726         (classify_argument, examine_argument, construct_container,
727          merge_classes): New static functions.
728         (optimization_options): Enable flag_omit_frame_pointer and disable
729         flag_pcc_struct_return on 64bit.
730         (ix86_libcall_value, ix86_function_value,
731         ix86_function_arg_regno_p, ix86_function_arg_boundary,
732         ix86_return_in_memory, ix86_function_value): New global functions.
733         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
734         (function_arg_advance): Handle x86_64 passing conventions.
735         (function_arg): Likewise.
736         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
737         (RETURN_IN_MEMORY): Move offline.
738         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
739         (FUNCTION_VALUE_REGNO_P): New macro.
740         (FUNCTION_ARG_REGNO_P): Move offline.
741         (struct ix86_args): Add maybe_vaarg.
742         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
743         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
744
745 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
746
747         * s390.md: Changed attributes for scheduling.
748         * s390.c: (s390_adjust_cost, s390_adjust_priority)
749         Changed scheduling
750
751 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
752
753         Table-driven attributes.
754         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
755         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
756         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
757         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
758         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
759         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
760         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
761         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
762         * tree.h (struct tree_decl): Change machine_attributes to
763         attributes.
764         * doc/c-tree.texi: Document that all attributes are now attached
765         to decls and types.
766         * c-common.c (add_attribute, attrtab, attrtab_idx,
767         default_valid_lang_attribute, valid_lang_attribute): Remove.
768         (attribute_tables, attributes_initialized,
769         c_common_attribute_table, default_lang_attribute_table): New
770         variables.
771         (handle_packed_attribute, handle_nocommon_attribute,
772         handle_common_attribute, handle_noreturn_attribute,
773         handle_unused_attribute, handle_const_attribute,
774         handle_transparent_union_attribute, handle_constructor_attribute,
775         handle_destructor_attribute, handle_mode_attribute,
776         handle_section_attribute, handle_aligned_attribute,
777         handle_weak_attribute, handle_alias_attribute,
778         handle_no_instrument_function_attribute,
779         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
780         handle_no_limit_stack_attribute, handle_pure_attribute): New
781         functions.
782         (init_attributes, decl_attributes): Rewrite to implement
783         table-driven attributes.
784         * c-common.h (enum attribute_flags): Move to tree.h.
785         * c-format.c (decl_handle_format_attribute,
786         decl_handle_format_arg_attribute): Rename to
787         handle_format_attribute and handle_format_arg_attribute.  Update
788         for table-driven attributes.
789         * c-common.h (decl_handle_format_attribute,
790         decl_handle_format_arg_attribute): Remove prototypes.
791         (handle_format_attribute, handle_format_arg_attribute): Add
792         prototypes.
793         * c-decl.c (grokdeclarator): Handle attributes nested inside
794         declarators.
795         * c-parse.in (setattrs, maybe_setattrs): Remove.
796         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
797         Update to handle nested attributes properly.
798         (maybe_resetattrs, after_type_declarator,
799         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
800         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
801         properly.
802         (make_pointer_declarator): Update to handle nested attributes
803         properly.
804         * doc/extend.texi: Update documentation of limits of attributes
805         syntax.  Warn about problems with attribute semantics in C++.
806         * target.h (struct target): Remove valid_decl_attribute and
807         valid_type_attribute.  Add attribute_table and
808         function_attribute_inlinable_p.
809         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
810         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
811         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
812         Add.
813         (TARGET_INITIALIZER): Update.
814         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
815         definition.
816         (function_attribute_inlinable_p): New function.  Check for the
817         presence of any machine attributes before using
818         targetm.function_attribute_inlinable_p.
819         (function_cannot_inline_p): Update.
820         * Makefile.in (integrate.o): Update dependencies.
821         * doc/tm.texi: Update documentation of target attributes and
822         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
823         * tree.c (default_valid_attribute_p, valid_machine_attribute):
824         Remove.
825         (default_target_attribute_table,
826         default_function_attribute_inlinable_p): New.
827         (lookup_attribute): Update comment to clarify handling of multiple
828         attributes with the same name.
829         (merge_attributes, attribute_list_contained): Allow multiple
830         attributes with the same name but different arguments to appear in
831         the same attribute list.
832         * tree.h (default_valid_attribute_p): Remove prototype.
833         (struct attribute_spec): New.
834         (default_target_attribute_table): Declare.
835         (enum attribute_flags): Move from c-common.h.  Add
836         ATTR_FLAG_TYPE_IN_PLACE.
837         (default_function_attribute_inlinable_p): Declare.
838         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
839         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
840         (TARGET_ATTRIBUTE_TABLE): Define.
841         (vms_attribute_table): New.
842         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
843         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
844         (TARGET_ATTRIBUTE_TABLE): Define.
845         (arc_attribute_table, arc_handle_interrupt_attribute): New.
846         * config/arm/arm.c (arm_valid_type_attribute_p,
847         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
848         Remove.
849         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
850         define.
851         (TARGET_ATTRIBUTE_TABLE): Define.
852         (arm_attribute_table, arm_handle_fndecl_attribute,
853         arm_handle_isr_attribute): New.
854         * config/avr/avr.c (avr_valid_type_attribute,
855         avr_valid_decl_attribute): Remove.
856         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
857         define.
858         (TARGET_ATTRIBUTE_TABLE): Define.
859         (avr_attribute_table, avr_handle_progmem_attribute,
860         avr_handle_fndecl_attribute): New.
861         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
862         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
863         (TARGET_ATTRIBUTE_TABLE): Define.
864         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
865         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
866         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
867         (TARGET_ATTRIBUTE_TABLE): Define.
868         (h8300_attribute_table, h8300_handle_fndecl_attribute,
869         h8300_handle_eightbit_data_attribute,
870         h8300_handle_tiny_data_attribute): New.
871         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
872         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
873         Remove prototypes.
874         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
875         declarations.
876         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
877         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
878         define.
879         (TARGET_ATTRIBUTE_TABLE): Define.
880         (ix86_attribute_table, ix86_handle_cdecl_attribute,
881         ix86_handle_regparm_attribute): New.
882         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
883         i386_pe_valid_type_attribute_p): Remove.
884         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
885         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
886         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
887         (TARGET_ATTRIBUTE_TABLE): Define.
888         (ia64_attribute_table): New.
889         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
890         interrupt_ident2, model_ident1, model_ident2): Remove.
891         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
892         (TARGET_ATTRIBUTE_TABLE): Define.
893         (init_idents): Update.
894         (m32r_attribute_table, m32r_handle_model_attribute): New.
895         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
896         Remove.
897         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
898         (TARGET_ATTRIBUTE_TABLE): Define.
899         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
900         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
901         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
902         (TARGET_ATTRIBUTE_TABLE): Define.
903         (mcore_attribute_table, mcore_handle_naked_attribute): New.
904         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
905         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
906         (TARGET_ATTRIBUTE_TABLE): Define.
907         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
908         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
909         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
910         (TARGET_ATTRIBUTE_TABLE): Define.
911         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
912         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
913         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
914         (TARGET_ATTRIBUTE_TABLE): Define.
915         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
916         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
917         New.
918         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
919         Remove.
920         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
921         (TARGET_ATTRIBUTE_TABLE): Define.
922         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
923         New.
924         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
925         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
926         (TARGET_ATTRIBUTE_TABLE): Define.
927         (v850_attribute_table, v850_handle_interrupt_attribute,
928         v850_handle_data_area_attribute): New.
929         * config/v850/v850-c.c (mark_current_function_as_interrupt):
930         Return void.  Call decl_attributes instead of
931         valid_machine_attribute.
932
933 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
934
935         * sh-protos.h (sh_pr_n_sets): Declare.
936         * sh.c (calc_live_regs): If the initial value for PR has been copied,
937         look at the copy to determine if PR needs to be saved.
938         sh_pr_n_sets: New function.
939         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
940         (ALLOCATE_INITIAL_VALUE): Define.
941
942         * sh.c (initial_elimination_offset):
943         Fix RETURN_ADDRESS_POINTER_REGNUM case.
944
945 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
946
947         * integrate.c (allocate_initial_values): New function.
948         * integrate.h (allocate_initial_values): Declare.
949         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
950         here...
951         * reload1.c (reload): And initialization of reg_equiv_memory_loc
952         from here...
953         * toplev.c (rest_of_compilation): To here.
954         Call allocate_initial_values.
955         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
956
957 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
958
959         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
960
961 2001-09-20  DJ Delorie  <dj@redhat.com>
962
963         * c-typeck.c (really_start_incremental_init): Discriminate
964         between zero-length arrays and flexible arrays.
965         (push_init_level): Detect zero-length arrays and handle them
966         like fixed-sized arrays.
967         * expr.c (store_constructor): Handle zero-length arrays and
968         flexible arrays correctly.
969         * doc/extend.texi: Update zero-length array notes.
970
971 2001-09-20  Jim Wilson  <wilson@redhat.com>
972
973         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
974         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
975         for issue port conflicts.
976         (cycle_end_fill_slots): TYPE_L instructions take two slots.
977
978 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
979
980         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
981         on ia64.
982
983 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
984
985         * fold-const.c (hashtab.h): Include.
986         (int_const_binop): Remove FORSIZE arg and compute from type; all
987         callers changed.
988         Call size_int_type_wide for all single-word constants.
989         (size_htab_hash, size_htab_eq): New functions.
990         (size_int_type_wide): Rework to use hash table.
991         * ggc-common.c (hashtab.h): Include.
992         (struct d_htab_root): New struct.
993         (d_htab_roots): New variable.
994         (ggc_add_deletable_htab, ggc_htab_delete): New functions
995         (ggc_mark_roots): Handle deletable htabs.
996         * ggc-page.c (ggc_marked_p): New function.
997         * ggc-simple.c (ggc_marked_p): Likewise.
998         * ggc.h: Reformatting throughout.
999         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
1000         * tree.c (init_obstacks): Make type_hash_table a deletable root.
1001         (type_hash_add): Allocate struct type_hash from GC memory.
1002         (mark_hash_entry, mark_type_hash): Deleted.
1003         (type_hash_marked_p, type_hash_mark): New functions.
1004         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
1005
1006 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
1007
1008         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
1009         than SImode.
1010
1011 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1012
1013         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
1014         array-too-large test for signed sizetype.
1015
1016 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
1017
1018         * i386.md (indirect_jump): Allow Pmode operand.
1019         (tablejump): LIkewise; perform expansion to 64bit mode.
1020         * i386.c (symbolic_operand): Allow 64bit PIC references.
1021         (pic_symbolic_operand): Likewise.
1022         (ix86_find_base_term): Strip the 64bit PIC references.
1023         (legitimate_pic_address_disp_p): Handle 64bit PIC.
1024         (legitimize_pic_address): Likewise.
1025         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
1026         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
1027
1028 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
1029
1030         * stringpool.c (get_identifier_with_length): New function.
1031         * tree.h (get_identifier_with_length): New prototype.
1032
1033 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
1034             David Edelsohn  <edelsohn@gnu.org>
1035
1036         Revert:
1037         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
1038         already sign-extended.
1039
1040         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
1041         * config/rs6000/rs6000.c (logical_operand): Always compare op as
1042         HOST_WIDE_INT.
1043         (rs6000_emit_set_long_const): Avoid unnecessary shift.
1044         (output_profile_hook): Declare label_name const.
1045         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
1046         to match constraints.
1047
1048 2001-09-19  Stan Shebs  <shebs@apple.com>
1049
1050         * alias.c: Fix typos in comments.
1051         * sched-rgn.c (init_ready_list): Ditto.
1052         * unwind-dw2.c (uw_frame_state_for): Ditto.
1053         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
1054         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
1055         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
1056
1057 2001-09-19  Richard Henderson  <rth@redhat.com>
1058
1059         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
1060         to the exit block.
1061         * Makefile.in (cfg.o): Depend on TM_P_H.
1062
1063 2001-09-19  Richard Henderson  <rth@redhat.com>
1064
1065         * config/alpha/alpha.c (local_symbol_p): Split out from ...
1066         (local_symbolic_operand): ... here.
1067         (small_symbolic_operand): Check mode.
1068         (global_symbolic_operand): New.
1069         (input_operand): Reject symbolics if explicit relocs.
1070         (call_operand): Tidy.
1071         (alpha_legitimize_address): Use movdi_er_high_g.
1072         (alpha_expand_mov): Likewise.
1073         * config/alpha/alpha-protos.h: Update.
1074         * config/alpha/alpha.h (PREDICATE_CODES): Update.
1075         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
1076         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
1077         (UNSPECV_LDGP2): Remove.
1078         (all call patterns): Use 's' not 'i' for symbolic constraint.
1079         (call_osf call_value_osf): Use call_operand.
1080         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
1081         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
1082         (prologue_ldgp_1_er): Remove.
1083         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
1084         (builtin_setjmp_receiver_er patterns): Use them.
1085         (exception_receiver_er): Likewise.
1086
1087 2001-09-19  Richard Henderson  <rth@redhat.com>
1088
1089         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
1090
1091         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
1092         and NON_LOCAL_GOTO notes.
1093         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
1094         copy over CALL_INSN_FUNCTION_USAGE.
1095
1096 2001-09-18  Catherine Moore  <clm@redhat.com>
1097
1098         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
1099         Define as 0.
1100
1101 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
1102
1103         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
1104         new-style tm_file specification.  Specify correct tm_p_file,
1105         md_file, and out_file for s390x.
1106
1107         * config/s390/linux.h, linux64.h:  Don't include other target
1108         macro header files.  Now handled via tm_file.
1109
1110         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
1111         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
1112         are defined before use.
1113
1114 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
1115
1116         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
1117         code generation only for Gnu assembler.
1118
1119 2001-09-18  Catherine Moore  <clm@redhat.com>
1120
1121         * config/stormy16 (LIB_SPEC): Remove -lnosys.
1122
1123 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
1124
1125         * config/mips/mips.c (mips_frame_set): New.
1126         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
1127         a parallel frame-related expression with a set for each register.
1128
1129 2001-09-18  Philip Blundell  <philb@gnu.org>
1130
1131         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
1132         header files.
1133
1134 2001-09-17  Dale Johannesen  <dalej@apple.com>
1135
1136         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
1137         * config/rs6000/aix.h (FIXED_R2): Define.
1138         * config/rs6000/darwin.h (FIXED_R2): Define.
1139         * config/rs6000/sysv4.h (FIXED_R2): Define.
1140
1141 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
1142
1143         * except.c (dw2_build_landing_pads): New local
1144         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
1145         barrier after clobbers.  Fixes c++/4012.
1146
1147 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1148
1149         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
1150
1151 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1152
1153         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
1154         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
1155
1156 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1157
1158         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
1159         alloca/strcpy.
1160
1161 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1162
1163         * cpphash.h (_cpp_lex_direct): New.
1164         * cpplex.c (_cpp_lex_token): Update.
1165         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
1166         and increment that pointer.
1167         * cppmacro.c (alloc_expansion_token): New.
1168         (lex_expansion_token): Lex macro expansion directly into
1169         macro storage.
1170
1171 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
1172
1173         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
1174
1175 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
1176
1177         * basic-block.h (free_bb_for_insn): Declare.
1178         * bb-reorder.c (label_for_bb): Use block_label.
1179         (emit_jump_to_block_after): Remove.
1180         (insert_intra_1): Do not update block_for_insn.
1181         (insert_inter_bb_scope_notes): Likewise; update bb->end
1182         * cfg.c (free_bb_for_insn): New.
1183         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
1184         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
1185         (commit_one_edge_insertion): Likewise.
1186         (commit_one_edge_insertion): Do not update BB boundary.
1187         (commit_edge_insertions): Do not call compute_bb_for_insn.
1188         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
1189         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
1190         (merge_blocks_move_successor_nojumps): Likewise.
1191         (try_crossjump_to_edge): Do not update block_for_insn.
1192         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
1193         * df.c (df_pattern_emit_later): Do not update BB boundary.
1194         (df_jump_pattern_emit_after): Likewise.
1195         (df_insn_move_before): Use emit_insn_before.
1196         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
1197          properly.
1198         (add_insn_after, add_insn_before, emit_insns_after): Update BB
1199         boundaries and basic_block_for_insn.
1200         (reorder_insns_nobb): Rename from reorder_insns.
1201         (reorder_insns): New.
1202         (emit_block_insn_before, emit_block_insn_after): Kill.
1203         * flow.c (check_function_return_warnings): Do not call
1204         compute_bb_for_insn; Do not free basic_block_for_insn.
1205         (attempt_auto_inc): Do not update basic_block_for_insn.
1206         * function.c (emit_return_into_block): Likewise;
1207         do not update BB boundaries.
1208         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
1209         (insert_insn_end_bb): Use emit_insn_before; Likewise.
1210         (pre_insert_copy_insn): Likewise.
1211         (update_ld_motion_notes): Likewise.
1212         (insert_insn_start_bb): Likewise.
1213         (replace_store_insn): Likewise.
1214         * ifcvt.c (noce_process_if_block): Likewise.
1215         (if_convert): Do not call compute_bb_for_insn.
1216         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
1217         Use emit_insn_before and emit_insn_after.
1218         * recog.c (split_all_insns): Do not update BB boundaries;
1219         Do not call compute_bb_for_insn.
1220         (peephole2_optimize): Do not update BB boundaries.
1221         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
1222         emit_insn_before.
1223         (emit_swap_insn): Likewise.
1224         (convert_regs_1): Likewise.
1225         * reload1.c (reload): Call compute_bb_for_insn.
1226         * rtl.h (reorder_insns_nobb): Declare.
1227         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
1228         * toplev.c (rest_of_compilation): Call free_bb_for_insn
1229         at places CFG is invalidated; do not call compute_bb_for_insn.
1230
1231         * cfg.c (expunge_block): Invalidate BB structure.
1232
1233         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
1234         array.
1235
1236         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
1237
1238 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1239
1240         * cpphash.h (_cpp_lex_token): Update prototype.
1241         * cpplex.c (_cpp_lex_token): New prototype.
1242         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
1243         lex_macro_node, read_flag, do_pragma_poison): Update.
1244         * cppmacro.c (cpp_get_token, parse_params,
1245         lex_expansion_token): Update.
1246
1247 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1248
1249         * cppmain.c (scan_translation_unit): Don't worry about
1250         putting a space after hashes.
1251         * cpplib.c (directive_diagnostics): New.
1252         (_cpp_handle_directive): Update to use directive_diagnostics.
1253         (run_directive): Don't toggle prevent_expansion.
1254         (do_line): Backup in case of the line extension.
1255         * cpplib.h (cpp_lexer_pos): Remove.
1256         * cppmacro.c (_cpp_create_definition): Precede a leading #
1257         with whitespace.
1258
1259 2001-09-15  Richard Henderson  <rth@redhat.com>
1260
1261         * c-typeck.c (comptypes): Handle zero-length arrays properly.
1262
1263 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1264
1265         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
1266
1267 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1268
1269         PR preprocessor/3571
1270         * tradcpp.c (handle_directive): Skip non-vertical space.
1271
1272 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1273
1274         * cppmain.c (setup_callbacks): Set line callback only
1275         if outputting preprocessed source.
1276
1277 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1278
1279         * collect2.c (main): Const-ification.
1280         * gcc.c (translate_options, process_command): Use xstrdup in
1281         lieu of xmalloc/strcpy.
1282         (main): Use concat in lieu of xmalloc/strcpy/strcat.
1283
1284 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1285
1286         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
1287         example.
1288
1289 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1290
1291         * scan-decls.c (scan_decls): Fix typo.
1292
1293 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1294
1295         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
1296         Split mlstring_pos into mls_line and mls_col.
1297         * cppinit.c (cpp_create_reader): Initialize line to 1.
1298         (cpp_destroy): Free tokenruns.
1299         (push_include): Don't update lexer_pos.
1300         * cpplex.c (unterminated, parse_string): Update.
1301         (lex_token): Don't update lexer_pos, update.
1302         * cpplib.c (if_stack): Save line instead of line + col.
1303         (start_directive, _cpp_do__Pragma, do_else, do_elif,
1304         push_conditional, _cpp_pop_buffer): Update.
1305         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
1306         (_cpp_create_definition): Update.
1307
1308 2001-09-15  Eric Christopher  <echristo@redhat.com>
1309
1310         * config/mips/abi64.h: Add support for MEABI.
1311
1312 2001-09-15  Eric Christopher  <echristo@redhat.com>
1313
1314         * config/mips/mips.md: Add unspec #2.
1315         (reload_indi): Use.
1316         (reload_outdi): Ditto.
1317         (reload_outsi): Ditto.
1318         (HILO_delay): New.
1319
1320 2001-09-15  Eric Christopher  <echristo@redhat.com>
1321             Jason Eckhardt  <jle@redhat.com>
1322
1323         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
1324         * config/mips/isa32-linux.h: New file.
1325         * config/mips/isa3264.h: Ditto.
1326         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
1327         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
1328         (output_block_mode): Support MEABI.
1329         (function_arg): Ditto. Fix floating point arg passing.
1330         (mips_va_start): Ditto.
1331         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
1332         processors.
1333         (mips_asm_file_start): Add new section to pass abi to gdb.
1334         (function_arg_pass_by_reference): Support MEABI.
1335         (mips_parse_cpu): Support mips32 and mips64 processors.
1336         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
1337         TARGET_MIPS5KC.  Support isa32 and isa64.
1338         (processor_type): Add r4kc, r5kc, r20kc.
1339         (GENERATE_MULT3_SI): New.
1340         (GENERATE_MULT3_DI): Ditto.
1341         (GENERATE_MULT3): Remove.
1342         (ISA_HAS_64BIT_REGS): Add isa == 64.
1343         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
1344         (ISA_HAS_MADD_MSUB): New.
1345         (ISA_HAS_CLZ_CLO): Ditto.
1346         (ISA_HAS_DCLZ_DCLO): Ditto.
1347         (ABI_GAS_ASM_SPEC): New.
1348         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
1349         (ASM_SPEC): Ditto.
1350         (LINK_SPEC): Ditto.
1351         (SUBTARGET_CC1_SPEC): Ditto.
1352         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
1353         (PAD_VARARGS_DOWN): Support MEABI.
1354         (HARD_REGNO_NREGS): Move to mips.c.
1355         (ASM_OUTPUT_IDENT): Add #undef.
1356         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
1357         (mulsi3): Use GENERATE_MULT3_SI.
1358         (mulsi3_mult3): Ditto.  Support mips32, mips64.
1359         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
1360         (mul_sub_si): New pattern.
1361         (unnamed splitters): New.
1362         (muldi3): Use GENERATE_MULT3_DI.
1363         (muldi3_internal2): Ditto.
1364         (movdicc): Support mips32.
1365         * config/mips/t-isa3264: New file.
1366
1367 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
1368
1369         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
1370         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
1371         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
1372
1373         * reorg.c (fill_slots_from_thread): After call to
1374         steal_delay_list_from_target, update own_thread as new_thread may
1375         have branched.
1376
1377 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1378
1379         * cpperror.c (print_location): Take line and column, for
1380         default positioning use the previously lexed token.
1381         (_cpp_begin_message): Take line and column.
1382         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
1383         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
1384         * cpphash.h (_cpp_begin_message): Update prototype.
1385         * cppinit.c (push_include): Don't set output line.
1386         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
1387         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
1388         (do_pragma): Kludge for front ends.  Don't expand macros at all.
1389         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
1390         (struct cpp_token): Remove output_line.
1391         (struct cpp_callbacks): New member line_change.
1392         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
1393         cpp_get_token): Preserve BOL flag.
1394         (cpp_get_line): Remove.
1395         (_cpp_backup_tokens): Remove useless abort().
1396         * cppmain.c (cb_line_change): New.
1397         (scan_translation_unit): Don't worry about starting new lines here.
1398         * scan-decls.c (scan_decls): Update.
1399         * c-lex.c (c_lex, init_c_lex): Update.
1400         (cb_line_change, src_lineno): New.
1401
1402 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
1403
1404         * tree.c (append_random_chars): Generate the random
1405         characters in a reproducable fashion.
1406
1407 2001-09-14  Richard Henderson  <rth@redhat.com>
1408
1409         * config/i386/i386.c (internal_label_prefix): New.
1410         (internal_label_prefix_len): New.
1411         (override_options): Set them.
1412         (local_symbolic_operand): New.
1413         (legitimate_pic_address_disp_p): Use it.
1414         (legitimize_pic_address): Likewise.
1415
1416 2001-09-14  Marc Espie <espie@openbsd.org>
1417
1418         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
1419         correctly.
1420
1421 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1422
1423         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
1424         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
1425
1426 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
1427
1428         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
1429         invocation of SUBREG_REGNO_OFFSET.
1430
1431         * haifa-sched.c: Fix typo in FSF copyright statement.
1432         * sched-deps.c: Fix typo in FSF copyright statement.
1433         * sched-ebb.c: Fix typo in FSF copyright statement.
1434         * sched-rgn.c: Fix typo in FSF copyright statement.
1435         * sched-vis.c: Fix typo in FSF copyright statement.
1436
1437         * config.gcc: Move inclusion of arm elf specific header files
1438         from the files themselves into the tm_file variable.  Make
1439         sure that elfos.h is included before target specific elf
1440         headers.
1441         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
1442         already defined.
1443         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
1444         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
1445         ASM_OUTPUT_CASE_LABEL): Protect definition.
1446         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
1447         not already defined.
1448         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
1449         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
1450         Remove duplicate definition.
1451         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
1452         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
1453         (RDATA_SECTION_FUNCTION): Remove redundant definition.
1454         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
1455         Remove inclusion of arm/elf.h.
1456         * config/arm/unknown-elf.h: as for conix-elf.h.
1457         (STARTFILE_SPEC): Include crti.o and crtn.o.
1458         * config/arm/linux-elf.h: as for conix-elf.h.
1459         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
1460         * config/arm/strongarm-elf.h: Remove inclusion of
1461         unknown-elf.h.
1462         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
1463         * config/arm/unknown-elf-oabi.h: Remove inclusion of
1464         unknown-elf.h and elf.h.
1465         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
1466         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
1467         ASM_WEAKEN_LABEL): Remove redundant definition.
1468         * config/arm/elf.h: Test for inclusion of elfos.h
1469         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
1470         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
1471         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
1472         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
1473         redundant definition.
1474         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
1475         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
1476         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
1477         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
1478         Add rules to build crti.o and crtn.o
1479         * crti.asm: New file.
1480         * crtn.asm: New file.
1481
1482 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1483
1484         * c-parse.in (_yylex): Use _cpp_backup_tokens.
1485         * cpphash.h (struct tokenrun): Add prev.
1486         (struct lexer_state): Remove bol.
1487         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
1488         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
1489         : Remove.
1490         * cppinit.c (cpp_create_reader): Don't set bol.
1491         (cpp_destroy): Don't free lookaheads.
1492         * cpplex.c (lex_directive): Remove.
1493         (next_tokenrun): Update.
1494         (_cpp_lex_token): Clean up logic.
1495         (lex_token): Update to return a pointer to lexed token, since it
1496         can move to the start of the buffer.  Simpify newline handling.
1497         * cpplib.c (SEEN_EOL): Update.
1498         (skip_rest_of_line): Remove lookahead stuff.
1499         (end_directive): Line numbers are already incremented.  Revert
1500         to start of lexed token buffer if we can.
1501         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
1502         parse_answer): Use _cpp_backup_tokens.
1503         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
1504         instead.  Don't check for EOL.
1505         (do_include_common, do_line, do_pragma_system_header): Use
1506         skip_rest_of_line.
1507         * cpplib.h (BOL, _cpp_backup_tokens): New.
1508         * cppmacro.c (save_lookahead_token, take_lookahead_token,
1509         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
1510         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
1511         (builtin_macro): Don't use cpp_get_line.
1512         (cpp_get_line): Short term kludge.
1513         (parse_arg): Handle directives in arguments here.  Back up when
1514         appropriate.  Store EOF at end of argument list.
1515         (funlike_invocation_p): Use _cpp_backup_tokens.
1516         (push_arg_context): Account for EOF at end of list.
1517         (cpp_get_token): Remove lookahead stuff.  Update.
1518
1519 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1520
1521         * c-parse.in (yyerror): Const-ification and/or static-ization.
1522         * c-typeck.c (push_member_name): Likewise.
1523         * collect2.c (main): Likewise.
1524         * dbxout.c (dbxout_parms): Likewise.
1525         * diagnostic.c (format_with_decl): Likewise.
1526         * dwarf2out.c (output_ranges): Likewise.
1527         * dwarfout.c (fundamental_type_code): Likewise.
1528         * except.c (dw2_output_call_site_table): Likewise.
1529         * gcc.c (do_spec_1): Likewise.
1530         * genopinit.c (optabs): Likewise.
1531         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
1532         gen_declaration_1, handle_impent): Likewise.
1533         * protoize.c (default_include, in_system_include_dir, abspath):
1534         Likewise.
1535         * sched-vis.c (visualize_stall_cycles): Likewise.
1536         * sdbout.c (plain_type_1, sdbout_end_function,
1537         sdbout_end_epilogue): Likewise.
1538         * varasm.c (decode_reg_name): Likewise.
1539
1540         * 1750a.c (mod_regno_adjust): Likewise.
1541         * alpha.c (alpha_write_one_linkage,
1542         unicosmk_output_default_externs): Likewise.
1543         * arm.c (arm_condition_codes): Likewise.
1544         * arm.h (arm_condition_codes): Likewise.
1545         * avr.c (output_movsisf, encode_section_info): Likewise.
1546         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
1547         Likewise.
1548         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
1549         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
1550         * m88k.c (output_function_profiler): Likewise.
1551         * mips.c (mips_output_conditional_branch): Likewise.
1552         * ns32k.c (ns32k_out_reg_names): Likewise.
1553         * ns32k.h (ns32k_out_reg_names): Likewise.
1554         * pj.c (pj_output_rval): Likewise.
1555         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
1556         * sparc.c (sparc_flat_function_prologue,
1557         sparc_flat_function_epilogue): Likewise.
1558
1559 2001-09-13  Markus Werle <numerical.simulation@web.de>
1560             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1561
1562         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
1563         Aachen University of Technology".
1564
1565 2001-09-13  Andreas Schwab  <schwab@suse.de>
1566
1567         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
1568         C99.
1569
1570 2001-09-13  Richard Henderson  <rth@redhat.com>
1571
1572         * config/alpha/alpha.c (small_symbolic_operand): New.
1573         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
1574         (some_operand, input_operand): Don't handle HIGH.
1575         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
1576         (alpha_expand_mov): Likewise.
1577         (print_operand) [H]: Just print HIGH symbol.
1578         (print_operand_address): Handle small data.
1579         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
1580         (TARGET_SWITCHES): Add -msmall-data/large-data.
1581         (PIC_OFFSET_TABLE_REGNUM): New.
1582         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
1583         (PREDICATE_COES): Update.
1584         * config/alpha/alpha.md (adddi_er_high): New.
1585         (adddi_er_low): Handle small data.
1586         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
1587         prefer .sdata to .rodata.
1588         (SELECT_RTX_SECTION): Likewise.
1589
1590 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
1591
1592         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
1593         defining __size_t and leaving size_t undefined.
1594
1595 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
1596
1597         * basic-block.h (expunge_block): Declare.
1598         * cfg.c (expunge_block): Remove static declaration.
1599
1600 2001-09-12  Richard Henderson  <rth@redhat.com>
1601
1602         * integrate.c (copy_insn_list): Copy label name from
1603         NOTE_INSN_DELETED_LABEL.
1604
1605 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1606
1607         * c-common.c (c_tree_code_name): Const-ification.
1608         * c-decl.c (c_decode_option): Likewise.
1609         * c-typeck.c (warn_for_assignment): Likewise.
1610         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
1611         Likewise.
1612         * cppinit.c (output_deps): Likewise.
1613         * dependence.c (dependence_string, direction_string): Likewise.
1614         * dwarf2out.c (output_ranges): Likewise.
1615         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
1616         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
1617         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
1618         standard_startfile_prefix, standard_startfile_prefix_1,
1619         standard_startfile_prefix_2, tooldir_base_prefix,
1620         standard_bindir_prefix, find_a_file): Likewise.
1621         * genattrtab.c (make_length_attrs): Likewise.
1622         * gencheck.c (tree_codes): Likewise.
1623         * genemit.c (gen_split): Likewise.
1624         * genrecog.c (special_mode_pred_table): Likewise.
1625         * graph.c (graph_ext): Likewise.
1626         * protoize (default_include): Likewise.
1627         * reload.c (reload_when_needed_name): Likewise.
1628         * sched-vis.c (visualize_stall_cycles): Likewise.
1629         * tlink.c (recompile_files): Likewise.
1630         * toplev.c (decode_g_option): Likewise.
1631         * tradcpp.c (output_deps): Likewise.
1632         * varasm.c (decode_reg_name): Likewise.
1633
1634         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
1635         Const-ification.
1636         * arm.md: Likewise.
1637         * avr.c (avr_regnames, encode_section_info): Likewise.
1638         * c4x.c (float_reg_names): Likewise.
1639         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
1640         * elfos.h (const_section): Likewise.
1641         * i386.c (ix86_comp_type_attributes): Likewise.
1642         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
1643         * ia64/aix.h (UNIQUE_SECTION): Likewise.
1644         * ia64.c (type_names): Likewise.
1645         * m68hc11.c (reg_class_names): Likewise.
1646         * m88k.c (m_options): Likewise.
1647         * mips.c (mips_output_conditional_branch, mips_unique_section):
1648         Likewise.
1649         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1650         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
1651         ultra_code_names): Likewise.
1652         * sparc.h (OVERRIDE_OPTIONS): Likewise.
1653
1654 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
1655
1656         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
1657         Use --fatal-warnings option for gas.
1658         * configure: Rebuilt.
1659
1660 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1661
1662         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
1663
1664 2001-09-11  Jim Wilson  <wilson@redhat.com>
1665
1666         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
1667
1668 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1669
1670         * builtins.c (c_strlen): Treat an offset too large for a
1671         HOST_WIDE_INT as out of range.
1672
1673 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
1674
1675         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
1676         (EDGE_CRITICAL_P): New predicate.
1677         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
1678         handling.
1679         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
1680         (dump_edge_info): Remove "crit".
1681         * cfganal.c (mark_critical_edges): Kill.
1682         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
1683         * cfgcleanup.c (cleanup_cfg): Likewise.
1684         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
1685         (find_spanning_tree): Likewise.
1686         * reg-stack.c (convert_regs_1): Likewise.
1687         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
1688
1689         * basic-block.h (create_basic_block_structure): New.
1690         (create_basic_block): Update prototype.
1691         (force_nonfallthru): New.
1692         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
1693         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
1694         handle updating of block_for_insn, creating of empty BBs and BBs at
1695         the end of INSN chain.
1696         (create_basic_block): New function.
1697         (split_block): Use create_basic_block.
1698         (force_nonfallthru_and_redirect): Break out from ...; cleanup
1699         (redirect_edge_and_branch_force): ... here.
1700         (force_nonfallthru): New.
1701         (split_edge): Rewrite to use force_nonfallthru and create_block.
1702         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
1703         (find_basic_blocks): Free basic_block_for_insn.
1704         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
1705
1706         * cfg.c: Fix formating.
1707         * cfgcleanup.c: Fix formating.
1708         (merge_blocks, tail_recursion_label_p): Return bool.
1709         (merge_blocks_move_predecessor_nojumps,
1710          merge_blocks_move_successor_nojumps): Return void.
1711
1712 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
1713
1714         * configure.in: Check whether assembler supports section merging.
1715         * config.in: Rebuilt.
1716         * configure: Rebuilt.
1717         * varasm.c (variable_section, output_constant_pool): Pass alignment
1718         to SELECT_SECTION and SELECT_RTX_SECTION.
1719         (mergeable_string_section): New.
1720         (mergeable_constant_section): New.
1721         (default_elf_asm_named_section): Output SECTION_MERGE and
1722         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
1723         * output.h (mergeable_string_section): New.
1724         (mergeable_constant_section): New.
1725         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
1726         * toplev.c (flag_merge_constants): New.
1727         (f_options): Add -fmerge-constants and -fmerge-all-constants
1728         options.
1729         (toplev_main): Default to -fno-merge-constants if not optimizing.
1730         * flags.h (flag_merge_constants): Add extern.
1731         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
1732         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
1733         argument.
1734         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
1735         Define if assembler has working .subsection -1 support.
1736         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
1737         Put constant into special SHF_MERGE sections if the linker should
1738         attempt to merge duplicates.
1739         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
1740         macro argument.
1741         Put constant into special SHF_MERGE sections if the linker should
1742         attempt to merge duplicates.
1743         * config/alpha/elf.h: Likewise.
1744         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
1745         has working .subsection -1 support.
1746         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
1747         SELECT_SECTION.
1748         * config/svr3.h: Likewise.
1749         * config/darwin.h: Likewise.
1750         * config/arm/aof.h: Likewise.
1751         * config/arm/linux-elf.h: Likewise.
1752         * config/avr/avr.h: Likewise.
1753         * config/c4x/c4x.h: Likewise.
1754         * config/d30v/d30v.h: Likewise.
1755         * config/i386/dgux.h: Likewise.
1756         * config/i386/osfrose.h: Likewise.
1757         * config/i386/sco5.h: Likewise.
1758         * config/i386/svr3gas.h: Likewise.
1759         * config/ia64/aix.h: Likewise.
1760         * config/m32r/m32r.h: Likewise.
1761         * config/m68k/m68k.h: Likewise.
1762         * config/m88k/dgux.h: Likewise.
1763         * config/m88k/m88k.h: Likewise.
1764         * config/mcore/mcore-pe.h: Likewise.
1765         * config/mips/mips.h: Likewise.
1766         * config/pa/pa.h: Likewise.
1767         * config/pa/pa-linux.h: Likewise.
1768         * config/romp/romp.h: Likewise.
1769         * config/rs6000/sysv4.h: Likewise.
1770         * config/rs6000/xcoff.h: Likewise.
1771         * config/s390/linux.h: Likewise.
1772         * config/sparc/sparc.h: Likewise.
1773         * config/sparc/sysv4.h: Likewise.
1774         * config/stormy16/stormy16.h: Likewise.
1775         * config/v850/v850.h: Likewise.
1776         * config/vax/vms.h: Likewise.
1777         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
1778         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
1779         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
1780         default_elf_asm_named_section for SHF_MERGE sections.
1781
1782 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
1783
1784         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
1785         is OK.
1786
1787 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
1788
1789         * c-common.c (split_specs_attrs): Allow for empty attributes with
1790         empty TREE_PURPOSE.  Fixes PR c/4294.
1791
1792 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
1793
1794         * basic-block.h (cached_make_edge, make_single_succ): New.
1795         (make_edge): Remove first parameter.
1796         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
1797         * cfg.c (cached_make_edge): Rename from make_edge; return newly
1798         created edge; use obstack allocation.
1799         (make_edge, make_single_succ_edge): New.
1800         (first_removed_edge): New static variable.
1801         (init_flow): Initialize first_removed_edge and n_edges.
1802         (clear_edges): Use remove_edge.
1803         (flow_delete_block): Likewise.
1804         (remove_edge): Add removed edges to the removed edges list.
1805         (split_block, redirect_edge_and_branch_force, split_edge):
1806         Use make_edge.
1807         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
1808         (add_noreturn_fake_exit_edges): Likewise.
1809         (connect_infinite_loops_to_exit): Liekwise.
1810         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
1811         Use cached_make_edge.
1812         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
1813         * profile.c (branch_prob): Update make_edge call.
1814         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
1815
1816 2001-09-11  Richard Henderson  <rth@redhat.com>
1817
1818         * config/alpha/alpha.c: Tidy formatting.
1819         (local_symbolic_operand): Verify mode.
1820         (alpha_sa_mask): Ignore unicos for eh_return.
1821         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
1822         * config/alpha/alpha.md (umk divsi patterns): Remove.
1823         (extendsfdf2): Remove unicos check.
1824         (tablejump): Merge vms and unicos code; always use direct set
1825         plus label_ref use.
1826
1827 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1828
1829         * config.gcc (alpha*-*-unicosmk*): New target.
1830
1831         * config/alpha/alpha-protos.h (symbolic_operand,
1832         unicosmk_add_call_info_word, unicosmk_add_extern,
1833         unicosmk_defer_case_vector, unicosmk_unique_section,
1834         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
1835         unicosmk_asm_file_start, unicosmk_asm_file_end,
1836         unicosmk_output_common): Declare.
1837
1838         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
1839         direct_return, function_arg, alpha_va_start, alpha_va_arg,
1840         alpha_does_function_need_gp, alpha_end_function): Support Cray
1841         Unicos/Mk.
1842         (alpha_init_machine_status, alpha_mark_machine_status,
1843         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
1844         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
1845         unicosmk_asm_named_section, unicosmk_insert_attributes,
1846         unicosmk_section_type_flags, symbolic_operand,
1847         unicosmk_output_module_name, unicosmk_output_default_externs,
1848         unicosmk_output_dex, unicosmk_output_externs,
1849         unicosmk_output_addr_vec, unicosmk_ssib_name,
1850         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
1851         unicosmk_asm_file_end, unicosmk_output_common,
1852         unicosmk_section_type_flags, unicosmk_unique_section,
1853         unicosmk_add_call_info_word, unicosmk_text_section,
1854         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
1855         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
1856         unicosmk_dex_count, unicosmk_special_name): New.
1857         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
1858         TARGET_ABI_UNICOSMK.
1859         (get_aligned_mem, alpha_expand_unaligned_load,
1860         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
1861         alpha_expand_unaligned_store_words): Support big-endian mode.
1862         (print_operand): Likewise. New format specifier 't'. Use
1863         TARGET_AS_SLASH_BEFORE_SUFFIX.
1864         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
1865         (alpha_pv_save_size): Update with above change.
1866         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
1867         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
1868         Unicos/Mk.
1869
1870         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
1871         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
1872         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
1873         (EXTRA_CONSTRAINT): New constraint 'U'.
1874         (PREDICATE_CODES): Add symbolic_operand.
1875
1876         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
1877         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
1878         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
1879         (integer division and modulus patterns): Split in default and
1880         Unicos/Mk versions.
1881         (*divmodsi_internal, *divmoddi_internal): Disable for
1882         TARGET_ABI_UNICOSMK.
1883         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
1884         little-endian and big-endian versions.
1885         (ext, ins, msk): Likewise.
1886         (extv, extzv, insv): Support big-endian mode.
1887         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
1888         (call_umk, call_value_umk, *call_umk, tablejump_umk,
1889         *tablejump_umk_internal, *call_value_umk): New.
1890         (*movdi_nofix): Add pattern for loading an address into a register on
1891         TARGET_ABI_UNICOSMK.
1892         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
1893         (umk_mismatch_args, arg_home_umk): New.
1894         (various insns): Don't use mov, fmov, nop, fnop and unop.
1895         (realign): Support TARGET_ABI_UNICOSMK.
1896
1897         * config/alpha/unicosmk.h: New file.
1898         * config/alpha/t-unicosmk: New file.
1899
1900         * fixinc/inclhack.def (unicosmk_restrict): New.
1901         * fixinc/fixincl.x: Regenerate.
1902
1903         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
1904         (wchar_t): Check for and define __WCHAR_T__.
1905
1906 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
1907
1908         * combine.c (simplify_shift_const): Treat shifts by the mode
1909         size as undefined.
1910
1911 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
1912
1913         * cpphash.h (struct tokenrun): New.
1914         (struct cpp_context): New member bol.
1915         (struct cpp_reader): New members.
1916         (_cpp_init_tokenrun): New.
1917         * cppinit.c (cpp_create_reader): Set up the token runs.
1918         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
1919         (lex_token): New internalised version of _cpp_lex_token.  Don't
1920         handle directives or the multiple include opimisation here any
1921         more.  Simply lex a token.
1922         * cpplib.c (run_directive): Clear bol.
1923         (_cpp_pop_buffer): Set bol.
1924         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
1925         arguments.
1926
1927 2001-09-11  Michael Meissner  <meissner@redhat.com>
1928
1929         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
1930         give an error if the user uses -mfp32.
1931         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
1932         default options.
1933         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
1934         floating point register size.
1935         (EXTRA_SPECS): Add CPP_FPR_SPEC.
1936
1937         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
1938         HOST_WIDE_INT_PRINT_DEC to properly print the result of
1939         int_size_in_bytes.
1940         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
1941         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
1942
1943 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
1944
1945         * dbxout.c (dbxout_parms): Fix typo in comment.
1946         * unroll.c (loop_find_equiv_value): Ditto.
1947         * toplev.c (rest_of_compilation): Ditto.
1948         * loop.c (scan_loop): Ditto.
1949         * dwarf2out.c (struct dw_fde_struct): Ditto.
1950
1951 2001-09-10  Zack Weinberg  <zackw@panix.com>
1952
1953         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
1954         copying identifier when we're just going to throw it away.
1955         (parse_identifier_slow): New routine to handle abnormal cases.
1956         (_cpp_lex_token): Update call site.
1957
1958         * hashtable.c (ht_lookup): Don't assume that the string we've
1959         been given is NUL-terminated.
1960         * system.h: #define __builtin_expect(a, b) to (a) if not
1961         GCC >=3.0.
1962
1963 2001-09-10  Michael Meissner  <meissner@redhat.com>
1964
1965         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
1966         binutils, gdb.
1967
1968 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
1969
1970         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
1971
1972 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1973
1974         * builtins.c (c_getstr): Correct thinko in last change and further
1975         cleanup.
1976
1977 2001-09-10  Tim Freeman <tim@fungibole.com>
1978
1979         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
1980         into varray's and register them as roots with the garbage
1981         collector so they are not collected too soon.
1982
1983 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
1984
1985         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
1986         New.
1987         * basic-block.h (flow_obstack, label_value_list,
1988         tail_recursion_label_list): Declare
1989         (tidy_fallthru_edges): Declare.
1990         (expunge_block, last_loop_beg_note): Delete.
1991         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
1992         * cfg.c: New file
1993         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
1994         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
1995         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
1996         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
1997         expunge_block, flow_delete_block, compute_bb_for_insn,
1998         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
1999         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
2000         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
2001         try_redirect_by_replacing_jump, last_loop_beg_note,
2002         redirect_edge_and_branch, redirect_edge_and_branch_force,
2003         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
2004         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
2005         commit_edge_insertions, dump_flow_info, debug_flow_info,
2006         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
2007         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
2008         Move here from flow.c
2009         * cfganal.c: New file.
2010         (forwarder_block_p, can_fallthru, mark_critical_edges,
2011          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
2012          find_unreachable_blocks, create_edge_list, free_edge_list,
2013          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
2014          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
2015          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
2016          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
2017          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
2018          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
2019         Move here from flow.c
2020         * cfgbuild.c: New file
2021         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
2022          make_edges, find_basic_blocks_1, find_basic_blocks,
2023          find_sub_basic_blocks): Move here from flow.c
2024         * cfgcleanup.c: New file.
2025         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
2026          merge_blocks_move_predecessor_nojumps,
2027          merge_blocks_move_successor_nojumps, merge_blocks,
2028          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
2029          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
2030         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
2031         if succeeded.
2032         * cfgloop.c: New file
2033         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
2034          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
2035          flow_loop_exit_edges_find, flow_loop_nodes_find,
2036          flow_loop_pre_header_scan, flow_loop_pre_header_find,
2037          flow_loop_tree_node_add, flow_loops_tree_build,
2038          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
2039          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
2040         Move here from flow.c
2041         * flow.c: Remove everything moved elsewhere
2042         * output.h (cleanup_cfg): Return bool.
2043
2044         * bb-reorder.c (reorder_block_def): Remove 'index'.
2045         (insert_intra_1): Add argument BB, set block for new note.
2046         (make_reorder_chain): Do not depdent on BB indexes.
2047         (make_reorder_chain_1): Do not use BB indexes.
2048         (label_for_bb): Likewise; set BB for new insn.
2049         (emit_jump_to_block_after): Likewise.
2050         (fixup_reoder_chain): Sanity check that all basic blocks
2051         are chained; verify newly created insn chain; remove
2052         undocnitional jump simplifying; Do not use BB indexes;
2053         properly initialize count and frequency information;
2054         dump reordered sequence.
2055         (insert_intra_bb_scope_notes): update call of insert_intra_1.
2056         (insert_inter_bb_scope_notes): Set block for new insn.
2057         (reorder_basic_blocks): Dump flow info before reoredering.
2058
2059 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2060
2061         * alias.c (clear_reg_alias_info): Use K&R format definition.
2062         Avoid unsigned warning.
2063         * builtins.c: Use "unsigned int", not "unsigned".
2064         (target_char_cast): Use host_integerp and tree_low_cst.
2065         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
2066         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
2067         (c_getstr): Likewise.
2068         (std_expand_builtin_va_arg): Use int_size_in_bytes.
2069         (builtin_memcpy_read_str): Avoid unsigned warning.
2070         (expand_builtin_memcpy): Alignments are unsigned.
2071         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
2072         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
2073         * predict.c (expensive_function_p): LIMIT now unsigned.
2074         * resource.c (mark_target_live_regs): Make some vars unsigned.
2075         * sdbout.c: Use "unsigned int", not "unsigned".
2076         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
2077         (sdbout_source_line): Likewise.
2078         (sdbout_record_type_name): Remove "const" for NAME declaration.
2079         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
2080
2081 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
2082
2083         * calls.c (store_one_arg): Expand comment.
2084
2085 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2086
2087         * calls.c (store_one_arg): Make sure that the entire argument is
2088         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
2089
2090 2001-09-09  Richard Henderson  <rth@redhat.com>
2091
2092         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
2093
2094 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
2095
2096         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
2097
2098 2001-09-09  Richard Henderson  <rth@redhat.com>
2099
2100         * config/alpha/alpha.c (alpha_next_sequence_number): New.
2101         (alpha_this_literal_sequence_number): New.
2102         (alpha_this_gpdisp_sequence_number): New.
2103         (some_operand, input_operand): Add HIGH.
2104         (local_symbolic_operand): New.
2105         (alpha_encode_section_info): New.
2106         (alpha_legitimate_address_p): Allow LO_SUM.
2107         (alpha_legitimize_address): Generate HIGH+LO_SUM.
2108         (alpha_expand_mov): Likewise.
2109         (secondary_reload_class): Check memory_operand not general_operand
2110         for FP_REGS test.
2111         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
2112         (alpha_expand_unaligned_store): Likewise.
2113         (alpha_expand_unaligned_load_words): Likewise.
2114         (alpha_expand_unaligned_store_words): Likewise.
2115         (alpha_expand_block_clear): Likewise.
2116         (print_operand): Handle %#, %*, %H.
2117         (print_operand_address): Handle LO_SUM.
2118         (find_lo_sum): New.
2119         (alpha_does_function_need_gp): Use it.
2120         (alpha_expand_block_move): Fix signed compare warnings.
2121         (alpha_sa_mask, alpha_align_insns): Likewise.
2122         * config/alpha/alpha-protos.h: Update.
2123         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
2124         (MASK_EXPLICIT_RELOCS): New.
2125         (TARGET_SWITCHES): Add -mexplicit-relocs.
2126         (EXTRA_CONSTRAINT): Add 'T'.
2127         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
2128         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
2129         (ENCODE_SECTION_INFO): Out line.
2130         (REDO_SECTION_INFO_P): New.
2131         (STRIP_NAME_ENCODING): New.
2132         (ASM_OUTPUT_LABELREF): New.
2133         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
2134         (PREDICATE_CODES): Update.
2135         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
2136         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
2137         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
2138         builtin_setjmp_receiver_er, exception_receiver_1_er,
2139         call_value_osf_1_er): New patterns.
2140         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
2141         (movqi, movhi, movsi): Add explicit $31 base register to lda.
2142         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
2143         (FINAL_PRESCAN_INSN): New.
2144
2145 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
2146
2147         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
2148
2149 2001-09-08  Andreas Jaeger  <aj@suse.de>
2150
2151         * i386.h (TARGET_SWITCHES): Fix description.
2152
2153 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
2154
2155         * rs6000.c (num_insns_constant): Compute number of instructions
2156         more accurately.
2157
2158         * doc/install.texi: Explain AIX exception handling work-around.
2159         Update URL for AIX fixes.
2160
2161 2001-09-07  Jim Wilson  <wilson@redhat.com>
2162
2163         * alias.c (clear_reg_alias_info): New.
2164         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
2165         * rtl.h (clear_reg_alias_info): Declare.
2166
2167 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2168
2169         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
2170         available.
2171         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
2172         (m16m,edivm,emulm): Change declaration to match definition.
2173
2174 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
2175
2176         * reload.c (push_reload): Check for subreg_lowpart_p instead of
2177         SUBREG_BYTE being 0 when determining if the inner part of a subreg
2178         can be reloaded.
2179
2180 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2181
2182         * c-common.c (signed_or_unsigned_type): Handle machine mode types
2183         which have no corresponding C type.
2184         * fold_const.c (target_isinf,target_isnan,target_negative): Update
2185         the representation of 64-bit doubles to work with 64-bit ints.
2186
2187 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
2188
2189         * config/mips/mips.c (override_options): Do not override ISA when ABI
2190         specified if MIPS_CPU_STRING_DEFAULT was specified.
2191
2192 2001-09-07  Richard Henderson  <rth@redhat.com>
2193
2194         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
2195         (express_from_1): Wrap lines.
2196         * rtlanal.c (commutative_operand_precedence): Rename from
2197         operand_preference; export.
2198         * rtl.h: Declare it.
2199         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
2200         (simplify_binary_operation): Invoke simplify_plus_minus on
2201         (CONST (PLUS ...)) as well.
2202         (struct simplify_plus_minus_op_data): New.
2203         (simplify_plus_minus_op_data_cmp): New.
2204         (simplify_plus_minus): Use them.  Avoid infinite recursion with
2205         simplify_binary_operation wrt CONST.
2206
2207 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
2208
2209         * h8300-protos.h (general_operand_dst_push): Remove.
2210         * h8300.c (general_operand_dst_push): Likewise.
2211         * h8300.h (OK_FOR_T): Likewise.
2212         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
2213         * h8300.md (pushqi_h8300): New.
2214         (pushqi_h8300hs): Likewise.
2215         (pushqi): Likewise.
2216         (pushhi_h8300): Likewise.
2217         (pushhi_h8300hs): Likewise.
2218         (pushhi): Likewise.
2219
2220 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2221
2222         * genattrtab.c (attr_printf): First arg is unsigned.
2223         Clean up formatting of callers.
2224
2225 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
2226
2227         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
2228         registers.
2229
2230 2001-09-07  Andreas Jaeger  <aj@suse.de>
2231
2232         * i386.h (TARGET_SWITCHES): Fix descriptions.
2233
2234 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2235
2236         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
2237
2238 2001-09-06  Ira Ruben  <ira@apple.com>
2239
2240         Remove OP_IDENTIFIER.
2241         * tree.def (OP_IDENTIFIER): Remove.
2242         * tree.c (tree_node_kind enum): Remove op_id_kind.
2243         (tree_node_kind_names): Remove "op_identifiers".
2244         (make_node): Remove OP_IDENTIFIER test.
2245         (build_op_identifier): Removed because it isn't being used.
2246         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
2247         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
2248
2249 2001-09-06  Richard Henderson  <rth@redhat.com>
2250
2251         * simplify-rtx.c (simplify_binary_operation): Revert last change.
2252
2253 2001-09-06  Richard Henderson  <rth@redhat.com>
2254
2255         * simplify-rtx.c (simplify_binary_operation): Simplify contents
2256         of CONST.
2257
2258 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2259
2260         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
2261         number used for CR register.
2262
2263 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
2264                           Joern Rennecke (amylaar@cygnus.com)
2265
2266         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
2267         * h8300.c (initial_offset): Handle offset between RP and FP.
2268         (h8300_return_addr_rtx): New function.
2269         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
2270         return register.
2271         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
2272         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
2273         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
2274         (CAN_ELIMINATE, REGISTER_NAMES):
2275         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
2276
2277 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
2278
2279         Remove TYPE_NONCOPIED_PARTS.
2280         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
2281         (struct tree_type): Remove noncopied_parts.
2282         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
2283         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
2284         (fixed_type_p): Remove.
2285         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
2286         (expand_expr, MODIFY_EXPR): Likewise.
2287         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
2288         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
2289
2290 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
2291
2292         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
2293         compiler warnings.
2294         (mask64_operand): Likewise.
2295         (includes_rldic_lshift_p): Likewise.
2296         (includes_rldicr_lshift_p): Likewise.
2297
2298 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
2299
2300         * objc/objc-act.c (build_message_expr): If a class method cannot
2301         be found, do not issue a warning if a corresponding instance
2302         method exists in the root class.
2303
2304 2001-09-05  Richard Henderson  <rth@redhat.com>
2305
2306         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
2307
2308 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
2309
2310         * function.c (ggc_mark_struct_function): Mark f->outer.
2311         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
2312         * integrate.c (output_inline_function): ... not here.
2313
2314 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
2315
2316         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
2317
2318         * i386.c (size_cost): New static variable.
2319         (override_function): Use size_cost when -Os is specified.
2320
2321         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
2322         properly;  Use current_function_calls_eh_return.
2323         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
2324         use leave to avoid depdendancy chain.
2325
2326         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
2327         get BB loop_depth instead of computing it from LOOP notes.
2328
2329         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
2330
2331 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2332
2333         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2334         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2335         UNALIGNED_DOUBLE_INT_ASM_OP): Define
2336
2337 2001-09-05  Jeffrey A Law  (law@cygnus.com)
2338             Jason Merrill (jason@redhat.com)
2339
2340         * stor-layout.c (layout_type): Complain if an array's size can
2341         not be represented in a size_t.
2342
2343         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
2344
2345 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
2346
2347         * gcc.c: (process_command) Add parentheses around assignment
2348         used as truth value.
2349
2350 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
2351
2352         * config/mips/mips.c (save_restore_insns): Don't mark any register
2353         save slots as unchanging if current_function_calls_eh_return.
2354
2355 2001-09-05  Richard Henderson  <rth@redhat.com>
2356
2357         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
2358         * config/alpha/alpha-protos.h: Declare it.
2359         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
2360         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
2361         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
2362         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
2363         (REG_OK_FOR_BASE_P): Select one of the above.
2364
2365 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
2366
2367         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
2368         (crti.o): Prefix name of object file with $(T).
2369         (crtn.o): Likewise.
2370
2371 2001-09-05  David S. Miller  <davem@redhat.com>
2372
2373         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
2374         * config/sparc/linux64.h: Likewise.
2375
2376 2001-09-05  Andreas Jaeger  <aj@suse.de>
2377
2378         * doc/invoke.texi (i386 Options): -mwide-multiply is not
2379         available anymore, remove the documentation.
2380         (i386 Options): Fix typo, cleanup index entries.
2381
2382         * prefix.c (concat): Remove, we can use the version from liberty.
2383
2384 2001-09-05  Richard Henderson  <rth@redhat.com>
2385
2386         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
2387         New functions split out of md file expanders.
2388         * config/alpha/alpha-protos.h: Declare them.
2389         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
2390
2391 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2392
2393         * cppmacro.c (funlike_invocation_p): No need to restore context.
2394
2395 2001-09-04  Richard Henderson  <rth@redhat.com>
2396
2397         * reload.c (push_reload): Export.
2398         * reload.h (push_reload): Declare it.
2399
2400         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
2401         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2402         * config/alpha/alpha.c (alpha_legitimize_address): New.
2403         (alpha_legitimize_reload_address): Likewise.
2404         * config/alpha/alpha-protos.h: Declare them.
2405
2406 2001-09-04  Stan Shebs  <shebs@apple.com>
2407
2408         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
2409         * config/darwin.c (machopic_stub_name): Account for internally
2410         generated lib calls such as memcpy.
2411
2412 2001-09-04  Richard Henderson  <rth@redhat.com>
2413
2414         * unwind.h (_UA_END_OF_STACK): New flag.
2415         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
2416
2417 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
2418
2419         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
2420
2421 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
2422
2423         * config/mips/mips.c (save_restore_insns): Change base_offset to
2424         fp_offset in second call to mips_emit_frame_related_store.
2425
2426 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
2427
2428         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
2429         sometimes be represented as a NOTE of type
2430         NOTE_INSN_DELETED_LABEL.
2431         (Insns): Document NOTE_INSN_DELETED_LABEL.
2432
2433 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
2434
2435         * c-common.h (tree_dump_index): Add more comments.
2436         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
2437         (dump_option_value_info): New struct.
2438         (dump_options): New array.
2439         (dump_switch_p): Parse switch options symbolically.
2440         * doc/invoke.texi (-fdump-ast): Rename to ...
2441         (-fdump-tree): ... here. Document that options are symbolic, and
2442         not all are applicable.
2443
2444 2001-09-04  David S. Miller  <davem@redhat.com>
2445
2446         * config/sparc/sparc.md (define_splits): Kill constraints.
2447
2448         Cleanup redundant and unused insn attributes.
2449         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
2450         binary, and move.  Mark ialu as default.
2451         (commented out define_function_unit "alu"): Kill.
2452         (define_attr "use_clobbered"): Kill.
2453         (whole file): Kill address insn type references.  Replace
2454         all unary/binary/move references with ialu.
2455         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
2456         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
2457         TYPE_IALU.
2458
2459         Simplify length insn attribute and make more judicious use
2460         of insn attribute defaulting.
2461         * config/sparc/sparc.md (all insns with length > one): Mark as
2462         insn type multi if real instructions, else use default if
2463         it is a forced splitter.
2464         (all insns with length == one): Use default insn length.
2465         (all insns of type ialu): Use default insn type.
2466
2467         Fix erroneous insn attribute settings.
2468         (addx): Set insn type to misc.
2469         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
2470         const_umulsidi3_sp64): Set insn type to imul.
2471
2472         Track SFmode vs DFmode insns according to UltraSPARC
2473         scheduling rules.
2474         * config/sparc/sparc.md ("fptype"): New attribute, default
2475         to "single".
2476         (all DFmode single insns): Mark as fptype "double".
2477
2478 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
2479
2480         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
2481
2482 2001-09-03  Richard Henderson  <rth@redhat.com>
2483
2484         * function.h (struct function): Add arg_pointer_save_area_init.
2485         * function.c (expand_function_end): Init arg_pointer_save_area.
2486         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
2487         when called from a nested function.
2488
2489 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
2490
2491         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
2492         is enabled.
2493
2494 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
2495
2496         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
2497
2498 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
2499
2500         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
2501         (emit_push_insn): Use specified padding direction when
2502         STACK_PUSH_CODE is POST_INC.
2503
2504         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
2505
2506 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2507
2508         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
2509
2510 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
2511
2512         * cppinit.c (cpp_start_read): Free the imacros list as we
2513         traverse it.  Don't free the chains before returning.
2514         (_cpp_push_next_buffer): Only try pushing buffers if we've
2515         completed -imacros handling.
2516
2517 2001-08-31  Eric Christopher  <echristo@redhat.com>
2518
2519         * gcc.c (handle_braces): Add explaination for abort.
2520
2521 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
2522
2523         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
2524         move adjustment of bitpos instead.
2525
2526 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
2527
2528         * function.c: Remove all_functions.  Make outer_function_chain
2529         static.
2530         (init_function_start): Don't add new function structure to
2531         all_functions.
2532         (find_function_data, push_function_context_to,
2533         pop_function_context_from, put_var_into_stack,
2534         trampoline_address): Update for changed structure element names.
2535         (push_function_context_to): Disentangle.
2536         (free_after_compilation): Also free F.
2537         (expand_dummy_function_end): Don't free cfun here.
2538         (put_var_into_stack): Comment why we can't use find_function_data here.
2539         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
2540         (mark_function_chain): Split into maybe_mark_struct_function and
2541         ggc_mark_struct_function.  Export the latter.
2542         (init_function_once): Mark from cfun and outer_function_chain;
2543         not all_functions.
2544
2545         * function.h (struct function): Kill next_global.  Rename next
2546         to outer.  All users updated to match.
2547         (all_functions, outer_function_chain): Don't declare.
2548
2549         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
2550         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
2551         don't touch f->inlinable, after calling rest_of_compilation.
2552
2553         * tree.h: Forward-declare struct function.  Prototype
2554         ggc_mark_struct_function.
2555
2556 2001-08-31  Kazu Hirata  <kazu@hxi.com>
2557
2558         * config/h8300/h8300.md (*andorhi3): Fix typos.
2559
2560 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2561
2562         * calls.c (emit_library_call_value): Don't use a fixed
2563         argument after VA_CLOSE, i.e. out of scope in traditional C.
2564
2565         * emit-rtl.c (gen_rtvec): Likewise.
2566
2567 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2568
2569         * Makefile.in (c-pragma.o): Depend on output.h.
2570         (reorg.o): Depend on except.h.
2571
2572         * c-pragma.c: Include output.h.
2573
2574         * reorg.c: Include except.h.
2575
2576         * unwind-dw2.c: Call __builtin_alloca, not alloca.
2577
2578 2001-08-31  Richard Henderson  <rth@redhat.com>
2579
2580         * sched-deps.c (add_dependence): Don't elide dependancy if the
2581         conditional used by insn is modified in elem.
2582
2583 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
2584
2585         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
2586
2587 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
2588
2589         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
2590         dump_switch_p.
2591
2592 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
2593
2594         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
2595         function.
2596         (stormy16_asm_out_constructor): New function.
2597         (TARGET_ASM_CONSTRUCTOR): Define.
2598         (TARGET_ASM_DESTRUCTOR): Define.
2599
2600 2001-08-31  Andreas Jaeger  <aj@suse.de>
2601
2602         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
2603         * loop.c (add_label_notes): Likewise.
2604         * reload.c (find_reloads): Likewise.
2605         * config/sh/sh.c (machine_dependent_reorg): Likewise.
2606
2607 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
2608
2609         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
2610         code here.  Take _Unwind_{W,Sw}ord*.
2611         (read_encoded_value_with_base): Use them.
2612         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
2613         words.
2614         (extract_cie_info): Simplify read_?leb128 handling.
2615         (execute_stack_op, execute_cfa_program): Likewise.
2616         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
2617
2618 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
2619
2620         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
2621         the frame pointer to pop the stack if convenient.
2622
2623         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
2624         Don't use post-increment before combine.
2625         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
2626         a call-saved register.
2627
2628 2001-08-31  Andreas Jaeger  <aj@suse.de>
2629
2630         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
2631         code was correct.
2632
2633 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
2634
2635         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
2636         not DIV/MOD, of course.
2637
2638 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
2639
2640         * rtl.def: Undo my patch commited 2001-08-27.
2641
2642         * genattrtab.c: Ditto.
2643
2644         * rtl.h: Ditto.
2645
2646         * sched-int.h: Ditto.
2647
2648         * target-def.h: Ditto.
2649
2650         * target.h: Ditto.
2651
2652         * haifa-sched.c: Ditto.
2653
2654         * sched-rgn.c: Ditto.
2655
2656         * sched-vis.c: Ditto.
2657
2658         * Makefile.in: Ditto.
2659
2660         * doc/md.texi: Ditto.
2661
2662         * doc/tm.texi: Ditto.
2663
2664         * doc/contrib.texi: Ditto.
2665
2666         * doc/gcc.texi: Ditto.
2667
2668         * genattrtab.h: Remove it.
2669
2670         * genautomata.c: Remove it.
2671
2672         * genattr.c: Undo my patch and Richard Henderson's patch commited
2673         2001-08-27.
2674
2675 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
2676
2677         * config.gcc (h8300-*-elf*): New case.
2678         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
2679         (SUBTARGET_CPP_SPEC): Define.
2680         (EXTRA_SPECS): Define.
2681         (SUBTARGET_EXTRA_SPECS): Define.
2682         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
2683         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
2684
2685 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
2686
2687         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
2688         (LIB2FUNCS_EXTRA): Define.
2689         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
2690         config/h8300/fixunssfsi.c: New file.
2691
2692 2001-08-30  Kazu Hirata  <kazu@hxi.com>
2693
2694         * config/h8300/h8300.md (zero_extendqihi2): Changes to
2695         define_expand to accomodate target-specific attributes.
2696         (anonymous zero_extendqihi2 patterns): New.
2697
2698 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
2699
2700         * h8300.md (*andorhi3): New pattern.
2701
2702 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
2703
2704         * h8300.c (dosize): Fix test for "sub".
2705
2706 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
2707
2708         * c-typeck.c (pointer_diff): Try to eliminate common term before
2709         doing conversions.
2710
2711 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
2712
2713         * config/arm/arm.c (arm_compute_initial_elimination_offset):
2714         Account for the saves of the FP registers.
2715
2716         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
2717         (TEXT_SECTION_ASM_OP): Define.
2718         (INIT_SECTION_ASM_OP): Define.
2719         (FINI_SECTION_ASM_OP): Define.
2720         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
2721         (RDATA_SECTION_FUNCITON): Provide prototype.
2722
2723 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
2724
2725         * reload1.c (move2add_note_store): Correct typo checking for
2726         argument pushes.
2727
2728 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
2729
2730         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
2731         note should not be considered outside the libcall block.
2732
2733 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2734
2735         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
2736
2737 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2738
2739         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
2740
2741 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2742
2743         * config/h8300/h8300-protos.h: Add a prototype for
2744         emit_logical_op.
2745         * config/h8300/h8300.c (emit_logical_op): New.
2746         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
2747         (andsi3): Likewise.
2748         (iorhi3): Likewise.
2749         (iorsi3): Likewise.
2750         (xorhi3): Likewise.
2751         (xorsi3): Likewise.
2752
2753 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2754
2755         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
2756         comparison with rtx INTVAL.
2757         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
2758         expression.
2759         * pa.h (FUNCTION_ARG_SIZE): Likewise.
2760
2761 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2762
2763         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
2764         comment typos.
2765
2766 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2767
2768         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
2769         (reg n) to (mem (pre_dec (reg n))
2770         (anonymous movsi pattern): Likewise.
2771
2772 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2773
2774         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
2775
2776 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2777
2778         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
2779         several special constants.
2780
2781 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2782
2783         * config/h8300/lib1funcs.asm: Fix comment typos.
2784
2785 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2786
2787         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
2788         Fix format specifier warnings.
2789
2790         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
2791         inet_makeaddr, semctl): Prototype.
2792
2793         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
2794         (save_restore_insns): Use base_offset, not gp_offset.
2795
2796         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
2797         (ASM_OUTPUT_BYTE): Fix format specifier warning.
2798
2799 2001-08-29  Richard Henderson  <rth@redhat.com>
2800
2801         * bb-reorder.c (function_tail_eff_head): New.
2802         (record_effective_endpoints): Set it.
2803         (fixup_reorder_chain): Use it.
2804
2805 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2806
2807         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
2808
2809 2001-08-28  Dale Johannesen  <dalej@apple.com>
2810
2811         * config/darwin.c (machopic_function_base_name): Add const
2812         qualifier to a string.
2813         (darwin_encode_section_info): Ditto.
2814
2815 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2816
2817         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
2818         function definition.
2819
2820 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
2821
2822         * df.h (struct df): Add rts_order variable.
2823
2824         * df.c (df_visit_next_rts): New function.
2825         (df_visit_next): Renamed to df_visit_next_rc
2826         (df_analyse_1): Allocate/compute/free rts_order as well.
2827         (df_rd_global_compute): Use df_visit_next_rc instead of
2828         df_visit_next.
2829         (df_ru_global_compute): Use df_visit_next_rts instead of
2830         df_visit_next.
2831
2832         * flow.c (flow_reverse_top_sort_order_compute): New function.
2833
2834         * basic-block.h: Add prototype.
2835
2836 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
2837
2838         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
2839         blocks, the BB_REACHABLE is now set, rather than aux being
2840         non-NULL. Update the test to reflect this.
2841
2842 2001-08-28  Eric Christopher  <echristo@redhat.com>
2843
2844         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
2845         config/mips/crti.asm: Ditto.
2846
2847 2001-08-28  Eric Christopher <echristo@redhat.com>
2848             Richard Henderson <rth@redhat.com>
2849
2850         * c-pragma.h (add_weak): Move prototype from here...
2851         * output.h (add_weak): ... to here.
2852         * varasm.c (add_weak): Fix typo.
2853         * config/mips/crti.asm: New file.
2854         * config/mips/crtn.asm: Ditto.
2855         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
2856         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
2857         (INVOKE__main): Ditto.
2858         (INIT_SECTION_ASM_OP): New.
2859         (FINI_SECTION_ASM_OP): Ditto.
2860         (STARTFILE_SPEC): Add crti.
2861         (ENDFILE_SPEC): Add crtn.
2862         * config/mips/elf64.h: Same.
2863         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
2864         Remove.
2865         * config/mips/vxworks.h: Ditto.
2866         * config/mips/t-elf: Support crti and crtn.
2867
2868 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
2869
2870         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
2871         INSN_LIST.
2872
2873 2001-08-28  Richard Henderson  <rth@redhat.com>
2874
2875         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
2876         (one_cmplbi2 splitter): Remove redundant test.
2877
2878 2001-08-28  Dale Johannesen  <dalej@apple.com>
2879
2880         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
2881
2882 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
2883
2884         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
2885
2886 2001-08-28  Stan Shebs  <shebs@apple.com>
2887
2888         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
2889         (UNALIGNED_SHORT_ASM_OP): Define.
2890         (UNALIGNED_INT_ASM_OP): Define.
2891
2892 2001-08-28  Will Cohen  <wcohen@redhat.com>
2893
2894         * config/rs6000/rs6000.md (store_multiple): Correct RTL
2895         generation for first set.
2896
2897 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
2898
2899         * flow.c (redirect_edge_succ_nodup): Return new edge.
2900         (try_simplify_condjump): Use new edge.
2901         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
2902
2903         * cse.c (cse_basic_block): Skip note instructions.
2904
2905 2001-08-27  Richard Henderson  <rth@redhat.com>
2906
2907         * combine.c (combine_simplify_rtx): Don't reverse condition
2908         if there is no reverse for the condition.
2909         (simplify_comparison): Don't simplify subregs from INT to FP.
2910
2911         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
2912         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
2913         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
2914         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
2915         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
2916         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
2917
2918 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
2919
2920         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
2921         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
2922         (pushqi1): New.
2923         (adddi_dilshr32, adddi_dishl32): Only data register can be
2924         source for mem destination.
2925
2926         * expmed.c (store_bit_field): Ignore adjustment to bitpos
2927         and use bitnum to decide about register move.
2928
2929 2001-08-27  Richard Henderson  <rth@redhat.com>
2930
2931         * genattr.c (main): Emit state_t even when not doing scheduling.
2932
2933 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
2934             Richard Henderson  <rth@redhat.com>
2935
2936         * gcse.c (reg_first_set, reg_last_set): Replace with ...
2937         (reg_avail_info, current_bb): ... these.
2938         (oprs_unchanged_p, record_last_reg_set_info): Use them.
2939         (compute_hash_table): Likewise.
2940
2941 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
2942
2943         * flow.c (verify_flow_info): Use checksums to verify edges.
2944
2945 2001-08-27  Richard Henderson  <rth@redhat.com>
2946
2947         * genautomata.c (expand_automata): Always create a description.
2948
2949 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
2950
2951         * optabs.c (expand_binop): Correctly handle the carry in multiword
2952         add/subtract operations.
2953
2954 2001-08-27  Fred Fish  <fnf@be.com>
2955
2956         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
2957         __SIZE_TYPE__.
2958
2959 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
2960
2961         * reload.c (find_reloads_toplev): Back out this change:
2962
2963         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
2964
2965         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
2966         mem if the address is a mode_dependent_address_p.
2967
2968 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
2969
2970         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
2971         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
2972         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
2973         RTL constructions.
2974
2975         * genattr.c (main): New variable num_insn_reservations.  Increase
2976         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
2977         pipeline hazard recognizer interface.
2978
2979         * genattrtab.h: New file.
2980
2981         * genattrtab.c: Include genattrtab.h.
2982         (attr_printf, check_attr_test, make_internal_attr,
2983         make_numeric_value): Move protypes into genattrtab.h.  Define them
2984         as external.
2985         (num_dfa_decls): New global variable.
2986         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
2987         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
2988         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
2989         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
2990
2991         * genautomata.c: New file.
2992
2993         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
2994
2995         * sched-int.h: (curr_state): Add the external definition for
2996         automaton pipeline interface.
2997         (haifa_insn_data): Add comments for members blockage and units.
2998
2999         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3000         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3001         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3002         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3003         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3004         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3005         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
3006         macros.
3007         (TARGET_SCHED): Use the new macros.
3008
3009         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
3010         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
3011         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
3012         dfa_bubble): New members in gcc_target.sched.
3013
3014         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
3015         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
3016         (insn_queue): Redefine it as pointer to array.
3017         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
3018         INSN_QUEUE_SIZE.
3019         (max_insn_queue_index_macro_value): New variable.
3020         (curr_state, dfa_state_size, ready_try): New varaibles for
3021         automaton interface.
3022         (ready_element, ready_remove, max_issue): New function prototypes
3023         for automaton interface.
3024         (choose_ready): New function prototype.
3025         (insn_unit, blockage_range): Add comments.
3026         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
3027         FUNCTION_UNITS_SIZE == 0.
3028         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
3029         actual_hazard, potential_hazard): Add comments.
3030         (insn_cost): Use cost -1 as undefined value.  Remove
3031         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
3032         pipeline interface.
3033         (ready_element, ready_remove): New functions for automaton
3034         interface.
3035         (schedule_insn): Add new code for automaton pipeline interface.
3036         (queue_to_ready): Add new code for automaton pipeline interface.
3037         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
3038         (debug_ready_list): Print newline when the queue is empty.
3039         (max_issue): New function for automaton pipeline interface.
3040         (choose_ready): New function.
3041         (schedule_block): Add new code for automaton pipeline interface.
3042         Print ready list before scheduling each insn.
3043         (sched_init): Add new code for automaton pipeline interface.
3044         Initiate insn cost by -1.
3045         (sched_finish): Free the current automaton state and finalize
3046         automaton pipeline interface.
3047
3048         * sched-rgn.c: Include target.h.
3049         (init_ready_list, new_ready, debug_dependencies): Add new code for
3050         automaton pipeline interface.
3051
3052         * sched-vis.c: Include target.h.
3053         (get_visual_tbl_length): Add code for automaton interface.
3054         (target_units, print_block_visualization):  Add comments.
3055
3056         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
3057         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
3058         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
3059         (getruntime.o, genautomata.o): New entries.
3060         (genattrtab.o): Add new dependency file genattrtab.h.
3061         (genattrtab): Add new dependencies.  Link it with `libm.a'.
3062         (getruntime.o, hashtab.o): New entries for canadian cross.
3063
3064         * doc/md.texi: Description of automaton based model.
3065
3066         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
3067         Add comments.
3068         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3069         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3070         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3071         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3072         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3073         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3074         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
3075         hook descriptions.
3076         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
3077         MAX_DFA_ISSUE_RATE): New macro descriptions.
3078
3079         * doc/contrib.texi: Add dfa based scheduler contribution.
3080
3081         * doc/gcc.texi: Add more information about genattrtab.
3082
3083 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
3084
3085         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
3086         an RTL basic block.
3087
3088 2001-08-27  Richard Henderson  <rth@redhat.com>
3089
3090         * function.c (expand_function_end): Don't init arg_pointer_save_area.
3091         (get_arg_pointer_save_area): New.  Create an init it here.
3092         (fix_lexical_addr): Use it.
3093         * function.h: Declare it.
3094         * builtins.c (expand_builtin_setjmp_receiver): Use it.
3095         * stmt.c (expand_nl_goto_receiver): Use it.
3096
3097 2001-08-27  Richard Henderson  <rth@redhat.com>
3098
3099         * final.c (final_scan_insn): Don't enter APP_ON mode for
3100         empty asm strings.
3101
3102         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
3103         alignment for assemble_integer for DW_EH_PE_aligned.
3104         * except.c (output_function_exception_table): Likewise.
3105
3106 2001-08-26  Andreas Jaeger  <aj@suse.de>
3107
3108         * c-tree.h: Add prototyp for c_sizeof_nowarn.
3109
3110 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
3111
3112         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
3113
3114 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
3115
3116         * config/rs6000/rs6000.c (mask_operand): Rewrite without
3117         bit-shifting loop.
3118         (mask64_operand): Likewise.
3119         (rldic_operand): Delete.
3120         (includes_lshift64_p): Delete.
3121         (includes_rldic_lshift_p): New function.
3122         (includes_rldicr_lshift_p): New function.
3123         (print_operand): Don't call rldic_operand in case 'W'.
3124         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
3125         (includes_lshift64_p): Remove.
3126         (includes_rldic_lshift_p): Declare.
3127         (includes_rldicr_lshift_p): Declare.
3128         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
3129         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
3130         Replace match_operand rldic_operand predicate with
3131         const_int_operand.  Replace includes_lshift64_p condition with
3132         includes_rldic_lshift_p.
3133         <ashldi3_internal 64 bit rldicr patterns>: New.
3134
3135 2001-08-27  Andreas Jaeger  <aj@suse.de>
3136
3137         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
3138         * errors.c: Likewise.
3139         * final.c: Likewise.
3140         * dwarf2asm.c: Likewise.
3141         * doprint.c (checkit): Likewise.
3142         * diagnostic.c: Likewise.
3143         * collect2.c: Likewise.
3144         * calls.c: Likewise.
3145         * c-semantics.c (build_stmt): Likewise.
3146         * c-format.c (status_warning): Likewise.
3147         * c-errors.c (pedwarn_c99): Likewise.
3148         * builtins.c (validate_arglist): Likewise.
3149         * config/pj/pj.c (pj_printf): Likewise.
3150         * fix-header.c: Likewise.
3151         * gcc.c: Likewise.
3152         * gcov.c (fnotice): Likewise.
3153         * gensupport.c (message_with_line): Likewise.
3154         * mips-tfile.c: Likewise.
3155         * protoize.c (notice): Likewise.
3156         * read-rtl.c (fatal_with_file_and_line): Likewise.
3157         * rtl-error.c: Likewise.
3158         * tradcpp.c: Likewise.
3159         * tree.c: Likewise.
3160         * cp/tree.c (build_min_nt): Likewise.
3161         (build_min): Likewise.
3162         * cp/lex.c: Likewise.
3163         * cp/errfn.c: Likewise.
3164         * cp/rtti.c (create_pseudo_type_info): Likewise.
3165
3166 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
3167
3168         * df.c (df_uses_record): Return after recording all uses
3169         in ASM_OPERANDS.
3170
3171 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
3172
3173         * df.c (df_insn_modify): Realloc the INSN table here, if
3174         necessary, here, too.
3175
3176 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
3177
3178         * config/mips/mips.c (mips_function_value): Handle complex return
3179         values.
3180
3181 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
3182
3183         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
3184         unshared.
3185         * reload.c (make_memloc): Copy result if it is still
3186         reg_equiv_memory_loc[regno] on return.
3187         (subst_reloads) [ENABLE_CHECKING]: Check that none of
3188         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
3189         reg_equiv_mem are modified by the substitutions.
3190
3191 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
3192
3193         * predict.c (expensive_function_p): New.
3194         * rtl.h (expensive_function_p): Declare.
3195         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
3196         (use_fast_prologue_epilogue): New static variable.
3197         (expand_prologue): Set it; emit short prologues if unset.
3198         (expand_epilogue): Likewise.
3199
3200 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
3201
3202         * config.gcc: Add stormy16-*-elf case.
3203         * config/stormy16/stormy-abi: New file.
3204         * config/stormy16/stormy16-lib2.c: New file.
3205         * config/stormy16/stormy16-protos.h: New file.
3206         * config/stormy16/stormy16.c: New file.
3207         * config/stormy16/stormy16.h: New file.
3208         * config/stormy16/stormy16.md: New file.
3209         * config/stormy16/t-stormy16: New file.
3210
3211 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
3212
3213         * i386.h (no-accumulate-outgoing-args): Use proper mask.
3214
3215 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
3216
3217         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
3218         descriptor members are pointer size, not constant 4.
3219         * config/rs6000/rs6000.md (define_splits): Remove more unused
3220         constraints.
3221
3222 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3223
3224         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
3225
3226 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
3227
3228         * cp/rtti.c (VPARAMS): Fix parameter.
3229
3230 2001-08-24  Zack Weinberg  <zackw@panix.com>
3231
3232         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
3233         to zero.
3234         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
3235         to switch.
3236         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
3237         in if controlling use of insv.
3238         (extract_bit_field): Likewise, for extv and extzv.
3239
3240 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
3241
3242         * i386.md (movcc peep2): Fix load of 0.
3243
3244 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3245
3246         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
3247         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
3248
3249 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
3250
3251         * c-pragma.h: Move weak_syms and weak_decls...
3252         * varasm.c: ...here.  Now static.
3253         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
3254         depend on HANDLE_PRAGMA_WEAK.
3255
3256         * c-common.c (c_alignof, c_alignof_expr): Move here...
3257         * c-typeck.c: ...from here.
3258         * c-tree.h, c-common.h: Adjust.
3259
3260 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
3261
3262         * config/ia64/ia64.c (rws_update): If !pred, set write_count
3263         instead of incrementing it.
3264
3265         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
3266         asm ready, don't try to move them all into the same array element.
3267
3268 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
3269
3270         * function.c (thread_prologue_and_epilogue_insns): Avoid
3271         fallthru flag on edge to exit.
3272
3273         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
3274
3275         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
3276         dead edges.
3277
3278 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
3279
3280         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
3281         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
3282         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
3283         Remove prototype.
3284
3285 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
3286
3287         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
3288         replace "GNU CC" with "GCC".
3289
3290 2001-08-23  Richard Henderson  <rth@redhat.com>
3291
3292         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
3293         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
3294         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
3295         Need GR between FR and not GR_AND_FR.
3296         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
3297         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
3298         AR regs before GR regs.
3299         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
3300         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
3301         (REGISTER_MOVE_COST): Update.
3302         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
3303
3304 2001-08-23  Richard Henderson  <rth@redhat.com>
3305
3306         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
3307         a register class.
3308
3309 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
3310
3311         * reload1.c (emit_reload_insns): Don't look for notes
3312         on a NULL store_insn.
3313
3314 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3315
3316         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
3317         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
3318         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
3319         format specifier warnings.
3320         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
3321
3322 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
3323
3324         * config/i386/i386-protos.h: Correct declaration of
3325         i386_pe_asm_named_section.
3326
3327 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3328
3329         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
3330         variable i.
3331         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
3332
3333 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3334
3335         * cpperror.c (print_location): Don't show _Pragma.
3336         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
3337         and file change callback generation here.
3338         (stack_include_file): Update use of cpp_push_buffer.
3339         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
3340         (struct cpp_buffer): Remove type, pfile members.
3341         * cppinit.c (cpp_handle_option): Use free_chain.
3342         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
3343         (skip_escaped_newlines, get_effective_char, lex_percent): Take
3344         a cpp_reader rather than a cpp_buffer.
3345         (skip_escaped_newlines, get_effective_char, skip_block_comment,
3346         skip_line_comment, parse_string, lex_percent, lex_dot,
3347         _cpp_lex_token): Update accordingly.
3348         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
3349         generation here.
3350         (cpp_push_buffer): Update prototype.
3351         (run_directive): Update use of cpp_push_buffer.
3352         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
3353         handle_assertion): Update use of run_directive.
3354         * cpplib.h (enum cpp_buffer_type): Remove.
3355         (cpp_push_buffer): Update prototype.
3356         * fix-header.c (read_scan_file): Update.
3357
3358 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3359
3360         * gcc.c (struct prefix_list): Change prefix to const char *.
3361
3362 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3363
3364         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
3365
3366 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
3367
3368         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
3369         from a new MEM.
3370
3371         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
3372         a squeezable note.
3373         * rtl.h: Adjust.
3374         * ifcvt.c (dead_or_predicable): Adjust.
3375         * loop.c (find_and_verify_loops): Adjust.
3376         * stmt.c (expand_end_case): Adjust.
3377         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
3378         head and end insn pointers in the basic block, not just local copies.
3379         (merge_blocks_move_predecessor_nojumps): Likewise.
3380
3381 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
3382
3383         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
3384         bitmap.h, builtin-types.def, builtins.c, builtins.def,
3385         c-aux-info.c, c-common.c, c-common.def, c-common.h,
3386         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
3387         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
3388         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
3389         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
3390         conditions.h, config.gcc, configure.frag, configure.in,
3391         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
3392         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
3393         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
3394         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
3395         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
3396         emit-rtl.c, errors.c, errors.h, except.c, except.h,
3397         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
3398         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
3399         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
3400         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
3401         gencheck.c, gencodes.c, genconfig.c, genemit.c,
3402         genextract.c, genflags.c, gengenrtl.c, genmultilib,
3403         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
3404         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
3405         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
3406         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
3407         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
3408         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
3409         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
3410         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
3411         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
3412         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
3413         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
3414         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
3415         params.h, predict.c, predict.def, predict.h, prefix.c,
3416         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
3417         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
3418         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
3419         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
3420         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
3421         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
3422         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
3423         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
3424         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
3425         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
3426         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
3427         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
3428         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
3429         xcoffout.h: replace "GNU CC" with "GCC".
3430
3431 2001-08-21  Richard Henderson  <rth@redhat.com>
3432
3433         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
3434         (final_scan_insn): Consider jump tables data even if we have no
3435         independant text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
3436         ADDR_VEC_ALIGN.
3437         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
3438         (ASM_OUTPUT_CASE_END): Remove.
3439         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
3440         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
3441         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
3442
3443 2001-08-21  Richard Henderson  <rth@redhat.com>
3444
3445         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
3446         at barrier insns.  Emit stop bits before barriers.
3447
3448         * flow.c (flow_find_cross_jump): Don't consider unconditional
3449         return insns for commoning.
3450
3451         * final.c (compute_alignments): Fix typo.
3452
3453         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
3454         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
3455         (store_bit_field): Use mode_for_extraction more places.
3456         (extract_bit_field): Likewise.
3457
3458 2001-08-21  Zack Weinberg  <zackw@panix.com>
3459
3460         * caller-save.c: Don't include insn-codes.h.
3461         (reg_save_code, reg_restore_code): Make arrays of int.
3462         All uses updated to match.
3463         (insert_save, insert_restore): No need to initialize "code"
3464         variable upon declaration.
3465         * Makefile.in: update dependencies; fix typo in clean rule.
3466
3467 2001-08-21  Richard Henderson  <rth@redhat.com>
3468
3469         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
3470         (merge_if_block): Handle fallout from same.
3471
3472 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3473
3474         * builtins.c (type_to_class): Fix typo in last change.
3475
3476 2001-08-21  Richard Henderson  <rth@redhat.com>
3477
3478         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
3479         ia64_asm_output_label.
3480
3481         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
3482         copy of gp while the real gp register contains garbage.
3483
3484 2001-08-21  Zack Weinberg  <zackw@panix.com>
3485
3486         * expmed.c (mode_for_extraction): New function.
3487         (store_bit_field, extract_bit_field): Use it.
3488         * expr.h: Prototype it and provide an enum for its first argument.
3489
3490         * combine.c, function.c, recog.c: Don't include insn-codes.h.
3491         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
3492         and digging through the insn_data tables.
3493         * Makefile.in: Update dependencies.
3494
3495 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3496
3497         * cppfiles.c (stack_include_file): line-map.c now handles include
3498         depth.
3499         (handle_missing_handler): Similarly.
3500         (_cpp_execute_include): Similarly.
3501         (_cpp_pop_file_buffer): Similarly.
3502         * cpphash.h (struct cpp_reader): Remove system_include_depth,
3503         buffer_stack_depth and include_depth.
3504         * cpplib.c (do_include_common): line-map.c now handles include depth.
3505         (cpp_push_buffer): Similarly.
3506         (_cpp_pop_buffer): Similarly.
3507         * cppmacro.c (builtin_macro): Update.
3508         * line-map.c (init_line_maps): Set depth.
3509         (add_line_map): Increment "used" earlier.  Update and use the
3510         include depth.
3511         (trace_include): Use the include depth.
3512         * line-map.h (struct line_maps): New member depth.
3513
3514 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3515
3516         * cppfiles.c (stack_include_file): Don't handle -H here.
3517         * cppinit.c (cpp_start_read): Set include tracing after
3518         cpp_post_options and after stacking the main file.
3519         * line-map.c (trace_include): New.
3520         (init_line_maps, add_line_map): Update.
3521         * line-map.h (struct line_maps): New member trace_includes.
3522
3523 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3524
3525         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
3526         * cppfiles.c (stack_include_file): Only stack a file if there
3527         is something to do.  Return a boolean indicating whether a
3528         buffer was stacked or not.
3529         (_cpp_execute_include): Similarly.
3530         (_cpp_read_file): Similarly.
3531         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
3532
3533 2001-08-21  Sam Steingold  <sds@gnu.org>
3534
3535         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
3536         (RECACHE): keep obufp_before_macroname up to date
3537
3538 2001-08-21  Zack Weinberg  <zackw@panix.com>
3539
3540         * stmt.c: Don't include insn-codes.h.
3541         (expand_end_case): Machine specific logic moved to expr.c.
3542         No need to worry about __builtin_classify_type.
3543         (check_for_full_enumeration_handling, emit_case_nodes):
3544         Kill #if 0 blocks.
3545
3546         * builtins.o (expand_builtin_classify_type): Split up so code
3547         can be shared with fold_builtin_classify_type.
3548         (type_to_class, fold_builtin_classify_type): New functions.
3549         (fold_builtins): Handle __builtin_classify_type.
3550
3551         * expr.c (do_tablejump): Now static.
3552         (case_values_threshold, try_casesi, try_tablejump): New;
3553         code mostly from stmt.c (expand_end_case).
3554         (expr.h): Update prototypes.
3555
3556         * Makefile.in (stmt.o): Update dependencies.
3557
3558 2001-08-21  Will Cohen  <wcohen@redhat.com>
3559
3560         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
3561         declaration of variable i.
3562         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
3563         declaration of variable i.
3564
3565 2001-08-21  Richard Henderson  <rth@redhat.com>
3566
3567         * crtstuff.c: Fix thinko last change.  Move list tails to start
3568         of CRT_END section.  Tidy ifdefs.
3569         (__EH_FRAME_BEGIN__): Always static for ELF.
3570         (__do_global_ctors_1): Rename from __frame_dummy.
3571         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
3572         name change; don't hide __EH_FRAME_BEGIN__.
3573
3574 2001-08-21  Richard Henderson  <rth@redhat.com>
3575
3576         * gdbinit.in: Move break on exit after break on fancy_abort.
3577
3578         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
3579         sized types.
3580
3581 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3582
3583         * cpphash.h (_cpp_push_next_buffer): New.
3584         * cppinit.c (do_includes): Remove.
3585         (push_include, free_chain, _cpp_push_next_buffer): New.
3586         (cpp_start_read): Use them to rework command line option handling.
3587         (cpp_handle_option): Combine handling of -include and -imacros.
3588         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
3589         appropriate.  Always insert missing \n at EOF.
3590         * cpplib.c (start_directive): Get the directive position right.
3591         * cppmain.c (cb_file_change): Always print the first line, unless
3592         preprocessed.
3593
3594 2001-08-20  Andreas Jaeger  <aj@suse.de>
3595
3596         * profile.c (compute_branch_probabilities): Remove extra new-line
3597         in error message.
3598         * flow.c (verify_flow_info): Likewise.
3599
3600 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
3601
3602         * basic-block.h (basic_block): Add new field 'flags'.
3603         (BB_REACHABLE): Define.
3604         (expunge_block): Declare.
3605         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
3606         (EXIT_BLOCK_PTR): Ditto.
3607         (expunge_block): Remove static declaration.
3608         (cleanup_cfg): Clear bb->aux on every basic block.
3609         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
3610         computing reachability.
3611         (delete_unreachable_blocks): Delete block b if b->flags has
3612         BB_REACHABLE unset.
3613
3614 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
3615
3616         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
3617
3618 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3619
3620         * sparc.c (sparc_variable_issue): Fix typo in last change.
3621
3622 2001-08-20  Richard Henderson  <rth@redhat.com>
3623
3624         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
3625
3626 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3627
3628         * pa.h (RETURN_IN_MEMORY): Improve comment.
3629
3630 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
3631
3632         * doc/invoke.texi (Profiling options): Clarify the interactions
3633         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
3634
3635 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
3636
3637         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
3638         command.
3639
3640 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3641
3642         * gcc.c (make_relative_prefix): Allocate a sufficiently large
3643         buffer.
3644
3645 2001-08-20  Richard Henderson  <rth@redhat.com>
3646
3647         * final.c (end_final): Fix typo last change.
3648
3649 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3650
3651         * cppinit.c (init_standard_includes): The returned buffer
3652         is already malloc-ed.
3653         * gcc.c (add_prefix): Similarly.
3654         * prefix.c (translate_name): Update to support clear buffer
3655         ownership rules.
3656         (update_path): Similarly.  Be sure to free any newly allocated
3657         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
3658         (tr): New function.
3659         * prefix.h (update_path): Update prototype and document.
3660         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
3661         up and update to new buffer ownership rules.
3662         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
3663
3664 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
3665
3666         * final.c (compute_alignments): New function.
3667         (init_insn_lengths): Do not care label_align.
3668         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
3669         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
3670         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
3671         (shorted_branches): Realloc label_align array; do
3672         not call init_insn_lengths; Do not care about loop alignments.
3673         * output.h (compute_alignments): Declare.
3674         * toplev.c (rest_of_compilation): Call compute_alignments.
3675         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
3676
3677         * predict.c (block_info_def): Add npredecesors, remove nvisited;
3678         change visited to tovisit.
3679         (propagate_freq): Use faster traversing algorithm.
3680         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
3681         to tovisit; reverse meaning.
3682
3683         * predict.c (struct block_info_def): Remove nvisited.
3684         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
3685         (estimate_bb_frequencies): Call mark_dfs_back_edges.
3686
3687 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
3688
3689         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
3690         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
3691         (TARGET_FUSED_MADD): New.
3692         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
3693         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
3694         the multiply-add instructions.
3695
3696 2001-08-19  Richard Henderson  <rth@redhat.com>
3697
3698         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
3699         is aligned to pointer size.
3700
3701 2001-08-19  Richard Henderson  <rth@redhat.com>
3702
3703         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
3704         display markers during final schedule.
3705
3706 2001-08-19  Richard Henderson  <rth@redhat.com>
3707
3708         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
3709
3710 2001-08-19  Richard Henderson  <rth@redhat.com>
3711
3712         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
3713         in the same string.
3714         (ASM_NAME_TO_STRING): Remove.
3715         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
3716         in the same string.  Remove support for expressions.
3717
3718 2001-08-19  Richard Henderson  <rth@redhat.com>
3719
3720         * config/i386/i386.md (tablejump): Make an expander; handle
3721         pic relative addressing here.
3722         (tablejump_1): Rename from tablejump_pic.
3723         (casesi): Remove.
3724
3725 2001-08-19  Richard Henderson  <rth@redhat.com>
3726
3727         * regclass.c (fix_register): Fix typo.
3728
3729 2001-08-18  Richard Henderson  <rth@redhat.com>
3730
3731         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
3732         (struct _Unwind_Context): Expand br_loc to hold it.
3733         (uw_frame_state_for): Handle leaf functions better.
3734         (uw_update_reg_address): Update for br_loc change.
3735
3736 2001-08-18  Richard Henderson  <rth@redhat.com>
3737
3738         * crtstuff.c: Move list heads before code that uses them.
3739         (__JCR_LIST__): Remove initial null.
3740         (frame_dummy, __frame_dummy): Do java registration here ...
3741         (__do_global_ctors_aux): ... not here.
3742
3743         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
3744         (__do_global_dtors_aux): Update to match.
3745         (__JCR_LIST__, __do_jv_register_classes): New.
3746         (.init): Call it.
3747         * config/ia64/crtend.asm (__JCR_END__): New.
3748         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
3749         instead of an indirect LTOFF22 reloc.
3750
3751 2001-08-18  Richard Henderson  <rth@redhat.com>
3752
3753         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
3754         * regclass.c (init_reg_sets_1): Fix typo.
3755         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
3756         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
3757         (ia64_compute_frame_size): Make ar.unat live when in use.
3758         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
3759         for ar.pfs; remove ar.unat handling.
3760         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
3761         call-saved.
3762         (PREDICATE_CODES): Add ar_pfs_reg_operand.
3763         * config/ia64/ia64-protos.h: Update decls.
3764         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
3765         (sibcall_pic): Likewise.
3766
3767 2001-08-18  Richard Henderson  <rth@redhat.com>
3768
3769         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
3770         pred_rel_mutex when searching for insn_group_barrier.
3771         * config/ia64/ia64.md (cycle_display): Combine the expander
3772         and insn patterns.
3773
3774         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
3775         bit before asm as needed.
3776
3777 2001-08-18  Richard Henderson  <rth@redhat.com>
3778
3779         * timevar.def (TV_MACH_DEP): New.
3780         * toplev.c (rest_of_compilation): Use it.
3781         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
3782
3783 2001-08-18  Zack Weinberg  <zackw@panix.com>
3784
3785         * unwind-dw2.c (execute_stack_op): Add default aborts to
3786         the inner switches to prevent warnings.
3787
3788 2001-08-18  Richard Henderson  <rth@redhat.com>
3789
3790         * timevar.h (struct timevar_time_def): Change element type to float.
3791         (ticks_to_msec, clocks_to_msec): Likewise.
3792         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
3793         (get_time): Likewise.
3794         (timevar_print): Adjust zero check and printing to match.
3795
3796 2001-08-18  Zack Weinberg  <zackw@panix.com>
3797
3798         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
3799         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
3800         Eliminate overfull or underfull hboxes.
3801
3802 2001-08-18  Zack Weinberg  <zackw@panix.com>
3803
3804         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
3805
3806 2001-08-18  Zack Weinberg  <zackw@panix.com>
3807
3808         * haifa-sched.c: Convert to target hooks.  Macros replaced
3809         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
3810         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
3811         MD_SCHED_FINISH, and HAVE_cycle_display.
3812         * target-def.h (TARGET_SCHED_ADJUST_COST,
3813         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
3814         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
3815         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
3816         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
3817         New hook #defines to be overridden.
3818         (TARGET_SCHED): Bring them all together.
3819         (TARGET_INITIALIZER): Update.
3820         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
3821         instead of 'struct rtx_def *' throughout.
3822         (struct sched): New set of hooks for the scheduler.
3823         * Makefile.in (haifa-sched.o): Depend on target.h.
3824         * doc/tm.texi: Document the new scheduler hooks, together in
3825         their own section, instead of scattered around.
3826         Fix a bunch of underfull/overfull hboxes.
3827
3828         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
3829         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
3830         sparc.h: Don't define any of the old scheduler macros.
3831
3832         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
3833         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
3834         sparc.c: Create hook functions from code extracted from
3835         corresponding target header, or make existing hooks static, as
3836         appropriate.  Set the appropriate entries in targetm.
3837
3838         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
3839         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
3840         rs6000-protos.h, s390-protos.h, sparc-protos.h:
3841         Remove prototypes for functions which are now static.
3842
3843         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
3844         related gunk; the Haifa scheduler is now the only choice.
3845
3846 2001-08-18  Zack Weinberg  <zackw@panix.com>
3847
3848         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
3849         * genopinit.c: Put floating point divide insns in sdiv_optab.
3850         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
3851         * config/gofast.h, config/c4x/c4x.h,
3852         config/ia64/hpux_longdouble.h, config/mips/mips.h,
3853         config/pa/long_double.h, config/rs6000/sysv4.h,
3854         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
3855         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
3856         (init_optabs): Use init_optabv for overflow-trapping optabs.
3857         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
3858         cmp_optab RTX codes so have_insn_for can find them.
3859
3860         * optabs.c (expand_simple_binop, expand_simple_unop,
3861         have_insn_for, gen_sub3_insn): New interfaces.
3862         * expr.h: Prototype new functions.
3863         (enum optab_methods): Move here from optabs.h.
3864
3865         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
3866         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
3867         Use new functions instead of working directly with optabs.
3868         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
3869         unroll.c: Don't include optabs.h.
3870         * caller-save.c, combine.c, function.c, stmt.c: Just include
3871         insn-codes.h, not optabs.h.
3872         * Makefile.in: Update dependencies.
3873
3874         * combine.c (make_compound_operation, simplify_comparison):
3875         Fix typos testing for this or that instruction.
3876
3877 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
3878
3879         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
3880         generating libgcc.a.
3881
3882 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3883
3884         * except.c (TYPE_HASH): Delete.
3885
3886         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
3887         HOST_WIDE_INT.
3888
3889         * tree.c (TYPE_HASH): Delete.
3890
3891         * tree.h (TYPE_HASH): Define.
3892
3893 2001-08-18  Graham Stott  <grahams@redhat.com>
3894
3895         * config/mips/mips.md (adddi3_internal_2+1): Remove contraints from
3896         define_split.
3897         (adddi3_internal_2+2): Likewise.
3898         (eh_set_lr_di+1): Likewise.
3899
3900 2001-08-17  Richard Henderson  <rth@redhat.com>
3901
3902         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
3903         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
3904         * dwarf2asm.c: ... here.
3905         * dwarfout.c: Remove them.
3906
3907         * varasm.c (assemble_integer): Add align parameter.
3908         (assemble_real, output_constant, output_constructor): Likewise.
3909         * output.h: Update decls.
3910         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
3911         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
3912         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
3913         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
3914         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
3915         Update all callers.
3916
3917         * final.c (end_final): Abort profile block generation if we
3918         havn't layed it out properly.
3919         * output.h (assemble_eh_integer): Remove stale decl.
3920         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
3921         (min_align): New.
3922         (assemble_integer): Handle unaligned data.
3923         (assemble_real): Abort on unaligned data.
3924         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
3925         anything useful.
3926         (default_dtor_section_asm_out_destructor): Use assemble_align.
3927         (default_named_section_asm_out_constructor): Likewise.
3928         (default_ctor_section_asm_out_constructor): Likewise.
3929         * config/darwin.c (machopic_asm_out_constructor): Likewise.
3930         (machopic_asm_out_destructor): Likewise.
3931         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
3932         (nextstep_asm_out_destructor): Likewise.
3933         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
3934         (vms_asm_out_destructor): Likewise.
3935
3936 2001-08-17  Richard Henderson  <rth@redhat.com>
3937
3938         * config/mips/iris6.h (TARGET_IRIX6): New.
3939         (current_section_name, current_section_flags): New.
3940         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
3941         (MAX_OFILE_ALIGNMENT): New.
3942         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
3943         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
3944         (copy_file_data): Split out from
3945         (mips_asm_file_end): ... here.
3946         (mips_asm_file_start): Remove extra .section directive.  Use
3947         tmpfile instead of mips_make_temp_file.
3948         (mips_unique_section): Use const char * as needed for warnings.
3949         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
3950         re-add align parameter.
3951         (iris6_asm_named_section): New.
3952         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
3953         (iris6_asm_output_align, iris6_section_align_1): New.
3954         (iris6_asm_file_start, iris6_asm_file_end): New.
3955         * config/mips/mips-protos.h: Update decls.
3956
3957 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
3958
3959         * doc/install.texi (Install GCC): Add links to build status pages.
3960         (Specific): Ditto.
3961         (Final install): Ditto; request updates for specific info
3962
3963 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3964
3965         * cpperror.c (print_location):  Don't take a file name; use the
3966         line map instead.
3967         (_cpp_begin_message): Similarly.
3968         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
3969         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
3970         (cpp_pedwarn_with_file_and_line): Remove.
3971         * cppfiles.c (stack_include_file): Update; set filename to stdin
3972         here when appropriate.
3973         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
3974         (_cpp_begin_message): Don't take a file name.
3975         * cppinit.c: Add comment.
3976         * cpplex.c: Fix end-of-directive indicator.
3977         * cpplib.c: Don't include intl.h.
3978         (run_directive, do_diagnostic): Update.
3979         (do_line): Update to not use nominal_fname.
3980         (cpp_push_buffer): Don't take a filename.
3981         * cpplib.h (struct ht): Remove.
3982         (cpp_push_buffer): Don't take a filename.
3983         (cpp_pedwarn_with_file_and_line): Remove.
3984         * cppmacro.c (struct cpp_macro): Remove file.
3985         (builtin_macro): Update.
3986         (_cpp_create_definition): Update.
3987         * cppmain.c: Correct comment.
3988         * fix-header.c (read_scan_file): Update.
3989
3990 2001-08-17  Kazu Hirata  <kazu@hxi.com>
3991
3992         * sbitmap.c: Fix comment formatting.
3993         * sched-deps.c: Likewise.
3994         * sibcall.c: Likewise.
3995         * simplify-rtx.c: Likewise.
3996         * ssa.c: Likewise.
3997         * ssa-ccp.c: Likewise.
3998         * stor-layout.c: Likewise.
3999         * timevar.c: Likewise.
4000         * toplev.c: Likewise.
4001         * unwind-dw2.c: Likewise.
4002         * unwind-dw2-fde.c: Likewise.
4003         * varasm.c: Likewise.
4004
4005 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4006
4007         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
4008         or larger than an integer in memory.
4009
4010 2001-08-17  Zack Weinberg  <zackw@panix.com>
4011
4012         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
4013         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.