OSDN Git Service

7a10bfa342c0addf89e3108b5230cf752194a9d7
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2
3         * attribs.c (decl_attributes): Possibly call
4         insert_default_attributes to insert default attributes on
5         functions in a lazy manner.
6         * builtin-attrs.def: New file; define the default format and
7         format_arg attributes.
8         * c-common.c (c_format_attribute_table): Move to earlier in the
9         file.
10         (c_common_nodes_and_builtins): Initialize format_attribute_table.
11         (enum built_in_attribute, built_in_attributes,
12         c_attrs_initialized, c_init_attributes,
13         c_common_insert_default_attributes): New.
14         (c_common_lang_init): Don't initialize format_attribute_table.  Do
15         call c_init_attributes.
16         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
17         * c-common.h (init_function_format_info): Don't declare.
18         (c_common_insert_default_attributes): Declare.
19         * c-decl.c (implicitly_declare, builtin_function): Call
20         decl_attributes.
21         (init_decl_processing): Don't call init_function_format_info.
22         (insert_default_attributes): New.
23         * c-format.c (handle_format_attribute,
24         handle_format_arg_attribute): Be quiet about inappropriate
25         declaration when applying default attributes.
26         (init_function_format_info): Remove.
27         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
28         (insert_default_attributes): Declare.
29
30 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
31
32         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
33
34 2001-10-01  Jim Wilson  <wilson@redhat.com>
35
36         * sched-deps.c (add_dependence): When elide conditional dependence,
37         check that insn doesn't modify cond2.
38
39 2001-10-01  Dale Johannesen  <dalej@apple.com>
40
41         * config/rs6000/rs6000.h (enum processor_type): Add support
42         for 7400 (G4) and 7450.
43         (RTX_COSTS): Ditto.
44         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
45         (rs6000_issue_rate): Ditto.
46         (rs6000_adjust_cost): Fix cycle counts for compares.
47         (debug_stack_info):  Fix an obvious typo.
48         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
49         * doc/invoke.texi: Document.
50         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
51         for Darwin.
52         (PROCESSOR_DEFAULT): Ditto.
53
54 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
55
56         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
57         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
58         later recursive make invocation.
59
60 2001-10-01  Hans Boehm  <boehm@acm.org>
61
62         * optabs.c (emit_libcall_block): When using non-call exceptions,
63         don't add REG_LIBCALL reg notes to trapping calls.
64
65 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
66
67         * flow.c (propagate_block_delete_libcall): Remove unused first arg
68         (propagate_one_insn):  Update for above change
69
70 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
71
72         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
73         _Unwind_GetTextRelBase): Argument is unused.
74
75 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
76
77         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
78         Loop through NOPs, placeholders, and components.
79         Don't go through NOPs if change mode.
80         (record_alias_subset): Do nothing if SUBSET and SET are the same.
81         * emit-rtl.c (set_mem_alias_set): Enable check.
82         * expr.c (find_placeholder): New function.
83         (expand_expr, case PLACEHOLDER_EXPR): Use it.
84         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
85         to modify it and avoid unneeded copies.
86         * expr.h (expand_expr): Always define.
87         (find_placeholder): New declaration.
88
89 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
90
91         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
92         operand 2 is the stack pointer.
93         ("addr-peephole"): Fix address computation peephole when operand 2
94         is the stack pointer.
95
96 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
97
98         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
99         (ix86_setup_incoming_varargs): Likewise.
100
101 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
102
103         * stor-layout.c (layout_type): Don't complain about too-large
104         array here.
105
106 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
107
108         * function.c (keep_stack_depressed): Don't use delete_insn.
109
110         * expr.h (set_mem_alias_set): Move decl to here.
111         * rtl.h (mem_attrs): New typedef and struct.
112         (union rtunion_def): Add field for mem_attrs.
113         (X0MEMATTR, MEM_ATTRS): New macros.
114         (MEM_ALIAS_SET): Use MEM_ATTRS.
115         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
116         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
117         (set_mem_alias_set): Delete decl from here.
118         
119         * alias.c (set_mem_alias_set): Delete from here.
120         * emit-rtl.c (mem_attrs_htab): New variable.
121         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
122         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
123         (mem_attrs_mark, get_mem_attrs): Likewise.
124         (gen_rtx_MEM): Clear MEM_ATTRS.
125         (set_mem_attributes): Move to here.
126         (set_mem_alias_set): Likewise, and call get_mem_attrs.
127         (init_emit_once): const_int_htab now deletable htab.
128         Initialize mem_attrs_htab.
129         * explow.c (set_mem_attributes): Delete from here.
130         * function.c (put_var_into_stack): Clear MEM_ATTRS.
131         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
132         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
133         * reload1.c (reload): Rework changing REG to MEM.
134
135 2001-09-30  H.J. Lu <hjl@gnu.org>
136
137         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
138         * config.in: Rebuild.
139
140 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
141
142         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
143         ("tsthi_1"): Avoid allocation in register y.
144         ("*movqi_68hc12"): Reorganize and fix constraints.
145         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
146         ("addqi3"): Likewise.
147         ("addhi3"): Fix constraints.
148         ("*logicalhi3_zexthi"): Disparage soft registers.
149
150 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
151
152         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
153         to tmp reg.
154
155 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
156
157         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
158         that we use setjmp/longjmp exceptions.
159
160 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
161
162         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
163         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
164         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
165         _cpp_pool_alloc, _cpp_next_chunk): Remove.
166         (_cpp_extend_buff, BUFF_ROOM): Update.
167         (_cpp_append_extend_buff): New.
168         (struct cpp_reader): Remove macro_pool, add a_buff.
169         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
170         macro_pool.
171         (cpp_destroy): Free a_buff instead of macro_pool.
172         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
173         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
174         _cpp_pool_alloc, ): Remove.
175         (parse_number, parse_string): Update use of _cpp_extend_buff.
176         (_cpp_extend_buff): Update.
177         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
178         * cpplib.c (glue_header_name, parse_answer):
179         Update use of _cpp_extend_buff.
180         (cpp_register_pragma, cpp_register_pragma_space): Use
181         _cpp_aligned_alloc.
182         (do_assert, do_unassert): Check for EOL, update.
183         * cppmacro.c (stringify_arg, collect_args): Update to use
184         _cpp_extend_buff and _cpp_append_extend_buff.
185         (save_parameter, parse_params, alloc_expansion_token,
186         _cpp_create_definition): Rework memory management.
187
188 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
189
190         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
191         update md_exec_prefix.
192         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
193         to string constant.
194
195 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
196
197         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
198         (SELECT_CC_MODE): Use s390_select_ccmode.
199         * config/s390/s390-protos.h (s390_select_ccmode): Add.
200         * config/s390/s390.c (s390_select_ccmode): New.
201         (s390_match_ccmode): Add CCLmode.
202         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
203         (output_branch_condition, output_inverse_branch_condition): Removed.
204         (print_operand): Use s390_branch_condition_mnemonic.
205         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
206         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
207         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
208
209         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
210         when converting conditional branches to far branches.
211         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
212         cmpint_di): Use CCSmode instead of CCUmode.
213
214         * config/s390/s390.c (legitimate_la_operand_p): New.
215         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
216         * config/s390/s390.md (movsi): Convert load address patterns to
217         arithmetic operations when necessary.
218         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
219         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
220         (*do_la_reg_0): Don't use before reload.
221
222         * config/s390/s390.c (legitimize_address): Make more efficient
223         use of two-register addressing mode.
224
225         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
226         with -mno-backchain in some corner cases.
227
228         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
229
230 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
231
232         * reload.c (find_reloads): Mark new USE insns with QImode.
233         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
234         find_reloads_subreg_address): Likewise.
235         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
236         encountered.
237         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
238         CLOBBERs.
239         (reload): Make sure there are no USEs with mode other than
240         VOIDmode.  At the end, remove those marked with QImode.
241
242 2001-09-29  Per Bothner  <per@bothner.com>
243
244         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
245         * Makefile.in (includedir):  Rename to local_includedir.
246         (includedir):  Define as $(prefix)/include.
247         * config.in (PREFIX_INCLUDE_DIR):  New variable.
248         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
249
250 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
251
252         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
253         storehps builtins.
254         * doc/extend.texi (Vector Extensions): New node.
255         * doc/invoke.texi (Machine Dependent Options): Add documentation for
256         i386 -mmmx, -msse, -m3dnow.
257
258 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
259
260         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
261
262 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
263
264         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
265
266         * doc/invoke.texi (Optimize Options): Delete spurious @table.
267
268 2001-09-28  Richard Henderson  <rth@redhat.com>
269
270         * varasm.c (assemble_integer): Bound alignment check by
271         BIGGEST_ALIGNMENT.
272
273         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
274
275 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
276
277         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
278
279 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
280
281         Mostly from Graham Stott  <grahams@redhat.com>
282         * c-common.c (type_for_mode): Add support for V2SFmode.
283         * tree.c (build_common_tree_nodes_2): Likewise.
284         * tree.h (enum tree_index, global_trees): Likewise.
285         * config/i386/i386.c (x86_3dnow_a): New variable.
286         (override_options): Support 3Dnow extensions.
287         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
288         Athlon's version of 3Dnow.
289         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
290         (ix86_expand_builtin): Handle them.
291         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
292         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
293         TARGET_3DNOW_A): New macros.
294         (TARGET_SWITCHES): Add 3Dnow switches.
295         (VALID_MMX_REG_MODE_3DNOW): New macro.
296         (VECTOR_MODE_SUPPORTED_P): Use it.
297         (enum ix86_builtins): Add entries for 3Dnow builtins.
298         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
299         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
300         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
301         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
302         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
303         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
304         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
305         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
306         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
307         sfence_insn, prefetch): Make these available if TARGET_SSE or
308         TARGET_3DNOW_A.
309         
310 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
311
312         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
313         ix86_va_start, ix86_build_va_list): Declare.
314         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
315         ix86_va_start, ix86_build_va_list): New global functions.
316         * i386.md (sse_prologue_save_insn): New insn.
317         (sse_prologue_save): New expander.
318         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
319         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
320
321 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
322
323         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
324         Use size_t everywhere, make definitions consistent with
325         prototypes.     
326
327 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
328
329         * gcse.c (replace_store_insn): Use delete_insn.
330         * loop.c (move_movables): Likewise; avoid delete_insn
331         from clobbering notes moved elsewhere.
332         (check_dbra_loop): Use delete_insn.
333         * ssa.c (convert_from_ssa): Likewise.
334         * cse.c (cse_insn): Use delete_insn.
335
336 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
337
338         * cpphash.h (struct cpp_buff): Make unsigned.
339         (_cpp_get_buff): Take length of size_t.
340         (_cpp_unaligned_alloc): New.
341         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
342         (struct cpp_reader): Remove ident_pool.  Add u_buff.
343         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
344         (cpp_destroy): Destroy u_buff, not ident_pool.
345         * cpplex.c (parse_number, parse_string, save_comment,
346         cpp_token_as_text): Update to use the unaligned buffer.
347         (new_buff): Make unsigned.
348         (_cpp_unaligned_alloc): New.
349         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
350         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
351         Similarly.
352         (collect_args): Make unsigned.
353
354 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
355
356         * cpplex.c (cpp_output_token): Use a putc loop for
357         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
358
359         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
360         * configure, config.in: Regenerate.
361         * system.h: Replace fwrite and fprintf with their unlocked
362         variants if available.
363
364 2001-09-27  Richard Henderson  <rth@redhat.com>
365
366         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
367         in favour of .eh_frame.
368
369 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
370
371         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
372         to macros.
373         (LIBCALL_VALUE): Likewise.
374
375 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
376
377         * cpphash.h: Update comment.
378         * cpplex.c: Update comments.
379         (_cpp_can_paste): Remove.
380         * cpplib.h (_cpp_can_paste): Remove.
381         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
382         lexer rather than _cpp_can_paste.
383
384 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
385
386         * doc/cppinternals.texi: Update.
387
388 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
389
390         * cpphash.h (struct cpp_pool): Remove locks and locked.
391         (struct cpp_context): Add member buff.
392         (struct cpp_reader): Remove member argument_pool.
393         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
394         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
395         * cpplex.c (chunk_suitable): Remove pool argument.
396         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
397         (new_buff, _cpp_extend_buff): Update.
398         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
399         which buffer is returned.
400         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
401         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
402         * cppmacro.c (lock_pools, unlock_pools): Remove.
403         (push_ptoken_context): Take a _cpp_buff.
404         (enter_macro_context): Pool locking removed.
405         (replace_args): Use a _cpp_buff for the replacement list with
406         arguments replaced.
407         (push_token_context): Clear buff.
408         (expand_arg): Use _cpp_pop_context.
409         (_cpp_pop_context): Free a context's buffer, if any.
410
411 2001-09-26  DJ Delorie  <dj@redhat.com>
412
413         * c-typeck.c (digest_init): Check for sizeless arrays.
414
415 2001-09-26  Richard Henderson  <rth@redhat.com>
416
417         * optabs.c (init_one_libfunc): Create a dummy function type
418         instead of using error_mark_node.
419
420 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
421
422         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
423         _cpp_extend_buff, _cpp_free_buff): New.
424         (struct cpp_reader): New member free_buffs.
425         * cppinit.c (cpp_destroy): Free buffers.
426         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
427         _cpp_extend_buff, _cpp_free_buff): New.
428         * cpplib.h (struct cpp_options): Remove unused member.
429         * cppmacro.c (collect_args): New.  Combines the old parse_arg
430         and parse_args.  Use _cpp_buff for memory allocation.
431         (funlike_invocation_p, replace_args): Update.
432
433 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
434
435         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
436
437 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
438
439         * except.c (sjlj_mark_call_sites): Change address inside sequence.
440
441 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
442
443         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
444         glibc.
445
446 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
447             Jim Wilson  <wilson@redhat.com>
448
449         * doc/install.texi (Specific, ia64-*-linux): Document.
450
451 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
452
453         * Makefile.in (cfgrtl.o): Add.
454         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
455         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
456         free_aux_for_edge): Declare.
457         * cfg.c
458         (HAVE_return): Undefine.
459         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
460         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
461         free_aux_for_edge): New global functions.
462         (first_delete_block): New static variable.
463         (init_flow): Clear first_delete_block.
464         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
465          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
466          try_redirect_by_replacing_jump, last_loop_beg_note,
467          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
468          delete_insn, delete_insn_chain, create_basic_block_structure,
469          create_basic_block, flow_delete_block, compute_bb_for_insn,
470          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
471          set_block_for_new_insns, split_block, merge_blocks_nomove,
472          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
473          redirect_edge_and_branch, force_nonfallthru_and_redirect,
474          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
475          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
476          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
477          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
478          purge_all_dead_edges): Move to ....
479         * cfgrtl.c: New file; .... Here.
480
481         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
482         (reroder_basic_block): Use alloc_aux_for_blocks.
483         * predict.c (estimate_bb_frequencies): Likewise; use
484         alloc_aux_for_edges.
485         * profile.c (compute_branch_probabilities): Likewise.
486         (branch_prob): Likewise.
487         * reg-stack.c (reg_to_stack): Likewise.
488
489         * emit-rtl.c (emit_insns_after): Never return NULL.
490
491         * basic-block.h (set_block_for_new_insns): Delete.
492         * cfgrtl.c (set_block_for_new_insns): Delete.
493
494         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
495         calls when crossjumping.
496
497         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
498         * unroll.c (copy_loop_body): Use delete_insn.
499
500         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
501         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
502         keep_stack_depressed): Likewise.
503         * gcse.c (cprop_cc0_jump): Likewise.
504         * local-alloc.c (update_equiv_regs): Likewise.
505         * loop.c (scan_loop, loop_delete_insns): Likewise.
506         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
507         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
508         delete_output_reload, delete_address_reloads_1,
509         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
510         Likewise.
511         * sibcall.c (replace_call_placeholder): Likewise.
512         * cse.c (cse_insn): Likewise.
513
514 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
515
516         From Graham Stott  <grahams@redhat.com>
517         (def_builtin): Only define builtins appropriate for target_flags.  All
518         callers changed.
519         (builtin_decsription): Add new field mask which is used to determine
520         when to define the builtin via the macro def_builtin.
521
522         (bdesc_comi): Initialise new mask fields.
523         (bdesc_2srg): Likewise.
524         (bdesc_1arg): Likewise.
525
526         * config/i386/i386.c (ix86_init_builtins): Correct return type
527         building v4hi_ftype_v4hi_int_int tree node.
528         (ix86_expand_sse_comi): Fix typo swapping operands.
529         Don't swap comparision condition, it is already swapped.
530         (ix86_expand_sse_compare): Before swapping operands
531         move operand 1 into new rtx and not the target rtx.
532         Don't swap comparison condition, it is already swapped.
533         Always check whether we need to create a new TARGET.
534
535         * config/i386/i386.md: (sse_comi) Fix typos.
536         (sse_ucomi): Likewise.
537         (cvtss2si): Fix operand 0 contraint.
538         (cvttss2si): Likewise.
539         (sse_unpckhps): Fix mode for operand 2.
540         (sse_unpcklps): Likewise.
541
542 2001-09-25  Graham Stott  <grahams@redhat.com>
543
544         * sibcall.c (skip_copy_to_return_value): Tighten return value
545         copy check.
546
547 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
548
549         * rs6000.c (lwa_operand): Address must be word aligned.
550
551 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
552
553         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
554         number has been set.
555         (type_hash_mark): Mark type itself.
556
557 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
558
559         * c-lex.c (cb_def_pragma): Update.
560         (c_lex): Update, and skip padding.
561         * cppexp.c (lex, parse_defined): Update, remove unused variable.
562         * cpphash.h (struct toklist): Delete.
563         (union utoken): New.
564         (struct cpp_context): Update.
565         (struct cpp_reader): New members eof, avoid_paste.
566         (_cpp_temp_token): New.
567         * cppinit.c (cpp_create_reader): Update.
568         * cpplex.c (_cpp_temp_token): New.
569         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
570         (cpp_output_token): Don't print leading whitespace.
571         (cpp_output_line): Update.
572         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
573         do_include_common, do_line, do_ident, do_pragma,
574         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
575         parse_assertion): Update.
576         (get_token_no_padding): New.
577         * cpplib.h (CPP_PADDING): New.
578         (AVOID_LPASTE): Delete.
579         (struct cpp_token): New union member source.
580         (cpp_get_token): Update.
581         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
582         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
583         replace_args, quote_string, stringify_arg, parse_arg, next_context,
584         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
585         _cpp_backup_tokens, _cpp_create_definition): Update.
586         (push_arg_context): Delete.
587         (padding_token, push_token_context, push_ptoken_context): New.
588         (make_string_token, make_number_token): Update, rename.
589         (cpp_get_token): Update to handle tokens as pointers to const,
590         and insert padding appropriately.
591         * cppmain.c (struct printer): New member prev.
592         (check_multiline_token): Constify.
593         (do_preprocessing, cb_line_change): Update.
594         (scan_translation_unit): Update to handle spacing.
595         * scan-decls.c (get_a_token): New.
596         (skip_to_closing_brace, scan_decls): Update.
597         * fix-header.c (read_scan_file): Update.
598
599         * doc/cpp.texi: Update.
600
601 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
602
603         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
604         leak by passing malloc'ed pointer to reconcat, not concat.
605
606 2001-09-24  DJ Delorie  <dj@redhat.com>
607
608         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
609
610 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
611
612         * flow.c (delete_dead_jumptables): Delete jumptable if the only
613         reference is from the literal pool.
614
615 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
616
617         * doc/install.texi (Final install): Request additional information
618         in mail about successful builds.
619
620 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
621
622         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
623         initial value of return pointer register instead of value in frame-20.
624         Revise comments.
625
626 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
627
628         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
629         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
630         the libcall if there isn't a referenced identifier for the symbol.
631
632 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
633
634         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
635         non 64-bit machines.  Use these as a plabel for the trampoline.
636         (TRAMPOLINE_SIZE): Adjust size for new words.
637         (INITIALIZE_TRAMPOLINE): Initialize new words.
638         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
639         pointer to the plabel in the trampoline.
640
641 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
642
643         * pa.c (function_arg): Pass floating arguments in both general and
644         floating registers in indirect (dynamic) calls when generating code
645         for the 32 bit ABI and the HP assembler.
646
647 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
648
649         * doc/install.texi: Markup fixes.
650         Use Solaris 2, SunOS 4 as appropriate.
651         (Specific, *-*-solaris2*): Explain this.
652         Unconditionally warn against /usr/ucb tools.
653         Remove Sun as warning, obsolete.
654         Move X11 header bug workaround here, update patches.
655         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
656         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
657
658 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
659
660         * errors.h (warning, error, fatal, internal_error): Don't mark
661         with ATTRIBUTE_PRINTF_n.
662         * toplev.h (internal_error, fatal_io_error, warning, error,
663         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
664         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
665         Likewise.
666
667 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
668
669         * function.c (pop_function_context_from): var_refs_queue
670         and temp slots now in GC memory.
671         (mark_function_status, free_after_compilation): Likewise;
672         also struct function now in GC memory.
673         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
674         (combine_temp_slots): Likewise.
675         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
676         (prepare_function_start): Use GC memory for struct function.
677         (mark_temp_slot): Deleted.
678         (gcc_mark_struct_function): struct function now in GC memory.
679
680         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
681         code for division, not modulus.
682
683         * rtl.def (MEM): Remove obsolete part of comment.
684
685 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
686
687         * c-format.c (init_function_format_info): Check __builtin_printf
688         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
689         in gnu89 mode.
690
691 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
692
693         * c-common.c (format_attribute_table): Remove decl.
694         * tree.h (format_attribute_table, lang_attribute_table): New decls.
695         (lang_attribute_common): Likewise.
696
697         * function.c (fix_lexical_address): Use set_mem_alias_set.
698         (expand_function_start): Likewise.
699         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
700
701         * varasm.c (output_constant): Fix unused variable warning.
702
703         * attribs.c: New file, from c-common.c.
704         (attribute_tables): Now four elements.
705         (format_attribute_table, lang_attribute_common): New variables.
706         (init_attributes): Reflect above changes.
707         (handle_mode_attribute): Delete check for wider than uintmax.
708         * c-common.c: Delete parts moved to attribs.c.
709         (enum attrs): Deleted; unused.
710         (c_format_attribute_table): New variable.
711         (c_common_lang_init): Initialize format_attribute_table with it.
712         * c-common.h (decl_attributes): Remove decl.
713         * tree.h (decl_attribute): Move it to here.
714         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
715         (attribs.o): New rule.
716
717 2001-09-22  Andreas Jaeger  <aj@suse.de>
718
719         * builtins.c (c_getstr): Remove unused variable.
720
721 2001-09-21  Richard Henderson  <rth@redhat.com>
722
723         * reload1.c (reload): Use delete_insn instead of splatting
724         NOTE_INSN_DELETED.
725
726 2001-09-21  Richard Henderson  <rth@redhat.com>
727
728         * reload.c (push_secondary_reload): Don't check for "=" in output
729         constraint after ""->ALL_REGS check.
730
731 2001-09-21  Richard Henderson  <rth@redhat.com>
732
733         * predict.c (expected_value_to_br_prob): Use pc_set.
734
735         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
736         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
737
738 2001-09-21  Richard Henderson  <rth@redhat.com>
739
740         * rtl.h (LCT_RETURNS_TWICE): New.
741         * calls.c (emit_call_1): Set current_function_calls_setjmp for
742         ECF_RETURNS_TWICE.
743         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
744         to ECF_RETURNS_TWICE.
745         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
746         call to setjmp.
747
748         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
749
750         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
751         (JMP_BUF_SIZE): New.
752
753 2001-09-21  Richard Henderson  <rth@redhat.com>
754
755         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
756         to R8_REGS.
757
758 2001-09-21  Richard Henderson  <rth@redhat.com>
759
760         * tree.def (FDESC_EXPR): New.
761         * expr.c (expand_expr): Handle it.
762         * varasm.c (initializer_constant_valid_p): Likewise.
763         (output_constant): Likewise.
764         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
765         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
766         (ASM_OUTPUT_FDESC): New.
767         * doc/tm.texi: Document the new macros.
768
769 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
770
771         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
772         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
773         once merging is complete.
774
775 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
776
777         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
778
779 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
780
781         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
782         that would be invalid after a merge.
783
784 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
785
786         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
787         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
788         remove some labels.
789         (flow_delete_insn): This one.
790         (delete_insn_chain): Rename from ...; do not care labels.
791         (flow_delete_insn_chain): ... this one.
792         (flow_delete_block): Remove the insns one BB has been expunged.
793         (merge_blocks_nomove): Likewise.
794         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
795         updating BB boundaries.
796         (tidy_fallthru_edge): Likewise.
797         (commit_one_edge_insertion): Likewise.
798         * cfgbuild.c (find_basic_block): Likewise.
799         (find_basic_blocks_1): Likewise.
800         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
801         (try_crossjump_to_edge): Likewise.
802         (try_optimize_cfg): Likewise.
803         * cse.c (delete_trivially_dead_insns): Likewise.
804         * df.c (df_insn_delete): Likewise.
805         * doloop.c (doloop_modify): Use delete_related_insns.
806         * emit-rtl.c (try_split): Likewise.
807         (remove_insn): Update BB boundaries.
808         * expect.c (connect_post_landing_pads): Use delete_related_insns.
809         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
810         updating BB boundaries.
811         (propagate_block_delete_insn): Likewise.
812         (propagate_block_delete_libcall): Likewise.
813         * function.c (delete_handlers): Use delete_related_insns.
814         (thread_prologue_and_epilogue_insns): Likewise.
815         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
816         * genpeep.c (gen_peephole): Use delete_related_insns.
817         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
818         BB boundaries.
819         (find_cond_trap): Likewise.
820         * integrate.c (save_for_inline): Use delete_related_insns.
821         (copy_insn_list): Likewise.
822         * jump.c (pruge_linie_number_notes): Likewise.
823         (duplicate_loop_exit_test): Likewise.
824         (delete_computation): Likewise.
825         (delete_related_insn): Rename from ...; use delete_insn
826         (delete_insn): ... this one.
827         (redirect_jump): Use delete_related_insns.
828         * loop.c (scan_loop): Likewise.
829         (move_movables): Likewise.
830         (find_and_verify_loops): Likewise.
831         (check_dbra_loop): Likewise.
832         * recog.c (peephole2_optimize): Likewise.
833         * reg-stack.c (delete_insn_for_stacker): Remove.
834         (move_for_stack_reg): Use delete_insn.
835         * regmove.c (combine_stack_adjustments_for_block): Likewise.
836         * reload1.c (delete_address_reloads): Use delete_related_insns.
837         (fixup_abnormal_edges): Use delete_insn.
838         * recog.c (emit_delay_sequence): Use delete_related_insns.
839         (delete_from-delay_slot): Likewise.
840         (delete_scheduled_jump): likewise.
841         (optimize_skip): Likewise.
842         (try_merge_delay_insns): Likewise.
843         (full_simple_delay_slots): Likewise.
844         (fill_slots_from_thread): Likewise.
845         (relax_delay_slots): Likewise.
846         (make_return_insns): Likewise.
847         (dbr_schedule): Likewise.
848         * rtl.h (delete_insn): Rename to delete_related_insns.
849         (delete_insn, delete_insn_chain): New prototypes.
850         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
851         by df_insn_delete already.
852         * ssa-dce.c (delete_insn_bb): Use delete_insn.
853         * ssa.c (convert_from_ssa): Use delete_related_insns.
854         * unroll.c (unroll_loop): Likewise.
855         (calculate_giv_inc): Likewise.
856         (copy_loop_body): Likewise.
857
858         * i386-protos.h (ix86_libcall_value, ix86_function_value,
859         ix86_function_arg_regno_p, ix86_function_arg_boundary,
860         ix86_return_in_memory, ix86_function_value): Declare.
861         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
862         new static valurables.
863         (x86_64_reg_class): New enum
864         (x86_64_reg_class_name): New array.
865         (classify_argument, examine_argument, construct_container,
866          merge_classes): New static functions.
867         (optimization_options): Enable flag_omit_frame_pointer and disable
868         flag_pcc_struct_return on 64bit.
869         (ix86_libcall_value, ix86_function_value,
870         ix86_function_arg_regno_p, ix86_function_arg_boundary,
871         ix86_return_in_memory, ix86_function_value): New global functions.
872         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
873         (function_arg_advance): Handle x86_64 passing conventions.
874         (function_arg): Likewise.
875         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
876         (RETURN_IN_MEMORY): Move offline.
877         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
878         (FUNCTION_VALUE_REGNO_P): New macro.
879         (FUNCTION_ARG_REGNO_P): Move offline.
880         (struct ix86_args): Add maybe_vaarg.
881         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
882         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
883
884 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
885
886         * s390.md: Changed attributes for scheduling.
887         * s390.c: (s390_adjust_cost, s390_adjust_priority)
888         Changed scheduling
889
890 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
891
892         Table-driven attributes.
893         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
894         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
895         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
896         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
897         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
898         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
899         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
900         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
901         * tree.h (struct tree_decl): Change machine_attributes to
902         attributes.
903         * doc/c-tree.texi: Document that all attributes are now attached
904         to decls and types.
905         * c-common.c (add_attribute, attrtab, attrtab_idx,
906         default_valid_lang_attribute, valid_lang_attribute): Remove.
907         (attribute_tables, attributes_initialized,
908         c_common_attribute_table, default_lang_attribute_table): New
909         variables.
910         (handle_packed_attribute, handle_nocommon_attribute,
911         handle_common_attribute, handle_noreturn_attribute,
912         handle_unused_attribute, handle_const_attribute,
913         handle_transparent_union_attribute, handle_constructor_attribute,
914         handle_destructor_attribute, handle_mode_attribute,
915         handle_section_attribute, handle_aligned_attribute,
916         handle_weak_attribute, handle_alias_attribute,
917         handle_no_instrument_function_attribute,
918         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
919         handle_no_limit_stack_attribute, handle_pure_attribute): New
920         functions.
921         (init_attributes, decl_attributes): Rewrite to implement
922         table-driven attributes.
923         * c-common.h (enum attribute_flags): Move to tree.h.
924         * c-format.c (decl_handle_format_attribute,
925         decl_handle_format_arg_attribute): Rename to
926         handle_format_attribute and handle_format_arg_attribute.  Update
927         for table-driven attributes.
928         * c-common.h (decl_handle_format_attribute,
929         decl_handle_format_arg_attribute): Remove prototypes.
930         (handle_format_attribute, handle_format_arg_attribute): Add
931         prototypes.
932         * c-decl.c (grokdeclarator): Handle attributes nested inside
933         declarators.
934         * c-parse.in (setattrs, maybe_setattrs): Remove.
935         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
936         Update to handle nested attributes properly.
937         (maybe_resetattrs, after_type_declarator,
938         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
939         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
940         properly.
941         (make_pointer_declarator): Update to handle nested attributes
942         properly.
943         * doc/extend.texi: Update documentation of limits of attributes
944         syntax.  Warn about problems with attribute semantics in C++.
945         * target.h (struct target): Remove valid_decl_attribute and
946         valid_type_attribute.  Add attribute_table and
947         function_attribute_inlinable_p.
948         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
949         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
950         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
951         Add.
952         (TARGET_INITIALIZER): Update.
953         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
954         definition.
955         (function_attribute_inlinable_p): New function.  Check for the
956         presence of any machine attributes before using
957         targetm.function_attribute_inlinable_p.
958         (function_cannot_inline_p): Update.
959         * Makefile.in (integrate.o): Update dependencies.
960         * doc/tm.texi: Update documentation of target attributes and
961         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
962         * tree.c (default_valid_attribute_p, valid_machine_attribute):
963         Remove.
964         (default_target_attribute_table,
965         default_function_attribute_inlinable_p): New.
966         (lookup_attribute): Update comment to clarify handling of multiple
967         attributes with the same name.
968         (merge_attributes, attribute_list_contained): Allow multiple
969         attributes with the same name but different arguments to appear in
970         the same attribute list.
971         * tree.h (default_valid_attribute_p): Remove prototype.
972         (struct attribute_spec): New.
973         (default_target_attribute_table): Declare.
974         (enum attribute_flags): Move from c-common.h.  Add
975         ATTR_FLAG_TYPE_IN_PLACE.
976         (default_function_attribute_inlinable_p): Declare.
977         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
978         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
979         (TARGET_ATTRIBUTE_TABLE): Define.
980         (vms_attribute_table): New.
981         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
982         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
983         (TARGET_ATTRIBUTE_TABLE): Define.
984         (arc_attribute_table, arc_handle_interrupt_attribute): New.
985         * config/arm/arm.c (arm_valid_type_attribute_p,
986         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
987         Remove.
988         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
989         define.
990         (TARGET_ATTRIBUTE_TABLE): Define.
991         (arm_attribute_table, arm_handle_fndecl_attribute,
992         arm_handle_isr_attribute): New.
993         * config/avr/avr.c (avr_valid_type_attribute,
994         avr_valid_decl_attribute): Remove.
995         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
996         define.
997         (TARGET_ATTRIBUTE_TABLE): Define.
998         (avr_attribute_table, avr_handle_progmem_attribute,
999         avr_handle_fndecl_attribute): New.
1000         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
1001         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
1002         (TARGET_ATTRIBUTE_TABLE): Define.
1003         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
1004         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
1005         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
1006         (TARGET_ATTRIBUTE_TABLE): Define.
1007         (h8300_attribute_table, h8300_handle_fndecl_attribute,
1008         h8300_handle_eightbit_data_attribute,
1009         h8300_handle_tiny_data_attribute): New.
1010         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
1011         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
1012         Remove prototypes.
1013         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
1014         declarations.
1015         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
1016         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
1017         define.
1018         (TARGET_ATTRIBUTE_TABLE): Define.
1019         (ix86_attribute_table, ix86_handle_cdecl_attribute,
1020         ix86_handle_regparm_attribute): New.
1021         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
1022         i386_pe_valid_type_attribute_p): Remove.
1023         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
1024         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
1025         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
1026         (TARGET_ATTRIBUTE_TABLE): Define.
1027         (ia64_attribute_table): New.
1028         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
1029         interrupt_ident2, model_ident1, model_ident2): Remove.
1030         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
1031         (TARGET_ATTRIBUTE_TABLE): Define.
1032         (init_idents): Update.
1033         (m32r_attribute_table, m32r_handle_model_attribute): New.
1034         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
1035         Remove.
1036         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
1037         (TARGET_ATTRIBUTE_TABLE): Define.
1038         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
1039         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
1040         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
1041         (TARGET_ATTRIBUTE_TABLE): Define.
1042         (mcore_attribute_table, mcore_handle_naked_attribute): New.
1043         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
1044         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
1045         (TARGET_ATTRIBUTE_TABLE): Define.
1046         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
1047         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
1048         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
1049         (TARGET_ATTRIBUTE_TABLE): Define.
1050         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
1051         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
1052         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
1053         (TARGET_ATTRIBUTE_TABLE): Define.
1054         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
1055         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1056         New.
1057         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
1058         Remove.
1059         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
1060         (TARGET_ATTRIBUTE_TABLE): Define.
1061         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
1062         New.
1063         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
1064         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
1065         (TARGET_ATTRIBUTE_TABLE): Define.
1066         (v850_attribute_table, v850_handle_interrupt_attribute,
1067         v850_handle_data_area_attribute): New.
1068         * config/v850/v850-c.c (mark_current_function_as_interrupt):
1069         Return void.  Call decl_attributes instead of
1070         valid_machine_attribute.
1071
1072 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
1073
1074         * sh-protos.h (sh_pr_n_sets): Declare.
1075         * sh.c (calc_live_regs): If the initial value for PR has been copied,
1076         look at the copy to determine if PR needs to be saved.
1077         sh_pr_n_sets: New function.
1078         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
1079         (ALLOCATE_INITIAL_VALUE): Define.
1080
1081         * sh.c (initial_elimination_offset):
1082         Fix RETURN_ADDRESS_POINTER_REGNUM case.
1083
1084 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
1085
1086         * integrate.c (allocate_initial_values): New function.
1087         * integrate.h (allocate_initial_values): Declare.
1088         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
1089         here...
1090         * reload1.c (reload): And initialization of reg_equiv_memory_loc
1091         from here...
1092         * toplev.c (rest_of_compilation): To here.
1093         Call allocate_initial_values.
1094         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
1095
1096 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1097
1098         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
1099
1100 2001-09-20  DJ Delorie  <dj@redhat.com>
1101
1102         * c-typeck.c (really_start_incremental_init): Discriminate
1103         between zero-length arrays and flexible arrays.
1104         (push_init_level): Detect zero-length arrays and handle them
1105         like fixed-sized arrays.
1106         * expr.c (store_constructor): Handle zero-length arrays and
1107         flexible arrays correctly.
1108         * doc/extend.texi: Update zero-length array notes.
1109
1110 2001-09-20  Jim Wilson  <wilson@redhat.com>
1111
1112         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
1113         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
1114         for issue port conflicts.
1115         (cycle_end_fill_slots): TYPE_L instructions take two slots.
1116
1117 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
1118
1119         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
1120         on ia64.
1121
1122 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1123
1124         * fold-const.c (hashtab.h): Include.
1125         (int_const_binop): Remove FORSIZE arg and compute from type; all
1126         callers changed.
1127         Call size_int_type_wide for all single-word constants.
1128         (size_htab_hash, size_htab_eq): New functions.
1129         (size_int_type_wide): Rework to use hash table.
1130         * ggc-common.c (hashtab.h): Include.
1131         (struct d_htab_root): New struct.
1132         (d_htab_roots): New variable.
1133         (ggc_add_deletable_htab, ggc_htab_delete): New functions
1134         (ggc_mark_roots): Handle deletable htabs.
1135         * ggc-page.c (ggc_marked_p): New function.
1136         * ggc-simple.c (ggc_marked_p): Likewise.
1137         * ggc.h: Reformatting throughout.
1138         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
1139         * tree.c (init_obstacks): Make type_hash_table a deletable root.
1140         (type_hash_add): Allocate struct type_hash from GC memory.
1141         (mark_hash_entry, mark_type_hash): Deleted.
1142         (type_hash_marked_p, type_hash_mark): New functions.
1143         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
1144
1145 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
1146
1147         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
1148         than SImode.
1149
1150 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1151
1152         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
1153         array-too-large test for signed sizetype.
1154
1155 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
1156
1157         * i386.md (indirect_jump): Allow Pmode operand.
1158         (tablejump): LIkewise; perform expansion to 64bit mode.
1159         * i386.c (symbolic_operand): Allow 64bit PIC references.
1160         (pic_symbolic_operand): Likewise.
1161         (ix86_find_base_term): Strip the 64bit PIC references.
1162         (legitimate_pic_address_disp_p): Handle 64bit PIC.
1163         (legitimize_pic_address): Likewise.
1164         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
1165         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
1166
1167 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
1168
1169         * stringpool.c (get_identifier_with_length): New function.
1170         * tree.h (get_identifier_with_length): New prototype.
1171
1172 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
1173             David Edelsohn  <edelsohn@gnu.org>
1174
1175         Revert:
1176         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
1177         already sign-extended.
1178
1179         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
1180         * config/rs6000/rs6000.c (logical_operand): Always compare op as
1181         HOST_WIDE_INT.
1182         (rs6000_emit_set_long_const): Avoid unnecessary shift.
1183         (output_profile_hook): Declare label_name const.
1184         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
1185         to match constraints.
1186
1187 2001-09-19  Stan Shebs  <shebs@apple.com>
1188
1189         * alias.c: Fix typos in comments.
1190         * sched-rgn.c (init_ready_list): Ditto.
1191         * unwind-dw2.c (uw_frame_state_for): Ditto.
1192         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
1193         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
1194         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
1195
1196 2001-09-19  Richard Henderson  <rth@redhat.com>
1197
1198         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
1199         to the exit block.
1200         * Makefile.in (cfg.o): Depend on TM_P_H.
1201
1202 2001-09-19  Richard Henderson  <rth@redhat.com>
1203
1204         * config/alpha/alpha.c (local_symbol_p): Split out from ...
1205         (local_symbolic_operand): ... here.
1206         (small_symbolic_operand): Check mode.
1207         (global_symbolic_operand): New.
1208         (input_operand): Reject symbolics if explicit relocs.
1209         (call_operand): Tidy.
1210         (alpha_legitimize_address): Use movdi_er_high_g.
1211         (alpha_expand_mov): Likewise.
1212         * config/alpha/alpha-protos.h: Update.
1213         * config/alpha/alpha.h (PREDICATE_CODES): Update.
1214         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
1215         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
1216         (UNSPECV_LDGP2): Remove.
1217         (all call patterns): Use 's' not 'i' for symbolic constraint.
1218         (call_osf call_value_osf): Use call_operand.
1219         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
1220         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
1221         (prologue_ldgp_1_er): Remove.
1222         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
1223         (builtin_setjmp_receiver_er patterns): Use them.
1224         (exception_receiver_er): Likewise.
1225
1226 2001-09-19  Richard Henderson  <rth@redhat.com>
1227
1228         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
1229
1230         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
1231         and NON_LOCAL_GOTO notes.
1232         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
1233         copy over CALL_INSN_FUNCTION_USAGE.
1234
1235 2001-09-18  Catherine Moore  <clm@redhat.com>
1236
1237         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
1238         Define as 0.
1239
1240 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
1241
1242         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
1243         new-style tm_file specification.  Specify correct tm_p_file,
1244         md_file, and out_file for s390x.
1245
1246         * config/s390/linux.h, linux64.h:  Don't include other target
1247         macro header files.  Now handled via tm_file.
1248
1249         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
1250         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
1251         are defined before use.
1252
1253 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
1254
1255         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
1256         code generation only for Gnu assembler.
1257
1258 2001-09-18  Catherine Moore  <clm@redhat.com>
1259
1260         * config/stormy16 (LIB_SPEC): Remove -lnosys.
1261
1262 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
1263
1264         * config/mips/mips.c (mips_frame_set): New.
1265         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
1266         a parallel frame-related expression with a set for each register.
1267
1268 2001-09-18  Philip Blundell  <philb@gnu.org>
1269
1270         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
1271         header files.
1272
1273 2001-09-17  Dale Johannesen  <dalej@apple.com>
1274
1275         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
1276         * config/rs6000/aix.h (FIXED_R2): Define.
1277         * config/rs6000/darwin.h (FIXED_R2): Define.
1278         * config/rs6000/sysv4.h (FIXED_R2): Define.
1279
1280 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
1281
1282         * except.c (dw2_build_landing_pads): New local
1283         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
1284         barrier after clobbers.  Fixes c++/4012.
1285
1286 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1287
1288         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
1289
1290 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1291
1292         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
1293         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
1294
1295 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1296
1297         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
1298         alloca/strcpy.
1299
1300 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1301
1302         * cpphash.h (_cpp_lex_direct): New.
1303         * cpplex.c (_cpp_lex_token): Update.
1304         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
1305         and increment that pointer.
1306         * cppmacro.c (alloc_expansion_token): New.
1307         (lex_expansion_token): Lex macro expansion directly into
1308         macro storage.
1309
1310 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
1311
1312         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
1313
1314 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
1315
1316         * basic-block.h (free_bb_for_insn): Declare.
1317         * bb-reorder.c (label_for_bb): Use block_label.
1318         (emit_jump_to_block_after): Remove.
1319         (insert_intra_1): Do not update block_for_insn.
1320         (insert_inter_bb_scope_notes): Likewise; update bb->end
1321         * cfg.c (free_bb_for_insn): New.
1322         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
1323         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
1324         (commit_one_edge_insertion): Likewise.
1325         (commit_one_edge_insertion): Do not update BB boundary.
1326         (commit_edge_insertions): Do not call compute_bb_for_insn.
1327         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
1328         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
1329         (merge_blocks_move_successor_nojumps): Likewise.
1330         (try_crossjump_to_edge): Do not update block_for_insn.
1331         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
1332         * df.c (df_pattern_emit_later): Do not update BB boundary.
1333         (df_jump_pattern_emit_after): Likewise.
1334         (df_insn_move_before): Use emit_insn_before.
1335         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
1336          properly.
1337         (add_insn_after, add_insn_before, emit_insns_after): Update BB
1338         boundaries and basic_block_for_insn.
1339         (reorder_insns_nobb): Rename from reorder_insns.
1340         (reorder_insns): New.
1341         (emit_block_insn_before, emit_block_insn_after): Kill.
1342         * flow.c (check_function_return_warnings): Do not call
1343         compute_bb_for_insn; Do not free basic_block_for_insn.
1344         (attempt_auto_inc): Do not update basic_block_for_insn.
1345         * function.c (emit_return_into_block): Likewise;
1346         do not update BB boundaries.
1347         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
1348         (insert_insn_end_bb): Use emit_insn_before; Likewise.
1349         (pre_insert_copy_insn): Likewise.
1350         (update_ld_motion_notes): Likewise.
1351         (insert_insn_start_bb): Likewise.
1352         (replace_store_insn): Likewise.
1353         * ifcvt.c (noce_process_if_block): Likewise.
1354         (if_convert): Do not call compute_bb_for_insn.
1355         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
1356         Use emit_insn_before and emit_insn_after.
1357         * recog.c (split_all_insns): Do not update BB boundaries;
1358         Do not call compute_bb_for_insn.
1359         (peephole2_optimize): Do not update BB boundaries.
1360         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
1361         emit_insn_before.
1362         (emit_swap_insn): Likewise.
1363         (convert_regs_1): Likewise.
1364         * reload1.c (reload): Call compute_bb_for_insn.
1365         * rtl.h (reorder_insns_nobb): Declare.
1366         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
1367         * toplev.c (rest_of_compilation): Call free_bb_for_insn
1368         at places CFG is invalidated; do not call compute_bb_for_insn.
1369
1370         * cfg.c (expunge_block): Invalidate BB structure.
1371
1372         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
1373         array.
1374
1375         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
1376
1377 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1378
1379         * cpphash.h (_cpp_lex_token): Update prototype.
1380         * cpplex.c (_cpp_lex_token): New prototype.
1381         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
1382         lex_macro_node, read_flag, do_pragma_poison): Update.
1383         * cppmacro.c (cpp_get_token, parse_params,
1384         lex_expansion_token): Update.
1385
1386 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1387
1388         * cppmain.c (scan_translation_unit): Don't worry about
1389         putting a space after hashes.
1390         * cpplib.c (directive_diagnostics): New.
1391         (_cpp_handle_directive): Update to use directive_diagnostics.
1392         (run_directive): Don't toggle prevent_expansion.
1393         (do_line): Backup in case of the line extension.
1394         * cpplib.h (cpp_lexer_pos): Remove.
1395         * cppmacro.c (_cpp_create_definition): Precede a leading #
1396         with whitespace.
1397
1398 2001-09-15  Richard Henderson  <rth@redhat.com>
1399
1400         * c-typeck.c (comptypes): Handle zero-length arrays properly.
1401
1402 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1403
1404         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
1405
1406 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1407
1408         PR preprocessor/3571
1409         * tradcpp.c (handle_directive): Skip non-vertical space.
1410
1411 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1412
1413         * cppmain.c (setup_callbacks): Set line callback only
1414         if outputting preprocessed source.
1415
1416 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1417
1418         * collect2.c (main): Const-ification.
1419         * gcc.c (translate_options, process_command): Use xstrdup in
1420         lieu of xmalloc/strcpy.
1421         (main): Use concat in lieu of xmalloc/strcpy/strcat.
1422
1423 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1424
1425         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
1426         example.
1427
1428 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1429
1430         * scan-decls.c (scan_decls): Fix typo.
1431
1432 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1433
1434         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
1435         Split mlstring_pos into mls_line and mls_col.
1436         * cppinit.c (cpp_create_reader): Initialize line to 1.
1437         (cpp_destroy): Free tokenruns.
1438         (push_include): Don't update lexer_pos.
1439         * cpplex.c (unterminated, parse_string): Update.
1440         (lex_token): Don't update lexer_pos, update.
1441         * cpplib.c (if_stack): Save line instead of line + col.
1442         (start_directive, _cpp_do__Pragma, do_else, do_elif,
1443         push_conditional, _cpp_pop_buffer): Update.
1444         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
1445         (_cpp_create_definition): Update.
1446
1447 2001-09-15  Eric Christopher  <echristo@redhat.com>
1448
1449         * config/mips/abi64.h: Add support for MEABI.
1450
1451 2001-09-15  Eric Christopher  <echristo@redhat.com>
1452
1453         * config/mips/mips.md: Add unspec #2.
1454         (reload_indi): Use.
1455         (reload_outdi): Ditto.
1456         (reload_outsi): Ditto.
1457         (HILO_delay): New.
1458
1459 2001-09-15  Eric Christopher  <echristo@redhat.com>
1460             Jason Eckhardt  <jle@redhat.com>
1461
1462         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
1463         * config/mips/isa32-linux.h: New file.
1464         * config/mips/isa3264.h: Ditto.
1465         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
1466         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
1467         (output_block_mode): Support MEABI.
1468         (function_arg): Ditto. Fix floating point arg passing.
1469         (mips_va_start): Ditto.
1470         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
1471         processors.
1472         (mips_asm_file_start): Add new section to pass abi to gdb.
1473         (function_arg_pass_by_reference): Support MEABI.
1474         (mips_parse_cpu): Support mips32 and mips64 processors.
1475         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
1476         TARGET_MIPS5KC.  Support isa32 and isa64.
1477         (processor_type): Add r4kc, r5kc, r20kc.
1478         (GENERATE_MULT3_SI): New.
1479         (GENERATE_MULT3_DI): Ditto.
1480         (GENERATE_MULT3): Remove.
1481         (ISA_HAS_64BIT_REGS): Add isa == 64.
1482         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
1483         (ISA_HAS_MADD_MSUB): New.
1484         (ISA_HAS_CLZ_CLO): Ditto.
1485         (ISA_HAS_DCLZ_DCLO): Ditto.
1486         (ABI_GAS_ASM_SPEC): New.
1487         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
1488         (ASM_SPEC): Ditto.
1489         (LINK_SPEC): Ditto.
1490         (SUBTARGET_CC1_SPEC): Ditto.
1491         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
1492         (PAD_VARARGS_DOWN): Support MEABI.
1493         (HARD_REGNO_NREGS): Move to mips.c.
1494         (ASM_OUTPUT_IDENT): Add #undef.
1495         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
1496         (mulsi3): Use GENERATE_MULT3_SI.
1497         (mulsi3_mult3): Ditto.  Support mips32, mips64.
1498         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
1499         (mul_sub_si): New pattern.
1500         (unnamed splitters): New.
1501         (muldi3): Use GENERATE_MULT3_DI.
1502         (muldi3_internal2): Ditto.
1503         (movdicc): Support mips32.
1504         * config/mips/t-isa3264: New file.
1505
1506 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
1507
1508         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
1509         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
1510         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
1511
1512         * reorg.c (fill_slots_from_thread): After call to
1513         steal_delay_list_from_target, update own_thread as new_thread may
1514         have branched.
1515
1516 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1517
1518         * cpperror.c (print_location): Take line and column, for
1519         default positioning use the previously lexed token.
1520         (_cpp_begin_message): Take line and column.
1521         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
1522         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
1523         * cpphash.h (_cpp_begin_message): Update prototype.
1524         * cppinit.c (push_include): Don't set output line.
1525         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
1526         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
1527         (do_pragma): Kludge for front ends.  Don't expand macros at all.
1528         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
1529         (struct cpp_token): Remove output_line.
1530         (struct cpp_callbacks): New member line_change.
1531         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
1532         cpp_get_token): Preserve BOL flag.
1533         (cpp_get_line): Remove.
1534         (_cpp_backup_tokens): Remove useless abort().
1535         * cppmain.c (cb_line_change): New.
1536         (scan_translation_unit): Don't worry about starting new lines here.
1537         * scan-decls.c (scan_decls): Update.
1538         * c-lex.c (c_lex, init_c_lex): Update.
1539         (cb_line_change, src_lineno): New.
1540
1541 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
1542
1543         * tree.c (append_random_chars): Generate the random
1544         characters in a reproducable fashion.
1545
1546 2001-09-14  Richard Henderson  <rth@redhat.com>
1547
1548         * config/i386/i386.c (internal_label_prefix): New.
1549         (internal_label_prefix_len): New.
1550         (override_options): Set them.
1551         (local_symbolic_operand): New.
1552         (legitimate_pic_address_disp_p): Use it.
1553         (legitimize_pic_address): Likewise.
1554
1555 2001-09-14  Marc Espie <espie@openbsd.org>
1556
1557         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
1558         correctly.
1559
1560 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1561
1562         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
1563         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
1564
1565 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
1566
1567         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
1568         invocation of SUBREG_REGNO_OFFSET.
1569
1570         * haifa-sched.c: Fix typo in FSF copyright statement.
1571         * sched-deps.c: Fix typo in FSF copyright statement.
1572         * sched-ebb.c: Fix typo in FSF copyright statement.
1573         * sched-rgn.c: Fix typo in FSF copyright statement.
1574         * sched-vis.c: Fix typo in FSF copyright statement.
1575
1576         * config.gcc: Move inclusion of arm elf specific header files
1577         from the files themselves into the tm_file variable.  Make
1578         sure that elfos.h is included before target specific elf
1579         headers.
1580         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
1581         already defined.
1582         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
1583         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
1584         ASM_OUTPUT_CASE_LABEL): Protect definition.
1585         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
1586         not already defined.
1587         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
1588         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
1589         Remove duplicate definition.
1590         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
1591         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
1592         (RDATA_SECTION_FUNCTION): Remove redundant definition.
1593         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
1594         Remove inclusion of arm/elf.h.
1595         * config/arm/unknown-elf.h: as for conix-elf.h.
1596         (STARTFILE_SPEC): Include crti.o and crtn.o.
1597         * config/arm/linux-elf.h: as for conix-elf.h.
1598         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
1599         * config/arm/strongarm-elf.h: Remove inclusion of
1600         unknown-elf.h.
1601         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
1602         * config/arm/unknown-elf-oabi.h: Remove inclusion of
1603         unknown-elf.h and elf.h.
1604         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
1605         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
1606         ASM_WEAKEN_LABEL): Remove redundant definition.
1607         * config/arm/elf.h: Test for inclusion of elfos.h
1608         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
1609         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
1610         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
1611         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
1612         redundant definition.
1613         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
1614         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
1615         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
1616         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
1617         Add rules to build crti.o and crtn.o
1618         * crti.asm: New file.
1619         * crtn.asm: New file.
1620
1621 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1622
1623         * c-parse.in (_yylex): Use _cpp_backup_tokens.
1624         * cpphash.h (struct tokenrun): Add prev.
1625         (struct lexer_state): Remove bol.
1626         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
1627         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
1628         : Remove.
1629         * cppinit.c (cpp_create_reader): Don't set bol.
1630         (cpp_destroy): Don't free lookaheads.
1631         * cpplex.c (lex_directive): Remove.
1632         (next_tokenrun): Update.
1633         (_cpp_lex_token): Clean up logic.
1634         (lex_token): Update to return a pointer to lexed token, since it
1635         can move to the start of the buffer.  Simpify newline handling.
1636         * cpplib.c (SEEN_EOL): Update.
1637         (skip_rest_of_line): Remove lookahead stuff.
1638         (end_directive): Line numbers are already incremented.  Revert
1639         to start of lexed token buffer if we can.
1640         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
1641         parse_answer): Use _cpp_backup_tokens.
1642         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
1643         instead.  Don't check for EOL.
1644         (do_include_common, do_line, do_pragma_system_header): Use
1645         skip_rest_of_line.
1646         * cpplib.h (BOL, _cpp_backup_tokens): New.
1647         * cppmacro.c (save_lookahead_token, take_lookahead_token,
1648         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
1649         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
1650         (builtin_macro): Don't use cpp_get_line.
1651         (cpp_get_line): Short term kludge.
1652         (parse_arg): Handle directives in arguments here.  Back up when
1653         appropriate.  Store EOF at end of argument list.
1654         (funlike_invocation_p): Use _cpp_backup_tokens.
1655         (push_arg_context): Account for EOF at end of list.
1656         (cpp_get_token): Remove lookahead stuff.  Update.
1657
1658 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1659
1660         * c-parse.in (yyerror): Const-ification and/or static-ization.
1661         * c-typeck.c (push_member_name): Likewise.
1662         * collect2.c (main): Likewise.
1663         * dbxout.c (dbxout_parms): Likewise.
1664         * diagnostic.c (format_with_decl): Likewise.
1665         * dwarf2out.c (output_ranges): Likewise.
1666         * dwarfout.c (fundamental_type_code): Likewise.
1667         * except.c (dw2_output_call_site_table): Likewise.
1668         * gcc.c (do_spec_1): Likewise.
1669         * genopinit.c (optabs): Likewise.
1670         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
1671         gen_declaration_1, handle_impent): Likewise.
1672         * protoize.c (default_include, in_system_include_dir, abspath):
1673         Likewise.
1674         * sched-vis.c (visualize_stall_cycles): Likewise.
1675         * sdbout.c (plain_type_1, sdbout_end_function,
1676         sdbout_end_epilogue): Likewise.
1677         * varasm.c (decode_reg_name): Likewise.
1678
1679         * 1750a.c (mod_regno_adjust): Likewise.
1680         * alpha.c (alpha_write_one_linkage,
1681         unicosmk_output_default_externs): Likewise.
1682         * arm.c (arm_condition_codes): Likewise.
1683         * arm.h (arm_condition_codes): Likewise.
1684         * avr.c (output_movsisf, encode_section_info): Likewise.
1685         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
1686         Likewise.
1687         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
1688         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
1689         * m88k.c (output_function_profiler): Likewise.
1690         * mips.c (mips_output_conditional_branch): Likewise.
1691         * ns32k.c (ns32k_out_reg_names): Likewise.
1692         * ns32k.h (ns32k_out_reg_names): Likewise.
1693         * pj.c (pj_output_rval): Likewise.
1694         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
1695         * sparc.c (sparc_flat_function_prologue,
1696         sparc_flat_function_epilogue): Likewise.
1697
1698 2001-09-13  Markus Werle <numerical.simulation@web.de>
1699             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1700
1701         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
1702         Aachen University of Technology".
1703
1704 2001-09-13  Andreas Schwab  <schwab@suse.de>
1705
1706         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
1707         C99.
1708
1709 2001-09-13  Richard Henderson  <rth@redhat.com>
1710
1711         * config/alpha/alpha.c (small_symbolic_operand): New.
1712         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
1713         (some_operand, input_operand): Don't handle HIGH.
1714         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
1715         (alpha_expand_mov): Likewise.
1716         (print_operand) [H]: Just print HIGH symbol.
1717         (print_operand_address): Handle small data.
1718         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
1719         (TARGET_SWITCHES): Add -msmall-data/large-data.
1720         (PIC_OFFSET_TABLE_REGNUM): New.
1721         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
1722         (PREDICATE_COES): Update.
1723         * config/alpha/alpha.md (adddi_er_high): New.
1724         (adddi_er_low): Handle small data.
1725         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
1726         prefer .sdata to .rodata.
1727         (SELECT_RTX_SECTION): Likewise.
1728
1729 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
1730
1731         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
1732         defining __size_t and leaving size_t undefined.
1733
1734 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
1735
1736         * basic-block.h (expunge_block): Declare.
1737         * cfg.c (expunge_block): Remove static declaration.
1738
1739 2001-09-12  Richard Henderson  <rth@redhat.com>
1740
1741         * integrate.c (copy_insn_list): Copy label name from
1742         NOTE_INSN_DELETED_LABEL.
1743
1744 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1745
1746         * c-common.c (c_tree_code_name): Const-ification.
1747         * c-decl.c (c_decode_option): Likewise.
1748         * c-typeck.c (warn_for_assignment): Likewise.
1749         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
1750         Likewise.
1751         * cppinit.c (output_deps): Likewise.
1752         * dependence.c (dependence_string, direction_string): Likewise.
1753         * dwarf2out.c (output_ranges): Likewise.
1754         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
1755         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
1756         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
1757         standard_startfile_prefix, standard_startfile_prefix_1,
1758         standard_startfile_prefix_2, tooldir_base_prefix,
1759         standard_bindir_prefix, find_a_file): Likewise.
1760         * genattrtab.c (make_length_attrs): Likewise.
1761         * gencheck.c (tree_codes): Likewise.
1762         * genemit.c (gen_split): Likewise.
1763         * genrecog.c (special_mode_pred_table): Likewise.
1764         * graph.c (graph_ext): Likewise.
1765         * protoize (default_include): Likewise.
1766         * reload.c (reload_when_needed_name): Likewise.
1767         * sched-vis.c (visualize_stall_cycles): Likewise.
1768         * tlink.c (recompile_files): Likewise.
1769         * toplev.c (decode_g_option): Likewise.
1770         * tradcpp.c (output_deps): Likewise.
1771         * varasm.c (decode_reg_name): Likewise.
1772
1773         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
1774         Const-ification.
1775         * arm.md: Likewise.
1776         * avr.c (avr_regnames, encode_section_info): Likewise.
1777         * c4x.c (float_reg_names): Likewise.
1778         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
1779         * elfos.h (const_section): Likewise.
1780         * i386.c (ix86_comp_type_attributes): Likewise.
1781         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
1782         * ia64/aix.h (UNIQUE_SECTION): Likewise.
1783         * ia64.c (type_names): Likewise.
1784         * m68hc11.c (reg_class_names): Likewise.
1785         * m88k.c (m_options): Likewise.
1786         * mips.c (mips_output_conditional_branch, mips_unique_section):
1787         Likewise.
1788         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1789         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
1790         ultra_code_names): Likewise.
1791         * sparc.h (OVERRIDE_OPTIONS): Likewise.
1792
1793 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
1794
1795         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
1796         Use --fatal-warnings option for gas.
1797         * configure: Rebuilt.
1798
1799 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1800
1801         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
1802
1803 2001-09-11  Jim Wilson  <wilson@redhat.com>
1804
1805         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
1806
1807 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1808
1809         * builtins.c (c_strlen): Treat an offset too large for a
1810         HOST_WIDE_INT as out of range.
1811
1812 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
1813
1814         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
1815         (EDGE_CRITICAL_P): New predicate.
1816         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
1817         handling.
1818         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
1819         (dump_edge_info): Remove "crit".
1820         * cfganal.c (mark_critical_edges): Kill.
1821         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
1822         * cfgcleanup.c (cleanup_cfg): Likewise.
1823         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
1824         (find_spanning_tree): Likewise.
1825         * reg-stack.c (convert_regs_1): Likewise.
1826         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
1827
1828         * basic-block.h (create_basic_block_structure): New.
1829         (create_basic_block): Update prototype.
1830         (force_nonfallthru): New.
1831         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
1832         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
1833         handle updating of block_for_insn, creating of empty BBs and BBs at
1834         the end of INSN chain.
1835         (create_basic_block): New function.
1836         (split_block): Use create_basic_block.
1837         (force_nonfallthru_and_redirect): Break out from ...; cleanup
1838         (redirect_edge_and_branch_force): ... here.
1839         (force_nonfallthru): New.
1840         (split_edge): Rewrite to use force_nonfallthru and create_block.
1841         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
1842         (find_basic_blocks): Free basic_block_for_insn.
1843         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
1844
1845         * cfg.c: Fix formating.
1846         * cfgcleanup.c: Fix formating.
1847         (merge_blocks, tail_recursion_label_p): Return bool.
1848         (merge_blocks_move_predecessor_nojumps,
1849          merge_blocks_move_successor_nojumps): Return void.
1850
1851 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
1852
1853         * configure.in: Check whether assembler supports section merging.
1854         * config.in: Rebuilt.
1855         * configure: Rebuilt.
1856         * varasm.c (variable_section, output_constant_pool): Pass alignment
1857         to SELECT_SECTION and SELECT_RTX_SECTION.
1858         (mergeable_string_section): New.
1859         (mergeable_constant_section): New.
1860         (default_elf_asm_named_section): Output SECTION_MERGE and
1861         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
1862         * output.h (mergeable_string_section): New.
1863         (mergeable_constant_section): New.
1864         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
1865         * toplev.c (flag_merge_constants): New.
1866         (f_options): Add -fmerge-constants and -fmerge-all-constants
1867         options.
1868         (toplev_main): Default to -fno-merge-constants if not optimizing.
1869         * flags.h (flag_merge_constants): Add extern.
1870         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
1871         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
1872         argument.
1873         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
1874         Define if assembler has working .subsection -1 support.
1875         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
1876         Put constant into special SHF_MERGE sections if the linker should
1877         attempt to merge duplicates.
1878         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
1879         macro argument.
1880         Put constant into special SHF_MERGE sections if the linker should
1881         attempt to merge duplicates.
1882         * config/alpha/elf.h: Likewise.
1883         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
1884         has working .subsection -1 support.
1885         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
1886         SELECT_SECTION.
1887         * config/svr3.h: Likewise.
1888         * config/darwin.h: Likewise.
1889         * config/arm/aof.h: Likewise.
1890         * config/arm/linux-elf.h: Likewise.
1891         * config/avr/avr.h: Likewise.
1892         * config/c4x/c4x.h: Likewise.
1893         * config/d30v/d30v.h: Likewise.
1894         * config/i386/dgux.h: Likewise.
1895         * config/i386/osfrose.h: Likewise.
1896         * config/i386/sco5.h: Likewise.
1897         * config/i386/svr3gas.h: Likewise.
1898         * config/ia64/aix.h: Likewise.
1899         * config/m32r/m32r.h: Likewise.
1900         * config/m68k/m68k.h: Likewise.
1901         * config/m88k/dgux.h: Likewise.
1902         * config/m88k/m88k.h: Likewise.
1903         * config/mcore/mcore-pe.h: Likewise.
1904         * config/mips/mips.h: Likewise.
1905         * config/pa/pa.h: Likewise.
1906         * config/pa/pa-linux.h: Likewise.
1907         * config/romp/romp.h: Likewise.
1908         * config/rs6000/sysv4.h: Likewise.
1909         * config/rs6000/xcoff.h: Likewise.
1910         * config/s390/linux.h: Likewise.
1911         * config/sparc/sparc.h: Likewise.
1912         * config/sparc/sysv4.h: Likewise.
1913         * config/stormy16/stormy16.h: Likewise.
1914         * config/v850/v850.h: Likewise.
1915         * config/vax/vms.h: Likewise.
1916         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
1917         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
1918         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
1919         default_elf_asm_named_section for SHF_MERGE sections.
1920
1921 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
1922
1923         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
1924         is OK.
1925
1926 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
1927
1928         * c-common.c (split_specs_attrs): Allow for empty attributes with
1929         empty TREE_PURPOSE.  Fixes PR c/4294.
1930
1931 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
1932
1933         * basic-block.h (cached_make_edge, make_single_succ): New.
1934         (make_edge): Remove first parameter.
1935         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
1936         * cfg.c (cached_make_edge): Rename from make_edge; return newly
1937         created edge; use obstack allocation.
1938         (make_edge, make_single_succ_edge): New.
1939         (first_removed_edge): New static variable.
1940         (init_flow): Initialize first_removed_edge and n_edges.
1941         (clear_edges): Use remove_edge.
1942         (flow_delete_block): Likewise.
1943         (remove_edge): Add removed edges to the removed edges list.
1944         (split_block, redirect_edge_and_branch_force, split_edge):
1945         Use make_edge.
1946         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
1947         (add_noreturn_fake_exit_edges): Likewise.
1948         (connect_infinite_loops_to_exit): Liekwise.
1949         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
1950         Use cached_make_edge.
1951         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
1952         * profile.c (branch_prob): Update make_edge call.
1953         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
1954
1955 2001-09-11  Richard Henderson  <rth@redhat.com>
1956
1957         * config/alpha/alpha.c: Tidy formatting.
1958         (local_symbolic_operand): Verify mode.
1959         (alpha_sa_mask): Ignore unicos for eh_return.
1960         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
1961         * config/alpha/alpha.md (umk divsi patterns): Remove.
1962         (extendsfdf2): Remove unicos check.
1963         (tablejump): Merge vms and unicos code; always use direct set
1964         plus label_ref use.
1965
1966 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1967
1968         * config.gcc (alpha*-*-unicosmk*): New target.
1969
1970         * config/alpha/alpha-protos.h (symbolic_operand,
1971         unicosmk_add_call_info_word, unicosmk_add_extern,
1972         unicosmk_defer_case_vector, unicosmk_unique_section,
1973         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
1974         unicosmk_asm_file_start, unicosmk_asm_file_end,
1975         unicosmk_output_common): Declare.
1976
1977         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
1978         direct_return, function_arg, alpha_va_start, alpha_va_arg,
1979         alpha_does_function_need_gp, alpha_end_function): Support Cray
1980         Unicos/Mk.
1981         (alpha_init_machine_status, alpha_mark_machine_status,
1982         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
1983         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
1984         unicosmk_asm_named_section, unicosmk_insert_attributes,
1985         unicosmk_section_type_flags, symbolic_operand,
1986         unicosmk_output_module_name, unicosmk_output_default_externs,
1987         unicosmk_output_dex, unicosmk_output_externs,
1988         unicosmk_output_addr_vec, unicosmk_ssib_name,
1989         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
1990         unicosmk_asm_file_end, unicosmk_output_common,
1991         unicosmk_section_type_flags, unicosmk_unique_section,
1992         unicosmk_add_call_info_word, unicosmk_text_section,
1993         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
1994         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
1995         unicosmk_dex_count, unicosmk_special_name): New.
1996         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
1997         TARGET_ABI_UNICOSMK.
1998         (get_aligned_mem, alpha_expand_unaligned_load,
1999         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
2000         alpha_expand_unaligned_store_words): Support big-endian mode.
2001         (print_operand): Likewise. New format specifier 't'. Use
2002         TARGET_AS_SLASH_BEFORE_SUFFIX.
2003         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
2004         (alpha_pv_save_size): Update with above change.
2005         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
2006         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
2007         Unicos/Mk.
2008
2009         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
2010         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
2011         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
2012         (EXTRA_CONSTRAINT): New constraint 'U'.
2013         (PREDICATE_CODES): Add symbolic_operand.
2014
2015         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
2016         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
2017         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
2018         (integer division and modulus patterns): Split in default and
2019         Unicos/Mk versions.
2020         (*divmodsi_internal, *divmoddi_internal): Disable for
2021         TARGET_ABI_UNICOSMK.
2022         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
2023         little-endian and big-endian versions.
2024         (ext, ins, msk): Likewise.
2025         (extv, extzv, insv): Support big-endian mode.
2026         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
2027         (call_umk, call_value_umk, *call_umk, tablejump_umk,
2028         *tablejump_umk_internal, *call_value_umk): New.
2029         (*movdi_nofix): Add pattern for loading an address into a register on
2030         TARGET_ABI_UNICOSMK.
2031         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
2032         (umk_mismatch_args, arg_home_umk): New.
2033         (various insns): Don't use mov, fmov, nop, fnop and unop.
2034         (realign): Support TARGET_ABI_UNICOSMK.
2035
2036         * config/alpha/unicosmk.h: New file.
2037         * config/alpha/t-unicosmk: New file.
2038
2039         * fixinc/inclhack.def (unicosmk_restrict): New.
2040         * fixinc/fixincl.x: Regenerate.
2041
2042         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
2043         (wchar_t): Check for and define __WCHAR_T__.
2044
2045 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
2046
2047         * combine.c (simplify_shift_const): Treat shifts by the mode
2048         size as undefined.
2049
2050 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2051
2052         * cpphash.h (struct tokenrun): New.
2053         (struct cpp_context): New member bol.
2054         (struct cpp_reader): New members.
2055         (_cpp_init_tokenrun): New.
2056         * cppinit.c (cpp_create_reader): Set up the token runs.
2057         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
2058         (lex_token): New internalised version of _cpp_lex_token.  Don't
2059         handle directives or the multiple include opimisation here any
2060         more.  Simply lex a token.
2061         * cpplib.c (run_directive): Clear bol.
2062         (_cpp_pop_buffer): Set bol.
2063         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
2064         arguments.
2065
2066 2001-09-11  Michael Meissner  <meissner@redhat.com>
2067
2068         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
2069         give an error if the user uses -mfp32.
2070         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
2071         default options.
2072         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
2073         floating point register size.
2074         (EXTRA_SPECS): Add CPP_FPR_SPEC.
2075
2076         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
2077         HOST_WIDE_INT_PRINT_DEC to properly print the result of
2078         int_size_in_bytes.
2079         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
2080         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
2081
2082 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
2083
2084         * dbxout.c (dbxout_parms): Fix typo in comment.
2085         * unroll.c (loop_find_equiv_value): Ditto.
2086         * toplev.c (rest_of_compilation): Ditto.
2087         * loop.c (scan_loop): Ditto.
2088         * dwarf2out.c (struct dw_fde_struct): Ditto.
2089
2090 2001-09-10  Zack Weinberg  <zackw@panix.com>
2091
2092         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
2093         copying identifier when we're just going to throw it away.
2094         (parse_identifier_slow): New routine to handle abnormal cases.
2095         (_cpp_lex_token): Update call site.
2096
2097         * hashtable.c (ht_lookup): Don't assume that the string we've
2098         been given is NUL-terminated.
2099         * system.h: #define __builtin_expect(a, b) to (a) if not
2100         GCC >=3.0.
2101
2102 2001-09-10  Michael Meissner  <meissner@redhat.com>
2103
2104         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
2105         binutils, gdb.
2106
2107 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
2108
2109         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
2110
2111 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2112
2113         * builtins.c (c_getstr): Correct thinko in last change and further
2114         cleanup.
2115
2116 2001-09-10  Tim Freeman <tim@fungibole.com>
2117
2118         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
2119         into varray's and register them as roots with the garbage
2120         collector so they are not collected too soon.
2121
2122 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
2123
2124         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
2125         New.
2126         * basic-block.h (flow_obstack, label_value_list,
2127         tail_recursion_label_list): Declare
2128         (tidy_fallthru_edges): Declare.
2129         (expunge_block, last_loop_beg_note): Delete.
2130         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
2131         * cfg.c: New file
2132         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
2133         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
2134         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
2135         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
2136         expunge_block, flow_delete_block, compute_bb_for_insn,
2137         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
2138         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
2139         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
2140         try_redirect_by_replacing_jump, last_loop_beg_note,
2141         redirect_edge_and_branch, redirect_edge_and_branch_force,
2142         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
2143         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
2144         commit_edge_insertions, dump_flow_info, debug_flow_info,
2145         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
2146         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
2147         Move here from flow.c
2148         * cfganal.c: New file.
2149         (forwarder_block_p, can_fallthru, mark_critical_edges,
2150          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
2151          find_unreachable_blocks, create_edge_list, free_edge_list,
2152          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
2153          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
2154          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
2155          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
2156          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
2157          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
2158         Move here from flow.c
2159         * cfgbuild.c: New file
2160         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
2161          make_edges, find_basic_blocks_1, find_basic_blocks,
2162          find_sub_basic_blocks): Move here from flow.c
2163         * cfgcleanup.c: New file.
2164         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
2165          merge_blocks_move_predecessor_nojumps,
2166          merge_blocks_move_successor_nojumps, merge_blocks,
2167          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
2168          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
2169         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
2170         if succeeded.
2171         * cfgloop.c: New file
2172         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
2173          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
2174          flow_loop_exit_edges_find, flow_loop_nodes_find,
2175          flow_loop_pre_header_scan, flow_loop_pre_header_find,
2176          flow_loop_tree_node_add, flow_loops_tree_build,
2177          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
2178          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
2179         Move here from flow.c
2180         * flow.c: Remove everything moved elsewhere
2181         * output.h (cleanup_cfg): Return bool.
2182
2183         * bb-reorder.c (reorder_block_def): Remove 'index'.
2184         (insert_intra_1): Add argument BB, set block for new note.
2185         (make_reorder_chain): Do not depdent on BB indexes.
2186         (make_reorder_chain_1): Do not use BB indexes.
2187         (label_for_bb): Likewise; set BB for new insn.
2188         (emit_jump_to_block_after): Likewise.
2189         (fixup_reoder_chain): Sanity check that all basic blocks
2190         are chained; verify newly created insn chain; remove
2191         undocnitional jump simplifying; Do not use BB indexes;
2192         properly initialize count and frequency information;
2193         dump reordered sequence.
2194         (insert_intra_bb_scope_notes): update call of insert_intra_1.
2195         (insert_inter_bb_scope_notes): Set block for new insn.
2196         (reorder_basic_blocks): Dump flow info before reoredering.
2197
2198 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2199
2200         * alias.c (clear_reg_alias_info): Use K&R format definition.
2201         Avoid unsigned warning.
2202         * builtins.c: Use "unsigned int", not "unsigned".
2203         (target_char_cast): Use host_integerp and tree_low_cst.
2204         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
2205         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
2206         (c_getstr): Likewise.
2207         (std_expand_builtin_va_arg): Use int_size_in_bytes.
2208         (builtin_memcpy_read_str): Avoid unsigned warning.
2209         (expand_builtin_memcpy): Alignments are unsigned.
2210         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
2211         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
2212         * predict.c (expensive_function_p): LIMIT now unsigned.
2213         * resource.c (mark_target_live_regs): Make some vars unsigned.
2214         * sdbout.c: Use "unsigned int", not "unsigned".
2215         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
2216         (sdbout_source_line): Likewise.
2217         (sdbout_record_type_name): Remove "const" for NAME declaration.
2218         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
2219
2220 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
2221
2222         * calls.c (store_one_arg): Expand comment.
2223
2224 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2225
2226         * calls.c (store_one_arg): Make sure that the entire argument is
2227         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
2228
2229 2001-09-09  Richard Henderson  <rth@redhat.com>
2230
2231         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
2232
2233 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
2234
2235         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
2236
2237 2001-09-09  Richard Henderson  <rth@redhat.com>
2238
2239         * config/alpha/alpha.c (alpha_next_sequence_number): New.
2240         (alpha_this_literal_sequence_number): New.
2241         (alpha_this_gpdisp_sequence_number): New.
2242         (some_operand, input_operand): Add HIGH.
2243         (local_symbolic_operand): New.
2244         (alpha_encode_section_info): New.
2245         (alpha_legitimate_address_p): Allow LO_SUM.
2246         (alpha_legitimize_address): Generate HIGH+LO_SUM.
2247         (alpha_expand_mov): Likewise.
2248         (secondary_reload_class): Check memory_operand not general_operand
2249         for FP_REGS test.
2250         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
2251         (alpha_expand_unaligned_store): Likewise.
2252         (alpha_expand_unaligned_load_words): Likewise.
2253         (alpha_expand_unaligned_store_words): Likewise.
2254         (alpha_expand_block_clear): Likewise.
2255         (print_operand): Handle %#, %*, %H.
2256         (print_operand_address): Handle LO_SUM.
2257         (find_lo_sum): New.
2258         (alpha_does_function_need_gp): Use it.
2259         (alpha_expand_block_move): Fix signed compare warnings.
2260         (alpha_sa_mask, alpha_align_insns): Likewise.
2261         * config/alpha/alpha-protos.h: Update.
2262         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
2263         (MASK_EXPLICIT_RELOCS): New.
2264         (TARGET_SWITCHES): Add -mexplicit-relocs.
2265         (EXTRA_CONSTRAINT): Add 'T'.
2266         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
2267         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
2268         (ENCODE_SECTION_INFO): Out line.
2269         (REDO_SECTION_INFO_P): New.
2270         (STRIP_NAME_ENCODING): New.
2271         (ASM_OUTPUT_LABELREF): New.
2272         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
2273         (PREDICATE_CODES): Update.
2274         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
2275         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
2276         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
2277         builtin_setjmp_receiver_er, exception_receiver_1_er,
2278         call_value_osf_1_er): New patterns.
2279         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
2280         (movqi, movhi, movsi): Add explicit $31 base register to lda.
2281         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
2282         (FINAL_PRESCAN_INSN): New.
2283
2284 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
2285
2286         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
2287
2288 2001-09-08  Andreas Jaeger  <aj@suse.de>
2289
2290         * i386.h (TARGET_SWITCHES): Fix description.
2291
2292 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
2293
2294         * rs6000.c (num_insns_constant): Compute number of instructions
2295         more accurately.
2296
2297         * doc/install.texi: Explain AIX exception handling work-around.
2298         Update URL for AIX fixes.
2299
2300 2001-09-07  Jim Wilson  <wilson@redhat.com>
2301
2302         * alias.c (clear_reg_alias_info): New.
2303         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
2304         * rtl.h (clear_reg_alias_info): Declare.
2305
2306 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2307
2308         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
2309         available.
2310         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
2311         (m16m,edivm,emulm): Change declaration to match definition.
2312
2313 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
2314
2315         * reload.c (push_reload): Check for subreg_lowpart_p instead of
2316         SUBREG_BYTE being 0 when determining if the inner part of a subreg
2317         can be reloaded.
2318
2319 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2320
2321         * c-common.c (signed_or_unsigned_type): Handle machine mode types
2322         which have no corresponding C type.
2323         * fold_const.c (target_isinf,target_isnan,target_negative): Update
2324         the representation of 64-bit doubles to work with 64-bit ints.
2325
2326 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
2327
2328         * config/mips/mips.c (override_options): Do not override ISA when ABI
2329         specified if MIPS_CPU_STRING_DEFAULT was specified.
2330
2331 2001-09-07  Richard Henderson  <rth@redhat.com>
2332
2333         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
2334         (express_from_1): Wrap lines.
2335         * rtlanal.c (commutative_operand_precedence): Rename from
2336         operand_preference; export.
2337         * rtl.h: Declare it.
2338         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
2339         (simplify_binary_operation): Invoke simplify_plus_minus on
2340         (CONST (PLUS ...)) as well.
2341         (struct simplify_plus_minus_op_data): New.
2342         (simplify_plus_minus_op_data_cmp): New.
2343         (simplify_plus_minus): Use them.  Avoid infinite recursion with
2344         simplify_binary_operation wrt CONST.
2345
2346 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
2347
2348         * h8300-protos.h (general_operand_dst_push): Remove.
2349         * h8300.c (general_operand_dst_push): Likewise.
2350         * h8300.h (OK_FOR_T): Likewise.
2351         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
2352         * h8300.md (pushqi_h8300): New.
2353         (pushqi_h8300hs): Likewise.
2354         (pushqi): Likewise.
2355         (pushhi_h8300): Likewise.
2356         (pushhi_h8300hs): Likewise.
2357         (pushhi): Likewise.
2358
2359 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2360
2361         * genattrtab.c (attr_printf): First arg is unsigned.
2362         Clean up formatting of callers.
2363
2364 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
2365
2366         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
2367         registers.
2368
2369 2001-09-07  Andreas Jaeger  <aj@suse.de>
2370
2371         * i386.h (TARGET_SWITCHES): Fix descriptions.
2372
2373 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2374
2375         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
2376
2377 2001-09-06  Ira Ruben  <ira@apple.com>
2378
2379         Remove OP_IDENTIFIER.
2380         * tree.def (OP_IDENTIFIER): Remove.
2381         * tree.c (tree_node_kind enum): Remove op_id_kind.
2382         (tree_node_kind_names): Remove "op_identifiers".
2383         (make_node): Remove OP_IDENTIFIER test.
2384         (build_op_identifier): Removed because it isn't being used.
2385         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
2386         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
2387
2388 2001-09-06  Richard Henderson  <rth@redhat.com>
2389
2390         * simplify-rtx.c (simplify_binary_operation): Revert last change.
2391
2392 2001-09-06  Richard Henderson  <rth@redhat.com>
2393
2394         * simplify-rtx.c (simplify_binary_operation): Simplify contents
2395         of CONST.
2396
2397 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2398
2399         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
2400         number used for CR register.
2401
2402 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
2403                           Joern Rennecke (amylaar@cygnus.com)
2404
2405         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
2406         * h8300.c (initial_offset): Handle offset between RP and FP.
2407         (h8300_return_addr_rtx): New function.
2408         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
2409         return register.
2410         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
2411         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
2412         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
2413         (CAN_ELIMINATE, REGISTER_NAMES):
2414         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
2415
2416 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
2417
2418         Remove TYPE_NONCOPIED_PARTS.
2419         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
2420         (struct tree_type): Remove noncopied_parts.
2421         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
2422         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
2423         (fixed_type_p): Remove.
2424         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
2425         (expand_expr, MODIFY_EXPR): Likewise.
2426         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
2427         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
2428
2429 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
2430
2431         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
2432         compiler warnings.
2433         (mask64_operand): Likewise.
2434         (includes_rldic_lshift_p): Likewise.
2435         (includes_rldicr_lshift_p): Likewise.
2436
2437 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
2438
2439         * objc/objc-act.c (build_message_expr): If a class method cannot
2440         be found, do not issue a warning if a corresponding instance
2441         method exists in the root class.
2442
2443 2001-09-05  Richard Henderson  <rth@redhat.com>
2444
2445         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
2446
2447 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
2448
2449         * function.c (ggc_mark_struct_function): Mark f->outer.
2450         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
2451         * integrate.c (output_inline_function): ... not here.
2452
2453 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
2454
2455         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
2456
2457         * i386.c (size_cost): New static variable.
2458         (override_function): Use size_cost when -Os is specified.
2459
2460         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
2461         properly;  Use current_function_calls_eh_return.
2462         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
2463         use leave to avoid depdendancy chain.
2464
2465         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
2466         get BB loop_depth instead of computing it from LOOP notes.
2467
2468         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
2469
2470 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2471
2472         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2473         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2474         UNALIGNED_DOUBLE_INT_ASM_OP): Define
2475
2476 2001-09-05  Jeffrey A Law  (law@cygnus.com)
2477             Jason Merrill (jason@redhat.com)
2478
2479         * stor-layout.c (layout_type): Complain if an array's size can
2480         not be represented in a size_t.
2481
2482         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
2483
2484 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
2485
2486         * gcc.c: (process_command) Add parentheses around assignment
2487         used as truth value.
2488
2489 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
2490
2491         * config/mips/mips.c (save_restore_insns): Don't mark any register
2492         save slots as unchanging if current_function_calls_eh_return.
2493
2494 2001-09-05  Richard Henderson  <rth@redhat.com>
2495
2496         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
2497         * config/alpha/alpha-protos.h: Declare it.
2498         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
2499         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
2500         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
2501         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
2502         (REG_OK_FOR_BASE_P): Select one of the above.
2503
2504 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
2505
2506         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
2507         (crti.o): Prefix name of object file with $(T).
2508         (crtn.o): Likewise.
2509
2510 2001-09-05  David S. Miller  <davem@redhat.com>
2511
2512         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
2513         * config/sparc/linux64.h: Likewise.
2514
2515 2001-09-05  Andreas Jaeger  <aj@suse.de>
2516
2517         * doc/invoke.texi (i386 Options): -mwide-multiply is not
2518         available anymore, remove the documentation.
2519         (i386 Options): Fix typo, cleanup index entries.
2520
2521         * prefix.c (concat): Remove, we can use the version from liberty.
2522
2523 2001-09-05  Richard Henderson  <rth@redhat.com>
2524
2525         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
2526         New functions split out of md file expanders.
2527         * config/alpha/alpha-protos.h: Declare them.
2528         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
2529
2530 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2531
2532         * cppmacro.c (funlike_invocation_p): No need to restore context.
2533
2534 2001-09-04  Richard Henderson  <rth@redhat.com>
2535
2536         * reload.c (push_reload): Export.
2537         * reload.h (push_reload): Declare it.
2538
2539         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
2540         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2541         * config/alpha/alpha.c (alpha_legitimize_address): New.
2542         (alpha_legitimize_reload_address): Likewise.
2543         * config/alpha/alpha-protos.h: Declare them.
2544
2545 2001-09-04  Stan Shebs  <shebs@apple.com>
2546
2547         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
2548         * config/darwin.c (machopic_stub_name): Account for internally
2549         generated lib calls such as memcpy.
2550
2551 2001-09-04  Richard Henderson  <rth@redhat.com>
2552
2553         * unwind.h (_UA_END_OF_STACK): New flag.
2554         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
2555
2556 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
2557
2558         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
2559
2560 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
2561
2562         * config/mips/mips.c (save_restore_insns): Change base_offset to
2563         fp_offset in second call to mips_emit_frame_related_store.
2564
2565 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
2566
2567         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
2568         sometimes be represented as a NOTE of type
2569         NOTE_INSN_DELETED_LABEL.
2570         (Insns): Document NOTE_INSN_DELETED_LABEL.
2571
2572 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
2573
2574         * c-common.h (tree_dump_index): Add more comments.
2575         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
2576         (dump_option_value_info): New struct.
2577         (dump_options): New array.
2578         (dump_switch_p): Parse switch options symbolically.
2579         * doc/invoke.texi (-fdump-ast): Rename to ...
2580         (-fdump-tree): ... here. Document that options are symbolic, and
2581         not all are applicable.
2582
2583 2001-09-04  David S. Miller  <davem@redhat.com>
2584
2585         * config/sparc/sparc.md (define_splits): Kill constraints.
2586
2587         Cleanup redundant and unused insn attributes.
2588         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
2589         binary, and move.  Mark ialu as default.
2590         (commented out define_function_unit "alu"): Kill.
2591         (define_attr "use_clobbered"): Kill.
2592         (whole file): Kill address insn type references.  Replace
2593         all unary/binary/move references with ialu.
2594         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
2595         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
2596         TYPE_IALU.
2597
2598         Simplify length insn attribute and make more judicious use
2599         of insn attribute defaulting.
2600         * config/sparc/sparc.md (all insns with length > one): Mark as
2601         insn type multi if real instructions, else use default if
2602         it is a forced splitter.
2603         (all insns with length == one): Use default insn length.
2604         (all insns of type ialu): Use default insn type.
2605
2606         Fix erroneous insn attribute settings.
2607         (addx): Set insn type to misc.
2608         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
2609         const_umulsidi3_sp64): Set insn type to imul.
2610
2611         Track SFmode vs DFmode insns according to UltraSPARC
2612         scheduling rules.
2613         * config/sparc/sparc.md ("fptype"): New attribute, default
2614         to "single".
2615         (all DFmode single insns): Mark as fptype "double".
2616
2617 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
2618
2619         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
2620
2621 2001-09-03  Richard Henderson  <rth@redhat.com>
2622
2623         * function.h (struct function): Add arg_pointer_save_area_init.
2624         * function.c (expand_function_end): Init arg_pointer_save_area.
2625         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
2626         when called from a nested function.
2627
2628 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
2629
2630         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
2631         is enabled.
2632
2633 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
2634
2635         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
2636
2637 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
2638
2639         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
2640         (emit_push_insn): Use specified padding direction when
2641         STACK_PUSH_CODE is POST_INC.
2642
2643         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
2644
2645 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2646
2647         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
2648
2649 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
2650
2651         * cppinit.c (cpp_start_read): Free the imacros list as we
2652         traverse it.  Don't free the chains before returning.
2653         (_cpp_push_next_buffer): Only try pushing buffers if we've
2654         completed -imacros handling.
2655
2656 2001-08-31  Eric Christopher  <echristo@redhat.com>
2657
2658         * gcc.c (handle_braces): Add explaination for abort.
2659
2660 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
2661
2662         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
2663         move adjustment of bitpos instead.
2664
2665 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
2666
2667         * function.c: Remove all_functions.  Make outer_function_chain
2668         static.
2669         (init_function_start): Don't add new function structure to
2670         all_functions.
2671         (find_function_data, push_function_context_to,
2672         pop_function_context_from, put_var_into_stack,
2673         trampoline_address): Update for changed structure element names.
2674         (push_function_context_to): Disentangle.
2675         (free_after_compilation): Also free F.
2676         (expand_dummy_function_end): Don't free cfun here.
2677         (put_var_into_stack): Comment why we can't use find_function_data here.
2678         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
2679         (mark_function_chain): Split into maybe_mark_struct_function and
2680         ggc_mark_struct_function.  Export the latter.
2681         (init_function_once): Mark from cfun and outer_function_chain;
2682         not all_functions.
2683
2684         * function.h (struct function): Kill next_global.  Rename next
2685         to outer.  All users updated to match.
2686         (all_functions, outer_function_chain): Don't declare.
2687
2688         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
2689         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
2690         don't touch f->inlinable, after calling rest_of_compilation.
2691
2692         * tree.h: Forward-declare struct function.  Prototype
2693         ggc_mark_struct_function.
2694
2695 2001-08-31  Kazu Hirata  <kazu@hxi.com>
2696
2697         * config/h8300/h8300.md (*andorhi3): Fix typos.
2698
2699 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2700
2701         * calls.c (emit_library_call_value): Don't use a fixed
2702         argument after VA_CLOSE, i.e. out of scope in traditional C.
2703
2704         * emit-rtl.c (gen_rtvec): Likewise.
2705
2706 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2707
2708         * Makefile.in (c-pragma.o): Depend on output.h.
2709         (reorg.o): Depend on except.h.
2710
2711         * c-pragma.c: Include output.h.
2712
2713         * reorg.c: Include except.h.
2714
2715         * unwind-dw2.c: Call __builtin_alloca, not alloca.
2716
2717 2001-08-31  Richard Henderson  <rth@redhat.com>
2718
2719         * sched-deps.c (add_dependence): Don't elide dependancy if the
2720         conditional used by insn is modified in elem.
2721
2722 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
2723
2724         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
2725
2726 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
2727
2728         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
2729         dump_switch_p.
2730
2731 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
2732
2733         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
2734         function.
2735         (stormy16_asm_out_constructor): New function.
2736         (TARGET_ASM_CONSTRUCTOR): Define.
2737         (TARGET_ASM_DESTRUCTOR): Define.
2738
2739 2001-08-31  Andreas Jaeger  <aj@suse.de>
2740
2741         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
2742         * loop.c (add_label_notes): Likewise.
2743         * reload.c (find_reloads): Likewise.
2744         * config/sh/sh.c (machine_dependent_reorg): Likewise.
2745
2746 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
2747
2748         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
2749         code here.  Take _Unwind_{W,Sw}ord*.
2750         (read_encoded_value_with_base): Use them.
2751         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
2752         words.
2753         (extract_cie_info): Simplify read_?leb128 handling.
2754         (execute_stack_op, execute_cfa_program): Likewise.
2755         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
2756
2757 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
2758
2759         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
2760         the frame pointer to pop the stack if convenient.
2761
2762         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
2763         Don't use post-increment before combine.
2764         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
2765         a call-saved register.
2766
2767 2001-08-31  Andreas Jaeger  <aj@suse.de>
2768
2769         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
2770         code was correct.
2771
2772 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
2773
2774         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
2775         not DIV/MOD, of course.
2776
2777 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
2778
2779         * rtl.def: Undo my patch commited 2001-08-27.
2780
2781         * genattrtab.c: Ditto.
2782
2783         * rtl.h: Ditto.
2784
2785         * sched-int.h: Ditto.
2786
2787         * target-def.h: Ditto.
2788
2789         * target.h: Ditto.
2790
2791         * haifa-sched.c: Ditto.
2792
2793         * sched-rgn.c: Ditto.
2794
2795         * sched-vis.c: Ditto.
2796
2797         * Makefile.in: Ditto.
2798
2799         * doc/md.texi: Ditto.
2800
2801         * doc/tm.texi: Ditto.
2802
2803         * doc/contrib.texi: Ditto.
2804
2805         * doc/gcc.texi: Ditto.
2806
2807         * genattrtab.h: Remove it.
2808
2809         * genautomata.c: Remove it.
2810
2811         * genattr.c: Undo my patch and Richard Henderson's patch commited
2812         2001-08-27.
2813
2814 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
2815
2816         * config.gcc (h8300-*-elf*): New case.
2817         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
2818         (SUBTARGET_CPP_SPEC): Define.
2819         (EXTRA_SPECS): Define.
2820         (SUBTARGET_EXTRA_SPECS): Define.
2821         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
2822         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
2823
2824 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
2825
2826         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
2827         (LIB2FUNCS_EXTRA): Define.
2828         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
2829         config/h8300/fixunssfsi.c: New file.
2830
2831 2001-08-30  Kazu Hirata  <kazu@hxi.com>
2832
2833         * config/h8300/h8300.md (zero_extendqihi2): Changes to
2834         define_expand to accomodate target-specific attributes.
2835         (anonymous zero_extendqihi2 patterns): New.
2836
2837 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
2838
2839         * h8300.md (*andorhi3): New pattern.
2840
2841 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
2842
2843         * h8300.c (dosize): Fix test for "sub".
2844
2845 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
2846
2847         * c-typeck.c (pointer_diff): Try to eliminate common term before
2848         doing conversions.
2849
2850 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
2851
2852         * config/arm/arm.c (arm_compute_initial_elimination_offset):
2853         Account for the saves of the FP registers.
2854
2855         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
2856         (TEXT_SECTION_ASM_OP): Define.
2857         (INIT_SECTION_ASM_OP): Define.
2858         (FINI_SECTION_ASM_OP): Define.
2859         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
2860         (RDATA_SECTION_FUNCITON): Provide prototype.
2861
2862 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
2863
2864         * reload1.c (move2add_note_store): Correct typo checking for
2865         argument pushes.
2866
2867 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
2868
2869         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
2870         note should not be considered outside the libcall block.
2871
2872 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2873
2874         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
2875
2876 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2877
2878         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
2879
2880 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2881
2882         * config/h8300/h8300-protos.h: Add a prototype for
2883         emit_logical_op.
2884         * config/h8300/h8300.c (emit_logical_op): New.
2885         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
2886         (andsi3): Likewise.
2887         (iorhi3): Likewise.
2888         (iorsi3): Likewise.
2889         (xorhi3): Likewise.
2890         (xorsi3): Likewise.
2891
2892 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2893
2894         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
2895         comparison with rtx INTVAL.
2896         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
2897         expression.
2898         * pa.h (FUNCTION_ARG_SIZE): Likewise.
2899
2900 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2901
2902         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
2903         comment typos.
2904
2905 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2906
2907         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
2908         (reg n) to (mem (pre_dec (reg n))
2909         (anonymous movsi pattern): Likewise.
2910
2911 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2912
2913         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
2914
2915 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2916
2917         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
2918         several special constants.
2919
2920 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2921
2922         * config/h8300/lib1funcs.asm: Fix comment typos.
2923
2924 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2925
2926         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
2927         Fix format specifier warnings.
2928
2929         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
2930         inet_makeaddr, semctl): Prototype.
2931
2932         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
2933         (save_restore_insns): Use base_offset, not gp_offset.
2934
2935         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
2936         (ASM_OUTPUT_BYTE): Fix format specifier warning.
2937
2938 2001-08-29  Richard Henderson  <rth@redhat.com>
2939
2940         * bb-reorder.c (function_tail_eff_head): New.
2941         (record_effective_endpoints): Set it.
2942         (fixup_reorder_chain): Use it.
2943
2944 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2945
2946         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
2947
2948 2001-08-28  Dale Johannesen  <dalej@apple.com>
2949
2950         * config/darwin.c (machopic_function_base_name): Add const
2951         qualifier to a string.
2952         (darwin_encode_section_info): Ditto.
2953
2954 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2955
2956         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
2957         function definition.
2958
2959 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
2960
2961         * df.h (struct df): Add rts_order variable.
2962
2963         * df.c (df_visit_next_rts): New function.
2964         (df_visit_next): Renamed to df_visit_next_rc
2965         (df_analyse_1): Allocate/compute/free rts_order as well.
2966         (df_rd_global_compute): Use df_visit_next_rc instead of
2967         df_visit_next.
2968         (df_ru_global_compute): Use df_visit_next_rts instead of
2969         df_visit_next.
2970
2971         * flow.c (flow_reverse_top_sort_order_compute): New function.
2972
2973         * basic-block.h: Add prototype.
2974
2975 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
2976
2977         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
2978         blocks, the BB_REACHABLE is now set, rather than aux being
2979         non-NULL. Update the test to reflect this.
2980
2981 2001-08-28  Eric Christopher  <echristo@redhat.com>
2982
2983         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
2984         config/mips/crti.asm: Ditto.
2985
2986 2001-08-28  Eric Christopher <echristo@redhat.com>
2987             Richard Henderson <rth@redhat.com>
2988
2989         * c-pragma.h (add_weak): Move prototype from here...
2990         * output.h (add_weak): ... to here.
2991         * varasm.c (add_weak): Fix typo.
2992         * config/mips/crti.asm: New file.
2993         * config/mips/crtn.asm: Ditto.
2994         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
2995         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
2996         (INVOKE__main): Ditto.
2997         (INIT_SECTION_ASM_OP): New.
2998         (FINI_SECTION_ASM_OP): Ditto.
2999         (STARTFILE_SPEC): Add crti.
3000         (ENDFILE_SPEC): Add crtn.
3001         * config/mips/elf64.h: Same.
3002         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
3003         Remove.
3004         * config/mips/vxworks.h: Ditto.
3005         * config/mips/t-elf: Support crti and crtn.
3006
3007 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
3008
3009         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
3010         INSN_LIST.
3011
3012 2001-08-28  Richard Henderson  <rth@redhat.com>
3013
3014         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
3015         (one_cmplbi2 splitter): Remove redundant test.
3016
3017 2001-08-28  Dale Johannesen  <dalej@apple.com>
3018
3019         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
3020
3021 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
3022
3023         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
3024
3025 2001-08-28  Stan Shebs  <shebs@apple.com>
3026
3027         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
3028         (UNALIGNED_SHORT_ASM_OP): Define.
3029         (UNALIGNED_INT_ASM_OP): Define.
3030
3031 2001-08-28  Will Cohen  <wcohen@redhat.com>
3032
3033         * config/rs6000/rs6000.md (store_multiple): Correct RTL
3034         generation for first set.
3035
3036 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
3037
3038         * flow.c (redirect_edge_succ_nodup): Return new edge.
3039         (try_simplify_condjump): Use new edge.
3040         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
3041
3042         * cse.c (cse_basic_block): Skip note instructions.
3043
3044 2001-08-27  Richard Henderson  <rth@redhat.com>
3045
3046         * combine.c (combine_simplify_rtx): Don't reverse condition
3047         if there is no reverse for the condition.
3048         (simplify_comparison): Don't simplify subregs from INT to FP.
3049
3050         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
3051         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
3052         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
3053         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
3054         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
3055         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
3056
3057 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
3058
3059         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
3060         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
3061         (pushqi1): New.
3062         (adddi_dilshr32, adddi_dishl32): Only data register can be
3063         source for mem destination.
3064
3065         * expmed.c (store_bit_field): Ignore adjustment to bitpos
3066         and use bitnum to decide about register move.
3067
3068 2001-08-27  Richard Henderson  <rth@redhat.com>
3069
3070         * genattr.c (main): Emit state_t even when not doing scheduling.
3071
3072 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
3073             Richard Henderson  <rth@redhat.com>
3074
3075         * gcse.c (reg_first_set, reg_last_set): Replace with ...
3076         (reg_avail_info, current_bb): ... these.
3077         (oprs_unchanged_p, record_last_reg_set_info): Use them.
3078         (compute_hash_table): Likewise.
3079
3080 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
3081
3082         * flow.c (verify_flow_info): Use checksums to verify edges.
3083
3084 2001-08-27  Richard Henderson  <rth@redhat.com>
3085
3086         * genautomata.c (expand_automata): Always create a description.
3087
3088 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
3089
3090         * optabs.c (expand_binop): Correctly handle the carry in multiword
3091         add/subtract operations.
3092
3093 2001-08-27  Fred Fish  <fnf@be.com>
3094
3095         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
3096         __SIZE_TYPE__.
3097
3098 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
3099
3100         * reload.c (find_reloads_toplev): Back out this change:
3101
3102         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
3103
3104         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
3105         mem if the address is a mode_dependent_address_p.
3106
3107 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
3108
3109         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
3110         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
3111         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
3112         RTL constructions.
3113
3114         * genattr.c (main): New variable num_insn_reservations.  Increase
3115         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
3116         pipeline hazard recognizer interface.
3117
3118         * genattrtab.h: New file.
3119
3120         * genattrtab.c: Include genattrtab.h.
3121         (attr_printf, check_attr_test, make_internal_attr,
3122         make_numeric_value): Move protypes into genattrtab.h.  Define them
3123         as external.
3124         (num_dfa_decls): New global variable.
3125         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
3126         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
3127         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
3128         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
3129
3130         * genautomata.c: New file.
3131
3132         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
3133
3134         * sched-int.h: (curr_state): Add the external definition for
3135         automaton pipeline interface.
3136         (haifa_insn_data): Add comments for members blockage and units.
3137
3138         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3139         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3140         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3141         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3142         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3143         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3144         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
3145         macros.
3146         (TARGET_SCHED): Use the new macros.
3147
3148         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
3149         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
3150         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
3151         dfa_bubble): New members in gcc_target.sched.
3152
3153         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
3154         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
3155         (insn_queue): Redefine it as pointer to array.
3156         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
3157         INSN_QUEUE_SIZE.
3158         (max_insn_queue_index_macro_value): New variable.
3159         (curr_state, dfa_state_size, ready_try): New varaibles for
3160         automaton interface.
3161         (ready_element, ready_remove, max_issue): New function prototypes
3162         for automaton interface.
3163         (choose_ready): New function prototype.
3164         (insn_unit, blockage_range): Add comments.
3165         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
3166         FUNCTION_UNITS_SIZE == 0.
3167         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
3168         actual_hazard, potential_hazard): Add comments.
3169         (insn_cost): Use cost -1 as undefined value.  Remove
3170         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
3171         pipeline interface.
3172         (ready_element, ready_remove): New functions for automaton
3173         interface.
3174         (schedule_insn): Add new code for automaton pipeline interface.
3175         (queue_to_ready): Add new code for automaton pipeline interface.
3176         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
3177         (debug_ready_list): Print newline when the queue is empty.
3178         (max_issue): New function for automaton pipeline interface.
3179         (choose_ready): New function.
3180         (schedule_block): Add new code for automaton pipeline interface.
3181         Print ready list before scheduling each insn.
3182         (sched_init): Add new code for automaton pipeline interface.
3183         Initiate insn cost by -1.
3184         (sched_finish): Free the current automaton state and finalize
3185         automaton pipeline interface.
3186
3187         * sched-rgn.c: Include target.h.
3188         (init_ready_list, new_ready, debug_dependencies): Add new code for
3189         automaton pipeline interface.
3190
3191         * sched-vis.c: Include target.h.
3192         (get_visual_tbl_length): Add code for automaton interface.
3193         (target_units, print_block_visualization):  Add comments.
3194
3195         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
3196         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
3197         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
3198         (getruntime.o, genautomata.o): New entries.
3199         (genattrtab.o): Add new dependency file genattrtab.h.
3200         (genattrtab): Add new dependencies.  Link it with `libm.a'.
3201         (getruntime.o, hashtab.o): New entries for canadian cross.
3202
3203         * doc/md.texi: Description of automaton based model.
3204
3205         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
3206         Add comments.
3207         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3208         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3209         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3210         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3211         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3212         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3213         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
3214         hook descriptions.
3215         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
3216         MAX_DFA_ISSUE_RATE): New macro descriptions.
3217
3218         * doc/contrib.texi: Add dfa based scheduler contribution.
3219
3220         * doc/gcc.texi: Add more information about genattrtab.
3221
3222 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
3223
3224         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
3225         an RTL basic block.
3226
3227 2001-08-27  Richard Henderson  <rth@redhat.com>
3228
3229         * function.c (expand_function_end): Don't init arg_pointer_save_area.
3230         (get_arg_pointer_save_area): New.  Create an init it here.
3231         (fix_lexical_addr): Use it.
3232         * function.h: Declare it.
3233         * builtins.c (expand_builtin_setjmp_receiver): Use it.
3234         * stmt.c (expand_nl_goto_receiver): Use it.
3235
3236 2001-08-27  Richard Henderson  <rth@redhat.com>
3237
3238         * final.c (final_scan_insn): Don't enter APP_ON mode for
3239         empty asm strings.
3240
3241         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
3242         alignment for assemble_integer for DW_EH_PE_aligned.
3243         * except.c (output_function_exception_table): Likewise.
3244
3245 2001-08-26  Andreas Jaeger  <aj@suse.de>
3246
3247         * c-tree.h: Add prototyp for c_sizeof_nowarn.
3248
3249 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
3250
3251         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
3252
3253 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
3254
3255         * config/rs6000/rs6000.c (mask_operand): Rewrite without
3256         bit-shifting loop.
3257         (mask64_operand): Likewise.
3258         (rldic_operand): Delete.
3259         (includes_lshift64_p): Delete.
3260         (includes_rldic_lshift_p): New function.
3261         (includes_rldicr_lshift_p): New function.
3262         (print_operand): Don't call rldic_operand in case 'W'.
3263         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
3264         (includes_lshift64_p): Remove.
3265         (includes_rldic_lshift_p): Declare.
3266         (includes_rldicr_lshift_p): Declare.
3267         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
3268         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
3269         Replace match_operand rldic_operand predicate with
3270         const_int_operand.  Replace includes_lshift64_p condition with
3271         includes_rldic_lshift_p.
3272         <ashldi3_internal 64 bit rldicr patterns>: New.
3273
3274 2001-08-27  Andreas Jaeger  <aj@suse.de>
3275
3276         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
3277         * errors.c: Likewise.
3278         * final.c: Likewise.
3279         * dwarf2asm.c: Likewise.
3280         * doprint.c (checkit): Likewise.
3281         * diagnostic.c: Likewise.
3282         * collect2.c: Likewise.
3283         * calls.c: Likewise.
3284         * c-semantics.c (build_stmt): Likewise.
3285         * c-format.c (status_warning): Likewise.
3286         * c-errors.c (pedwarn_c99): Likewise.
3287         * builtins.c (validate_arglist): Likewise.
3288         * config/pj/pj.c (pj_printf): Likewise.
3289         * fix-header.c: Likewise.
3290         * gcc.c: Likewise.
3291         * gcov.c (fnotice): Likewise.
3292         * gensupport.c (message_with_line): Likewise.
3293         * mips-tfile.c: Likewise.
3294         * protoize.c (notice): Likewise.
3295         * read-rtl.c (fatal_with_file_and_line): Likewise.
3296         * rtl-error.c: Likewise.
3297         * tradcpp.c: Likewise.
3298         * tree.c: Likewise.
3299         * cp/tree.c (build_min_nt): Likewise.
3300         (build_min): Likewise.
3301         * cp/lex.c: Likewise.
3302         * cp/errfn.c: Likewise.
3303         * cp/rtti.c (create_pseudo_type_info): Likewise.
3304
3305 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
3306
3307         * df.c (df_uses_record): Return after recording all uses
3308         in ASM_OPERANDS.
3309
3310 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
3311
3312         * df.c (df_insn_modify): Realloc the INSN table here, if
3313         necessary, here, too.
3314
3315 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
3316
3317         * config/mips/mips.c (mips_function_value): Handle complex return
3318         values.
3319
3320 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
3321
3322         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
3323         unshared.
3324         * reload.c (make_memloc): Copy result if it is still
3325         reg_equiv_memory_loc[regno] on return.
3326         (subst_reloads) [ENABLE_CHECKING]: Check that none of
3327         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
3328         reg_equiv_mem are modified by the substitutions.
3329
3330 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
3331
3332         * predict.c (expensive_function_p): New.
3333         * rtl.h (expensive_function_p): Declare.
3334         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
3335         (use_fast_prologue_epilogue): New static variable.
3336         (expand_prologue): Set it; emit short prologues if unset.
3337         (expand_epilogue): Likewise.
3338
3339 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
3340
3341         * config.gcc: Add stormy16-*-elf case.
3342         * config/stormy16/stormy-abi: New file.
3343         * config/stormy16/stormy16-lib2.c: New file.
3344         * config/stormy16/stormy16-protos.h: New file.
3345         * config/stormy16/stormy16.c: New file.
3346         * config/stormy16/stormy16.h: New file.
3347         * config/stormy16/stormy16.md: New file.
3348         * config/stormy16/t-stormy16: New file.
3349
3350 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
3351
3352         * i386.h (no-accumulate-outgoing-args): Use proper mask.
3353
3354 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
3355
3356         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
3357         descriptor members are pointer size, not constant 4.
3358         * config/rs6000/rs6000.md (define_splits): Remove more unused
3359         constraints.
3360
3361 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3362
3363         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
3364
3365 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
3366
3367         * cp/rtti.c (VPARAMS): Fix parameter.
3368
3369 2001-08-24  Zack Weinberg  <zackw@panix.com>
3370
3371         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
3372         to zero.
3373         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
3374         to switch.
3375         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
3376         in if controlling use of insv.
3377         (extract_bit_field): Likewise, for extv and extzv.
3378
3379 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
3380
3381         * i386.md (movcc peep2): Fix load of 0.
3382
3383 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3384
3385         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
3386         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
3387
3388 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
3389
3390         * c-pragma.h: Move weak_syms and weak_decls...
3391         * varasm.c: ...here.  Now static.
3392         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
3393         depend on HANDLE_PRAGMA_WEAK.
3394
3395         * c-common.c (c_alignof, c_alignof_expr): Move here...
3396         * c-typeck.c: ...from here.
3397         * c-tree.h, c-common.h: Adjust.
3398
3399 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
3400
3401         * config/ia64/ia64.c (rws_update): If !pred, set write_count
3402         instead of incrementing it.
3403
3404         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
3405         asm ready, don't try to move them all into the same array element.
3406
3407 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
3408
3409         * function.c (thread_prologue_and_epilogue_insns): Avoid
3410         fallthru flag on edge to exit.
3411
3412         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
3413
3414         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
3415         dead edges.
3416
3417 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
3418
3419         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
3420         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
3421         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
3422         Remove prototype.
3423
3424 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
3425
3426         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
3427         replace "GNU CC" with "GCC".
3428
3429 2001-08-23  Richard Henderson  <rth@redhat.com>
3430
3431         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
3432         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
3433         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
3434         Need GR between FR and not GR_AND_FR.
3435         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
3436         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
3437         AR regs before GR regs.
3438         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
3439         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
3440         (REGISTER_MOVE_COST): Update.
3441         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
3442
3443 2001-08-23  Richard Henderson  <rth@redhat.com>
3444
3445         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
3446         a register class.
3447
3448 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
3449
3450         * reload1.c (emit_reload_insns): Don't look for notes
3451         on a NULL store_insn.
3452
3453 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3454
3455         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
3456         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
3457         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
3458         format specifier warnings.
3459         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
3460
3461 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
3462
3463         * config/i386/i386-protos.h: Correct declaration of
3464         i386_pe_asm_named_section.
3465
3466 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3467
3468         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
3469         variable i.
3470         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
3471
3472 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3473
3474         * cpperror.c (print_location): Don't show _Pragma.
3475         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
3476         and file change callback generation here.
3477         (stack_include_file): Update use of cpp_push_buffer.
3478         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
3479         (struct cpp_buffer): Remove type, pfile members.
3480         * cppinit.c (cpp_handle_option): Use free_chain.
3481         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
3482         (skip_escaped_newlines, get_effective_char, lex_percent): Take
3483         a cpp_reader rather than a cpp_buffer.
3484         (skip_escaped_newlines, get_effective_char, skip_block_comment,
3485         skip_line_comment, parse_string, lex_percent, lex_dot,
3486         _cpp_lex_token): Update accordingly.
3487         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
3488         generation here.
3489         (cpp_push_buffer): Update prototype.
3490         (run_directive): Update use of cpp_push_buffer.
3491         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
3492         handle_assertion): Update use of run_directive.
3493         * cpplib.h (enum cpp_buffer_type): Remove.
3494         (cpp_push_buffer): Update prototype.
3495         * fix-header.c (read_scan_file): Update.
3496
3497 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3498
3499         * gcc.c (struct prefix_list): Change prefix to const char *.
3500
3501 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3502
3503         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
3504
3505 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
3506
3507         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
3508         from a new MEM.
3509
3510         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
3511         a squeezable note.
3512         * rtl.h: Adjust.
3513         * ifcvt.c (dead_or_predicable): Adjust.
3514         * loop.c (find_and_verify_loops): Adjust.
3515         * stmt.c (expand_end_case): Adjust.
3516         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
3517         head and end insn pointers in the basic block, not just local copies.
3518         (merge_blocks_move_predecessor_nojumps): Likewise.
3519
3520 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
3521
3522         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
3523         bitmap.h, builtin-types.def, builtins.c, builtins.def,
3524         c-aux-info.c, c-common.c, c-common.def, c-common.h,
3525         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
3526         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
3527         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
3528         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
3529         conditions.h, config.gcc, configure.frag, configure.in,
3530         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
3531         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
3532         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
3533         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
3534         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
3535         emit-rtl.c, errors.c, errors.h, except.c, except.h,
3536         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
3537         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
3538         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
3539         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
3540         gencheck.c, gencodes.c, genconfig.c, genemit.c,
3541         genextract.c, genflags.c, gengenrtl.c, genmultilib,
3542         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
3543         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
3544         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
3545         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
3546         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
3547         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
3548         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
3549         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
3550         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
3551         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
3552         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
3553         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
3554         params.h, predict.c, predict.def, predict.h, prefix.c,
3555         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
3556         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
3557         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
3558         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
3559         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
3560         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
3561         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
3562         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
3563         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
3564         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
3565         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
3566         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
3567         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
3568         xcoffout.h: replace "GNU CC" with "GCC".
3569
3570 2001-08-21  Richard Henderson  <rth@redhat.com>
3571
3572         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
3573         (final_scan_insn): Consider jump tables data even if we have no
3574         independant text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
3575         ADDR_VEC_ALIGN.
3576         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
3577         (ASM_OUTPUT_CASE_END): Remove.
3578         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
3579         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
3580         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
3581
3582 2001-08-21  Richard Henderson  <rth@redhat.com>
3583
3584         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
3585         at barrier insns.  Emit stop bits before barriers.
3586
3587         * flow.c (flow_find_cross_jump): Don't consider unconditional
3588         return insns for commoning.
3589
3590         * final.c (compute_alignments): Fix typo.
3591
3592         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
3593         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
3594         (store_bit_field): Use mode_for_extraction more places.
3595         (extract_bit_field): Likewise.
3596
3597 2001-08-21  Zack Weinberg  <zackw@panix.com>
3598
3599         * caller-save.c: Don't include insn-codes.h.
3600         (reg_save_code, reg_restore_code): Make arrays of int.
3601         All uses updated to match.
3602         (insert_save, insert_restore): No need to initialize "code"
3603         variable upon declaration.
3604         * Makefile.in: update dependencies; fix typo in clean rule.
3605
3606 2001-08-21  Richard Henderson  <rth@redhat.com>
3607
3608         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
3609         (merge_if_block): Handle fallout from same.
3610
3611 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3612
3613         * builtins.c (type_to_class): Fix typo in last change.
3614
3615 2001-08-21  Richard Henderson  <rth@redhat.com>
3616
3617         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
3618         ia64_asm_output_label.
3619
3620         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
3621         copy of gp while the real gp register contains garbage.
3622
3623 2001-08-21  Zack Weinberg  <zackw@panix.com>
3624
3625         * expmed.c (mode_for_extraction): New function.
3626         (store_bit_field, extract_bit_field): Use it.
3627         * expr.h: Prototype it and provide an enum for its first argument.
3628
3629         * combine.c, function.c, recog.c: Don't include insn-codes.h.
3630         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
3631         and digging through the insn_data tables.
3632         * Makefile.in: Update dependencies.
3633
3634 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3635
3636         * cppfiles.c (stack_include_file): line-map.c now handles include
3637         depth.
3638         (handle_missing_handler): Similarly.
3639         (_cpp_execute_include): Similarly.
3640         (_cpp_pop_file_buffer): Similarly.
3641         * cpphash.h (struct cpp_reader): Remove system_include_depth,
3642         buffer_stack_depth and include_depth.
3643         * cpplib.c (do_include_common): line-map.c now handles include depth.
3644         (cpp_push_buffer): Similarly.
3645         (_cpp_pop_buffer): Similarly.
3646         * cppmacro.c (builtin_macro): Update.
3647         * line-map.c (init_line_maps): Set depth.
3648         (add_line_map): Increment "used" earlier.  Update and use the
3649         include depth.
3650         (trace_include): Use the include depth.
3651         * line-map.h (struct line_maps): New member depth.
3652
3653 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3654
3655         * cppfiles.c (stack_include_file): Don't handle -H here.
3656         * cppinit.c (cpp_start_read): Set include tracing after
3657         cpp_post_options and after stacking the main file.
3658         * line-map.c (trace_include): New.
3659         (init_line_maps, add_line_map): Update.
3660         * line-map.h (struct line_maps): New member trace_includes.
3661
3662 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3663
3664         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
3665         * cppfiles.c (stack_include_file): Only stack a file if there
3666         is something to do.  Return a boolean indicating whether a
3667         buffer was stacked or not.
3668         (_cpp_execute_include): Similarly.
3669         (_cpp_read_file): Similarly.
3670         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
3671
3672 2001-08-21  Sam Steingold  <sds@gnu.org>
3673
3674         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
3675         (RECACHE): keep obufp_before_macroname up to date
3676
3677 2001-08-21  Zack Weinberg  <zackw@panix.com>
3678
3679         * stmt.c: Don't include insn-codes.h.
3680         (expand_end_case): Machine specific logic moved to expr.c.
3681         No need to worry about __builtin_classify_type.
3682         (check_for_full_enumeration_handling, emit_case_nodes):
3683         Kill #if 0 blocks.
3684
3685         * builtins.o (expand_builtin_classify_type): Split up so code
3686         can be shared with fold_builtin_classify_type.
3687         (type_to_class, fold_builtin_classify_type): New functions.
3688         (fold_builtins): Handle __builtin_classify_type.
3689
3690         * expr.c (do_tablejump): Now static.
3691         (case_values_threshold, try_casesi, try_tablejump): New;
3692         code mostly from stmt.c (expand_end_case).
3693         (expr.h): Update prototypes.
3694
3695         * Makefile.in (stmt.o): Update dependencies.
3696
3697 2001-08-21  Will Cohen  <wcohen@redhat.com>
3698
3699         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
3700         declaration of variable i.
3701         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
3702         declaration of variable i.
3703
3704 2001-08-21  Richard Henderson  <rth@redhat.com>
3705
3706         * crtstuff.c: Fix thinko last change.  Move list tails to start
3707         of CRT_END section.  Tidy ifdefs.
3708         (__EH_FRAME_BEGIN__): Always static for ELF.
3709         (__do_global_ctors_1): Rename from __frame_dummy.
3710         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
3711         name change; don't hide __EH_FRAME_BEGIN__.
3712
3713 2001-08-21  Richard Henderson  <rth@redhat.com>
3714
3715         * gdbinit.in: Move break on exit after break on fancy_abort.
3716
3717         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
3718         sized types.
3719
3720 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3721
3722         * cpphash.h (_cpp_push_next_buffer): New.
3723         * cppinit.c (do_includes): Remove.
3724         (push_include, free_chain, _cpp_push_next_buffer): New.
3725         (cpp_start_read): Use them to rework command line option handling.
3726         (cpp_handle_option): Combine handling of -include and -imacros.
3727         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
3728         appropriate.  Always insert missing \n at EOF.
3729         * cpplib.c (start_directive): Get the directive position right.
3730         * cppmain.c (cb_file_change): Always print the first line, unless
3731         preprocessed.
3732
3733 2001-08-20  Andreas Jaeger  <aj@suse.de>
3734
3735         * profile.c (compute_branch_probabilities): Remove extra new-line
3736         in error message.
3737         * flow.c (verify_flow_info): Likewise.
3738
3739 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
3740
3741         * basic-block.h (basic_block): Add new field 'flags'.
3742         (BB_REACHABLE): Define.
3743         (expunge_block): Declare.
3744         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
3745         (EXIT_BLOCK_PTR): Ditto.
3746         (expunge_block): Remove static declaration.
3747         (cleanup_cfg): Clear bb->aux on every basic block.
3748         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
3749         computing reachability.
3750         (delete_unreachable_blocks): Delete block b if b->flags has
3751         BB_REACHABLE unset.
3752
3753 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
3754
3755         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
3756
3757 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3758
3759         * sparc.c (sparc_variable_issue): Fix typo in last change.
3760
3761 2001-08-20  Richard Henderson  <rth@redhat.com>
3762
3763         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
3764
3765 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3766
3767         * pa.h (RETURN_IN_MEMORY): Improve comment.
3768
3769 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
3770
3771         * doc/invoke.texi (Profiling options): Clarify the interactions
3772         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
3773
3774 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
3775
3776         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
3777         command.
3778
3779 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3780
3781         * gcc.c (make_relative_prefix): Allocate a sufficiently large
3782         buffer.
3783
3784 2001-08-20  Richard Henderson  <rth@redhat.com>
3785
3786         * final.c (end_final): Fix typo last change.
3787
3788 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3789
3790         * cppinit.c (init_standard_includes): The returned buffer
3791         is already malloc-ed.
3792         * gcc.c (add_prefix): Similarly.
3793         * prefix.c (translate_name): Update to support clear buffer
3794         ownership rules.
3795         (update_path): Similarly.  Be sure to free any newly allocated
3796         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
3797         (tr): New function.
3798         * prefix.h (update_path): Update prototype and document.
3799         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
3800         up and update to new buffer ownership rules.
3801         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
3802
3803 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
3804
3805         * final.c (compute_alignments): New function.
3806         (init_insn_lengths): Do not care label_align.
3807         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
3808         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
3809         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
3810         (shorted_branches): Realloc label_align array; do
3811         not call init_insn_lengths; Do not care about loop alignments.
3812         * output.h (compute_alignments): Declare.
3813         * toplev.c (rest_of_compilation): Call compute_alignments.
3814         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
3815
3816         * predict.c (block_info_def): Add npredecesors, remove nvisited;
3817         change visited to tovisit.
3818         (propagate_freq): Use faster traversing algorithm.
3819         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
3820         to tovisit; reverse meaning.
3821
3822         * predict.c (struct block_info_def): Remove nvisited.
3823         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
3824         (estimate_bb_frequencies): Call mark_dfs_back_edges.
3825
3826 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
3827
3828         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
3829         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
3830         (TARGET_FUSED_MADD): New.
3831         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
3832         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
3833         the multiply-add instructions.
3834
3835 2001-08-19  Richard Henderson  <rth@redhat.com>
3836
3837         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
3838         is aligned to pointer size.
3839
3840 2001-08-19  Richard Henderson  <rth@redhat.com>
3841
3842         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
3843         display markers during final schedule.
3844
3845 2001-08-19  Richard Henderson  <rth@redhat.com>
3846
3847         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
3848
3849 2001-08-19  Richard Henderson  <rth@redhat.com>
3850
3851         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
3852         in the same string.
3853         (ASM_NAME_TO_STRING): Remove.
3854         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
3855         in the same string.  Remove support for expressions.
3856
3857 2001-08-19  Richard Henderson  <rth@redhat.com>
3858
3859         * config/i386/i386.md (tablejump): Make an expander; handle
3860         pic relative addressing here.
3861         (tablejump_1): Rename from tablejump_pic.
3862         (casesi): Remove.
3863
3864 2001-08-19  Richard Henderson  <rth@redhat.com>
3865
3866         * regclass.c (fix_register): Fix typo.
3867
3868 2001-08-18  Richard Henderson  <rth@redhat.com>
3869
3870         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
3871         (struct _Unwind_Context): Expand br_loc to hold it.
3872         (uw_frame_state_for): Handle leaf functions better.
3873         (uw_update_reg_address): Update for br_loc change.
3874
3875 2001-08-18  Richard Henderson  <rth@redhat.com>
3876
3877         * crtstuff.c: Move list heads before code that uses them.
3878         (__JCR_LIST__): Remove initial null.
3879         (frame_dummy, __frame_dummy): Do java registration here ...
3880         (__do_global_ctors_aux): ... not here.
3881
3882         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
3883         (__do_global_dtors_aux): Update to match.
3884         (__JCR_LIST__, __do_jv_register_classes): New.
3885         (.init): Call it.
3886         * config/ia64/crtend.asm (__JCR_END__): New.
3887         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
3888         instead of an indirect LTOFF22 reloc.
3889
3890 2001-08-18  Richard Henderson  <rth@redhat.com>
3891
3892         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
3893         * regclass.c (init_reg_sets_1): Fix typo.
3894         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
3895         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
3896         (ia64_compute_frame_size): Make ar.unat live when in use.
3897         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
3898         for ar.pfs; remove ar.unat handling.
3899         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
3900         call-saved.
3901         (PREDICATE_CODES): Add ar_pfs_reg_operand.
3902         * config/ia64/ia64-protos.h: Update decls.
3903         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
3904         (sibcall_pic): Likewise.
3905
3906 2001-08-18  Richard Henderson  <rth@redhat.com>
3907
3908         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
3909         pred_rel_mutex when searching for insn_group_barrier.
3910         * config/ia64/ia64.md (cycle_display): Combine the expander
3911         and insn patterns.
3912
3913         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
3914         bit before asm as needed.
3915
3916 2001-08-18  Richard Henderson  <rth@redhat.com>
3917
3918         * timevar.def (TV_MACH_DEP): New.
3919         * toplev.c (rest_of_compilation): Use it.
3920         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
3921
3922 2001-08-18  Zack Weinberg  <zackw@panix.com>
3923
3924         * unwind-dw2.c (execute_stack_op): Add default aborts to
3925         the inner switches to prevent warnings.
3926
3927 2001-08-18  Richard Henderson  <rth@redhat.com>
3928
3929         * timevar.h (struct timevar_time_def): Change element type to float.
3930         (ticks_to_msec, clocks_to_msec): Likewise.
3931         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
3932         (get_time): Likewise.
3933         (timevar_print): Adjust zero check and printing to match.
3934
3935 2001-08-18  Zack Weinberg  <zackw@panix.com>
3936
3937         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
3938         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
3939         Eliminate overfull or underfull hboxes.
3940
3941 2001-08-18  Zack Weinberg  <zackw@panix.com>
3942
3943         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
3944
3945 2001-08-18  Zack Weinberg  <zackw@panix.com>
3946
3947         * haifa-sched.c: Convert to target hooks.  Macros replaced
3948         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
3949         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
3950         MD_SCHED_FINISH, and HAVE_cycle_display.
3951         * target-def.h (TARGET_SCHED_ADJUST_COST,
3952         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
3953         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
3954         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
3955         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
3956         New hook #defines to be overridden.
3957         (TARGET_SCHED): Bring them all together.
3958         (TARGET_INITIALIZER): Update.
3959         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
3960         instead of 'struct rtx_def *' throughout.
3961         (struct sched): New set of hooks for the scheduler.
3962         * Makefile.in (haifa-sched.o): Depend on target.h.
3963         * doc/tm.texi: Document the new scheduler hooks, together in
3964         their own section, instead of scattered around.
3965         Fix a bunch of underfull/overfull hboxes.
3966
3967         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
3968         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
3969         sparc.h: Don't define any of the old scheduler macros.
3970
3971         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
3972         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
3973         sparc.c: Create hook functions from code extracted from
3974         corresponding target header, or make existing hooks static, as
3975         appropriate.  Set the appropriate entries in targetm.
3976
3977         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
3978         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
3979         rs6000-protos.h, s390-protos.h, sparc-protos.h:
3980         Remove prototypes for functions which are now static.
3981
3982         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
3983         related gunk; the Haifa scheduler is now the only choice.
3984
3985 2001-08-18  Zack Weinberg  <zackw@panix.com>
3986
3987         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
3988         * genopinit.c: Put floating point divide insns in sdiv_optab.
3989         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
3990         * config/gofast.h, config/c4x/c4x.h,
3991         config/ia64/hpux_longdouble.h, config/mips/mips.h,
3992         config/pa/long_double.h, config/rs6000/sysv4.h,
3993         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
3994         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
3995         (init_optabs): Use init_optabv for overflow-trapping optabs.
3996         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
3997         cmp_optab RTX codes so have_insn_for can find them.
3998
3999         * optabs.c (expand_simple_binop, expand_simple_unop,
4000         have_insn_for, gen_sub3_insn): New interfaces.
4001         * expr.h: Prototype new functions.
4002         (enum optab_methods): Move here from optabs.h.
4003
4004         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
4005         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
4006         Use new functions instead of working directly with optabs.
4007         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
4008         unroll.c: Don't include optabs.h.
4009         * caller-save.c, combine.c, function.c, stmt.c: Just include
4010         insn-codes.h, not optabs.h.
4011         * Makefile.in: Update dependencies.
4012
4013         * combine.c (make_compound_operation, simplify_comparison):
4014         Fix typos testing for this or that instruction.
4015
4016 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
4017
4018         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
4019         generating libgcc.a.
4020
4021 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4022
4023         * except.c (TYPE_HASH): Delete.
4024
4025         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
4026         HOST_WIDE_INT.
4027
4028         * tree.c (TYPE_HASH): Delete.
4029
4030         * tree.h (TYPE_HASH): Define.
4031
4032 2001-08-18  Graham Stott  <grahams@redhat.com>
4033
4034         * config/mips/mips.md (adddi3_internal_2+1): Remove contraints from
4035         define_split.
4036         (adddi3_internal_2+2): Likewise.
4037         (eh_set_lr_di+1): Likewise.
4038
4039 2001-08-17  Richard Henderson  <rth@redhat.com>
4040
4041         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4042         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
4043         * dwarf2asm.c: ... here.
4044         * dwarfout.c: Remove them.
4045
4046         * varasm.c (assemble_integer): Add align parameter.
4047         (assemble_real, output_constant, output_constructor): Likewise.
4048         * output.h: Update decls.
4049         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
4050         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
4051         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
4052         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
4053         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
4054         Update all callers.
4055
4056         * final.c (end_final): Abort profile block generation if we
4057         havn't layed it out properly.
4058         * output.h (assemble_eh_integer): Remove stale decl.
4059         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
4060         (min_align): New.
4061         (assemble_integer): Handle unaligned data.
4062         (assemble_real): Abort on unaligned data.
4063         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
4064         anything useful.
4065         (default_dtor_section_asm_out_destructor): Use assemble_align.
4066         (default_named_section_asm_out_constructor): Likewise.
4067         (default_ctor_section_asm_out_constructor): Likewise.
4068         * config/darwin.c (machopic_asm_out_constructor): Likewise.
4069         (machopic_asm_out_destructor): Likewise.
4070         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
4071         (nextstep_asm_out_destructor): Likewise.
4072         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
4073         (vms_asm_out_destructor): Likewise.
4074
4075 2001-08-17  Richard Henderson  <rth@redhat.com>
4076
4077         * config/mips/iris6.h (TARGET_IRIX6): New.
4078         (current_section_name, current_section_flags): New.
4079         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
4080         (MAX_OFILE_ALIGNMENT): New.
4081         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
4082         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
4083         (copy_file_data): Split out from
4084         (mips_asm_file_end): ... here.
4085         (mips_asm_file_start): Remove extra .section directive.  Use
4086         tmpfile instead of mips_make_temp_file.
4087         (mips_unique_section): Use const char * as needed for warnings.
4088         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
4089         re-add align parameter.
4090         (iris6_asm_named_section): New.
4091         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
4092         (iris6_asm_output_align, iris6_section_align_1): New.
4093         (iris6_asm_file_start, iris6_asm_file_end): New.
4094         * config/mips/mips-protos.h: Update decls.
4095
4096 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
4097
4098         * doc/install.texi (Install GCC): Add links to build status pages.
4099         (Specific): Ditto.
4100         (Final install): Ditto; request updates for specific info
4101
4102 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4103
4104         * cpperror.c (print_location):  Don't take a file name; use the
4105         line map instead.
4106         (_cpp_begin_message): Similarly.
4107         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
4108         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
4109         (cpp_pedwarn_with_file_and_line): Remove.
4110         * cppfiles.c (stack_include_file): Update; set filename to stdin
4111         here when appropriate.
4112         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
4113         (_cpp_begin_message): Don't take a file name.
4114         * cppinit.c: Add comment.
4115         * cpplex.c: Fix end-of-directive indicator.
4116         * cpplib.c: Don't include intl.h.
4117         (run_directive, do_diagnostic): Update.
4118         (do_line): Update to not use nominal_fname.
4119         (cpp_push_buffer): Don't take a filename.
4120         * cpplib.h (struct ht): Remove.
4121         (cpp_push_buffer): Don't take a filename.
4122         (cpp_pedwarn_with_file_and_line): Remove.
4123         * cppmacro.c (struct cpp_macro): Remove file.
4124         (builtin_macro): Update.
4125         (_cpp_create_definition): Update.
4126         * cppmain.c: Correct comment.
4127         * fix-header.c (read_scan_file): Update.
4128
4129 2001-08-17  Kazu Hirata  <kazu@hxi.com>
4130
4131         * sbitmap.c: Fix comment formatting.
4132         * sched-deps.c: Likewise.
4133         * sibcall.c: Likewise.
4134         * simplify-rtx.c: Likewise.
4135         * ssa.c: Likewise.
4136         * ssa-ccp.c: Likewise.
4137         * stor-layout.c: Likewise.
4138         * timevar.c: Likewise.
4139         * toplev.c: Likewise.
4140         * unwind-dw2.c: Likewise.
4141         * unwind-dw2-fde.c: Likewise.
4142         * varasm.c: Likewise.
4143
4144 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4145
4146         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
4147         or larger than an integer in memory.
4148
4149 2001-08-17  Zack Weinberg  <zackw@panix.com>
4150
4151         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
4152         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
4153         * rtl.h: Don't forward-declare union tree_node here.  Don't
4154         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
4155         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
4156         and tree respectively.
4157         * tree.h: Don't forward-declare struct rtx_def here.  Don't
4158         typedef tree here.  Change all uses of struct rtx_def *,
4159         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
4160         and tree respectively.
4161
4162 2001-08-17  Richard Henderson  <rth@redhat.com>
4163
4164         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
4165         config/mips/openbsd.h: Fix typos last change.
4166
4167 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4168
4169         * doc/invoke.texi (Optimize Options): The default for
4170         -finline-limit is 600.
4171
4172 2001-08-17  Richard Henderson  <rth@redhat.com>
4173
4174         * varasm.c (text_section): Allow TEXT_SECTION to override the
4175         printing of TEXT_SECTION_ASM_OP.
4176         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
4177         (DATA_SECTION, BSS_SECTION): Remove.
4178         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
4179         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
4180         Rename from s/_NAME//.
4181         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
4182         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
4183         (TEXT_SECTION): ... here.  New.
4184         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
4185         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
4186         * config/mips/openbsd.h: Likewise.
4187         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
4188         (mips_asm_file_end): Likewise test.
4189         (mips_output_function_epilogue): Likewise.  Switch back to data
4190         section after emitting the function.
4191
4192         * doc/tm.texi (Sections): Document TEXT_SECTION.
4193
4194 2001-08-17  Richard Henderson  <rth@redhat.com>
4195
4196         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
4197         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
4198
4199 2001-08-17  Richard Henderson  <rth@redhat.com>
4200
4201         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
4202         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
4203         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
4204         Add aligned attribute.
4205
4206 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
4207
4208         * config/sh/sh.md: Add modes to unspecs in first insn to match
4209         those in the second.
4210
4211         * Makefile.in: Fix collect2 copy for Cygwin.
4212
4213 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
4214
4215         Install the proper patch.
4216         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
4217         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
4218         (expand_function_start): Likewise.
4219         * stmt.c (expand_decl): Likewise.
4220         * varasm.c (make_decl_rtx): Likewise.
4221
4222 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
4223
4224         * final.c: Undo my previous accidental checkin.
4225         * output.h: Likewise.
4226         * tm.texi: Likewise.
4227
4228 2001-08-16  Richard Henderson  <rth@redhat.com>
4229
4230         * varasm.c (named_section_flags): Remove align parameter.
4231         * varasm.c, dwarf2out.c: Update all callers.
4232         * output.h: Update prototypes.
4233
4234         * target.h (target.asm_out.named_section): Remove align parameter.
4235         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
4236         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
4237         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
4238         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
4239         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
4240
4241         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
4242         (get_named_section_flags, set_named_section_flags): New.
4243         (named_section_flags): Use them.
4244         (named_section): Do decl vs section flags check here...
4245         (default_section_type_flags): ... not here.
4246         (init_varasm_once): Create in_named_htab.
4247         (resolve_unique_section): Mark reloc unused.
4248
4249 2001-08-16  Richard Henderson  <rth@redhat.com>
4250
4251         * varasm.c (force_const_mem): Keep pool alignment in bits.
4252         (output_constant_pool): Use assemble_align.
4253
4254 2001-08-16  Zack Weinberg  <zackw@panix.com>
4255
4256         * doc/tm.texi: Remove extra @table command.
4257
4258 2001-08-16  Zack Weinberg  <zackw@panix.com>
4259
4260         * final.c (shorten_branches): Clear the end of the label_align
4261         array only if we made it larger.  Break up messy expressions
4262         for clarity.
4263
4264         * diagnostic.c (internal_error): Check for error recursion
4265         before doing ICE suppression.
4266
4267         * timevar.c: Timing variables now count in milliseconds.
4268         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
4269         (get_time): Not here.
4270         (timevar_print): Don't print any timer whose user, cpu, and
4271         wall times are all zero as displayed.
4272         * timevar.h: Update comment aboout units.  Make timevar
4273         counters unsigned.
4274
4275 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
4276
4277         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
4278         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
4279         (expand_function_start): Likewise.
4280         * stmt.c (expand_decl): Likewise.
4281         * varasm.c (make_decl_rtx): Likewise.
4282
4283 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
4284
4285         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
4286         (finalize_record_size): Don't set TYPE_USER_ALIGN.
4287
4288 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4289
4290         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
4291         variables.
4292
4293 2001-08-16  Andreas Jaeger  <aj@suse.de>
4294
4295         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
4296         prototype.
4297
4298 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
4299
4300         * rtl.h (only_sets_cc0_p): New prototype.
4301         * jump.c (sets_cc0_p): Handle INSN.
4302         (only_sets_cc0_p): New function.
4303         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
4304         (tidy_fallthru_edge): Likewise.
4305         * integrate.c (copy_insn_list): Likewise.
4306         * unroll.c (unroll_loop): Likewise.
4307         (copy_loop_body): Likewise.
4308
4309 2001-08-15  Jason Eckhardt  <jle@redhat.com>
4310
4311         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
4312
4313 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
4314
4315         * predict.c (struct block_info_def): Remove nvisited.
4316         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
4317         (estimate_bb_frequencies): Call mark_dfs_back_edges.
4318
4319         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
4320         (ix86_adjust_cost): Teach scheduler that latency to load operand can
4321         be masked.
4322
4323 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
4324
4325         * predict.def: Update hitrates.
4326
4327 2001-08-15  Richard Henderson  <rth@redhat.com>
4328
4329         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
4330
4331 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
4332
4333         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
4334         note from its associated jump.
4335
4336 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
4337
4338         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
4339         also on 64-bit s390x targets.
4340
4341 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
4342
4343         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
4344         function.
4345         (arm_expand_prologue): Handled nested functions which take a
4346         variable argument list.
4347         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
4348         macro with an invocation of
4349         arm_compute_initial_elimination_offset.
4350         * config/arm/arm-protos.h: Prototype
4351         arm_compute_initial_elimination_offset.
4352
4353 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4354
4355         * doc/install.texi (Specific, avr): Fix markup.
4356         (Specific, c4x): Ditto.
4357
4358 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4359
4360         * predict.c (dump_prediction): Change `bool' parameter to `int'.
4361
4362 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
4363
4364         * Makefile.in (OBJS): Add rtl-error.o
4365         (rtl-error.o): New rule.
4366         (diagnostic.o): Adjust dependency.
4367         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
4368         error_for_asm, _fatal_insn, _fatal_insn_not_found,
4369         warning_for_asm): Move to...
4370         rtl-error.c: ...here.  New file.
4371
4372 2001-08-14  Richard Henderson  <rth@redhat.com>
4373
4374         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
4375         if USING_SJLJ_EXCEPTIONS.
4376
4377 2001-08-14  Steve Ellcey <sje@cup.hp.com>
4378
4379         * tlink.c (scan_linker_output): Check string for unsatisfied in
4380         addition to undefined and unresolved.
4381
4382 2001-08-14  Graham Stott  <grahams@redhat.com>
4383
4384         * libgcc2.c (*): Replace EH_FRAME_SECTION with
4385         EH_FRAME_SECTION_NAME.
4386
4387 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
4388
4389         * genattrtab.c (simplify_test_exp_in_temp): New function.
4390         (simplify_test_exp): Avoid explicit use of temporary obstack.
4391         (simplify_cond, insert_right_side, evaluate_eq_attr,
4392         simplify_and_tree, simplify_or_tree, eliminate_known_true):
4393         Use simplify_test_exp_in_temp.
4394         (optimize_attrs): Iterate until expression stabilizes.
4395
4396 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
4397
4398         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
4399         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
4400
4401 2001-08-13  Richard Henderson  <rth@redhat.com>
4402
4403         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
4404         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
4405         * config/arm/conix-elf.h: Likewise.
4406
4407 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
4408
4409         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
4410         in gcc.c.
4411         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
4412
4413         * gcse.c (hash_scan_set): Expressions that are set as part of
4414         jump instructions are not available.
4415
4416 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
4417
4418         * config/s390/s390.c (print_operand, s390_function_prologue,
4419         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
4420
4421 2001-08-13  Richard Henderson  <rth@redhat.com>
4422
4423         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
4424         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
4425         * doc/tm.texi (Exception Region Output): Document it.
4426
4427 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
4428
4429         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
4430         DWARF2 instead of stabs by default.
4431
4432 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
4433
4434         * config/rs6000/rs6000.c: Include optabs.h.
4435
4436 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
4437
4438         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
4439         save/restore routines.
4440         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
4441
4442 2001-08-13  Andreas Jaeger  <aj@suse.de>
4443
4444         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
4445         the english is correct.
4446
4447 2001-08-13  Zack Weinberg  <zackw@panix.com>
4448
4449         * expr.h: Split out optab- and libfunc-related code to...
4450         * optabs.h, libfuncs.h: ... these new headers.
4451
4452         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
4453         (OPTABS_H): New.
4454         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
4455         dependencies.
4456         * mkconfig.sh: Don't include insn-codes.h from config.h.
4457
4458         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
4459         enum insn_code is available.  Move reload_in_optab and
4460         reload_out_optab array declarations to optabs.h.
4461         * regmove.c (gen_add3_insn): Move to optabs.c, export from
4462         there, prototype in expr.h.
4463         * gencodes.c: Cleanup: zap global variables, don't use
4464         printf where puts will do, don't bother defining MAX_INSN_CODE
4465         which nothing uses, let CODE_FOR_nothing get its value implicitly.
4466
4467         * genemit.c, genopinit.c: Include optabs.h in generated file.
4468         * genoutput.c: Include insn-codes.h in generated file.
4469         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
4470         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
4471         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
4472         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
4473         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
4474         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
4475         Include optabs.h.
4476         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
4477         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
4478         config/m88k/m88k.c, config/sparc/sparc.c:
4479         Include libfuncs.h.
4480         * reload.c: Include expr.h and optabs.h before reload.h.
4481         * config/alpha/alpha.c: Include tree.h before reload.h.
4482         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
4483         and reload.h in that order.
4484         * config/sparc/sparc.c: Include debug.h.
4485         * recog.c: Include insn-codes.h.
4486
4487 2001-08-13  Andreas Jaeger  <aj@suse.de>
4488
4489         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
4490         s390*linux.
4491
4492 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4493
4494         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
4495         * gcc.c (init_spec): Fix typo in comment.
4496         * varasm.c (data_section): Fix typo in comment.
4497
4498 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
4499
4500         * predict.c (dump_prediction): New argument "USED".
4501         (combine_predictions_for_insn): Determine the used heuristics,
4502         output the case no heuristic applied.
4503         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
4504
4505 2001-08-13  Andreas Jaeger  <aj@suse.de>
4506
4507         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
4508         register %rip.
4509
4510 2001-08-13  Kazu Hirata  <kazu@hxi.com>
4511
4512         * jump.c: Fix formatting.
4513
4514 2001-08-13  Kazu Hirata  <kazu@hxi.com>
4515
4516         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
4517         length.
4518
4519 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
4520
4521         * loop.c (check_dbra_loop): Use condjump_label to compute
4522         jump_label.
4523
4524         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
4525         to better document the files they're in.
4526
4527 2001-08-12  Zack Weinberg  <zackw@panix.com>
4528
4529         * recog.h (struct insn_operand_data): Shrink 'mode' field
4530         to 16 bits.
4531
4532 2001-08-12  Kazu Hirata  <kazu@hxi.com>
4533
4534         * gcc.c: Fix comment formatting.
4535         * gccspec.c: Likewise.
4536         * gcov.c: Likewise.
4537         * gcse.c: Likewise.
4538         * genemit.c: Likewise.
4539         * gengenrtl.c: Likewise.
4540         * genrecog.c: Likewise.
4541         * gensupport.c: Likewise.
4542         * ggc-page.c: Likewise.
4543         * global.c: Likewise.
4544         * graph.c: Likewise.
4545         * ifcvt.c: Likewise.
4546         * integrate.c: Likewise.
4547         * lcm.c: Likewise.
4548         * libgcc2.c: Likewise.
4549         * loop.c: Likewise.
4550         * mbchar.c: Likewise.
4551         * optabs.c: Likewise.
4552         * predict.c: Likewise.
4553         * prefix.c: Likewise.
4554         * profile.c: Likewise.
4555         * protoize.c: Likewise.
4556         * real.c: Likewise.
4557         * recog.c: Likewise.
4558         * regclass.c: Likewise.
4559         * regmove.c: Likewise.
4560         * reg-stack.c: Likewise.
4561         * reload1.c: Likewise.
4562         * resource.c: Likewise.
4563         * rtlanal.c: Likewise.
4564         * rtl.c: Likewise.
4565
4566 2001-08-12  Kazu Hirata  <kazu@hxi.com>
4567
4568         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
4569         a tree representing a constant is passed to the macro.
4570
4571 2001-08-12  Richard Henderson  <rth@redhat.com>
4572
4573         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
4574         (rs6000_elf_asm_out_destructor): New.
4575         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
4576         (DTORS_SECTION_ASM_OP): Remove.
4577         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4578         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
4579
4580 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
4581
4582         Revert:
4583         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4584         * gcc.c (set_collect_gcc_options): New function, split out from
4585         main.
4586         Ignore elided switches.
4587         (do_spec_1): Invoke before executing command.
4588         (set_input): Export.
4589         Move declaration ...
4590         * gcc.h (set_input): ... here.
4591         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
4592         file.
4593
4594 2001-08-12  Richard Henderson  <rth@redhat.com>
4595
4596         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
4597         thinko wrt TARGET_RELOCATABLE.
4598
4599 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
4600
4601         * fix-header.c (cb_file_change): Update prototype.
4602
4603 2001-08-11  Zack Weinberg  <zackw@panix.com>
4604
4605         * toplev.c (set_float_handler): Make static.
4606         * toplev.h: Don't prototype set_float_handler.
4607
4608         * simplify-rtx.c: Don't include setjmp.h.
4609         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
4610         New functions.
4611         (simplify_unary_operation, simplify_binary_operation): Use them,
4612         via do_float_handler.
4613
4614         * fold-const.c: Don't include setjmp.h.
4615         (exact_real_inverse_1): New function.
4616         (exact_real_inverse): Use it, via do_float_handler.
4617
4618         * varasm.c: Don't include setjmp.h.
4619         (assemble_real_1): New function.
4620         (assemble_real): Use it, via do_float_handler.
4621         Call internal_error if we get a trap here.
4622
4623         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
4624         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
4625
4626 2001-08-11  Zack Weinberg  <zackw@panix.com>
4627
4628         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
4629         STACK_BOUNDARY if not already defined.
4630
4631         * calls.c, function.c, reload1.c, explow.c: Don't default
4632         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
4633         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
4634
4635         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
4636         to run-time test.
4637
4638         * doc/tm.texi: Document that STACK_BOUNDARY is required;
4639         clarify difference between it and PREFERRED_STACK_BOUNDARY.
4640
4641 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
4642
4643         * cppmacro.c (enter_macro_context): Push macro expansions even
4644         if empty.
4645
4646 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4647
4648         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
4649         (rs6000_elf_section_type_flags): Actually return a value.
4650
4651 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
4652
4653         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
4654         Clean up code: add missing comments and prototypes, fix warnings,
4655         remove obsolete code, fix spacing to conform to coding style.
4656
4657 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
4658
4659         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
4660         and TARGET_ASM_CLOSE_PAREN.
4661         (regclass_map): CC register belongs to class NO_REGS.
4662         (legitimize_pic_address): Don't generate unnecessary moves
4663         (to avoid confusing loop optimization).
4664         (check_and_change_labels): Replace jump_long by indirect_jump.
4665         (s390_final_chunkify): Don't start a new literal pool on section
4666         switch in 64-bit code.
4667         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
4668
4669         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
4670         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
4671         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
4672         modes correctly.
4673         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
4674         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
4675         (CONST_COSTS): Fixed incorrect costs.
4676
4677         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
4678         Use emit_jump instead of emit_jump_insn (gen_jump).
4679         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
4680         (to avoid confusing flow analysis).
4681         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
4682         (casesi, casesi_jump): New.
4683         (jump_long): Removed.  Functionality merged into indirect_jump.
4684         (indirect_jump): Accept address_operand, not just register_operand.
4685         (cjump_long, icjump_long): Use same logic as indirect_jump.
4686         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
4687         Fixed broken setjmp/longjmp handling.
4688         (do_builtin_setjmp_setup): Removed.
4689
4690         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
4691         broken GNU as versions that don't accept .quad with large
4692         negative values.  Use hexadecimal output instead.
4693         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
4694         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
4695         FUNCTION_EPILOGUE): Removed.  Now in targetm.
4696
4697         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
4698
4699         * config/s390/fixdfdi.h: Add missing copyright statement.
4700         Fix type conflicts on 64-bit.  Add missing SFmode routines.
4701
4702         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
4703         email address.
4704
4705 2001-08-11  Richard Henderson  <rth@redhat.com>
4706
4707         * rtl.h (REG_EH_RETHROW): Remove.
4708         * rtl.c (reg_note_name): Update.
4709         * combine.c (distribute_notes): Don't check for it.
4710
4711 2001-08-11  Richard Henderson  <rth@redhat.com>
4712
4713         * combine.c (distribute_notes): Place REG_SETJMP.
4714
4715 2001-08-11  Richard Henderson  <rth@redhat.com>
4716
4717         * doc/extend.texi (Arrays and pointers implementation): Discourage
4718         relying on sign-extension of pointers.
4719
4720 2001-08-11  H.J. Lu <hjl@gnu.org>
4721
4722         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
4723         in_dtors.
4724         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
4725         RDATA_SECTION_ASM_OP.
4726
4727 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4728
4729         * doc/install.texi (Specific, c4x): Fix cross-reference to the
4730         main manual to work both for info and HTML versions.
4731
4732 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
4733             Matt Kraai <kraai@alumni.carnegiemellon.edu>
4734
4735         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
4736         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
4737         (struct cpp_pool): New member first.
4738         * cppinit.c (append_include_chain): Plug memory leaks.
4739         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
4740         Allocate pragma structures from the (aligned) macro pool to
4741         avoid leaking memory.
4742         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
4743         so we don't leak memory.
4744         * hashtable.c (ht_destroy): New.
4745         * hashtable.h (ht_destroy): New.
4746
4747 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
4748             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4749
4750         * c-lex.c (map): Make const.
4751         (cb_file_change): Update for callback passing a line map.
4752         Don't assume we have a previous map.  Remove sanity check
4753         about popping too many files.
4754         * cpperror.c (print_location): Make map const.
4755         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
4756         (cpp_make_system_header): Similarly.
4757         (search_from): Similarly.
4758         (_cpp_execute_include): Don't remember where we came from.
4759         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
4760         (struct cpp_reader): Make map const.
4761         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
4762         * cpplib.c (do_line): Update; line maps now hold sysp.
4763         (cpp_push_buffer): Similarly.
4764         (_cpp_do_file_change): Similarly; callback with map instead.
4765         (cpp_get_line_maps): Constify return value.
4766         (_cpp_pop_buffer): Update.
4767         * cpplib.h (struct cpp_file_change): Remove.
4768         (struct cpp_callbacks): Update.
4769         (cpp_get_line_maps): Constify return value.
4770         * cppmacro.c (_cpp_create_definition): Update.
4771         * cppmain.c (struct printer): Constify map.
4772         (maybe_print_line): Similarly.
4773         (print_line): Similarly.  Deduce flags 1 and 2 here.
4774         (cb_file_change): Update.
4775         * line-map.c (free_line_maps): Warn regardless.
4776         (add_line_map): Return pointer to const.  When passed NULL to_file
4777         with LC_LEAVE, use the obvious values for the return point so the
4778         caller doesn't have to figure them out.
4779         (lookup_line): Return pointer to const.
4780         (print_containing_files): Take pointer to const.
4781         * line-map.h (struct line_map): New members reason, sysp.
4782         (add_line_map): Return pointer to const.
4783         (lookup_line): Similarly.
4784         (print_containing_files): Take pointer to const.
4785
4786 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
4787             Richard Henderson  <rth@redhat.com>
4788
4789         * regmove.c (regmove_optimize): Avoid setting a register twice in
4790         a parallel set.
4791
4792 2001-08-10  Richard Henderson  <rth@redhat.com>
4793
4794         * doc/extend.texi (Arrays and pointers implementation): Document
4795         behavior of pointer/integer conversion.
4796
4797 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
4798
4799         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
4800
4801 2001-08-10  Richard Henderson  <rth@redhat.com>
4802
4803         * doc/extend.texi (C Implementation): New chapter.
4804         * doc/gcc.texi (Top): Link it in.
4805
4806 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
4807
4808         * doc/install.texi (Specific): Fix CVS merge botch.
4809
4810 2001-08-10  Richard Henderson  <rth@redhat.com>
4811
4812         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
4813         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
4814
4815 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
4816
4817         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
4818         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
4819         this macro is now required.
4820
4821         * cselib.c (cselib_process_insn), flow.c (propagate_block),
4822         loop.c (find_and_verify_loops), reload.c (reload): Check
4823         for rtx code of CALL_INSN, not CALL, when deciding if we
4824         need to check for REG_SETJMP note.
4825
4826         * gcse.c (compute_hash_table, compute_store_table): Update
4827         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
4828         logic.
4829
4830         * config/avr/avr.c: Fix typo.
4831         * config/convex/convex.c (expand_movstr): Use adjust_address.
4832         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
4833         variable.
4834         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
4835         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
4836         Fix typo.
4837         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
4838         Do define STACK_BOUNDARY.
4839         * config/i370/i370.c: Include expr.h.
4840         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
4841         config/pa/som.h, config/v850/v850.h: Take in_ctors and
4842         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
4843         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
4844         * config/m88k/m88k.c: Include c-tree.h after expr.h.
4845         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
4846         * config/romp/romp.c: Include expr.h after tree.h.
4847         Include toplev.h.
4848         (output_fpop): Use xmalloc, not oballoc.
4849         * config/we32k/we32k.c: Include expr.h.
4850
4851 2001-08-10  Kazu Hirata  <kazu@hxi.com>
4852
4853         * config/h8300/h8300.h: Fix formatting.
4854
4855 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
4856
4857         * c-common.h (RETURN_NULLIFIED_P): Lose.
4858         * c-semantics.c (genrtl_return_stmt): Don't check it.
4859
4860 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
4861
4862         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
4863         (mips_annotate_frame_insn): New function.
4864         (mips_emit_frame_related_store): New function.
4865         (save_restore_insns): Don't mark instructions that set up the base
4866         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
4867         the store instructions instead.
4868         (mips_expand_prologue): If the stack size is moved into a temporary
4869         register, do not mark that move as frame-related.  Add a
4870         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
4871
4872 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
4873
4874         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
4875         stack slot as unchanging if current_function_calls_eh_return.
4876
4877 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
4878
4879         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
4880         access the second half of the TFmode scratch operand.
4881
4882 2001-08-10  Anthony Green  <green@redhat.com>
4883
4884         * java/class.c (emit_register_classes): Conditionalize code on
4885         JCR_SECTION_NAME.
4886
4887 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4888
4889         * doc/install.texi (Specific, avr): Fix cross-reference to the
4890         main manual to work both for info and HTML versions.
4891
4892 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4893
4894         * stmt.c (expand_null_return_1): Remove code to generate simple returns
4895         and "use_goto" argument.
4896         (expand_null_return, expand_value_return): Update all callers.
4897         * function.c (expand_function_end): Remove code to generate simple
4898         return.
4899         * config/vax/vax.md (epilogue): New expander for function return.
4900         * doc/md.texi (epilogue): Remove "if defined".
4901
4902 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
4903
4904         * Makefile.in: Partially revert my previous change:
4905         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
4906         of the hashtab.o and safe-ctype.o rules.
4907
4908 2001-08-09  Richard Henderson  <rth@redhat.com>
4909
4910         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
4911         (USE_COLLECT2): Remove duplicate definition.
4912         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
4913         (use_collect2): Remove dead code.
4914         * configure.in (use_collect2): Remove will_use_collect2 and
4915         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
4916         * configure: Rebuild.
4917
4918         * target.h (targetm.asm_out.constructor): New.
4919         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
4920         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
4921         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
4922         * varasm.c (in_ctors, in_dtors): New.
4923         (assemble_constructor, assemble_destructor): Remove.
4924         (default_stabs_asm_out_destructor): New.
4925         (default_named_section_asm_out_destructor): New.
4926         (dtors_section, default_dtor_section_asm_out_destructor): New.
4927         (default_stabs_asm_out_constructor): New.
4928         (default_named_section_asm_out_constructor): New.
4929         (ctors_section, default_ctor_section_asm_out_constructor): New.
4930         * output.h: Update declarations.
4931         * c-decl.c (c_expand_body): Use target hooks instead of
4932         assemble_constructor and assemble_destructor.
4933         * profile.c (output_func_start_profiler): Likewise.
4934         * objc/objc-act.c (finish_objc): Likewise.
4935         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
4936         for the constructor.
4937         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
4938
4939         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
4940         (DTORS_SECTION_ASM_OP): Likewise.
4941         (__CTOR_LIST__): Use attribute section when possible.
4942         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
4943
4944         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
4945         ASM_OUTPUT_CONSTRUCTOR.
4946
4947         * config/darwin.c (machopic_asm_out_constructor): New.
4948         (machopic_asm_out_destructor): New.
4949         * config/darwin-protos.h: Update declarations.
4950         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4951         (ASM_OUTPUT_DESTRUCTOR): Remove.
4952         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4953         * config/nextstep.c (nextstep_asm_out_constructor): New.
4954         (nextstep_asm_out_destructor): New.
4955         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4956         (ASM_OUTPUT_DESTRUCTOR): Remove.
4957         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4958         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
4959         ASM_OUTPUT_*STRUCTOR.
4960         * config/i386/aix386ng.h: Likewise.
4961
4962         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
4963         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
4964         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
4965         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
4966         * config/lynx.h: Likewise.
4967         * config/netware.h: Likewise.
4968         * config/psos.h: Likewise.
4969         * config/alpha/alpha-interix.h: Likewise.
4970         * config/alpha/elf.h: Likewise.
4971         * config/arc/arc.h: Likewise.
4972         * config/arm/aof.h: Likewise.
4973         * config/arm/coff.h: Likewise.
4974         * config/arm/elf.h: Likewise.
4975         * config/c4x/c4x.h: Likewise.
4976         * config/h8300/h8300.h: Likewise.
4977         * config/i386/cygwin.h: Likewise.
4978         * config/i386/djgpp.h: Likewise.
4979         * config/i386/i386-coff.h: Likewise.
4980         * config/i386/i386-interix.h: Likewise.
4981         * config/i386/sco5.h: Likewise.
4982         * config/i386/vsta.h: Likewise.
4983         * config/i386/win32.h: Likewise.
4984         * config/i960/i960-coff.h: Likewise.
4985         * config/ia64/sysv4.h: Likewise.
4986         * config/m68hc11/m68hc11.h: Likewise.
4987         * config/m68k/coff.h: Likewise.
4988         * config/m68k/mot3300.h: Likewise.
4989         * config/m88k/m88k.h: Likewise.
4990         * config/mcore/mcore-pe.h: Likewise.
4991         * config/mcore/mcore.h: Likewise.
4992         * config/mips/elf.h: Likewise.
4993         * config/mips/elf64.h: Likewise.
4994         * config/mips/iris6.h: Likewise.
4995         * config/pa/pa64-hpux.h: Likewise.
4996         * config/rs6000/sysv4.h: Likewise.
4997         * config/sh/sh.h: Likewise.
4998         * config/sparc/litecoff.h: Likewise.
4999
5000         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
5001         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
5002         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
5003         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
5004         (ASM_OUTPUT_DESTRUCTOR): Remove.
5005         * config/a29k/a29k.c: Move include of tree.h.
5006         * config/a29k/udi.h: Delete file.
5007         * config/alpha/alpha.c (vms_asm_out_constructor): New.
5008         (vms_asm_out_destructor): New.
5009         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
5010         (EXTRA_SECTION_FUNCTIONS): Likewise.
5011         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
5012         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
5013         * config/c4x/c4x.c: Move include of tree.h.
5014         * config/clipper/clipper.c (clix_asm_out_constructor): New.
5015         (clix_asm_out_destructor): New.
5016         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
5017         (ASM_OUTPUT_DESTRUCTOR): Remove.
5018         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
5019         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
5020         (TARGET_ASM_CONSTRUCTOR): New.
5021         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
5022         (sco_asm_out_constructor): New.
5023         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
5024         * config/i386/svr3gas.h: Remove stack grows up code.
5025         Remove code duplicated from i386/sysv3.h.
5026         (TARGET_ASM_CONSTRUCTOR): New.
5027         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
5028         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
5029         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
5030         (TARGET_ASM_CONSTRUCTOR): New.
5031         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
5032         (m68hc11_asm_out_destructor): New.
5033         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
5034         (TARGET_ASM_DESTRUCTOR): New.
5035         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
5036         * config/m68k/dpx2.h: Properly undef all the bits inherited from
5037         config/svr3.h pertaining to section manipulation.
5038         * config/m68k/dpx2g.h: Remove #if 0 code.
5039         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
5040         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
5041         (ASM_OUTPUT_CONSTRUCTOR): Remove.
5042         (TARGET_ASM_CONSTRUCTOR): New.
5043         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
5044         (m88k_svr3_asm_out_constructor): New.
5045         (m88k_svr3_asm_out_destructor): New.
5046         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
5047         (ASM_OUTPUT_DESTRUCTOR): Remove.
5048         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
5049         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
5050         * config/rs6000/aix.h: Likewise.
5051         * config/mips/rtems64.h: Don't undef removed constructor related bits.
5052         * config/mips/vxworks.h: Likewise.
5053         * config/rs6000/lynx.h: Likewise.
5054         * config/sh/elf.h: Likewise.
5055         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
5056         (DTORS_SECTION_ASM_OP): New.
5057         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
5058         (ASM_OUTPUT_DESTRUCTOR): Remove.
5059         * config/sparc/sol2-sld-64.h: Likewise.
5060         * config/vax/vax.c (vms_asm_out_constructor): New.
5061         (vms_asm_out_destructor): New.
5062         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
5063         (ASM_OUTPUT_DESTRUCTOR): Remove.
5064         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
5065
5066         * doc/tm.texi (@node Initialization): Update.
5067
5068 2001-08-09  Richard Henderson  <rth@redhat.com>
5069
5070         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
5071         (__do_global_dtors_aux): Use gp-relative static data to avoid
5072         one dynamic relocation.
5073         (__do_frame_setup): Register Java classes.
5074         * config/alpha/crtend.asm (__JCR_END__): New.
5075
5076 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
5077
5078         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
5079         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
5080         (GEN, STAGESTUFF): Add new files.
5081         (insn-constants.h, s-constants, tm-preds.h, s-preds,
5082         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
5083         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
5084         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
5085         as well as insn-codes.h and insn-flags.h in config.h; and no
5086         extra headers in tconfig.h and hconfig.h.
5087
5088         * gencodes.c: Eliminate code to generate predicate declarations
5089         or #defines for md-file constants.
5090         * genconstants.c, genpreds.c: New files.
5091
5092         * i386.md: Re-order guard expressions such that TARGET_64BIT
5093         comes first, when this permits better optimization.  Add
5094         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
5095         why this is desirable.
5096
5097 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
5098
5099         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
5100         (find_fde_for_dso): Remove.
5101         (_Unwind_IteratePhdrCallback): New.
5102         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
5103         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
5104
5105 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5106
5107         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
5108         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
5109
5110 2001-08-09  Graham Stott  <grahams@redhat.com>
5111
5112         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
5113         (vis_no_unit): Use it.
5114         (visualize_no_unit): Add the insn only if room exists.
5115
5116 2001-08-09  Graham Stott  <grahams@redhat.com>
5117
5118         * predict.c (estimate_probability): Replace magic numbers with
5119         appropriate enumeration.
5120
5121 2001-08-09  Graham Stott  <grahams@redhat.com>
5122
5123         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
5124         parameter.
5125         (EXTRACT_FLAGS): Likewise.
5126
5127 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
5128
5129         * config/mips/mips.c    (mips_legitimate_address_p): Check for
5130         CONST_INT in last patch.
5131
5132 2001-08-08  Anthony Green  <green@redhat.com>
5133
5134         * java/class.c (emit_register_classes): Use assemble_jcr if
5135         possible.  Keep the original mechanism as a fallback.
5136         * defaults.h (JCR_SECTION_NAME): Define if we have named section
5137         and weak symbol support.
5138         * crtstuff.c (__JCR_LIST__): Define.
5139         (__JCR_END__): Define.
5140         (_Jv_RegiserClasses): Define weak symbol if possible.
5141         (__do_global_ctors_aux): Register classes for ELF targets with
5142         weak symbol support.
5143
5144 2001-08-08  Kazu Hirata  <kazu@hxi.com>
5145
5146         * dbxout.c: Fix comment formatting.
5147         * dependence.c: Likewise.
5148         * df.c: Likewise.
5149         * diagnostic.c: Likewise.
5150         * dominance.c: Likewise.
5151         * doprint.c: Likewise.
5152         * dwarf2out.c: Likewise.
5153         * dwarfout.c: Likewise.
5154         * emit-rtl.c: Likewise.
5155         * except.c: Likewise.
5156         * explow.c: Likewise.
5157         * expmed.c: Likewise.
5158         * expr.c: Likewise.
5159         * flow.c: Likewise.
5160         * fold-const.c: Likewise.
5161         * function.c: Likewise.
5162
5163 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5164
5165         * global.c (retry_global_alloc): Avoid shadowing allocno.
5166
5167 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
5168
5169         * except.c (remove_fixup_regions): Fix typo.
5170
5171 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
5172
5173         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
5174         unsigned HOST_WIDE_INT to avoid warning.
5175         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
5176         * flow.c (set_block_for_new_insns): Likewise.
5177
5178 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
5179
5180         * sibcall.c (return_value_pseudo): New static variable.
5181         (skip_copy_to_return_value): Handle return_value_pseudo.
5182         (call_ends_block_p): Ensure that return_value_pseudo is set.
5183         (optimize_sibling_and_tail_recursive_call): Discover the
5184         load of pseudo return value in alternate exit block.
5185
5186 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
5187
5188         * calls.c (ECF_ALWAYS_RETURN): New constant.
5189         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
5190         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
5191         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
5192         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
5193         * rtl.c (reg_note_name): New name.
5194         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
5195
5196 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
5197
5198         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
5199
5200 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
5201
5202         * alias.c (get_alias_set): Return a previously calculated
5203         alias set for a VAR_DECL.
5204         * function.c (gen_mem_addressof): Calculate the alias set before
5205         touching the RTL.
5206
5207 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
5208
5209         * predict.def: Set hitrates according our experimental run.
5210
5211 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
5212
5213         * i386.h (HARD_REGNO_RENAME_OK): New macro.
5214
5215 2001-08-08  H.J. Lu <hjl@gnu.org>
5216
5217         * config/mips/mips.c (mips_unique_section): New. Copied from
5218         config/mips/elf.h.
5219
5220         * config/mips/mips-protos.h (mips_unique_section): New
5221         prototype.
5222
5223         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
5224
5225         * config/mips/little.h: New. Generic little endian mips
5226         targets. Only mips*-*-linux* is converted to use it so far.
5227
5228         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
5229         (WCHAR_TYPE): Defined
5230         (WCHAR_TYPE_SIZE): Likewise.
5231         (INIT_SUBTARGET_OPTABS): Likewise.
5232         (BSS_SECTION_ASM_OP): Likewise.
5233         (SBSS_SECTION_ASM_OP): Likewise.
5234         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5235         (ASM_DECLARE_OBJECT_NAME): Likewise.
5236         (UNIQUE_SECTION): Likewise.
5237         (EXTRA_SECTIONS): Likewise.
5238         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
5239         (ASM_OUTPUT_DESTRUCTOR): Likewise.
5240         (ASM_OUTPUT_DEF): Likewise.
5241         (HANDLE_SYSV_PRAGMA): Removed.
5242         (NO_IMPLICIT_EXTERN_C): Likewise.
5243         (TARGET_MEM_FUNCTIONS): Likewise.
5244         (STARTFILE_SPEC): Likewise.
5245         (ENDFILE_SPEC): Likewise.
5246         (LIB_SPEC): Likewise.
5247         (INVOKE__main): Likewise.
5248         (CTOR_LIST_BEGIN): Likewise.
5249         (CTOR_LIST_END): Likewise.
5250         (DTOR_LIST_BEGIN): Likewise.
5251         (DTOR_LIST_END): Likewise.
5252         (SET_ASM_OP): Likewise.
5253         (ASM_OUTPUT_SOURCE_LINE): Likewise.
5254         (ASM_OUTPUT_DEF): Likewise.
5255         (ASM_OUTPUT_IDENT): Likewise.
5256
5257         * config/mips/mips.h (ASM_SPEC): Undefine before define.
5258         (CPLUSPLUS_CPP_SPEC): Likewise.
5259         (ASM_APP_ON) Redefine only if not defined.
5260         (ASM_APP_OFF): Likewise.
5261         (ASM_OUTPUT_SOURCE_LINE): Likewise.
5262         (ASM_OUTPUT_IDENT): Likewise.
5263
5264         * config.gcc: Update tm_file for Linux/mips.
5265
5266 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
5267
5268         * cselib.c (cselib_record_sets): If insn is predicated, turn
5269         sources into IF_THEN_ELSEs.
5270
5271         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
5272         Turn into define_insn_and_split.
5273
5274         * sched-deps.c: Include "cselib.h".
5275         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
5276         Use cselib to turn memory addresses into VALUEs.
5277         (sched_analyze): Call cselib_init/cselib_finish if necessary.
5278         * sched-int.h (struct sched_info): New member USE_CSELIB.
5279         * sched-ebb.c (ebb_sched_info): Initialize it.
5280         * sched-rgn.c (rgn_sched_info): Likewise.
5281         * Makefile.in (sched-deps.o): Update dependencies.
5282
5283         * cselib.h (cselib_subst_to_values): Declare.
5284         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
5285         that have no value and autoincs to be handled by generating a new
5286         dummy value.
5287
5288 2001-08-08  Graham Stott  <grahams@redhat.com>
5289
5290         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
5291         within fixed length SEQUENCE.
5292
5293 2001-08-08  Graham Stott  <grahams@redhat.com>
5294
5295         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
5296         (diagnostic_prefixing_rule): Likewise.
5297         (diagnostic_line_cutoff): Likewise.
5298         (diagnostic_kind_count): Likewise.
5299
5300 2001-08-08  Graham Stott  <grahams@redhat.com>
5301
5302         * alias.c (find_base_decl): Delete redundent assignment.
5303
5304 2001-08-08  Graham Stott  <grahams@redhat.com>
5305
5306         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
5307         (abs): Uppercase and paranthesize macro parameter.
5308         (MEM_DEPENDENCY): Add whitespace.
5309
5310 2001-08-08  Graham Stott  <grahams@redhat.com>
5311
5312         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
5313         failure check for CONST_INT
5314
5315 2001-08-08  Graham Stott  <grahams@redhat.com>
5316
5317         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
5318         (libcall_dead_p): Likewise.
5319
5320         (mark_used_regs): Constify fmt.
5321         (find_use_as_address): Likewise.
5322
5323 2001-08-08  Graham Stott  <grahams@redhat.com>
5324
5325         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
5326          parameter.
5327
5328 2001-08-08  Graham Stott  <grahams@redhat.com>
5329
5330         * combine.c (combine_simplify_rtx): Update comment and
5331         remove erroneous test.
5332
5333 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5334
5335         * cppinit.c (cpp_finish): Pop the final buffer without comment.
5336         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
5337         take care to avoid multiple no-newline at EOF warnings in that
5338         case.
5339
5340 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
5341
5342         * calls.c (expand_call): Do not emit INSN_SETJMP note.
5343         (emit_library_call_value_1): Likewise.
5344         (emit_call_1): Emit REG_SETJMP note.
5345         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
5346         of INSN_SETJMP
5347         * cselib.c (cselib_process_insn): Likewise.
5348         * flow.c (propagate_block): Likewise.
5349         * loop.c (find_and_verify_loops): Likewise.
5350         * reload.c (find_equiv_regs): Likewise.
5351         * reload1.c (reload): Likewise.
5352         * resource.c (mark_referenced_resources,
5353         mark_set_resources): Likewise.
5354         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
5355         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
5356         * haifa-sched.c (unlink_other_notes): Likewise.
5357         (reemit_notes): Likewise.
5358         * sched-ebb.c (sched_ebb): Likewise.
5359         * sched-rgc.c (sched_region): Likewise.
5360         * rtl.c (note_insn_name): Likewise.
5361         (reg_note_name): Add REG_SETJMP
5362         * rtl.h (reg_note): Add REG_SETJMP.
5363         (insn_note): Remove NOTE_INSN_SETJMP.
5364
5365         * profile.c (branch_prob): Add fake edges for setjmp.
5366
5367 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
5368
5369         * config.gcc: Quote target_cpu_default2 correctly for
5370         powerpc*-*-* targets.
5371
5372 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5373
5374         * cpplib.h, line-map.h: Update comments.
5375         * cppmain.c (printer_init): Move inline.
5376         (maybe_print_line, print_line): Take a map pointer.
5377         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
5378         (cb_file_change): Don't use prior value of print.map.
5379
5380 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
5381
5382         * doc/install.texi: Document fine-grained multilib configuration.
5383
5384 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
5385
5386         * rtlanal.c (find_first_parameter_load): Call note_stores
5387         only on the instructions.
5388
5389 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
5390
5391         * alias.c (nonlocal_mentioned_p):
5392         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
5393         * calls.c (emit_call_1): Likewise.
5394         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
5395         * cselib.c (cselib_process_insn): Likewise.
5396         * df.c (df_insns_modify): Likewise.
5397         * flow.c (need_fake_edge_p): Likewise.
5398         (propagate_one_insn): Likewise.
5399         * haifa-sched.c (reemit_notes): Likewise.
5400         * integrate.c (copy_insn_list): Likewise.
5401         * jump.c (delete_prior_computation): Likewise.
5402         * local-alloc.c (validate_equiv_mem): Likewise.
5403         * loop.c (scan_loop): Likewise.
5404         * predict.c (estimate_probability): Likewise.
5405         * reload.c (reload): Likewise.
5406         * sched-deps (sched_analyze): Likewise.
5407         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
5408         * gcse.c (compute_hash_table): Likewise.
5409         (mark_call): Likewise.
5410         (store_killed_in_insn): Likewise.
5411
5412 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
5413
5414         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
5415
5416 2001-08-06  Richard Henderson  <rth@redhat.com>
5417
5418         * varasm.c (assemble_gc_entry): Remove.
5419         * output.h: Likewise.
5420
5421 2001-08-06  Richard Henderson  <rth@redhat.com>
5422
5423         * varasm.c (assemble_constructor): Take a symbol_ref and a
5424         priority instead of a bare string.  Move priority handling
5425         here from cp/decl2.c.
5426         * output.h: Update decls.
5427
5428         * c-decl.c (c_expand_body): Update calls to assemble_constructor
5429         and assemble_destructor.
5430         * profile.c (output_func_start_profiler): Likewise.
5431         * objc/objc-act.c (finish_objc): Likewise.
5432         (build_module_descriptor): Return the symbol not the symbol name.
5433
5434 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
5435
5436         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
5437         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
5438         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
5439         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
5440         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
5441         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
5442
5443 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5444
5445         * cpperror.c (print_containing_files): Moved to line-map.c.
5446         (print_location): line-map.c handles re-listing or otherwise.
5447         * cpphash.h (struct lexer_state): Remove next_bol.
5448         (struct cpp_buffer): Remove include_stack_listed.
5449         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
5450         Remove faked buffer handling.
5451         (_cpp_do_file_change): Tweak.
5452         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
5453         * cppmain.c (struct printer): Remove filename.
5454         (print_line, cb_file_change): Update accordingly.
5455         * line-map.c: Include intl.h.
5456         (init_line_maps): Initialize last_listed.
5457         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
5458         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
5459         (print_containing_files): New.
5460         * line-map.h (struct line_maps): New member last_listed.
5461         (print_containing_files, INCLUDED_FROM): New.
5462         * Makefile.in: Update.
5463         * po/POTFILES.in: Add line-map.c.
5464
5465 2001-08-06  Richard Henderson  <rth@redhat.com>
5466
5467         * except.c (convert_from_eh_region_ranges_1): Never mark
5468         USE or CLOBBER insns as throwing.
5469
5470         * expr.c (store_constructor): Don't clobber memory targets.
5471
5472 2001-08-06  Andreas Jaeger  <aj@suse.de>
5473
5474         * profile.c (branch_prob): Remove unused variable insn.
5475
5476         * Makefile.in (local-alloc.o): Add dependency on except.h.
5477
5478         * local-alloc.c: Include except.h for can_throw_internal prototype.
5479
5480 2001-08-06  Richard Henderson  <rth@redhat.com>
5481
5482         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
5483         * function.c (expand_main_function): Implement it.
5484         * doc/tm.texi: Document it.
5485
5486 2001-08-06  Stan Shebs  <shebs@apple.com>
5487
5488         * doc/install.texi: Document powerpc-*-darwin* details.
5489
5490 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
5491
5492         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
5493         (ASM_CPU_SPEC): Move back to rs6000.h
5494         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
5495
5496         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
5497
5498         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
5499         readded.
5500
5501         * config/rs6000/linux64.h: Ditto.
5502
5503         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
5504         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
5505         nothing.
5506
5507         Remove accidently readded definitions of FUNCTION_PROLOGUE,
5508         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
5509
5510         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
5511         to rs6000.h
5512
5513 2001-08-05  Richard Henderson  <rth@redhat.com>
5514
5515         * local-alloc.c (update_equiv_regs): Do not move insns that
5516         can throw.
5517
5518 2001-08-05  Jan Hubicka  <jh@suse.cz>
5519
5520         * Makefile.in (reload1.o): Add dedendancy on except.h
5521         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
5522         prototypes.
5523         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
5524         indicating wehther edges has been cleaned up.
5525         * reload1.c: Inlucde except.h
5526         (fixup_abnormal_edges): Accept deleted insns.
5527         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
5528         after combine.
5529
5530 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5531
5532         * cpplib.c (do_line): Correct line number after pop_buffer.
5533
5534 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5535
5536         PR preprocessor/3824
5537         * line-map.c: Update comments.
5538         * line-map.h: Update comments.
5539         * tradcif.y: Don't consider large numbers unsigned.
5540
5541 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5542
5543         PR preprocessor/3081
5544         * c-lex.c (map): New.
5545         (cb_file_change): Update map and use it.
5546         (cb_def_pragma, cb_define, cb_undef): Use map and line.
5547         (c_lex): Update to use map.
5548         * cpperror.c (print_location): Move to using logical line numbers.
5549         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
5550         (cpp_make_system_header): Similarly.
5551         (_cpp_execute_include): Stop line numbering hacks.  Store the
5552         line we will return to.
5553         * cpphash.h (CPP_BUF_LINE): Remove.
5554         (struct cpp_buffer): Remove lineno and pseudo_newlines.
5555         Add map and return_to_line.
5556         (_cpp_do_file_change): Update.
5557         * cppinit.c (cpp_start_read): Update line kludge.
5558         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
5559         (trigraph_ok): Use logical line numbers for diagnostics.
5560         (skip_block_comment): Likewise.
5561         (skip_whitespace): Likewise.
5562         (skip_line_comment): Use pfile->line instead.
5563         (_cpp_lex_token): Update to use logical line numbering exclusively.
5564         Handle BOL locally.  Accept new lines in directives, but keep
5565         pfile->line decremented.  Diagnostics use logical lines.  Update
5566         directive handling.
5567         * cpplib.c (SEEN_EOL): New.
5568         (skip_rest_of_line, check_eol): Use it.
5569         (end_directive): Increase line number when accepting the newline
5570         at the end of a directive.
5571         (run_directive): Simplify.
5572         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
5573         (_cpp_do_file_change): Update to take buffer line number as an
5574         argument, and store the current map in the cpp_reader.  Remove
5575         line number kludges.
5576         (_cpp_do__Pragma): Restore output position after a _Pragma.
5577         (cpp_push_buffer): Don't set output line or lineno.
5578         (_cpp_pop_buffer): Transfer more info from a faked buffer.
5579         Remove line kludge.  Set output_line.
5580         * cppmacro.c (builtin_macro): Update handling of __LINE__.
5581         (parse_arg): Use logical lines.
5582         (save_lookahead_token): Save EOFs too now.
5583         * cppmain.c (struct printer): Fix comments.
5584         (printer_init): Simplify, let caller do errors.
5585         (scan_translation_unit, check_multiline_token, dump_macro): Update.
5586         (maybe_print_line): Simplify.
5587         (print_line): Don't print a linemarker if -P.
5588         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
5589         (cb_file_change): Simplify.
5590         * line-map.h (LAST_SOURCE_LINE): Fix.
5591         (CURRENT_LINE_MAP): New.
5592
5593 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
5594
5595         * doloop.c (doloop_modify_runtime): Properly compute number of
5596         iterations if loop was unrolled.
5597
5598         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
5599         if their CSELIB_VAL_PTRs are.
5600
5601         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
5602         (setup_spill_pointers): Initialize it.
5603         (spill_restore_mem): Set it.
5604         (do_spill, do_restore): Use it to add REG_INC note.
5605         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
5606
5607         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
5608         asms if other insns are available.
5609
5610         * config/ia64/ia64.c (condop_operator): New predicate.
5611         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
5612         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
5613         patterns.
5614
5615         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
5616         temporary register than directly using a MEM.
5617
5618 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
5619
5620         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
5621         parameter in last change.
5622
5623 2001-08-04  Zack Weinberg  <zackw@panix.com>
5624
5625         * sparc.md: Don't use #if inside C test expression.
5626
5627 2001-08-04  Richard Henderson  <rth@redhat.com>
5628
5629         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
5630
5631 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5632
5633         * cpphash.h (struct cpp_reader): New member directive_line.
5634         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
5635         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
5636         do_pragma): Pass line to callbacks.
5637         (start_directive): Record line of directive.
5638         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
5639         cb_include): Similarly.
5640         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
5641         Similarly.
5642
5643 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
5644
5645         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
5646         comment.
5647
5648 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
5649
5650         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
5651
5652         * reload1.c (fixup_abnormal_edges): New static function.
5653         (reload): Use it.
5654
5655         * flow.c (need_fake_edge_p): New function.
5656         (flow_call_edges_add): Fix handling of noreturn and sibbling calls;
5657         avoid call insn to be very last insn in the insn stream.
5658
5659         * profile.c (branch_prob): Call flow_call_edges_add instead of
5660         doing that by hand; cleanup cfg to re-merge basic blocks once
5661         we are done.
5662
5663 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
5664
5665         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
5666         are also on line-map.h.
5667         * cppfiles.c (stack_include_file): Update.
5668         * cpphash.h (struct cpp_buffer): New member return_at_eof.
5669         (_cpp_pop_buffer): New.
5670         * cppinit.c (cpp_destroy, cpp_finish): Update.
5671         (do_includes): Mark each buffer to return at EOF.
5672         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
5673         return as requested.
5674         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
5675         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
5676         * cpplib.h (cpp_pop_buffer): Remove.
5677         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
5678         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
5679         buffers.
5680         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
5681         to pop buffers.
5682         (do_preprocessing): Update.
5683         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
5684         * c-parse.in (_yylex): Similarly.
5685         * scan-decls.c (scan_decls): Similarly.
5686         * line-map.h: Update comments.
5687
5688         * objc/Make-lang.in (objc-act.o): Update dependencies.
5689
5690 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5691
5692         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
5693         and soft register for operand 0.
5694         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
5695
5696 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5697
5698         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
5699         register for operand 0.
5700         ("bitcmpqi_z_used"): Allow memory for operand 0.
5701         (split "bitcmpqi"): New split to handle address reg as operand 1.
5702
5703 2001-08-04  Andreas Jaeger  <aj@suse.de>
5704
5705         * gcse.c: Revert Daniel's last patch.
5706
5707 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
5708
5709         * sparc-protos.h: Add prototypes for fp_zero_operand and
5710         reg_or_0_operand.
5711         * sh-protos.h: Add prototype for fpul_operand.
5712
5713 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
5714
5715         * doc/extend.texi (Other Builtins): Fix typo in last change.
5716
5717 2001-08-03  Richard Henderson  <rth@redhat.com>
5718
5719         * target.h (gcc_target): Add asm_out.named_section,
5720         section_type_flags, have_named_sections.
5721         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
5722         (TARGET_HAVE_NAMED_SECTIONS): New.
5723         (TARGET_SECTION_TYPE_FLAGS): New.
5724
5725         * Makefile.in (toplev.o): Depend on TARGET_H.
5726         (varasm.o, dbxout.o): Likewise.
5727         * c-common.c (decl_attributes): Check targetm.have_named_sections
5728         instead of ifdef ASM_OUTPUT_SECTION_NAME.
5729         * dbxout.c (dbxout_function_decl): Likewise.
5730         (dbxout_function_end): Likewise.
5731         * toplev.c (compile_file): Likewise.
5732         * varasm.c (exception_section): Likewise.
5733         * cp/decl2.c (finish_objects): Likewise.
5734
5735         * defaults.h (EH_FRAME_SECTION): Remove.
5736         (EH_FRAME_SECTION_ASM_OP): Remove.
5737         (EH_FRAME_SECTION_NAME): New.
5738         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
5739         (UNIQUE_SECTION_P): Remove.
5740         * dwarf2out.c (SECTION_FORMAT): Remove.
5741         (ASM_OUTPUT_SECTION): Remove.
5742         (output_call_frame_info): Use named_section_flags.
5743         (output_comp_unit, dwarf2out_start_source_file): Likewise.
5744         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
5745         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
5746         * varasm.c (in_eh_frame, eh_frame_section): Remove.
5747         (named_section_flags): New.
5748         (named_section): Use it and targetm.section_type_flags.
5749         (resolve_unique_section): New.
5750         (assemble_start_function): Use it.
5751         (asm_emit_uninitialised, assemble_variable): Likewise.
5752         (default_section_type_flags): New.
5753         (default_no_named_section, default_elf_asm_named_section): New.
5754         (default_coff_asm_named_section, default_pe_asm_named_section): New.
5755         * output.h: Update varasm.c decls.
5756         (SECTION_*): New flags.
5757
5758         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
5759         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
5760
5761         * config/elfos.h (UNIQUE_SECTION_P): Remove.
5762         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
5763         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
5764         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
5765         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
5766         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
5767         * config/mips/elf.h, config/mips/elf64.h: Likewise.
5768         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
5769         * config/pa/pa64-hpux.h,
5770
5771         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
5772         (TARGET_ASM_NAMED_SECTION): New.
5773         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
5774         * config/alpha/vms.h, config/arm/coff.h: Likewise.
5775         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
5776         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
5777         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
5778         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
5779         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
5780         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
5781         * config/i386/sco5.h, config/i386/win32.h: Likewise.
5782         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
5783         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
5784         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
5785         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
5786         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
5787         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
5788         * config/sparc/sysv4.h: Likewise.
5789
5790         * config/nextstep.h: Error until named sections implemented.
5791
5792         * config/a29k/a29k.c (a29k_asm_named_section): New.
5793         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
5794         (vms_section_type_flags, vms_asm_named_section): New.
5795         * config/arm/arm.c (arm_elf_asm_named_section): New.
5796         * config/avr/avr.c (asm_output_section_name): Remove.
5797         * config/avr/avr-protos.h: Update.
5798         * config/c4x/c4x.c (c4x_asm_named_section): New.
5799         * config/h8300/h8300.c (h8300_asm_named_section): New.
5800         * config/i386/i386.c (sco_asm_named_section): New.
5801         * config/i386/winnt.c (SECTION_PE_SHARED): New.
5802         (i386_pe_section_type_flags): New.
5803         (i386_pe_asm_named_section): New.
5804         * config/i386/i386-protos.h: Update.
5805         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
5806         * config/mcore/mcore.c (mcore_asm_named_section): New.
5807         * config/mips/mips.c (iris6_asm_named_section): New.
5808         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
5809         instead of UNIQUE_SECTION_P.
5810         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
5811         (xcoff_asm_named_section): New.
5812         * config/sh/sh.c (sh_asm_named_section): New.
5813         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
5814
5815         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
5816         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
5817         (EH_FRAME_SECTION_NAME): New.
5818         (EXCEPTION_SECTION): New.
5819         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
5820         (DEBUG_*_SECTION): Remove.
5821         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
5822         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
5823         (EH_FRAME_SECTION_ASM_OP): Remove.
5824
5825         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
5826         (ASM_OUTPUT_SECTION_NAME): Remove.
5827         (TARGET_ASM_NAMED_SECTION): New.
5828         (TARGET_HAVE_NAMED_SECTIONS): New.
5829         (TARGET_SECTION_TYPE_FLAGS): New.
5830         (EH_FRAME_SECTION_ASM_OP): Remove.
5831         (EH_FRAME_SECTION_NAME): New.
5832
5833 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
5834
5835         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
5836         for complex expressions when cfun == 0.
5837         * doc/extend.texi: Document that __builtin_constant_p can be
5838         used in data initializers as well as functions.
5839
5840 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
5841
5842         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
5843         variable I locally, instead of expecting a declaration in the
5844         calling context.
5845
5846 2001-08-03  Richard Henderson  <rth@redhat.com>
5847
5848         * except.c (collect_one_action_chain): Add an explicit cleanup
5849         action if regions surrounding a catch were encoded entirely
5850         within the call-site entry.
5851
5852 2001-08-03  Richard Henderson  <rth@redhat.com>
5853
5854         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
5855         don't take REGNO of a non-register.
5856
5857 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5858
5859         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
5860         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
5861         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
5862         (__gthread_mutex_init_function): New function for mutex initialization.
5863
5864 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
5865
5866         * Makefile.in: Revert screwed up commit.
5867
5868 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5869
5870         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
5871         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
5872         merged by linker script to get a final _exit().
5873         (__do_global_dtors): New for destructor handling in specific exit
5874         section.
5875         (__do_global_ctors): New for constructors in specific install section.
5876         (__map_data_section): Map data sections before running constructors.
5877         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
5878         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
5879         (DTORS_SECTION_ASM_OP): Likewise.
5880         (CTORS_SECTION_FUNCTION): Define to force a reference to
5881         __do_global_ctors.
5882         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
5883
5884 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
5885
5886         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
5887
5888         * Makefile.in: Add df.h to gcse.c dependencies.
5889
5890 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5891
5892         * varasm.c (output_constant_def_contents): Use for the length of a
5893         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
5894         depending on which is larger.
5895
5896 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
5897
5898         * gcse.c: Include df.h for use as a dataflow analyzer.
5899         Remove regvec.
5900         Declaration of reg_set_info: gone.
5901         New df_analyzer variable used by store motion.
5902         (reg_set_info): Deleted.
5903         (mark_mem_regs): New function, analyze regs used by a mem.
5904         (store_ops_ok): Use dataflow analyzer results to determine if
5905         necessary regs are changed in the block.
5906         (find_moveable_store): Remove check for symbol ref, we can handle
5907         much more complex expressions now.
5908         (compute_store_table): Remove most of the code, it's unnecessary
5909         now that the dataflow analyzer records the info for us.
5910         (store_killed_after): Add parameter to say whether to do the
5911         store_ops_okay test, used to speed up testing when we already know
5912         the answer, and just want to know if the store itself was killed.
5913         (build_store_vector): Largely rewritten to calculate the various
5914         vectors properly, and somewhat optimized.
5915         (store_motion): Init the df_analyzer, get REG_DEF chains.
5916         Also handle trapping expressions (since mems almost always trap)
5917         (simple_mem): Redefine what a simple mem is.
5918
5919 2001-08-03  DJ Delorie  <dj@redhat.com>
5920
5921         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
5922         set from a constant part of the condition.
5923
5924 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
5925
5926         * mkdeps.c (deps_add_default_target): Make local variable
5927         ``start'' a const char pointer.
5928         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
5929
5930 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5931
5932         * doc/install.texi (Configuration): Fix markup.
5933         (Specific, i?86-*-udk): Likewise.
5934         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
5935         --with-gnu-ld.
5936         Document --enable-threads and --enable-libgcj status.
5937         (Specific, mips-sgi-irix*): Canonicalize triples.
5938         (Specific, mips-sgi-irix5): Warn about problems with this config.
5939         Mention required GNU as patch.
5940         Native assembler problems are fixed.
5941         (Specific, mips-sgi-irix6): Update O32 ABI support status.
5942         Document --enable-threads and --enable-libgcj status.
5943
5944 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
5945
5946         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
5947         of mkinstalldirs.
5948
5949 2001-08-03  Richard Henderson  <rth@redhat.com>
5950
5951         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
5952         constant data.
5953
5954 2001-08-03  Richard Henderson  <rth@redhat.com>
5955
5956         * rtlanal.c (find_first_parameter_load): Stop if we
5957         reach a CODE_LABEL at BOUNDARY.
5958
5959 2001-08-03  Richard Henderson  <rth@redhat.com>
5960
5961         * config/alpha/alpha.md (force_movdi): New insn.
5962         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
5963         Tweek FRP marking of VMS prologue insns.
5964         * config/alpha/vms.h (EPILOGUE_USES): New.
5965
5966 2001-08-02  Richard Henderson  <rth@redhat.com>
5967
5968         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
5969
5970 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
5971
5972         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
5973         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
5974         config/convex/convex.h, config/d30v/d30v.c,
5975         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
5976         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
5977         config/mips/mips.h, config/mn10200/mn10200.h,
5978         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
5979         config/v850/v850.h, config/vax/openbsd.h,
5980         config/vax/openbsd1.h, config/vax/ultrix.h,
5981         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
5982         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
5983         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
5984         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
5985         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
5986         in comments and documentation.
5987
5988 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
5989
5990         * line-map.c: New.
5991         * line-map.h: New.
5992         * Makefile.in (line-map.o): New.
5993         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
5994         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
5995         * cpperror.c (print_containing_files): Similarly.
5996         (print_location): Update.  Don't output a space before _Pragma.
5997         * cppfiles.c (stack_include_file): Set to line 1 immediately.
5998         (stack_include_filee, cpp_make_system_header): Update.
5999         (_cpp_execute_include): Get logical line number right for calling
6000         as-yet-unterminated #include.
6001         * cpphash.h (struct cpp_reader): Add line_maps.
6002         (_cpp_do_file_change): Update.
6003         * cppinit.c (cpp_create_reader): Initialize line maps.
6004         (cpp_destroy): Destroy line maps.
6005         (cpp_start_read): Get logical line number right.
6006         * cpplex.c (parse_string): Only warn once for multi-line strings.
6007         Use boolean variable for null warning.
6008         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
6009         already.
6010         (do_include_common): End the directive early.
6011         (do_line): Don't warn about out-of-range lines in preprocessed
6012         source.  Update.  Remove unused variables.
6013         (_cpp_do_file_change): Update for new line mapping.
6014         (pragma_cb): New typedef.
6015         (cpp_register_pragma): Stop looking ahead before calling the
6016         handler.  Clean up.
6017         (do_pragma_system_header): End directive early.
6018         (cpp_get_line_maps): New.
6019         (cpp_pop_buffer): Fudge logical line.  Update.
6020         * cpplib.h: Include line-map.h
6021         (enum cpp_fc_reason): Remove.
6022         (struct cpp_file_change): Update.
6023         (cpp_get_line_maps): New.
6024         * cppmain.c (struct_printer): New member map.
6025         (cb_file_change): Update for new mappings.
6026         * fix-header.c (cb_file_change): Similarly.
6027
6028 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
6029
6030         * Makefile.in (libgcc.mk): Define mkinstalldirs.
6031         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
6032
6033 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
6034
6035         * config/vax/vax.c: include expr.h.
6036
6037 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
6038
6039         * Makefile.in ($(srcdir)/configure): Only rebuild in
6040         maintainer mode.
6041         ($(srcdir)/config.in): Only define in maintainer mode.
6042         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
6043
6044 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
6045
6046         * doc/install.texi (Install GCC: Binaries): Update Bull info.
6047
6048 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6049
6050         * gcc.c (set_collect_gcc_options): New function, split out from
6051         main.
6052         Ignore elided switches.
6053         (do_spec_1): Invoke before executing command.
6054         (set_input): Export.
6055         Move declaration ...
6056         * gcc.h (set_input): ... here.
6057         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
6058         file.
6059
6060 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
6061
6062         Kill -fhonor-std.
6063         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
6064         interaction.
6065         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
6066
6067 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
6068
6069         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
6070         for the unnamed instructions it expands to.
6071
6072 2001-08-02  Richard Henderson  <rth@redhat.com>
6073
6074         * regclass.c (call_really_used_regs): Conditionally define.
6075         (init_reg_sets_1): Don't use it if not defined.
6076         (fix_register): Similarly, don't set it.
6077
6078 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6079
6080         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
6081         Correct comment that had been missed in the previous change.
6082
6083 2001-08-01  Stan Shebs  <shebs@apple.com>
6084
6085         * config/darwin.c (machopic_stub_name): Try matching by name.
6086         (update_stubs): New function.
6087         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
6088         unconditionally.
6089
6090 2001-08-01  Richard Henderson  <rth@redhat.com>
6091
6092         * except.c (output_function_exception_table): Use assemble_align.
6093         * varasm.c (assemble_eh_label): Remove.
6094         (assemble_eh_align, assemble_eh_integer): Remove.
6095
6096 2001-08-01  Robert Lipe  <robertl@caldera.com>
6097
6098         * dwarfout.c: Remove reference to README.DWARF.
6099
6100 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
6101
6102         * regclass.c (call_really_used_regs): New array for registers which
6103         are actually used by a call.
6104         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
6105         new array.
6106         (fix_register): Set call_really_used too.
6107         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
6108         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
6109
6110 2001-08-01  Richard Henderson  <rth@redhat.com>
6111
6112         * read-rtl.c (read_name): Consider \r whitespace.
6113
6114 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
6115
6116         * config.gcc: Recognize powerpc-*-netbsd*.
6117
6118         * doc/install.texi (Host/target specific installation notes for
6119         GCC): Mention powerpc-*-netbsd*.
6120
6121         * config/rs6000/netbsd.h: New file.
6122         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
6123         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
6124         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
6125         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
6126         (TARGET_VERSION): Redefine.
6127
6128         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
6129         mcall-netbsd as a match for mcall-sysv.
6130         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
6131         (ncrti.S, ncrtn.S): New targets.
6132         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
6133
6134         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
6135         "netbsd' as a V4 ABI.
6136         (ASM_SPEC): Check for -mcall-netbsd.
6137         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
6138         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
6139         (LIB_SPEC, ENDFILE_SPEC): Ditto.
6140         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
6141         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
6142         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
6143         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
6144
6145         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
6146         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
6147
6148 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
6149
6150         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
6151         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
6152         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
6153         including "unwind-pe.h".
6154
6155 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
6156
6157         * rs6000.md (define_splits): Kill unused constraints.
6158
6159 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
6160                               Jan Hubicka  <jh@suse.cz>
6161
6162         * function.c (thread_prologue_and_epilogue_insns): Kill code
6163         dealing with non-existent CFG.
6164
6165 2001-08-01  Kazu Hirata  <kazu@hxi.com>
6166
6167         * alias.c: Fix comment formatting.
6168         * bitmap.c: Likewise.
6169         * builtins.c: Likewise.
6170         * calls.c: Likewise.
6171         * c-common.c: Likewise.
6172         * c-decl.c: Likewise.
6173         * c-dump.c: Likewise.
6174         * c-lex.c: Likewise.
6175         * collect2.c: Likewise.
6176         * combine.c: Likewise.
6177         * conflict.c: Likewise.
6178         * cppfiles.c: Likewise.
6179         * cppinit.c: Likewise.
6180         * cpplex.c: Likewise.
6181         * cpplib.c: Likewise.
6182         * cppmacro.c: Likewise.
6183         * cppspec.c: Likewise.
6184         * c-pragma.c: Likewise.
6185         * crtstuff.c: Likewise.
6186         * cse.c: Likewise.
6187         * cselib.c: Likewise.
6188         * c-semantics.c: Likewise.
6189         * c-typeck.c: Likewise.
6190
6191 2001-08-01  H.J. Lu <hjl@gnu.org>
6192
6193         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
6194
6195 2001-08-01  H.J. Lu <hjl@gnu.org>
6196
6197         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
6198
6199 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
6200
6201         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
6202         contextualizing Objective-C class name lookup by the lexer.
6203         (typespec_reserved_nonattr): Disable ObjC class name lookup after
6204         seeing a TYPESPEC.
6205         (protocoldef): Add support for forward @protocol declarations.
6206         (yylexname): Suppress ObjC class name lookup in certain contexts;
6207         re-enable after lookup is complete.
6208         (_yylex): Re-enable ObjC class name lookup when certain
6209         punctuation marks are seen.
6210
6211         * objc/objc-act.c (check_protocol_recursively): New function used
6212         for finding circular dependencies in protocols.
6213         (objc_declare_protocols): New function for handling forward
6214         @protocol declarations.
6215         (receiver_is_class_object): Detect the case when 'self' is used
6216         inside of a class method.
6217         (build_message_expr): Issue a warning if class method is desired
6218         but instance method is found instead.
6219         (conforms_to_protocol): Streamline.
6220         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
6221         protocol Foo, even if 'Bar foo' does not.
6222         (check_protocols): Streamline.
6223         (start_protocol): Add checks for circular and duplicate protocol
6224         definitions.
6225         (encode_aggregate_within): For typedefs of structs, encode the
6226         underlying struct.
6227         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
6228         (objc_declare_protocols): New prototype.
6229
6230 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6231
6232         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
6233         * cpplex.c (handle_newline): Update prototype.  Maintain logical
6234         line number.
6235         (skip_escaped_newlines, skip_block_comment, parse_string):
6236         Update accordingly.
6237         (_cpp_lex_token): Update, and store token position within the token.
6238         * cpplib.h (struct cpp_token): Add line and column entries.
6239         * cppmacro.c (replace_args): Position stringified tokens correctly.
6240
6241 2001-08-01  Andreas Jaeger  <aj@suse.de>
6242
6243         * basic-block.h: Add prototype for last_loop_beg_note.
6244
6245 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
6246
6247         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
6248         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
6249         comment.
6250         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
6251         while handling WITH_CLEANUP_EXPR node. Use second operand calling
6252         expand_decl_cleanup.
6253         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
6254         the first RTX.
6255         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
6256         operand while calling simple_cst_equal.
6257         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
6258         operand is the cleanup expression, the third is the RTL_EXPR.
6259         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
6260
6261 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
6262
6263         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
6264
6265 2001-07-31  matthew green  <mrg@eterna.com.au>
6266
6267         * config.gcc (i386-*-netbsdelf): New description.
6268         * config/i386/netbsd-elf.h: New file.
6269
6270 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
6271
6272         * loop.c (check_dbra_loop): Use single_set to compute
6273         jump_label.
6274
6275 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
6276
6277         PowerPC reorg and support for powerpc64-*-linux*.
6278
6279         Also fixes emitting of constants on 32 bit and 64 bit
6280         platforms.
6281
6282         * config.gcc: powerpc64-*-linux* is a new target.
6283         Things that needed aix.h now also include xcoff.h
6284
6285         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
6286         xcoff.h.
6287         Move AIX specific stuff into aix.h.
6288         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
6289         with more than just XCOFF now.
6290         (SET_ASM_OP): Remove, now defined where needed.
6291         (FUNCTION_PROLOGUE): New macro definition.
6292         (FUNCTION_EPILOGUE): New macro definition.
6293         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
6294
6295         * config/rs6000/xcoff.h: New file.
6296
6297         * config/rs6000/linux64.h: New file.
6298
6299         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
6300
6301 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
6302
6303         * rs6000.c (print_operand_address): Handle ELF syntax.
6304         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
6305         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
6306         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
6307
6308 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
6309
6310         * rs6000.c (rs6000_override_options): Only disable
6311         flag_function_sections for XCOFF.
6312         (exact_log2_cint_operand): New predicate.
6313         (reg_or_{add,sub}_cint64_operand): New predicates.
6314         (add_operand): Compare CONST_INT with fewer function calls.
6315         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
6316         (print_operand, case 'p'): Ensure positive operand.
6317         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
6318         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
6319         (PREDICATE_CODES): Add new predicates.
6320         * rs6000.md (addsi3): Split 32-bit constants more correctly.
6321         (divsi3, modsi3): Ensure positive power-of-2.
6322         (adddi3): Use new predicate.  Split 32-bit constants more
6323         correctly.  Re-arrange splitter to handle any constant.
6324         (subdi3): Use new predicate.
6325         (divdi3, moddi3): Ensure positive power-of-2.
6326         (movdi): Use rs6000_emit_set_const.
6327         (load_toc_v4_pic_di): Delete.
6328
6329 2001-07-31  Graham Stott <grahams@redhat.com>
6330
6331         * function.c (pad_below): Revert 2001-07-26 patch.
6332
6333 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
6334
6335         * reg-stack (convert_regs_1): Fix best edge condition.
6336
6337 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
6338
6339         * jump.c (duplicate_loop_exit_test): Better test for jumps
6340         entering the loop; create loop pre_header.
6341
6342 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
6343
6344         * doc/install.texi: Add s390 and s390x as new targets.
6345         * doc/invoke.texi: Add documantation of S/390 and zSeries
6346         target options.
6347         * doc/md.texi: Add documantation of S/390 and zSeries constraints.
6348
6349 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
6350
6351         * config/m68k/m68k.md: Replace all general_operand with
6352         nonimmediate_operand for all destinations.
6353         * config/m68k/m68k.c (not_sp_operand): Likewise.
6354
6355 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
6356
6357         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
6358
6359 2001-07-30  Richard Henderson  <rth@redhat.com>
6360
6361         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
6362         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
6363
6364 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
6365
6366         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
6367         Add missing doc strings
6368         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
6369         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
6370
6371 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
6372
6373         * i386.c (ix86_output_main_function_alignment_hack): New function.
6374         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
6375
6376         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
6377         edges by EDGE_DFS_BACK flag.
6378         (dump_edge_info): Add dfs_back flag.
6379         * basic-block.h (EDGE_DFS_BACK): New constant.
6380         (mark_dfs_back_edges): Declare.
6381         * alias.c (loop_p): Remove.
6382         (mark_constant_function): Use mark_dfs_back_edges.
6383
6384         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
6385         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
6386         (compensate_edge): Break out from ...
6387         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
6388         (convert_regs_2): Set block_done once block is really done;
6389         Do updating of the predecesors counts.
6390
6391         * toplev.c (rest_of_compilation): Recompute block_for_insn
6392         before post-reload cfg_cleanup.
6393         * function.c (thread_prologue_epilogue_insns):
6394         Call set_block_for_new_insns when emitting prologue directly.
6395
6396 2001-07-30  Andreas Jaeger  <aj@suse.de>
6397
6398         * jump.c: Add prototype for mark_modified_reg.
6399
6400         * cse.c (set_live_p): Add unused attribute.
6401
6402         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
6403         overflow.
6404         (scan_for_source_files): Use long for count to avoid overflow.
6405         (output_data): Likewise.
6406         (output_data): Don't use string concatatenation to silence gcc
6407         -traditional.
6408
6409         * predict.c: Fix typos and grammar.
6410
6411         * gcse.c (insert_insn_end_bb): Remove unused variables.
6412
6413 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
6414
6415         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
6416         (attempt_auto_inc): LIkewise.
6417         (mark_used_reg): Likewise.
6418         (try_pre_increment_1): Likewise.
6419         * regclass.c (regclass): Likewise.
6420         * global.c (allocno_compare): Update comment; change scaling factor.
6421         * local-alloc.c (QTY_CMP_PRI): Likewise.
6422         * regs.h (REG_FREQ_FROM_BB): New.
6423         (REG_FREQ_MAX): Likewise.
6424
6425 2001-07-30  H.J. Lu <hjl@gnu.org>
6426
6427         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
6428         -D_GNU_SOURCE.
6429
6430 2001-07-30  H.J. Lu  (hjl@gnu.org)
6431
6432         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
6433         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
6434         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
6435
6436 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
6437
6438         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
6439         as -mthumb-interwork when -mcpu=arm7 is specified.
6440
6441 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
6442
6443         * predict.def (noreturn, loop branch, loop exit): Mark as first
6444         match heuristics.
6445
6446 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
6447
6448         * combine.c (try_combine): Avoid barrier after noop jumps.
6449
6450 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6451
6452         * cpphash.h (struct cpp_reader): Remove import_warning.
6453         * cpplib.c (skip_rest_of_line): Don't bother turning off
6454         macro expansion.
6455         (parse_include): Move include handling to...
6456         (do_include_common): ... here.  Move import warning from...
6457         (do_import): ... here.
6458         (do_pragma_poison): Don't do a callback for poison identifiers.
6459         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
6460         * cppmain.c (setup_callbacks): Similarly.
6461
6462 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
6463
6464         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
6465         handle multiple sets.
6466         * except.c (sjlj_mark_call_sites): .... here.
6467         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
6468
6469 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
6470
6471         Suggested by Richard Henderson and Richard Kenner:
6472         * combine.c (recog_for_combine): Use the fake recog
6473         only if instruction does not match.
6474         * rtl.h (NOOP_MOVE_INSN_CODE): New.
6475         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
6476
6477         * combine.c (try_combine): Discover noop jump as direct jump.
6478
6479 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
6480
6481         * df.c (df_rd_global_compute): Add successors to worklist, not
6482         current item.
6483         (df_ru_global_compute): Ditto.
6484
6485 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
6486
6487         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
6488         increment REG_N_SETS.
6489
6490 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
6491
6492         * sbitmap.h: New prototype for sbitmap_a_xor_b.
6493
6494         * sbitmap.c (sbitmap_a_xor_b): New function.
6495         ifdef the basic block stuff on IN_GCC.
6496
6497 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6498
6499         * cppexp.c (parse_defined): Always record the macro name.
6500         (lex): Don't worry about identifiers, or special-case
6501         CPP_NOT here.
6502         (_cpp_parse_expr): Figure out at the end of the routine
6503         whether we saw a valid !defined() expression.
6504         * cppfiles.c (stack_include_file): Update for mi_valid.
6505         (_cpp_pop_file_buffer): Similarly.
6506         * cpplex.c (_cpp_lex_token): Similarly.
6507         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
6508         mi_if_not_defined, mi_lexed): Remove.
6509         (mi_valid): New.
6510         * cpplib.c (do_if): Simplify.
6511         (do_endif, push_conditional, _cpp_handle_directive): Update
6512         for renaming of mi_state to mi_valid.
6513 doc:
6514         * cpp.texi: Add index entries for digraphs, and add comment
6515         that C++ refers to them as alternative tokens.
6516
6517 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
6518
6519         * basic-block.h (CLEANUP_PRE_LOOP): New.
6520         * except.c (finish_eh_generation): Update call of cleanup_cfg.
6521         * sibcall.c (optimize_sibling_calls): Likewise.
6522         * toplev.c (rest_of_compilation): Likewise.
6523         * flow.c (try_forward_edges): Take argument MODE;
6524         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
6525         (try_optimize_cfg): Update call of try_forward_edges.
6526
6527 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
6528                                Jan Hubicka  <jh@suse.cz>
6529
6530         * (validate_replace_rtx_1): Fix simplification of MINUS.
6531
6532 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6533
6534         PR preprocessor/3669
6535         * cppinit.c (init_dependency_output): Turn off dump requests
6536         if sending dependencies to stdout.
6537
6538 2001-07-28  Richard Henderson  <rth@redhat.com>
6539
6540         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
6541         not optimizing.
6542
6543 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
6544
6545         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
6546
6547 2001-07-28  Kazu Hirata  <kazu@hxi.com>
6548
6549         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
6550         is VAR_DECL first to prevent an ICE.
6551
6552 2001-07-28  Richard Henderson  <rth@redhat.com>
6553
6554         * varasm.c (immed_real_const_1): Don't elide special cases for
6555         nested functions.
6556         (clear_const_double_mem): Clear const_tiny_rtx too.
6557
6558 2001-07-28  Richard Henderson  <rth@redhat.com>
6559
6560         * dwarf2out.c (dw_val_class_offset): New.
6561         (struct dw_ranges_struct, dw_ranges_ref): New.
6562         (ranges_table, ranges_table_allocated): New.
6563         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
6564         (add_AT_offset, add_ranges, output_ranges): New.
6565         (print_die, output_die): Handle dw_val_class_offset.
6566         (attr_checksum, size_of_die, value_format): Likewise.
6567         (gen_lexical_block_die): Handle non-contiguous blocks.
6568         (gen_block_die): Likewise.
6569         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
6570         if needed.  Dump the ranges table.
6571         * final.c (final_start_function): Remove unnecessary notes and
6572         rebuild the block tree before numbering the blocks.
6573         * function.c (reorder_blocks_0): Walk the existing block tree
6574         to unmark all blocks.
6575         (reorder_blocks_1): Create block fragments when duplicate block
6576         notes are seen.
6577         (reorder_fix_fragments): New.
6578         (reorder_blocks): Call it.
6579         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
6580
6581 2001-07-28  Richard Henderson  <rth@redhat.com>
6582
6583         * emit-rtl.c (adjust_address): Make a copy of the memory address.
6584
6585 2001-07-28  Richard Henderson  <rth@redhat.com>
6586
6587         * flow.c (add_to_mem_set_list): New function.
6588         (init_propagate_block_info): Use it.
6589         (mark_set_1): Likewise.
6590         (insn_dead_p): Canonicalize memory address for dead store
6591         comparison.  Allow wider mode stores to kill narrower mode stores.
6592         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
6593         (invalidate_mems_from_set): Don't handle MEMs.
6594
6595 2001-07-28  Kazu Hirata  <kazu@hxi.com>
6596
6597         * config/h8300/h8300.h: Fix formatting.
6598
6599 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
6600
6601         * basic-block.h (EDGE_FREQUENCY): New macro.
6602         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
6603         for new BB/edges.
6604         * flow.c (find_sub_basic_blocks): Likewise.
6605         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
6606         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
6607
6608         * predict.c (DEF_PREDICTOR): New argument FLAGS.
6609         (HITRATE): New macro.
6610         (PRED_FLAG_FIRST_MATCH): New constant.
6611         (predictor_info): New field flgags.
6612         (combine_predictions_for_insn): Use DS theory to combine
6613         probabilities; set the edge probabilities when finished.
6614         (estimate_probability): Avoid duplicated matches
6615         of LOOP_BRANCH heuristics for nested loops; update comment.
6616         * predict.def: Add flags for each prediction, set probabilities
6617         according to B&L paper.
6618         * predict.h (DEF_PREDICTOR): New argument FLAGS.
6619
6620         * profile.c (compute_branch_probabilities):  Cleanup way the edge
6621         probabilities are computed and REG_BR_PROB notes are dropped; if
6622         values does not match, emit error.
6623         (init_branch_prob): Do error instead of warning when profile driven
6624         feedback is missing or corrupt.
6625
6626 2001-07-27  DJ Delorie  <dj@redhat.com>
6627
6628         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
6629         against a constant, try to adjust the compare to have the desired
6630         constant in it so that min/max optimizations happen more often.
6631
6632 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
6633
6634         * flow.c (last_loop_beg_note): New function.
6635         (redirect_edge_and_branch): Use it.
6636         (split_edge): Likewise.
6637
6638         * alias.c (loop_p): Avoid uninitialized memory access.
6639
6640         * flow.c (try_forward_edges): Avoid accessing freed memory.
6641
6642         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
6643         variable access.
6644
6645 2001-07-26  Andrew Haley  <aph@redhat.com>
6646         Joern Rennecke <amylaar@redhat.com>
6647
6648         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
6649         (SUBTARGET_CPP_ENDIAN_SPEC): New.
6650         (SUBTARGET_CPP_SPEC): New.
6651         (CPP_SPEC): Remove.
6652         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
6653         (SUBTARGET_CPP_PTR_SPEC): New.
6654         (CPP_DEFAULT_CPU_SPEC): New.
6655         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
6656         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
6657         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
6658         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
6659         (SUBTARGET_CPP_SPEC): Define as an empty string.
6660
6661 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6662
6663         * doc/install.texi (Configuration): Properly link the host
6664         specific instructions also when generating HTML.
6665
6666 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
6667
6668         * flow.c (redirect_edge_and_branch_force): Test
6669         target->global_live_at_start.
6670
6671 2001-07-26  Richard Henderson  <rth@redhat.com>
6672
6673         * simplify-rtx.c (avoid_constant_pool_reference): Export.
6674         * rtl.h (avoid_constant_pool_reference): Declare it.
6675         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
6676         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
6677
6678 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
6679
6680         * rtl.h (cleanup_barriers): Declare.
6681         * jump.c (cleanup_barriers): New function.
6682         * toplev.c (rest_of_compilation): Call cleanup_barriers
6683         before loop optimizer and after bb_reorder.
6684
6685         * flow.c (back_edge_of_syntactic_loop_p): New.
6686         (split_edge): Use it.
6687
6688 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6689
6690         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
6691
6692 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
6693
6694         * cse.c (cse_process_notes): Replace any registers if the address
6695         remains valid.
6696
6697 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
6698
6699         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
6700         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
6701         (propagate_block): Update prototype.
6702         * flow.c (update_life_info): Simplify the CFG and
6703         recalculate the global regs which are alive when
6704         removing dead code during a global update.
6705         (propagate_block): Return non-zero if an INSN is
6706         deleted.
6707
6708 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6709
6710         * Makefile.in (LIBICONV): Define.
6711
6712 2001-07-26  Catherine Moore  <clm@redhat.com>
6713
6714         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
6715         of conditional to avoid tree checking errors.
6716
6717 2001-07-26  Kazu Hirata  <kazu@hxi.com>
6718
6719         * regmove.c (regmove_optimize): Don't replace a reg with
6720         another reg of a different mode.
6721
6722 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
6723
6724         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
6725         limit length of dependancy flush list.
6726         * params.h (MAX_PENDING_LIST_LENGTH): Define.
6727         * sched-int.h  (struct deps): Add pending_flush_length field.
6728         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
6729         has 1 element in it.
6730         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
6731         (sched_analyze): After a jump, if the pending memory flush list is too
6732         large, flush the pending lists.
6733         (init_deps): Initialize pending_flush_length to 0.
6734         * doc/invoke.texi (max_pending_list_length): Document parameter.
6735
6736 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
6737
6738         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
6739         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
6740         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
6741
6742 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6743
6744         * cpphash.h (struct_lexer_state): Delete was_skipping.
6745         Move skipping here from struct cpp_reader.
6746         * cpplex.c (parse_identifier): Update.
6747         (_cpp_lex_token): Don't skip tokens in a directive.
6748         * cpplib.c (struct if_stack): Update.
6749         (start_directive, end_directive): Don't change skipping state.
6750         (_cpp_handle_directive): Update.
6751         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
6752         (do_else, do_endif): Update; only check for excess tokens if not
6753         in a skipped conditional block.
6754         (push_conditional): Update for new struct if_stack.
6755
6756 2001-07-26  Graham Stott  <grahams@redhat.com>
6757
6758         * function.c (locate_and_pad_parm): Also pad initial offset
6759         so that the total argument size also includes the padding.
6760
6761 2001-07-26  Graham Stott <grahams@redhat.com>
6762
6763         * gensupport.c (alter_output_for_insn): Correct enable checking failure
6764         change XSTR to XTMPL.
6765
6766         (process_one_cond_exec): Likewise
6767
6768 2001-07-25  Richard Henderson  <rth@redhat.com>
6769
6770         * varasm.c (assemble_variable): Create DECL_RTL before setting
6771         TREE_ASM_WRITTEN.
6772
6773 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
6774
6775         * predict.c (estimate_probability): Avoid duplicated predictions.
6776
6777         * loop.c (find_and_verify_loops): Grok multiple barriers.
6778
6779 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6780
6781         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
6782
6783         * dbxout.c: Consistently use putc instead of fputc.
6784         (print_wide_int): New function; call instead of direct fprintf.
6785         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
6786         (dbxout_type_fields, dbxout_type_method_1): Likewise.
6787         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
6788         (print_int_cst_octal): Likewise.
6789         (print_octal): Show we wrote characters.
6790         (dbxout_type): Set have_used_extensions in more places.
6791
6792 2001-07-25  Catherine Moore  <clm@redhat.com>
6793
6794         * config/v850/v850.c (v850_va_arg):  Use addr
6795         instead of valist to build incr.
6796
6797 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
6798
6799         * flow.c (delete_dead_jumptables): New function.
6800         (life_analyzis): Call it.
6801         * bb-reorder.c (skip_insns_after_block): Handle contradictory
6802         sequences.
6803
6804 2001-07-25  Richard Henderson  <rth@redhat.com>
6805
6806         * except.c (reachable_handlers): Handle a region being removed
6807         out from under a RESX.
6808
6809 2001-07-25  Richard Henderson  <rth@redhat.com>
6810
6811         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
6812         swap GE/GT if it is an fp comparison.
6813
6814 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
6815
6816         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
6817         operands.
6818
6819 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
6820
6821         * ssa.c (rename_insn_1): Do not wrap an assignment to a
6822         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
6823         glitch.
6824
6825         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
6826         throw an exception.
6827         (visit_expression): When attempting to simplify an expression,
6828         retrieve any modes for arguments before they are simplified
6829         to constants.
6830
6831 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
6832             Janis Johnson  <janis@us.ibm.com>
6833
6834         * stmt.c (expand_goto): A nonlocal goto can be a call too.
6835         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
6836         pointer parameters to match documented usage of nonlocal_goto.
6837         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
6838         parameters to their correct order.
6839         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
6840         parameters to their correct order.
6841
6842 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
6843
6844         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
6845
6846 2001-07-25  Jan Hubicka  <jh@suse.cz>
6847             Richard Henderson  <rth@redhat.com>
6848
6849         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
6850         the sequence.
6851         (make_edges): New argument update_p; populate the edge cache if set.
6852         (find_basic_blocks): Update make_edges invocation.
6853
6854 2001-07-24  Joel Sherrill <joel@OARcorp.com>
6855
6856         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
6857
6858 2001-07-24  Joel Sherrill <joel@OARcorp.com>
6859
6860         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
6861         -Acpu and -Amachine.h.
6862         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
6863         Corrected header to say ELF not a.out.
6864         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
6865         when given -msoft-float.
6866
6867 2001-07-24  Joel Sherrill <joel@OARcorp.com>
6868
6869         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
6870         extra multilib parts like arm-elf.
6871         (i960-*-coff*, i960-*-rtems): Should not use collect2.
6872         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
6873         crtfini.o as extra multilib parts.
6874
6875 2001-07-24  Joel Sherrill <joel@OARcorp.com>
6876
6877         * configure.in: Add rtems as a supported thread model.
6878         * gthr-rtems.h: Add missing entry point __gthread_active_p.
6879         * configure: Rebuilt.
6880
6881 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
6882
6883         * stor-layout.c (get_mode_alignment): make it work when
6884         BITS_PER_UNIT is not a power of two.
6885         * builtins.c (get_pointer_alignment): Likewise.
6886
6887 2001-07-24  Richard Henderson  <rth@redhat.com>
6888
6889         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
6890         the retrieved constant into the expected mode.
6891
6892 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
6893
6894         * flow.c (try_simplify_condjump): Avoid duplicated edges.
6895         (verify_flow_info): Check for duplicated edges; clarify
6896         error reporting.
6897
6898         * flow.c (block_label): Update basic_block_for_insn.
6899         (commit_edge_insertions): Call compute_bb_for_insn.
6900
6901         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
6902         returns too.
6903
6904         * flow.c (redirect_edge_and_branch,
6905         try_optimize_cfg): Use redirect_edge_succ_nodup
6906         (redirect_edge_succ_nodup): New.
6907         * basic_block.h (redirect_edge_succ_nodup): Declare.
6908
6909         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
6910         after gcse.
6911
6912 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
6913
6914         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
6915         (try_crossjump_to_edge): Update commetns.
6916         (try_crossjump_bb): Likewise.
6917
6918 2001-07-24  Richard Henderson  <rth@redhat.com>
6919
6920         * combine.c (distribute_notes): Move set of need_refresh
6921         for noop_move_p down to catch all cases.
6922
6923 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
6924
6925         * recog.c (split_all_insns_noflow): New.
6926         * rtl.h (split_all_insns_noflow): Declare.
6927         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
6928         * m68hc11.c (m68hc11_reorg): Likewise.
6929         * sh.c (machine_dependent_reorg): Likewise.
6930         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
6931         call.
6932
6933 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
6934
6935         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
6936         (ashlsi3_n splitter): Likewise.
6937         (lshrsi3_n splitter): Likewise.
6938
6939         (GOTaddr2picreg): Make const SImode.
6940         (sym_label2reg): Likewise.
6941         (symGOT2reg): Likewise.
6942         (symGOTOFF2reg) Likewise.
6943
6944         (casesi_worker_0): Make unspec SImode.
6945
6946 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
6947
6948         * config/sh/sh.c (barrier_align): Check that an operand really is
6949         an insn before extracting its INSN_CODE.
6950
6951 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
6952
6953         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
6954         dangling else.
6955
6956         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
6957         for SImode to prevent overflow.
6958
6959 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6960
6961         * config/mips/irix6-libc-compat.c: New file.
6962         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
6963         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
6964         passing workaround.
6965
6966 2001-07-24  lars brinkhoff  <lars@nocrew.org>
6967
6968         * rtl.texi (REG_POINTER): Document.
6969         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
6970         QFmode, HFmode, TQFmode, QCmode, and HCmode.
6971
6972 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
6973
6974         * flow.c (delete_noop_moves): Do not confuse libcall regions.
6975
6976 2001-07-23  Richard Henderson  <rth@redhat.com>
6977
6978         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
6979
6980 2001-07-23  Kazu Hirata  <kazu@hxi.com>
6981
6982         * config/h8300/h8300-protos.h: Add a prototype for
6983         general_operand_dst_push.
6984         * config/h8300/h8300.c (general_operand_dst_push): New.
6985         * config/h8300/h8300.h (OK_FOR_T): New.
6986         (EXTRA_CONSTRAINT): Use it.
6987         * config/h8300/h8300.md (movqi_push): Remove and integrate into
6988         the existing movqi pattern.
6989         (movhi_push): Likewise.
6990
6991         * reload.c: Fix comment typos.
6992
6993 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
6994
6995         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
6996
6997 2001-07-23  H.J. Lu  (hjl@gnu.org)
6998
6999         * doc/extend.texi: Update __builtin_return_address and
7000         __builtin_frame_address.
7001
7002 2001-07-23  Richard Henderson  <rth@redhat.com>
7003
7004         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
7005         before CSE.
7006         * config/i386/i386.md: New setcc+movzbl peephole2.
7007
7008 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7009
7010         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
7011         * objc/objc-act.c: Include debug.h.
7012         (synth_module_prologue): Save and restore debug hooks too.
7013
7014 2001-07-23  lars brinkhoff  <lars@nocrew.org>
7015
7016         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
7017         and C4X_FLOAT_FORMAT.
7018         (BOOL_TYPE_SIZE): Document.
7019
7020 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
7021
7022         * unroll.c (loop_iterations): Fix miscalculation of initial
7023         giv offset.
7024
7025 2001-07-13  Andrew Haley  <aph@redhat.com>
7026
7027         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
7028         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
7029         * config/sh/sh.c (sh_can_redirect_branch): New function.
7030         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
7031         * reorg.c (steal_delay_list_from_target): Use
7032         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
7033
7034 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
7035
7036         * flow.c (try_simplify_condjump): Unlink insn chain on
7037         fallthru edge; use can_fallthru.
7038
7039 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
7040
7041         * basic-block.h (find_sub_basic_block): Declare.
7042         * flow.c (make_edges): New arguments MIN and MAX;
7043         (find_sub_basic_blocks): Revamp to use make_edges
7044         and purge_dead_edges.
7045         (find_basic_blocks): Update call of find_sub_basic_block.
7046
7047         * recog.c (split_all_insns): Always expect CFG to be consistent;
7048         call find_sub_basic_blocks in case something has changed.
7049         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
7050         has been built.
7051
7052         * basic-block.h (delete_noop_moves): Declare.
7053         * combine.c (combine_instructions): Call it.
7054         (recog_for_combine): Tolerate noop moves
7055         (distribute_notes): Force refresh when register dies at noop move.
7056         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
7057         too.
7058         (life_analysis): Update delete_noop_moves call.
7059         (set_noop_p): Move too ...
7060         * rtlanal.c (noop_move_p): ... here.
7061         * rtl.h (noop_move_p): Declare.
7062
7063         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
7064         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
7065         after combine.
7066         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
7067         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
7068
7069 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
7070
7071         * reload.c (push_reload): Fix typo in comment.
7072         (find_reloads_address): Ditto.
7073         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
7074
7075 2001-07-22  Richard Henderson  <rth@redhat.com>
7076
7077         * flow.c: Grammar check and clarify a lot of comments.
7078         (try_simplify_condjump): Rename variables to be clearer.
7079         (try_forward_edges): Skip complex and fallthru edges.
7080         Rearrange tests to avoid duplicate checks.
7081         (flow_find_cross_jump): Likewise.
7082         (outgoing_edges_match): Allow match if neither branch has
7083         probability data.  Loosen probability match to 5%.
7084         (try_crossjump_to_edge): Hoist repeated indirection into
7085         local variables.
7086         (try_crossjump_bb): Don't check complex edges.  Eliminate
7087         redundant crossjump tests.
7088         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
7089         checks before more expensive checks.
7090
7091 2001-07-22  Richard Henderson  <rth@redhat.com>
7092
7093         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
7094         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
7095         arguments.
7096
7097 2001-07-22  Richard Henderson  <rth@redhat.com>
7098
7099         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
7100         (const_sint32_operand): Likewise.
7101         * m68k.md (anon mulsi pattern): Use const_int_operand not
7102         const_sint32_operand.
7103         (umulsi3_highpart): Zero extend a constant input.
7104         (smulsi3_highpart): Don't bother checking SImode constant.
7105         (const_umulsi3_highpart): Give op3 DImode.
7106         (const_smulsi3_highpart): Likewise.
7107
7108 2001-07-22  Richard Henderson  <rth@redhat.com>
7109
7110         * flow.c (split_block): Make sure bb_note is included in the
7111         new block when splitting before a label.
7112
7113 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
7114
7115         * basic-block.h (redirect_edge_and_branch_force,
7116         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
7117         * flow.c (redirect_edge_and_branch_force,
7118         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
7119         (redirect_edge_and_branch_force): Fix copying of lifeness information.
7120         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
7121         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
7122         instead of label; update CFG after transformation.
7123         (find_if_case_1): Update call, use redirect_edge_and_branch_force
7124         for finishing the transformation; handle even case where ELSE
7125         does not follow THEN.
7126         (find_if_case_2): Update call of dead_or_predictable; simplify
7127         CFG update.
7128
7129         * emit-rtl.c (split_branch_probability): New global variable.
7130         (try_split): Take care to set split_branch_probability and
7131         create REG_BR_PROB note for new jump insns.
7132         * md.texi (define_split): Document new feature.
7133
7134         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
7135
7136 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7137
7138         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
7139         (asm_out_file): Remove redundant declaration.
7140         (assemble_asm): Remove old #if 0 block.
7141         (assemble_variable): Remove end of function; debug output is
7142         now handled with global_decl.  Remove old #if 0 block.  Update.
7143         Remove saved_in_section and associated no-op code.
7144         * Makefile.in (varasm.o): Correct dependencies.
7145
7146 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
7147
7148         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
7149         the definition in defaults.h.
7150
7151 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
7152
7153         * jump.c: Update comments.
7154         (delete_barrier_successors, delete_unreferenced_labels,
7155         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
7156         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
7157         jump_optimize, jump_optimize_minimal): Kill.
7158         (rebuild_jump_labels): Move code from jump_optimize_1.
7159         (purge_line_number_notes): Likewise.
7160         (copy_loop_headers): Likewise.
7161         * reg-stack.c: Update comment.
7162         * stmt.c: Likewise.
7163         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
7164         JUMP_AFTER_REGSCAN): Kill.
7165         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
7166         purge_line_number_notes and copy_loop_headers.
7167
7168 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
7169            Richard Henderson  <rth@redhat.com>
7170
7171         * dbxout.c (dbxout_global_decl): New.
7172         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
7173         * sdbout.c (sdbout_finish): New.
7174         (sdbout_debug_hooks): Use it, add comments.
7175         (sdbout_global_decl): Defer initialised public vars to
7176         sdbout_finish.
7177         * varasm.c (assemble_variable): Don't output debug information
7178         for file-scope variables.
7179
7180 2001-07-22  Richard Henderson  <rth@redhat.com>
7181
7182         * config/alpha/alpha.c (get_trap_mode_suffix): New.
7183         (get_round_mode_suffix): New.
7184         (print_operand): Use them for [/].  Remove support for [&'`()+].
7185         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
7186         * config/alpha/alpha.md (attr round_suffix): New.
7187         (attr trap_suffix): New.
7188         (all insns): Set them appropriately.  Use %/ instead of the
7189         myriad punctuators.
7190
7191 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7192
7193         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
7194
7195 2001-07-22  Richard Henderson  <rth@redhat.com>
7196
7197         * regrename.c (regrename_optimize): Compute nregs for each
7198         potential target register.
7199
7200 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
7201            Richard Henderson  <rth@redhat.com>
7202
7203         * dbxout.c (dbxout_global_decl): New.
7204         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
7205         * sdbout.c (sdbout_finish): New.
7206         (sdbout_debug_hooks): Use it, add comments.
7207         (sdbout_global_decl): Defer initialised public vars to
7208         sdbout_finish.
7209         * varasm.c (assemble_variable): Don't output debug information
7210         for file-scope variables.
7211
7212 2001-07-21  H.J. Lu  (hjl@gnu.org)
7213
7214         * config/mips/mips.c (mips_cpu): Moved into ...
7215         (override_options): Here.
7216
7217         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
7218         mips_tune.
7219         (mips_cpu): Removed.
7220
7221 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7222
7223         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
7224         ("iorqi3"): Likewise.
7225         ("xorqi3"): Likewise.
7226         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
7227         ("*subhi3_sp): Likewise.
7228         ("*subhi3"): Likewise.
7229         ("extendhisi2"): Accept D, X and Y as source operand to avoid
7230         reload problems.
7231
7232 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
7233
7234         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
7235         * config/freebsd.h: Likewise.
7236         * config/linux.h: Likewise.
7237         * config/openbsd.h: Likewise.
7238         * config/alpha/linux-elf.h: Likewise.
7239         * config/arm/linux-elf.h: Likewise.
7240         * config/d30v/d30v.h: Likewise.
7241         * config/fr30/fr30.h: Likewise.
7242         * config/ia64/aix.h: Likewise.
7243         * config/ia64/ia64.h: Likewise.
7244         * config/mips/linux.h: Likewise.
7245         * config/pj/pj.h: Likewise.
7246         * config/rs6000/linux.h: Likewise.
7247         * config/sparc/linux.h: Likewise.
7248         * config/sparc/linux64.h: Likewise.
7249
7250 2001-07-20  Bruce Korb  <bkorb@gnu.org>
7251
7252         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
7253         because getc() and char* may disagree on signedness.
7254
7255 2001-07-20  Richard Henderson  <rth@redhat.com>
7256
7257         * doc/rtl.texi (REG_DEAD): Update for current semantics.
7258
7259         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
7260         insns to delete in the presence of cc0 in a jump insn.
7261
7262 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
7263                                Jan Hubicka  <jh@suse.cz>
7264
7265         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
7266         of doing the change by hand.
7267
7268 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
7269
7270         * rtlanal.c (set_noop_p): Return true for noop jumps.
7271
7272         * expr.c (emit_single_push_insn): Add call to push expander.
7273         * expr.h (optab_index): Add OTI_push
7274         (push_optab): New constant.
7275         * genopinit.c (optabs): Add push_optab.
7276         * optabs.c (init_optab): Init push optab.
7277         * md.texi (push??1): Document
7278
7279 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7280
7281         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
7282         expand to emit the pattern; put a REG_INC note for push/pop
7283         instructions.
7284         ("movdf", "movdf_internal"): Likewise.
7285         ("movsi", "movsi_internal"): Likewise.
7286         ("movsf", "movsf_internal"): Likewise.
7287         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
7288
7289 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7290
7291         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
7292         gen_highpart.
7293
7294 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
7295
7296         * params.def: Change default max inline insns to 100.
7297
7298 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
7299
7300         * combine.c (combine_simplify_rtx): Generate a new shift operation
7301         when simplifying the first operand of a (neg (ashift)) expression.
7302
7303 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
7304
7305         * regclass.c (N_REG_INTS): Use only 32 bits per element.
7306
7307 2001-07-20  Kelley Cook  <kelley.cook@home.com>
7308
7309         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
7310         information.   Move rest into ...
7311         (*-*-solaris): ... here.  Eliminate redundant information and
7312         reword necessary packages section.  Delete 4.x assembler bug info.
7313         (sparc-sun-*): Merge into ...
7314         (sparc-sun-sunos*): here.
7315
7316 2001-07-20  Catherine Moore  <clm@redhat.com>
7317
7318         * config/v850/v850.md (casesi): Generate LABEL_REF
7319         with Pmode.
7320
7321 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
7322
7323         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
7324         * i386.c (ix86_zero_extend_to_Pmode): Make global.
7325         * i386.md (strclrsi expander): Use it.
7326
7327 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
7328
7329         * integrate.c (copy_insn_list): handle
7330         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
7331         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
7332         identically as to CODE_LABEL.
7333
7334         * fold-const (fold): Convert A/B/C to A/(B*C) and
7335         A/(B/C) to (A/B)*C
7336
7337         * except.c (connect_post_landing_pads): Delete the RESX insns.
7338
7339 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
7340
7341         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
7342
7343         * config/mips/mips.md (nmadd/nmsub): Use macro.
7344
7345 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
7346
7347         * cppinit.c (remove_dup_dir): Make static.
7348         (remove_dup_dirs): Make static. Only warn about preempting a
7349         system directory with a non-system directory.
7350
7351 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
7352
7353         * ifcvt.c (noce_try_store_flag_constants): Correct order
7354         of parameters to trunc_int_for_mode.
7355
7356 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
7357
7358         * reorg.c (fill_simple_delay_slots): If an instruction might throw
7359         an exception that will be caught within this function, do not fill
7360         its delay slot with any subsequent instruction.
7361
7362 2001-07-19  Steve Ellcey <sje@cup.hp.com>
7363
7364         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
7365         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
7366         pointer extension instruction.
7367         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
7368         * simplify-rtx.c (simplify_unary_operation) Likewise.
7369         * explow.c (convert_memory_address) Check value of
7370         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
7371         less than zero.
7372         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
7373         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
7374         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
7375         Add Multilib Support.
7376         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
7377         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
7378         Add Multilib Support.
7379         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
7380         support.
7381         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
7382         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
7383         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
7384
7385 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
7386
7387         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
7388         old and new operands in `<', `3' and `b'.
7389
7390 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7391
7392         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
7393         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
7394         (toplev.o): Don't depend on xcoffout.h.
7395         * c-decl.c: Include debug.h
7396         (duplicate_decls): Use debug hook.
7397         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
7398         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7399         (dbxout_types): Remove.
7400         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
7401         * debug.c (do_nothing_debug_hooks): Update.
7402         (debug_true_tree, debug_nothing_rtx): New.
7403         * debug.h (struct rtx_def): New.
7404         (struct gcc_debug_hooks): New hooks ignore_block,
7405         outlining_inline_function and label.
7406         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
7407         dwarf2out_frame_finish): New.
7408         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
7409         Make static, update prototype.
7410         (dwarf2_debug_hooks): Update.
7411         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
7412         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
7413         * dwarfout.c (dwarf_debug_hooks): Update.
7414         * emit-rtl.c: Include debug.h.
7415         (remove_unnecessary_notes): Use debug hook.
7416         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
7417         (final_scan_insn): Use debug hook.
7418         * integrate.c (output_inline_function): Use debug hook.
7419         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
7420         (sdb_debug_hooks): Update.
7421         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
7422         * toplev.c: Don't include xcoffout.h.
7423         (note_outlining_of_inline_function, debug_ignore_block): Remove.
7424         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
7425         Remove.
7426         * tree.h (dwarf2out_do_frame): Remove.
7427
7428 2001-07-19  Catherine Moore  <clm@cygnus.com>
7429
7430         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
7431
7432 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
7433
7434         * reload1.c (eliminate_regs_in_insn): When updating a set
7435         to the frame pointer to the hardware frame pointer, perform
7436         the update always not just when REPLACE is set.
7437
7438         * reload1.c (choose_reload_regs): Don't inherit a reload
7439         that crosses multiple registers if registers past the first
7440         don't fit in the desired class.
7441
7442         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
7443         when negating constants.
7444
7445 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
7446
7447         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
7448         * doc/tree.texi: Ditto.
7449
7450 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
7451             Jakub Jelinek  <jakub@redhat.com>
7452
7453         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
7454         (extract_cie_info): Handle "eh" augmentation properly,
7455         remember eh_ptr.
7456         (struct frame_state, __frame_state_for): New.
7457
7458 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7459
7460         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
7461         HANDLE_SYSV_PRAGMA): Define.
7462         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
7463         previous args.
7464         (copy_object): Caller changed.
7465
7466 2001-07-19  Andreas Schwab  <schwab@suse.de>
7467
7468         * configure.in (assembler dwarf2 debug_line support): Define nop
7469         insn for m68k.
7470         * configure: Regenerated.
7471
7472 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7473
7474         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
7475         dwarfout.h.
7476         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
7477         to conditionally compiled block.
7478         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7479         * dbxout.h (dbxout_function): Remove.
7480         * debug.c (do_nothing_debug_hooks): Update.
7481         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
7482         global_decl, deferred_inline_function.
7483         * dwarf2out.c (dwarf2_debug_hooks): Update.
7484         (dwarf2out_global_decl): New.
7485         * dwarfout.c: Don't include dwarfout.h.
7486         (dwarfout_global_decl, dwarfout_function_decl,
7487         dwarfout_deferred_inline_function): New.
7488         (dwarf_debug_hooks): Update.
7489         * dwarfout.h: Remove.
7490         * final.c: Don't include dwarfout.h.
7491         * sdbout.c (sdbout_global_decl): New.
7492         (sdbout_debug_hooks): Update.
7493         * toplev.c: Don't include dwarfout.h.
7494         (check_global_declarations, rest_of_compilation): Use new debug hooks.
7495         (note_deferral_of_defined_inline_function): Remove.
7496         * toplev.h (note_deferral_of_defined_inline_function): Remove.
7497         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
7498         * ch/lex.c: Don't include dwarfout.h.
7499         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
7500         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
7501         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
7502         * cp/optimize.c: Include debug.h.
7503         (maybe_clone_body): Use debug hook.
7504         * cp/semantics.c: Include debug.h.
7505         (expand_body): Use debug hook.
7506         * po/POTFILES.in: Remove dwarfout.h.
7507
7508 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7509
7510         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
7511         * c-parse.in (yyerror, _yylex): Similarly.
7512         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
7513         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
7514         Update comments.
7515         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
7516         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
7517
7518 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
7519
7520         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
7521         in-class declaration at -g1.  Fixes c++/2814.
7522
7523 2001-07-18  Richard Henderson  <rth@redhat.com>
7524
7525         * doc/md.texi (reload_in/out): Document restrictions in predicates
7526         and constraints for these patterns.  Document empty string matching
7527         ALL_REGS.
7528
7529 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7530
7531         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
7532
7533 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
7534
7535         * cse.c: Undo my previous patch.
7536
7537 2001-07-18  Tom Tromey  <tromey@redhat.com>
7538
7539         For PR java/2812:
7540         * configure: Rebuilt.
7541         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
7542         instead.
7543         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
7544
7545 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
7546                                Jan Hubicka  <jh@suse.cz>
7547
7548         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
7549         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
7550         * jump.c (mark_jump_label): Do not forward branches.
7551
7552 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
7553
7554         * cse.c (delete_trivially_dead_insns): Delete the libcall block
7555         when return value is unused.
7556
7557 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
7558
7559         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
7560
7561 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
7562
7563         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
7564         on error.  We can't blindly return the result of
7565         pthread_mutex_trylock because it returns a positive number on
7566         error, while we must return -1 on error.
7567         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
7568         fixes.
7569         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
7570
7571 2001-07-18  Andreas Jaeger  <aj@suse.de>
7572
7573         * integrate.c (output_inline_function): Correct type of debug_hooks.
7574
7575 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
7576
7577         * combine.c (combine_simplify_rtx): DIV can be treated
7578         associatively for floats if unsafe math optimisations are enabled.
7579
7580 2001-07-17  Richard Henderson  <rth@redhat.com>
7581
7582         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
7583
7584 2001-07-17  Richard Henderson  <rth@redhat.com>
7585
7586         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
7587         don't force the function address into a register.
7588         (expand_call, emit_library_call_value_1): Update callers.
7589         * builtins.c (expand_builtin_apply): Likewise.
7590         * expr.h (prepare_call_address): Update decl.
7591
7592 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
7593
7594         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
7595         config directory.
7596         * config/i386/chorus.h: Move up.
7597         * config/sparc/chorus.h: Likewise.
7598         * config/rs6000/chorus.h: Likewise.
7599         * config/chorus.h: Moved here.
7600
7601 2001-07-17  Andreas Schwab  <schwab@suse.de>
7602
7603        * configure.in  (assembler eh_frame optimization): Handle big
7604        endian.
7605        * configure: Regenerated.
7606
7607 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
7608
7609         * expr.c (epxand_expr): Convert divisions into multiplications by
7610         reciprocals if -ffast-math.
7611
7612 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7613
7614         * dbxout.c (dbxout_really_begin_function): Rename to
7615         dbxout_begin_function.
7616         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7617         (dbxout_begin_function): Remove.
7618         (dbxout_function): Update.
7619         (dbxout_source_line): Update prototype.
7620         * dbxout.h (dbxout_begin_function): Remove.
7621         * debug.c (do_nothing_debug_hooks): Update.
7622         (debug_nothing_tree): Update.
7623         (debug_nothing_charstar_rtx): Remove.
7624         * debug.h (union tree_node): Declare.
7625         (struct rtx_def): Remove.
7626         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
7627         begin_function.  Change source_line prototype.
7628         (debug_nothing_tree): New.
7629         (debug_nothing_charstar_rtx): Delete.
7630         (dwarf2out_begin_prologue): Moved from ...
7631         * tree.h: ... here.
7632         * dwarf2out.c (dwarf2_debug_hooks): Update.
7633         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
7634         debug info, call dwarf2out_source_line.
7635         (dwarf2out_souce_line): Update prototype.
7636         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
7637         Change prototype, make static.
7638         (dwarfout_source_line): Update prototype.
7639         (dwarf_debug_hooks): Update.
7640         * dwarfout.h (dwarfout_begin_function): Remove.
7641         * final.c (final_start_function, final_scan_insn): Use appropriate
7642         debug hooks, update to use notice_source_line.
7643         (output_source_line): Rename notice_source_line.  Don't call the
7644         source_line debug hook.
7645         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
7646         make static, update prototype.
7647         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
7648         prototype.
7649         (sdbout_end_prologue): New.
7650         (sdbout_source_line): Update prototype.
7651         (sdbout_debug_hooks): Update.
7652         (sdbout_symbol): Remove unused var.
7653         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
7654         Delete.
7655         * varasm.c: Include debug.h.
7656         (assemble_start_function): Use begin_function debug_hook.
7657         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
7658         update with prototype.
7659         (xcoffout_source_line): Update prototype.
7660         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
7661         update prototype.
7662         (xcoffout_source_line): Update prototype.
7663
7664 2001-07-17  Richard Henderson  <rth@redhat.com>
7665
7666         * c-typeck.c (build_binary_op): Do not shorten unsigned
7667         right shift after sign extension.
7668
7669 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
7670
7671         * combine.c (combine_simplify_rtx): Attempt to simplify
7672         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
7673
7674         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
7675         (simplify_binary_operation, simplify_unary_operation,
7676          simplify_relational_operation): Use it.
7677
7678         * combine.c (combine_simplify_rtx): Don't do associative law
7679         on divisions; allow associative law on floats.
7680
7681 2001-07-17  H.J. Lu <hjl@gnu.org>
7682             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7683
7684         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
7685         ASM_OUTPUT_WEAK_ALIAS are defined.
7686         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
7687         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
7688         Moved ...
7689         * config/mips/iris5.h: ... here.
7690         (HANDLE_SYSV_PRAGMA): Defined as 1.
7691         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
7692         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
7693         symbol.
7694
7695 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
7696
7697         * c-parse.in (all_prefix_attributes): New variable.
7698         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
7699         (maybe_resetattrs): New production.
7700         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
7701         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
7702         notype_initdcl, nested_function, notype_nested_function,
7703         component_decl, components, components_notype,
7704         component_declarator, component_notype_declarator,
7705         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
7706         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
7707         after a comma being applied to more than one declarator.
7708         * doc/extend.texi (Attribute Syntax): Update.  Remove
7709         documentation of bugs that are no longer present.
7710
7711 2001-07-13  Eric Christopher  <echristo@redhat.com>
7712
7713         * config/mips/mips.h: Change TUNE_MIPS* options to use
7714         mips_tune.
7715         (EXTRA_SPECS): Add cc1_cpu_spec.
7716         * config/mips/mips.md (muldf3): Fix typo.
7717
7718 2001-07-16  Richard Henderson  <rth@redhat.com>
7719
7720         * config/m68k/m68k.c: Include expr.h and reload.h.
7721         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
7722         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
7723
7724 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
7725             Richard Henderson  <rth@redhat.com>
7726
7727         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
7728         (insn_live_p): Fix fall off end of function.
7729         (dead_libcall_p): Remove COUNTS argument; update callers.
7730         (delete_trivially_dead_insns): Remove unused variables.
7731
7732 2001-07-17  Andreas Jaeger  <aj@suse.de>
7733
7734         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
7735         x86-64 pic support.
7736
7737         * lcm.c (optimize_mode_switching): Avoid warning for unused
7738         variable if !NORMAL_MODE.
7739
7740         * flow.c (try_crossjump_to_edge): Remove unused variable.
7741
7742 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7743
7744         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
7745         atexit declaration in stdlib.h.
7746
7747 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
7748
7749         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
7750
7751 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
7752
7753         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
7754         * except.c (finish_eh_generation): Update call of cleanup_cfg;
7755         do rebuild_jump_labels instead of jump_optimize
7756         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
7757         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
7758         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
7759
7760         * flow.c: Include timevar.h
7761         (find_basic_block): Push/pop timevar;
7762         (cleanup_cfg): Likewise.
7763         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
7764         * Makefile: Add dependencies on timevar.h
7765
7766         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
7767         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
7768
7769         * rtl.h (delete_trivially_dead_insns): Add new parameter.
7770         * toplev.c (rest_of_compilation): Update calls.
7771         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
7772         (delete_trivially_dead_insns): ... here; accept new argument
7773         preserve_basic_blocks; preserve basic blocks if set.
7774
7775         * reg-stack.c (stack_regs_mentioned): Return 0 if
7776         stack_regs_mentioned_data is not initialized.
7777         (reg_to_stack): Make stack_regs_mentioned survive after the
7778         reg-stack is completted; do not call cleanup_cfg.
7779         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
7780         make cleanup_cfg after bb-reorder to output to debug file.
7781
7782 2001-07-16  Richard Henderson  <rth@redhat.com>
7783
7784         * regclass.c (init_reg_sets): Use only 32 bits per initializer
7785         from int_reg_class_contents.
7786
7787 2001-07-16  Richard Henderson  <rth@redhat.com>
7788
7789         * hard-reg-set.h (regs_invalidated_by_call): Declare.
7790         * regclass.c (regs_invalidated_by_call): Move from cse.c.
7791         (init_reg_sets_1): Move initialization from cse_main.
7792         * cse.c (regs_invalidated_by_call): Move to regclass.c.
7793         (cse_main): Move its initialization also.
7794         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
7795         * flow.c (propagate_one_insn): Likewise.
7796         * gcse.c (compute_hash_table): Likewise.
7797         (compute_kill_rd, compute_store_table): Likewise.
7798         * sched-deps.c (sched_analyze_1): Likewise.
7799
7800 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
7801
7802         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
7803         gen_rtx_SET.
7804
7805 2001-07-16  Steve Ellcey <sje@cup.hp.com>
7806
7807         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
7808         in if statement so we don't access undefined memory.
7809
7810 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
7811
7812         * gcse.c: Update comment at top.
7813         Update comment on mem handling.
7814         mem_last_set, mem_first_set, mem_set_in_block: gone.
7815         Declaration of reg_set_info: gone.
7816         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
7817         pointless with load_killed_in_block_p (they are *more*
7818         conservative then it, not less, and less accurate).
7819         (oprs_not_set_p): Ditto.
7820         (alloc_gcse_mem): Don't allocate mem_set_in_block
7821         (free_gcse_mem): Don't free it, either.
7822         (record_last_mem_set_info): Update comment in front, remove
7823         mem_*set_* stuff. Note the reason we don't handle stores directly
7824         here.
7825         (compute_hash_table): Update comments to reflect reality. Remove
7826         mem_*set_* references.
7827         (reset_opr_set_tables): Remove mem_*set_* references.
7828         (mark_call): Ditto.
7829         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
7830         (mark_clobber): Ditto (on both parts, we double set here too).
7831         (expr_killed_p): Remove mem_set_in_block test.
7832         (compute_transp): Remove mem_set_in_block test.
7833
7834         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
7835         of edge, and removal of phi alternative to dump file.
7836         (ssa_ccp_substitute_constants): Add note about register now being
7837         constant, and which uses were replaced in what insns to dump file.
7838
7839 2001-07-16  Andreas Jaeger  <aj@suse.de>
7840
7841         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
7842         variables of type HOST_WIDEST_INT.
7843
7844         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
7845         (__bb_exit_func): Correct type of count_max to avoid overflow.
7846         (num_digits): Handle long long argument.
7847
7848         * combine.c (gen_lowpart_for_combine): Remove unused variable.
7849
7850 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7851
7852         * output.h (sdb_begin_function_line): Restore as an extern
7853         variable.
7854         * sdbout.c (sdb_begin_function_line): Make extern.
7855
7856 2001-07-15  Richard Henderson  <rth@redhat.com>
7857
7858         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
7859         * genrecog.c (maybe_both_true_mode): New.
7860         (maybe_both_true_2): Use it.
7861         (write_switch): Don't put Pmode in a switch.
7862         * rtl.c (mode arrays): Don't explicitly size them.
7863
7864 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
7865
7866         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
7867         handling; move unconditional splitting before mode switching.
7868
7869         * i386.md (type): Add fistp type.
7870         (i387, length_attr, scheduling definitions): Handle this type.
7871         (fix_trunc?f?i2): Revamp to use mode switching.
7872         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
7873         * i386.h (fp_cw_mode): New enum
7874         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
7875         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
7876
7877 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7878
7879         * Makefile.in (integrate.o): Add debug.h.
7880         * integrate.c (debug.h): Add.
7881         (output_inline_function): Save, reset, and restore debug_hooks.
7882
7883 2001-07-15  Richard Henderson  <rth@redhat.com>
7884
7885         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
7886         instead of COMPARE for the EQUIV expression.
7887
7888 2001-07-15  Richard Henderson  <rth@redhat.com>
7889
7890         * flow.c (redirect_edge_and_branch_force): Initialize
7891         global_live_at_start and global_live_at_end.
7892         (allocate_bb_life_data): Export.
7893         * basic-block.h (allocate_bb_life_data): Declare.
7894         * toplev.c (rest_of_compilation): Call it.
7895
7896 2001-07-15  Richard Henderson  <rth@redhat.com>
7897
7898         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
7899         (alpha_tablejump_best_label): New.
7900         * config/alpha/alpha-protos.h: Declare them.
7901         * config/alpha/alpha.md: Use braced strings for code blocks.
7902         (tablejump_osf): Break out add with r29.
7903         (tablejump_osf_internal): Remove.
7904         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
7905         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
7906
7907 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
7908
7909         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
7910         of the movable.
7911
7912         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
7913
7914         * i386-protos.h (ix86_split_fp_branch): Update prototype.
7915         (ix86_fp_jump_nontrivial_p): New.
7916         * i386.md (fp_jcc_?): Update call of split_fp_branch;
7917         use ix86_fp_jump_nontrivial_p.
7918         * i386.c (ix86_fp_jump_nontrivial_p): New.
7919         (ix86_split_fp_branch): Accept code instead of rtx.
7920         (ix86_expand_compare): Expand comparison early in case
7921         doing so is resonably cheap.
7922
7923 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
7924
7925         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
7926         not 'machine'.
7927         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
7928         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
7929
7930 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
7931
7932         * dbxout.c (dbxout_source_line): Make static, update prototype.
7933         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
7934         (dbxout_init, dbxout_finish, dbxout_source_line,
7935         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
7936         * dbxout.h (dbxout_source_line): Delete.
7937         * debug.c (debug_nothing_file, debug_nothing_file_int,
7938         debug_nothing_file_charstar_rtx): New.
7939         (do_nothing_debug_hooks): Update.
7940         (debug_nothing_void, debug_nothing_charstar_rtx,
7941         dwarf2out_end_epilogue): New.
7942         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
7943         * debug.h (struct rtx_def): Declare.
7944         (gcc_debug_hooks): New hooks source_line, end_epilogue
7945         and end_function.
7946         (debug_nothing_void, debug_nothing_charstar_rtx,
7947         dwarf2out_end_epilogue): New.
7948         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
7949         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
7950         (dwarf2_debug_hooks): Update.
7951         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
7952         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
7953         * dwarf2out.h (dwarf2out_source_line): Remove.
7954         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
7955         Make static, update prototype.
7956         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
7957         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
7958         (dwarf_debug_hooks): Update.
7959         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
7960         dwarfout_end_function): Remove.
7961         * final.c (profile_function): Use debug hooks for ending functions
7962         and epilogues.
7963         (output_source_line, final_end_function): Update prototype,
7964         use debug hooks.
7965         (final_start_function, final_scan_insn): Update.
7966         * output.h (sdb_begin_function_line): Remove.
7967         (final_end_function): Update prototype.
7968         * sdbout.c (sdb_begin_function_line): Make static.
7969         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
7970         (sdbout_source_line): New.
7971         (sdbout_end_epilogue, sdbout_end_function): Make static, update
7972         prototypes.
7973         (sdb_debug_hooks): Update.
7974         (sdbout_init, sdbout_source_line,
7975         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
7976         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
7977         * toplev.c (compile_file, rest_of_compilation): Update.
7978         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
7979         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
7980         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
7981         Update for prototype changes.
7982         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
7983         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
7984
7985 2001-07-15  Richard Henderson  <rth@redhat.com>
7986
7987         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
7988         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
7989         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
7990         * config/alpha/alpha.c: Likewise.
7991         * config/alpha/alpha.md: Likewise.
7992         * config/alpha/alpha32.h: Likewise.
7993         * config/alpha/vms.h: Likewise.
7994         (OPEN_VMS): Remove.
7995
7996 2001-07-14  Richard Henderson  <rth@redhat.com>
7997
7998         * config/alpha/alpha.md: Use define_constants for unspec values.
7999         Substitute throughout.
8000
8001 2001-07-14  Tim Josling  <tej@melbpc.org.au>
8002
8003         * tree.def (EXPON_EXPR) remove. Never supported anyway.
8004
8005 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8006
8007         * pa.md: Remove unused constraints from define_split's.
8008
8009 2001-04-14  Richard Henderson  <rth@redhat.com>
8010
8011         * ifcvt.c (find_cond_trap): Test for exit block.
8012
8013 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
8014
8015         Re-install recently reverted patch.
8016         * emit-rtl.c (try_split): Update mark_jump_label call.
8017         * flow.c (find_sub_basic_blocks): Likewise.
8018         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
8019         jump_back_p): Kill.
8020         (mark_all_labels): Kill second parameter.
8021         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
8022         (rebuild_jump_labels, jump_optimize_minimal): Update call
8023         of jump_optimize_1.
8024         (jump_optimize_1): Kill crossjumping code.
8025         (mark_jump_label): Kill cross_jump parameter.
8026         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
8027         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
8028         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
8029          splitting.
8030         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
8031         DFI_bpro.
8032         (dump_file_info): Likewise.
8033         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
8034         reorganize passes to do reg-stack first, bb-reorder second.
8035         * invoke.texi (-d letters doc): Remove the jump2 pass.
8036
8037 2001-07-14  Richard Henderson  <rth@redhat.com>
8038
8039         * ifcvt.c (find_cond_trap): New.
8040         (find_if_header): Call it.
8041         (merge_if_block): Relax existing jump sanity check.
8042         * jump.c (jump_optimize_1): Remove conditional trap handling.
8043
8044 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
8045
8046         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
8047         millicode.
8048         (insn_refs_are_delayed): Correct comment.
8049         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
8050         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
8051         instead of r31.  Make associated insn !TARGET_64BIT, and
8052         provide an additional 64-bit insn that clobbers r2.
8053         (divsi3): Likewise.
8054         (udivsi3): Likewise.
8055         (modsi3): Likewise.
8056         (umodsi3): Likewise.
8057
8058 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
8059
8060         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
8061
8062         * flow.c (redirect_edge_and_branch_force, split_edge,
8063         try_crossjump_to_edge): Use set_block_for_new_insns.
8064         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
8065
8066 2001-07-13  H.J. Lu  (hjl@gnu.org)
8067
8068         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
8069         the correct patch.
8070
8071 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
8072
8073         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
8074
8075 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
8076
8077         * c-common.c (decl_attributes): Take a pointer to the node to
8078         which attributes are to be attached, and a flags argument.
8079         * c-common.h (enum attribute_flags): New.
8080         (decl_attributes): Update prototype.
8081         * c-decl.c (start_decl, push_parm_decl, finish_struct,
8082         finish_enum, start_function): Update calls to decl_attributes.
8083         * c-parse.in (component_declarator, component_notype_declarator,
8084         label): Update calls to decl_attributes.
8085
8086 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
8087
8088         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
8089         * config/avr/avr.c (legitimate_address_p): Return value changed
8090         from letter to register classes. For better debugging.
8091
8092 2001-07-13  Kazu Hirata  <kazu@hxi.com>
8093
8094         * jump.c (reversed_comparison_code_parts): Fix comment typos.
8095
8096 2001-07-13  H.J. Lu  (hjl@gnu.org)
8097
8098         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
8099
8100 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
8101
8102         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
8103         correctly for shared configurations.
8104         * config/t-libgcc-pic:  New.
8105         * config/{i386,m68k,sparc}/t-openbsd:  New.
8106         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
8107         Support -shared.  Support debugging libraries with -g.
8108         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
8109         frame information does not emit pointer diffs.
8110         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
8111         emit pointer diffs.
8112
8113 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
8114
8115         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
8116
8117 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
8118
8119         * combine.c (try_combine): Ensure const_int pow2 is positive.
8120
8121 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
8122
8123         * config.gcc: Add configuration for s/390.
8124         * config/s390/s390.c: New. Subroutines for code generation.
8125         * config/s390/s390.h: New. Definitions for s/390.
8126         * config/s390/s390-protos.h: New. Prototypes.
8127         * config/s390/linux.h: New. Definitions for linux for s/390.
8128         * config/s390/linux64.h: New. Definitions for linux for zSeries.
8129         * config/s390/t-linux: New. Makefile fragment.
8130         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
8131         * config/s390/fixdfdi.h: New. Fix L_fix*di.
8132
8133 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
8134
8135         * emit-rtl.c (try_split): Update mark_jump_label call.
8136         * flow.c (find_sub_basic_blocks): Likewise.
8137         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
8138         jump_back_p): Kill.
8139         (mark_all_labels): Kill second parameter.
8140         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
8141         (rebuild_jump_labels, jump_optimize_minimal): Update call
8142         of jump_optimize_1.
8143         (jump_optimize_1): Kill crossjumping code.
8144         (mark_jump_label): Kill cross_jump parameter.
8145         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
8146         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
8147         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
8148          splitting.
8149         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
8150         DFI_bpro.
8151         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
8152         reorganize passes to do reg-stack first, bb-reorder second.
8153         * invoke.texi (-d letters doc): Remove the jump2 pass.
8154
8155 2001-07-12  Steve Ellcey <sje@cup.hp.com>
8156
8157         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
8158
8159 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
8160
8161         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
8162         basic blocks.
8163         (verify_flow_info): Make diagnostics prettier.
8164
8165 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
8166
8167         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
8168
8169         * flow.c (outgoing_edges_match): Return early if condition reversal
8170         failed.
8171
8172 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
8173
8174         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
8175         (mips_move_2words): When splitting a move into two instructions,
8176         prefix the second address operand with '%D'.
8177
8178 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
8179
8180         * Makefile.in (final.o): Depend on debug.h.
8181         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
8182         (dbx_debug_hooks): Add new hooks.
8183         (xcoff_debug_hooks): New.
8184         * debug.c (debug_nothing_file_int_int): New.
8185         (do_nothing_debug_hooks): Update.
8186         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
8187         (debug_nothing_file_int_int): New.
8188         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
8189         static, update prototype.
8190         (dwarf2_debug_hooks): Update.
8191         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
8192         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
8193         static, update prototype.
8194         (dwarf_debug_hooks): Update.
8195         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
8196         * final.c: Include debug.h.
8197         (final_scan_insn): Use debug hooks when beginning and ending blocks.
8198         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
8199         static, update prototype.
8200         (sdb_debug_hooks): Update.
8201         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
8202         * toplev.c: Distinguish between xcoff and dbx.
8203
8204         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
8205         Call all debug hooks, not just dwarf ones.
8206
8207 2001-07-11  Timothy Wall  <twall@redhat.com>
8208
8209         * config.gcc: Add configuration for AIX5/IA64.
8210         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
8211         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
8212         support prefix/suffix code.
8213         * config/ia64/t-aix: New.  Makefile fragment.
8214         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
8215
8216 2001-07-11  Kazu Hirata  <kazu@hxi.com>
8217
8218         * recog.c (validate_change): Fix a comment typo.
8219
8220 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8221
8222         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
8223         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
8224         hooks directly.
8225         * dbxout.c (dbx_debug_hooks): Add new hooks.
8226         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
8227         make static.
8228         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
8229         make static.
8230         * dbxout.h (dbxout_start_new_source_file,
8231         dbxout_resume_previous_source_file): Delete.
8232         * debug.c (do_nothing_debug_hooks): Add new hooks.
8233         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
8234         (debug_nothing_int_charstar, debug_nothing_int): New.
8235         * debug.h (gcc_debug_hooks): New hooks define, undef,
8236         start_source_file and end_source_file.
8237         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
8238         (debug_nothing_int_charstar, debug_nothing_int): New.
8239         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
8240         the conditionally compiled section.
8241         (dwarf2out_start_source_file, dwarf2out_end_source_file,
8242         dwarf2out_define, dwarf2out_undef): Make static.
8243         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
8244         dwarf2out_define, dwarf2out_undef): Remove.
8245         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
8246         (dwarfout_start_source_file, dwarfout_end_source_file,
8247         dwarfout_define, dwarfout_undef): Make static.
8248         (dwarfout_start_source_file_check,
8249         dwarfout_end_source_file_check): New.
8250         (dwarfout_define, dwarfout_finish): Update.
8251         * dwarfout.h (dwarfout_start_new_source_file,
8252         dwarfout_resume_previous_source_file, dwarfout_define,
8253         dwarfout_undef): Remove.
8254         * sdbout.c (sdb_debug_hooks): Add new hooks.
8255         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
8256         make static.
8257         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
8258         make static, take an arg.
8259         * sdbout.h (sdbout_start_new_source_file,
8260         sdbout_resume_previous_source_file): Delete.
8261         * toplev.c (debug_start_source_file, debug_end_source_file,
8262         debug_define, debug_undef): Delete.
8263         * toplev.h (debug_start_source_file, debug_end_source_file,
8264         debug_define, debug_undef): Delete.
8265
8266         * java/jcf-parse.c: Include debug.h.
8267         (parse_class_file): Update to use debug hooks directly.
8268         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
8269
8270 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8271
8272         * alias.c (set_mem_alias_set): New function.
8273         * rtl.h (set_mem_alias_set): Declare it.
8274         * builtins.c (expand_builtin_return_addr): Call it instead of
8275         using MEM_ALIAS_SET accessor.
8276         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
8277         (get_memory_rtx, expand_builtin_va_arg): Likewise.
8278         (expand_builtin_va_copy):Likewise.
8279         * caller-save.c (setup_save_areas): Likewise.
8280         * calls.c (compute_argument_addresses): Likewise.
8281         * explow.c (set_mem_attributes): Likewise.
8282         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
8283         (expand_assignment, store_constructor_field, store_field): Likewise.
8284         (expand_expr_unaligned): Likewise.
8285         * function.c (assign_stack_temp_for_type): Likewise.
8286         (put_reg_into_stack, gen_mem_addressof): Likewise.
8287         * ifcvt.c (noce_try_cmove_arith): Likewise.
8288         * reload1.c (reload, alter_reg): Likewise.
8289         * config/alpha/alpha.c (get_aligned_mem): Likewise.
8290         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
8291         (alpha_expand_unaligned_store): Likewise
8292         (alpha_expand_unaligned_load_words): Likewise.
8293         (alpha_expand_unaligned_store_words): Likewise.
8294         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
8295         (alpha_expand_epilogue): Likewise.
8296         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
8297         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
8298         * config/i386/i386.c (legitimize_pic_address): Likewise.
8299         * config/i960/i960.c (setup_incoming_varargs): Likewise.
8300         * config/ia64/ia64.c (spill_restore_mem): Likewise.
8301         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
8302         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
8303         * config/mips/mips.c (mips_va_arg): Likewise.
8304         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
8305         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
8306         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
8307         (setup_incoming_varargs, rs6000_va_arg): Likewise.
8308         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
8309         (rs6000_emit_epilogue): Likewise.
8310         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
8311         * config/sparc/sparc.c (sparc_va_arg): Likewise.
8312         * config/v850/v850.c (v850_va_arg): Likewise.
8313
8314 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
8315
8316         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
8317         when fallthru edge is present.
8318         (mege_blocks): Handle case where creation of jump insn
8319         is required.
8320
8321         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
8322         CLEANUP_POST_REGSTACK): New constants.
8323         * except.c (finish_eh_generation): Update call of cleanup_cfg,
8324         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
8325         * output.h (cleanup_cfg): Update prototype.
8326         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
8327         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
8328         cleanup_cfg call; kill missleading comment.
8329         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
8330         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
8331         parameter; control optimizations performed using it.
8332         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
8333         try_crossjump_bb): New functions.
8334
8335 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8336
8337         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
8338         extern.
8339         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
8340         pa_output_function_prologue.
8341         * pa-protos.h (pa_output_function_prologue): New prototype.
8342
8343 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8344
8345         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
8346         and low to get correct sign extension in low+high test.
8347
8348 2001-07-11  Janis Johnson <janis@us.ibm.com>
8349
8350         * gcov.c (arcdata): Use gcov_type to fix branch percentage
8351         for large hit count.
8352
8353         * profile.c (branch_prob): Fix .bbg info for computed gotos
8354         and C++ EH code.
8355
8356 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
8357
8358         * stmt.c (parse_output_constraint): New function, split out
8359         from ...
8360         (expand_asm_operands): ... here.  Use parse_output_constraint.
8361         * tree.h (parse_output_constraint): Declare it.
8362
8363 2001-07-11  Richard Henderson  <rth@redhat.com>
8364
8365         * bitmap.c: Comment some functions; fiddle whitespace.
8366         (bitmap_free): Don't export.
8367         (bitmap_element_allocate): Use memset.
8368         * bitmap.h (bitmap_free): Don't declare.
8369
8370 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
8371
8372         * gcse.c, lcm.c, sched-deps.c:
8373         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
8374
8375         * flow.c (flow_loops_find): Free dom if we found no loops, since
8376         we aren't going to save it.
8377
8378         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
8379         done.
8380
8381 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
8382
8383         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
8384
8385 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8386
8387         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
8388         #ifndef DWARF2_DEBUGGING_INFO.
8389
8390 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
8391
8392         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
8393
8394 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
8395
8396         * config/mips/mips.c (gen_int_relational): Tell the caller not to
8397         reverse a branch if a NE comparison is implemented with GTU.
8398
8399 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
8400             H.J. Lu  <hjl@gnu.org>
8401
8402         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
8403         constant addresses.
8404         (call_internal2): Likewise.
8405         (call_value_internal1): Likewise.
8406         (call_value_internal2): Likewise.
8407         (call_value_multiple_internal1): Likewise.
8408         (call_value_multiple_internal2): Likewise.
8409
8410 2001-07-10  Kazu Hirata  <kazu@hxi.com>
8411
8412         * calls.c (emit_library_call_value_1): Fix a comment typo.
8413         * dwarf2out.c (mem_loc_descriptor): Likewise.
8414         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
8415
8416 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
8417
8418         * simplify-rtx.c (simplify_subreg): Fix typo in comment
8419
8420 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8421
8422         * recog.c (offsettable_address_p): Handle LO_SUM case.
8423         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
8424         instead of plus_constant.
8425
8426 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8427
8428         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
8429         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
8430
8431 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8432
8433         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
8434         adjust_address_nv instead of plus_constant.
8435
8436 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8437
8438         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
8439         dwarf2out.o): Depend on debug.h, wrap long lines.
8440         * dbxout.c: Include debug.h.
8441         (dbx_debug_hooks): New.
8442         (dbxout_init): Make static, take just 2 args.
8443         (dbxout_finish): Make static.
8444         * dbxout.h (dbxout_init, dbxout_finish): Delete.
8445         * debug.c: New file.
8446         * debug.h: New file.
8447         * dwarf2out.c: Include debug.h.
8448         (dwarf2_debug_hooks): New.
8449         (dwarf2out_init): Make static.
8450         (dwarf2out_finish): Make static, take 2 args.
8451         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
8452         * dwarfout.c: Include debug.h.
8453         (dwarf_debug_hooks): New.
8454         (dwarfout_init): Make static.
8455         (dwarfout_finish): Make static, take 2 args.
8456         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
8457         * sdbout.c: Include debug.h.
8458         (sdb_debug_hooks): New.
8459         (sdbout_init): Make static, take 2 args.
8460         * sdbout.h (sdbout_init): Delete.
8461         * toplev.c: Include debug.h.
8462         (debug_hooks): New.
8463         (compile_file): Set deubg_hooks based on command line options.
8464         Use the hooks unconditionally rather than conditional compilation.
8465
8466 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
8467
8468         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
8469         first_insn_after_basic_block_note instead.
8470
8471         * df.c (df_bb_refs_unlink): #if 0 out for now.
8472
8473 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
8474
8475         * ssa.h: Add prototype for ssa_const_prop
8476         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
8477         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
8478         (ssa_fast_dce): Remove unused variable
8479
8480 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
8481
8482         * diagnostic.c (finish_diagnostic): Rename to
8483         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
8484         calls thourghout.
8485
8486 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
8487
8488         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
8489         .loc support.
8490
8491         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
8492         (dump_file): Only pad the demangled name with spaces if the
8493         mangled name was padded with spaces.
8494
8495 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
8496
8497         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
8498         edge detection.
8499
8500 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8501
8502         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
8503         extraction if no direct load if either EXPAND_CONST_ADDRESS or
8504         EXPAND_INITIALIZER.
8505
8506         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
8507         whether can put offset inside LO_SUM to check mode alignment, not size.
8508
8509 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
8510
8511         * doc/tm.texi (Misc): Fix thinko.
8512
8513 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
8514
8515         * regmove.c (replace_in_call_usage): Fix warnings.
8516         * sched-deps.c (add_dependence): Fix warnings.
8517         * simplify-rtx.c (simplify_subreg): Likewise.
8518         Return NULL_RTX instead of NULL.
8519
8520         * reg-stack.c (emit_swap_insn): Eliminate warnings.
8521         (subst_asm_stack_regs): Likewise.
8522
8523         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
8524         warnings.
8525
8526         * dwarf2out.c (output_call_frame_info): Declare i as int.
8527         (build_abbrev_table): Declare n_alloc as int.
8528         (dwarf2out_finish): Initialize die.
8529         * except.c: Declare sjlj_funcdef_number as unsigned.
8530         (connect_post_landing_pads): Declare j as unsigned.
8531         (convert_to_eh_region_ranges): Initialize call_site.
8532         (output_function_exception_table): Initialize tt_format_size.
8533         * expr.c (move_by_pieces_1): Initialize to1.
8534         (store_constructor): Initialize minelt and maxelt.
8535         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
8536         * function.c (instantiate_decls): Avoid signed/unsigned warning.
8537
8538         * c-decl.c (combine_parm_decls): Unused, remove.
8539         * c-tree.h: Remove prototype for combine_parm_decls.
8540
8541         * reload.c (push_reload): Fix warning.
8542         (regno_clobbered_p): Likewise.
8543         * reload1.c (replace_pseudos_in_call_usage): Likewise.
8544         (reload_combine): Likewise.
8545
8546         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
8547         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
8548         warnings.
8549         * bitmap.c (bitmap_operation): Change user.
8550         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
8551
8552 2001-07-10  Eric Christopher  <echristo@redhat.com>
8553
8554         * config/mips/mips.c (override_options): Fix typo.
8555
8556 2001-07-09  Stan Shebs  <shebs@apple.com>
8557
8558         * target.h (struct gcc_target): New fields init_builtins and
8559         expand_builtin.
8560         * target-def.h (TARGET_INIT_BUILTINS): New macro.
8561         (TARGET_EXPAND_BUILTIN): New macro.
8562         (TARGET_INITIALIZER): Add them.
8563         * builtins.c: Include target.h.
8564         (expand_builtin): Use targetm.expand_builtin.
8565         (default_init_builtins): New function.
8566         (default_expand_builtin): New function.
8567         * expr.h (default_init_builtins): Declare.
8568         (default_expand_builtin): Declare.
8569         * c-common.c (c_common_nodes_and_builtins): Use
8570         targetm.init_builtins.
8571         * defaults.h (MD_INIT_BUILTINS): Remove.
8572         * Makefile.in (builtins.o): Depend on target.h.
8573
8574         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
8575         (TARGET_EXPAND_BUILTIN): Define.
8576         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
8577         (MD_EXPAND_BUILTIN): Remove.
8578
8579         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
8580         (TARGET_EXPAND_BUILTIN): Define.
8581         (c4x_init_builtins): Make endlink arg a local.
8582         (c4x_print_operand): Fix typos in adjust_address usages.
8583         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
8584         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
8585         (MD_EXPAND_BUILTIN): Remove.
8586
8587         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
8588         (TARGET_EXPAND_BUILTIN): Define.
8589         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
8590         (ix86_init_builtins): Call new function only if TARGET_MMX.
8591         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
8592         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
8593         (MD_EXPAND_BUILTIN): Remove.
8594
8595         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
8596         (TARGET_EXPAND_BUILTIN): Define.
8597         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
8598         (MD_EXPAND_BUILTIN): Remove.
8599
8600         * doc/tm.texi: Document these changes.
8601
8602 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
8603
8604         * basic-block.h (tree_node): Forward declare if needed.
8605         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
8606         (BLOCK_HEAD_TREE): Define.
8607         (BLOCK_END_TREE): Define.
8608         (struct loops): Rename field 'tree' to 'tree_root'.
8609         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
8610         'end_tree'.
8611         (flow_loops_tree_build): Rename reference to field 'tree' to
8612         'tree_root'.
8613         (flow_loops_level_compute): Ditto.
8614         * predict.c (estimate_bb_frequencies): Ditto.
8615         * tree.h (struct tree_common): Add field 'aux'.
8616
8617 2001-07-09  Stan Shebs  <shebs@apple.com>
8618
8619         * config/darwin.c (darwin_encode_section_info): Don't mark any
8620         DECL_EXTERNAL node as defined.
8621
8622 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8623
8624         * pa.c (pa_init_machine_status, pa_mark_machine_status,
8625         pa_free_machine_status, hppa_init_pic_save): Delete.
8626         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
8627         (hppa_profile_hook): Use hppa_pic_save_rtx.
8628         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
8629         hppa_init_pic_save): Delete.
8630         (hppa_pic_save_rtx): Declare.
8631         * pa.md (call, call_value, sibcall, sibcall_value,
8632         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
8633
8634 2001-07-09  Kazu Hirata  <kazu@hxi.com>
8635
8636         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
8637         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
8638
8639 2001-07-09  Andreas Jaeger  <aj@suse.de>
8640
8641         * output.h: Add declaration of final_forward_branch_p.
8642
8643         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
8644
8645         * varray.c: Include errors.h for internal_error and trim_filename
8646         declarations.
8647
8648         * Makefile.in (varray.o): Add errors.h.
8649
8650 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
8651
8652         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
8653         * optabs.c (have_add2_insn): Check whether the add insn chosen
8654         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
8655         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
8656
8657 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
8658
8659         * Makefile.in (OBJS): Add ssa-ccp.o
8660         (ssa-ccp.o): Add dependencies.
8661         * toplev.c (DFI_ssa_ccp): New dump file enum.
8662         (dump_file): Add entry for dumping after SSA CCP.
8663         (flag_ssa_ccp): New flag variable.
8664         (f_options): Add -fssa-ccp.
8665         (rest_of_compilation): Run SSA CCP if requested.
8666         * timevar.def (TV_SSA_CCP): New timevar.
8667         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
8668         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
8669         Fix minor typo in SSA DCE documentation.
8670         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
8671         Add documentation for new dump option.  Renumber dump files
8672         appropriately.
8673
8674 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
8675
8676         * emit-rtl.c (gen_highpart_mode): New.
8677         * rtl.h (gen_highpart_mode): Declare.
8678         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
8679         operand can be VOIDmode constant.
8680
8681 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
8682
8683         * flow.c (redirect_edge_and_branch_force): New.
8684         (can_fallthru): Ensure that basic blocks are succeeding.
8685         (try_optimize_cfg): Do not delete basic block if it is the last one.
8686
8687         * flow.c (try_redirect_by_replacing_jump): Do not remove
8688         jumps with side effects, unlink chain on fallthru edge;
8689         set block for new jump instruction; avoid basic block to
8690         over by line number note.
8691
8692         * flow.c (try_simplify_condjump): Verify that the condjump
8693         is not always falling trought.
8694
8695         Re-install patch:
8696         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
8697
8698         * flow.c (forwarder_block_p): Fix for fallthru blocks.
8699         (try_redirect_by_replacing_jump): Update properly the count
8700         and frequency information.
8701
8702 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8703
8704         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
8705         address that is a LO_SUM specially.
8706         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
8707
8708         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
8709
8710         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
8711         (operand_subword): Use them.
8712         (change_address_1): Renamed from change_address; new arg VALIDATE.
8713         * expr.h: Reflect above changes; change_address now macro.
8714         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
8715         making MEM.
8716         * cselib.c (add_mem_for_addr): Likewise.
8717         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
8718         * regmove.c (try_apply_stack_adjustment): Likewise.
8719         * reload.c (push_reload, make_memloc): Likewise.
8720         * reload1.c (eliminate_regs): Likewise.
8721         * simplify-rtx.c (simplify_replace_rtx): Likewise.
8722         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
8723         adjust_addess.
8724         * combine.c (make_extraction, simplify_shift_const): Likewise.
8725         (gen_lowpart_for_combine): Likewise.
8726         * cse.c (gen_lowpart_if_possible): Likewise.
8727         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
8728         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
8729         * optabs.c (gen_move_insn): Likewise.
8730         * reload1.c (alter_reg): Likewise.
8731         * simplify-rtx.c (simplify_subreg): Likewise.
8732         * stmt.c (expand_anon_union_decl): Likewise.
8733         * recog.c (validate_replace_rtx_1): Likewise.
8734         (expr.h): Include.
8735         * Makefile.in (recog.o): Add $(EXPR_H).
8736         * explow.c (stabilize): Call replace_equiv_address.
8737         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
8738         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
8739
8740 2001-07-03  Andrew Haley  <aph@redhat.com>
8741
8742         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
8743         the mode of the memory location.
8744
8745 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
8746
8747         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
8748
8749 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
8750
8751         * final.c (output_addr_const): Use target opening and
8752         closing parentheses.
8753         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
8754         defaults, add to TARGET_ASM_OUT.
8755         * target.h (struct gcc_target): Add open_paren and close_paren.
8756         * doc/md.texi: Update.
8757         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
8758         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
8759         TARGET_ASM_CLOSE_PAREN.
8760         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
8761         Override.
8762         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
8763         Override.
8764         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
8765         * config/a29k/a29k.h: Similarly.
8766         * config/alpha/alpha.h: Similarly.
8767         * config/arc/arc.h: Similarly.
8768         * config/arm/aof.h: Similarly.
8769         * config/arm/aout.h: Similarly.
8770         * config/avr/avr.h: Similarly.
8771         * config/c4x/c4x.h: Similarly.
8772         * config/clipper/clipper.h: Similarly.
8773         * config/convex/convex.h: Similarly.
8774         * config/d30v/d30v.h: Similarly.
8775         * config/dsp16xx/dsp16xx.h: Similarly.
8776         * config/elxsi/elxsi.h: Similarly.
8777         * config/fr30/fr30.h: Similarly.
8778         * config/h8300/h8300.h: Similarly.
8779         * config/i370/i370.h: Similarly.
8780         * config/i386/i386.h: Similarly.
8781         * config/i860/i860.h: Similarly.
8782         * config/i960/i960.h: Similarly.
8783         * config/ia64/ia64.h: Similarly.
8784         * config/m32r/m32r.h: Similarly.
8785         * config/m68hc11/m68hc11.h: Similarly.
8786         * config/m68k/m68k.h: Similarly.
8787         * config/m88k/m88k.h: Similarly.
8788         * config/mcore/mcore.h: Similarly.
8789         * config/mips/mips.h: Similarly.
8790         * config/mn10200/mn10200.h: Similarly.
8791         * config/mn10300/mn10300.h: Similarly.
8792         * config/ns32k/ns32k.h: Similarly.
8793         * config/pa/pa.h: Similarly.
8794         * config/pdp11/pdp11.h: Similarly.
8795         * config/pj/pj.h: Similarly.
8796         * config/romp/romp.h: Similarly.
8797         * config/rs6000/rs6000.h: Similarly.
8798         * config/sh/sh.h: Similarly.
8799         * config/sparc/sparc.h: Similarly.
8800         * config/v850/v850.h: Similarly.
8801         * config/vax/vax.h: Similarly.
8802         * config/we32k/we32k.h: Similarly.
8803
8804 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
8805
8806         * doc/c-tree.texi: Document representation of attributes.
8807
8808 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
8809
8810         * doc/tm.texi: Update some places for the rename of target to
8811         targetm.  Fix typo.
8812
8813 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
8814
8815         * target.h (struct gcc_target): Add insert_attributes.
8816         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
8817         (TARGET_INITIALIZER): Update.
8818         * tree.c, tree.h (default_insert_attributes): New function.
8819         Update comments on other default functions to refer to targetm,
8820         not target.
8821         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
8822         TARGET_INSERT_ATTRIBUTES.
8823         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
8824         * c-common.c (decl_attributes): Use targetm.insert_attributes.
8825         Don't use PRAGMA_INSERT_ATTRIBUTES.
8826         * Makefile.in (c-common.o): Depend on $(TARGET_H).
8827         * c-decl.c (start_decl, start_function): Don't call
8828         SET_DEFAULT_DECL_ATTRIBUTES.
8829         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
8830         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
8831         declare.
8832         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
8833         (c4x_check_attribute): Avoid modifying attribute list itself.
8834         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
8835         Make static.
8836         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
8837         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
8838         declare.
8839         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
8840         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
8841         Make static.
8842         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
8843         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
8844         declare.
8845         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
8846         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
8847         Adjust parameters.  Make static.
8848
8849 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
8850
8851         * c-common.c (decl_attributes): Only take a single attributes
8852         parameter.
8853         * c-common.h (decl_attributes): Update prototype.
8854         * c-decl.c (start_decl, start_function): Only take a single
8855         attributes parameter.  Update calls to decl_attributes.
8856         (finish_struct, finish_enum): Update calls to decl_attributes.
8857         (push_parm_decl): Expect unified list of attributes.  Update call
8858         to decl_attributes.
8859         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
8860         notype_nested_function, component_declarator,
8861         component_notype_declarator, label): Update calls to
8862         decl_attributes.
8863         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
8864         lists that are passed to push_parm_decl.
8865         * c-tree.h (start_function, start_decl): Update prototypes.
8866         * config/sh/sh-protos.h, config/sh/sh.c
8867         (sh_pragma_insert_attributes): Only take a single attributes
8868         parameter.
8869         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
8870         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
8871         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
8872         build_module_descriptor, generate_static_references,
8873         generate_strings, build_selector_translation_table,
8874         generate_descriptor_table, generate_protocols,
8875         generate_ivars_list, generate_dispatch_table,
8876         generate_protocol_list, generate_category,
8877         generate_shared_structures, really_start_method, add_objc_decls,
8878         generate_classref_translation_entry): Update calls to start_decl
8879         and start_function.
8880         (build_tmp_function_decl, start_method_def): Unify attribute lists
8881         that are passed to push_parm_decl.
8882
8883 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
8884
8885         * final.c (no_asm_to_stream): New.
8886         (final_scan_insn): Use target structures for prologue ends
8887         and epilogue starts.
8888         * output.h (no_asm_to_stream): New.
8889         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
8890         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
8891         (TARGET_ASM_OUT): Update.
8892         * target.h (struct gcc_target): New members function_end_prologue
8893         and function_begin_epilogue.
8894         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
8895         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
8896         * config/alpha/alpha.c (output_end_prologue): Rename to
8897         alpha_output_function_end_prologue.  Use in target struct
8898         and make static.
8899         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
8900         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
8901         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
8902         ia64_output_function_end_prologue.  Use in target struct
8903         and make static.
8904         (ia64_function_prologue, ia64_funciton_epilogue): Rename
8905         mistyped prototypes.
8906         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
8907         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
8908         Delete.
8909         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
8910         an use in target struct, make static.
8911         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
8912         Delete.
8913
8914 2001-07-08  Richard Henderson  <rth@redhat.com>
8915
8916         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
8917
8918 2001-07-08  Richard Henderson  <rth@redhat.com>
8919
8920         * config/i386/i386.md: Remove constraints strings from define_split
8921         and define_peephole2 patterns.
8922         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
8923         (eh_return): Use them.
8924
8925 2001-07-08  Richard Henderson  <rth@redhat.com>
8926
8927         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
8928         Document MD_FALLBACK_FRAME_STATE_FOR.
8929
8930 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8931
8932         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
8933         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
8934         elimination.
8935         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
8936
8937 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
8938
8939         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
8940         of the label inside NAME as opposed to just the end of NAME.
8941
8942 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8943
8944         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
8945         * config/alpha/alpha.c (alpha_init_machine_status,
8946         alpha_mark_machine_status, alpha_free_machine_status): Delete.
8947         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
8948         (vms_valid_decl_attribute_p): Make static, conditionally compile.
8949         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
8950
8951 2001-07-06  Stan Shebs  <shebs@apple.com>
8952
8953         * target.h (targetm): Rename global from "target", so as not to
8954         conflict with local variables.
8955         * c-decl.c: Ditto.
8956         * c-typeck.c: Ditto.
8957         * final.c: Ditto.
8958         * tree.c: Ditto.
8959         * cp/decl.c: Ditto.
8960         * cp/decl2.c: Ditto.
8961         * cp/typeck.c: Ditto.
8962         * 1750a/1750a.c: Ditto.
8963         * a29k/a29k.c: Ditto.
8964         * arc/arc.c: Ditto.
8965         * arm/arm.c: Ditto.
8966         * avr/avr.c: Ditto.
8967         * clipper/clipper.c: Ditto.
8968         * convex/convex.c: Ditto.
8969         * d30v/d30v.c: Ditto.
8970         * dsp16xx/dsp16xx.c: Ditto.
8971         * elxsi/elxsi.c: Ditto.
8972         * fr30/fr30.c: Ditto.
8973         * h8300/h8300.c: Ditto.
8974         * i370/i370.c: Ditto.
8975         * i386/i386.c: Ditto.
8976         * i860/i860.c: Ditto.
8977         * i960/i960.c: Ditto.
8978         * ia64/ia64.c: Ditto.
8979         * m32r/m32r.c: Ditto.
8980         * m68hc11/m68hc11.c: Ditto.
8981         * m68k/m68k.c: Ditto.
8982         * m88k/m88k.c: Ditto.
8983         * mips/mips.c: Ditto.
8984         * ns32k/ns32k.c: Ditto.
8985         * pa/pa.c: Ditto.
8986         * pdp11/pdp11.c: Ditto.
8987         * romp/romp.c: Ditto.
8988         * rs6000/rs6000.c: Ditto.
8989         * sh/sh.c: Ditto.
8990         * sparc/sparc.c: Ditto.
8991         * vax/vax.c: Ditto.
8992         * we32k/we32k.c: Ditto.
8993         * doc/tm.texi: Update the manual to match.
8994
8995 2001-07-06  Richard Henderson  <rth@redhat.com>
8996
8997         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
8998         DWARF2_UNWIND_INFO not just whether it is defined.
8999
9000 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
9001
9002         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
9003         call to simplify_binary_operation returns a new pattern.
9004
9005 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
9006
9007         * glimits.h (__SHRT_MAX__): New.
9008         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
9009         (SHRT_MAX): Define in terms of __SHRT_MAX__.
9010
9011 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
9012
9013         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
9014         avoid warnings.
9015
9016 2001-07-06  Richard Henderson  <rth@redhat.com>
9017
9018         * bitmap.c (bitmap_release_memory): Move adjacent to the
9019         allocation functions.
9020         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
9021         the implementation.  Binary search for the set bit.
9022         (bitmap_union_of_diff): Allocate the temporary on the stack
9023         instead of using xmalloc.
9024
9025 2001-07-06  Richard Henderson  <rth@redhat.com>
9026
9027         * genrecog.c (validate_pattern): Warn for constraints in
9028         define_{expand,split,peephole2}.  Remove strict_low_part
9029         before looking up match_dup.
9030
9031 2001-07-06  DJ Delorie  <dj@redhat.com>
9032
9033         * doc/gcc.texi (Makefile): Rename to be a more general purpose
9034         chapter about various build hints and history.  Add section
9035         talking about the various types of native and cross builds.
9036
9037 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
9038
9039         * Makefile.in (final.o): Depend on target.h.
9040         * final.c: Include target.h.
9041         (default_function_pro_epilogue): New.
9042         (final_start_function): Use target structure for function prologues.
9043         (final_end_function): Use target structure for function epilogues.
9044         * fold-const.c (real_hex_to_f): Constify s and p.
9045         * output.h (default_function_pro_epilogue): New.
9046         * real.h (real_hex_to_f): Update prototype.
9047         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
9048         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
9049         (TARGET_INITIALIZER): Update.
9050         * target.h (gcc_target): Add struct asm_out.
9051         * doc/tm.texi: Update.
9052
9053 config:
9054         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
9055         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
9056         in cpu/cpu.c, or rename old functions consistently.  Take
9057         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
9058         redundant macros and prototypes.  Make new functions static.
9059
9060         * 1750a/1750a.c: Similarly.
9061         * 1750a/1750a.h: Similarly.
9062         * a29k/a29k-protos.h: Similarly.
9063         * a29k/a29k.c: Similarly.
9064         * a29k/a29k.h: Similarly.
9065         * arc/arc-protos.h: Similarly.
9066         * arc/arc.c: Similarly.
9067         * arc/arc.h: Similarly.
9068         * arm/arm-protos.h: Similarly.
9069         * arm/arm.c: Similarly.
9070         * arm/arm.h: Similarly.
9071         * avr/avr-protos.h: Similarly.
9072         * avr/avr.c: Similarly.
9073         * avr/avr.h: Similarly.
9074         * clipper/clipper-protos.h: Similarly.
9075         * clipper/clipper.c: Similarly.
9076         * clipper/clipper.h: Similarly.
9077         * convex/convex.c: Similarly.
9078         * convex/convex.h: Similarly.
9079         * d30v/d30v-protos.h: Similarly.
9080         * d30v/d30v.c: Similarly.
9081         * d30v/d30v.h: Similarly.
9082         * d30v/d30v.md: Similarly.
9083         * dsp16xx/dsp16xx-protos.h: Similarly.
9084         * dsp16xx/dsp16xx.c: Similarly.
9085         * dsp16xx/dsp16xx.h: Similarly.
9086         * elxsi/elxsi.c: Similarly.
9087         * elxsi/elxsi.h: Similarly.
9088         * fr30/fr30.c: Similarly.
9089         * fr30/fr30.md: Similarly.
9090         * h8300/h8300-protos.h: Similarly.
9091         * h8300/h8300.c: Similarly.
9092         * h8300/h8300.h: Similarly.
9093         * i370/i370-protos.h: Similarly.
9094         * i370/i370.c: Similarly.
9095         * i370/i370.h: Similarly.
9096         * i386/i386.c: Similarly.
9097         * i386/osf1elf.h: Similarly.
9098         * i386/osfrose.h: Similarly.
9099         * i860/i860-protos.h: Similarly.
9100         * i860/i860.c: Similarly.
9101         * i860/i860.h: Similarly.
9102         * i960/i960-protos.h: Similarly.
9103         * i960/i960.c: Similarly.
9104         * i960/i960.h: Similarly.
9105         * ia64/ia64-protos.h: Similarly.
9106         * ia64/ia64.c: Similarly.
9107         * ia64/ia64.h: Similarly.
9108         * m32r/m32r-protos.h: Similarly.
9109         * m32r/m32r.c: Similarly.
9110         * m32r/m32r.h: Similarly.
9111         * m68hc11/m68hc11-protos.h: Similarly.
9112         * m68hc11/m68hc11.c: Similarly.
9113         * m68hc11/m68hc11.h: Similarly.
9114         * m68k/crds.h: Similarly.
9115         * m68k/dpx2.h: Similarly.
9116         * m68k/m68k-protos.h: Similarly.
9117         * m68k/m68k.c: Similarly.
9118         * m68k/m68k.h: Similarly.
9119         * m68k/news.h: Similarly.
9120         * m88k/m88k-protos.h: Similarly.
9121         * m88k/m88k.c: Similarly.
9122         * m88k/m88k.h: Similarly.
9123         * mips/mips-protos.h: Similarly.
9124         * mips/mips.c: Similarly.
9125         * mips/mips.h: Similarly.
9126         * ns32k/merlin.h: Similarly.
9127         * ns32k/ns32k.c: Similarly.
9128         * ns32k/ns32k.h: Similarly.
9129         * ns32k/tek6000.h: Similarly.
9130         * pa/pa-protos.h: Similarly.
9131         * pa/pa.c: Similarly.
9132         * pa/pa.h: Similarly.
9133         * pdp11/2bsd.h: Similarly.
9134         * pdp11/pdp11-protos.h: Similarly.
9135         * pdp11/pdp11.c: Similarly.
9136         * pdp11/pdp11.h: Similarly.
9137         * romp/romp-protos.h: Similarly.
9138         * romp/romp.c: Similarly.
9139         * romp/romp.h: Similarly.
9140         * rs6000/rs6000-protos.h: Similarly.
9141         * rs6000/rs6000.c: Similarly.
9142         * rs6000/rs6000.h: Similarly.
9143         * rs6000/sysv4.h: Similarly.
9144         * sh/sh-protos.h: Similarly.
9145         * sh/sh.c: Similarly.
9146         * sh/sh.h: Similarly.
9147         * sparc/sparc-protos.h: Similarly.
9148         * sparc/sparc.c: Similarly.
9149         * sparc/sparc.h: Similarly.
9150         * vax/vax.c: Similarly.
9151         * vax/vax.h: Similarly.
9152         * vax/vms.h: Similarly.
9153         * we32k/we32k.c: Similarly.
9154         * we32k/we32k.h: Similarly.
9155
9156 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
9157
9158         * basic-block.h (first_insn_after_basic_block_note): Declare.
9159         * flow.c (first_insn_after_basic_block_note): Define.  Moved
9160         from...
9161         * ssa.c (first_insn_after_basic_block_note): Remove.
9162         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
9163         necessary.
9164         (ssa_eliminate_dead_code): Properly update the CFG and PHI
9165         nodes when we find a dead conditional branch.  Insert BARRIERs
9166         after any blocks with no successors, but which do not have
9167         any BARRIERs.
9168
9169 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
9170
9171         * varray.c (varray_check_failed): Use internal_error.
9172
9173 2001-07-05  Andrew Haley  <aph@redhat.com>
9174
9175         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
9176         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
9177         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
9178
9179 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
9180
9181         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
9182         reference if the target constant is also a SYMBOL_REF.
9183
9184 2001-07-05  Eric Christopher  <echristo@redhat.com>
9185
9186         * config/mips/mips.h (MASK_MIPS3900): Remove.
9187         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
9188         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
9189         (TARGET_MIPS3900): Change to use mips_arch.
9190         (TARGET_MIPS4000): New.
9191         (TARGET_MIPS4100): New.
9192         (TARGET_MIPS4300): New.
9193         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
9194         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
9195         for -mipsX.
9196         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
9197         (ISA_HAS_BRANCHLIKELY): To here.
9198         (CC1_CPU_SPEC):  New.
9199         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
9200         (mips_arch_string): Declare.
9201         (mips_arch): Declare.
9202         (TARGET_OPTIONS): Add -march and -mtune.
9203
9204         * config/mips/mips.c (mips_arch_string): New.
9205         (mips_arch): New.
9206         (override_options): Handle -march for codegen and -mtune
9207         for scheduling. Use mips_arch. Move tx39 target default here.
9208         (mips_parse_cpu): Move error message to override_options.
9209
9210         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
9211
9212         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
9213
9214         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
9215         (MIPS Options): Ditto.  Change mcpu entry to historical text.
9216
9217 2001-07-05  H.J. Lu  (hjl@gnu.org)
9218
9219         * config/mips/mips.c (mips_parse_cpu): New function to parse
9220         -march=*/-mcpu=*.
9221
9222 2001-07-05  Jim Wilson  <wilson@redhat.com>
9223
9224         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
9225         * config/ia64/t-ia64: Likewise.
9226         (LIB1ASMFUNCS): Update comment.
9227
9228 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
9229
9230         * doc/install.texi (Install GCC: Binaries): Fix typo.
9231
9232 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9233
9234         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
9235         reference using the stack pointer, adjust it since we push Y
9236         temporarily.
9237         ("*ashrsi3"): Likewise.
9238         ("*lshrsi3"): Likewise.
9239
9240 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9241
9242         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
9243         when -fomit-frame-pointer is used.
9244
9245 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
9246
9247         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
9248         (try_redirect_by_replacing_jump): Reverse updating properly the
9249         count and frequency information.  Reverse removing cc0 setter.
9250         (forwarder_block_p): Reverse fixing for fallthru blocks.
9251
9252 2001-07-05  DJ Delorie  <dj@redhat.com>
9253
9254         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
9255         (translate_options): If the above is defined, use it to map
9256         given options to new options.
9257         * doc/tm.texi: Document it.
9258
9259 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
9260             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9261
9262         * doc/invoke.texi (Optimize Options): Document that -fgcse may
9263         cause programs using computed gotos to run more slowly.
9264
9265 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9266
9267         * doc/install.texi (Specific): Markup, spelling and typo fixes.
9268         Fixed sorting.
9269         Consistently require binutils 2.11.2, not prereleases.
9270         (Specific, decstation-*): Canonicalize as mips-dec-*.
9271         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
9272         always necessary.
9273         (Specific, m68k-altos): Removed reference to README.altos, deleted.
9274         (Specific, mips-*): Reword MIPS C compiler requirements.
9275         (Specific, powerpc*-*-*): New, mention --with-cpu once.
9276         (Specific, sunv5): Removed, obsolete.
9277
9278 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
9279
9280         * dwarf2out.c (output_loc_list): Use an all ones mask for
9281         .text asm output and don't rely on long long
9282         literals. Reformat some long lines.
9283
9284 2001-07-05  Andreas Jaeger  <aj@suse.de>
9285
9286         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
9287         section.
9288
9289 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
9290
9291         * dwarf2out.c (dwarf2out_define): Update comment.
9292         (dwarf2out_undef): Ditto.
9293         (dwarf2out_start_source_file): Ditto.
9294         (dwarf2out_end_source_file): Ditto.
9295         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
9296         since we never call the start/end debug hook for the primary file.
9297
9298 2001-07-04  Kazu Hirata  <kazu@hxi.com>
9299
9300         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
9301         from shll.
9302
9303 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
9304
9305         * cppinit.c (remove_dup_dirs): Inform if a system include
9306         directory is being reordered.
9307         * doc/invoke.texi (Directory Options): GCC warns if you hide a
9308         system include.
9309         * doc/cpp.texi (Search Paths): Likewise.
9310         * doc/gcc.texi (Interoperation): Remove information about
9311         -I/usr/include.
9312
9313 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
9314
9315         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
9316         (VARRAY_TOP_CHAR_PTR): Likewise.
9317
9318 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9319
9320         * gcc.c (process_command): Don't assign elements of a const char*.
9321
9322 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9323
9324         * emit-rtl.c (change_address): Don't abort if invalid address while
9325         reload is in progress.
9326
9327 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
9328
9329         * c-lex.c (cb_file_change): Pass line number to
9330         debug_start_source_file.
9331         (cb_undefine): Pass correct line number to debug_undef.
9332
9333         * toplev.c (debug_start_source_file): Add line number to
9334         parameters. Pass it along to dwarf2out_start_source_file.
9335         (decode_g_option): Stop resetting debug level back to normal when
9336         we change debug formats, unless the current level is
9337         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
9338         3).
9339
9340         * toplev.h (debug_start_source_file): Add line number to
9341         parameters.
9342
9343         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
9344         parameters.
9345
9346         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
9347         parameters.
9348         Output debug_macinfo data for starting file if requested.
9349         (dwarf2out_end_source_file): Output debug_macinfo data for ending
9350         file if requested.
9351         (dwarf2out_define): Output debug_macinfo data for defining a macro
9352         if requested.
9353         (dwarf2out_undef): Output debug_macinfo data for undefining a
9354         macro if requested.
9355         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
9356         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
9357         (macinfo_section_label): New. DWARF2 macro info section label.
9358         (dwarf2out_init): If we want macro info, output the start label
9359         for the section.
9360         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
9361         attribute to the compilation unit die pointing to the macro info.
9362
9363 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
9364
9365         * dwarf2out.c (new_loc_list): Move to inside #ifdef
9366         DWARF2_DEBUGGING_INFO.
9367         (add_loc_descr_to_loc_list): Ditto.
9368         (output_loc_list): Ditto.
9369         Also, fix thinko in curr not being initialized.
9370         (gen_internal_sym): Ditto.
9371
9372 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9373
9374         * emit-rtl.c (replace_equiv_address): New function.
9375         * expr.h (replace_equiv_address): New declaration.
9376         * explow.c (validize_mem): Call it instead of change_address and
9377         also call if -fforce-addr and address is constant.
9378         * expr.c: Replace more calls to change_address with adjust_address
9379         and/or replace_equiv_address or to validize_mem.
9380         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
9381         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
9382         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
9383         * config/i370/i370.md, config/i860/i860.md: Likewise.
9384         * config/i960/i960.md, config/mips/mips.c: Likewise.
9385         * config/mips/mips.md, config/pa/pa.md: Likewise.
9386         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
9387         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
9388
9389 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9390
9391         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
9392
9393         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
9394         function.
9395
9396 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9397
9398         * doc/include: New directory.
9399         * doc/fdl.texi: Move to doc/include/fdl.texi.
9400         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
9401         * doc/include/funding.texi, doc/include/gpl.texi: New files.
9402         * doc/gcc.texi: Use funding.texi and gpl.texi.
9403         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
9404         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
9405         Update dependencies and use -I $(docdir)/include.
9406
9407 2001-07-04  Anthony Green  <green@redhat.com>
9408
9409         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
9410
9411 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9412
9413         * doc/install.texi (sparc64-*-*): Remove garbage.
9414
9415 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
9416
9417         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
9418         Fix typo in last change to use adjust_address.
9419
9420 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9421
9422         * doc/install.texi (Specific): Update information for *-*-solaris*.
9423
9424 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9425
9426         * explow.c (plus_constant_wide): Reinitialize Y for restart.
9427
9428 2001-07-03  Stan Shebs  <shebs@apple.com>
9429
9430         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
9431         case for flag_no_mach_text_sections.
9432         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
9433         * config/darwin.c (flag_no_mach_text_sections): Remove.
9434         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
9435
9436 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9437
9438         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
9439         and avoid checking for constant as first operand.
9440         * recog.c (find_constant_term_loc): No longer static.
9441         (adj_offettable_operand): Delete.
9442         * rtl.h (adj_offsettable_operand): Delete declaration.
9443         (find_constant_term): Add declaration.
9444         * caller-save.c: Replace calls to adj_offsettable_operand with calls
9445         to adjust_address.
9446         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
9447         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
9448         * config/i386/i386.c, config/i386/i386.md: Likewise.
9449         * config/i860/i860.c, config/i960/i960.c: Likewise.
9450         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
9451         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
9452         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
9453         * config/mips/mips.c, config/mips/mips.md: Likewise.
9454         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
9455         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
9456         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
9457         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
9458         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
9459         * config/ns32k/ns32k.md: Likewise.
9460
9461 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
9462
9463         * rtl.c (copy_rtx): Handle 'T' format letter.
9464         * gensupport.c (collect_insn_data): Likewise.
9465         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
9466
9467 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
9468
9469         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
9470         -B option.  Use 'dir' not 'foo' as example directory name.
9471
9472 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9473
9474         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9475         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
9476
9477 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
9478
9479         * doc/cppinternals.texi: Improve formatting and logical markup.
9480
9481 2001-07-03  Andreas Jaeger  <aj@suse.de>
9482
9483         * Makefile.in (insn-recog.o): Add dependency on reload.h.
9484
9485         * genrecog.c (write_header): Include reload.h for prototypes in
9486         insn-recog.c.
9487
9488 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9489
9490 config:
9491         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
9492         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
9493         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
9494         i386_pe_valid_type_attribute_p): Add.
9495         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
9496         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
9497
9498 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9499
9500         * explow.c (plus_constant_wide, case LO_SUM): New case.
9501         (plus_constant_for_output_wide): Delete.
9502         * rtl.h (plus_constant_for_output): Delete.
9503         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
9504         instead of plus_constant_for_output.
9505         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
9506         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
9507         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
9508         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
9509         * config/sparc/sparc.md: Likewise.
9510         Convert some change_address calls to adjust_address.
9511
9512 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
9513
9514         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
9515         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
9516         documentation of -std and -Wwrite-strings.
9517
9518 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
9519
9520         * cse.c (canon_hash): Don't register registers in very small
9521         register classes, as extending their lifetime might cause
9522         reload to fail.
9523
9524 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
9525
9526         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
9527
9528         * flow.c (forwarder_block_p): Fix for fallthru blocks.
9529         (try_redirect_by_replacing_jump): Update properly the count
9530         and frequency information.
9531
9532 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
9533
9534         * toplev.c (dump_file_index): Move SSA dumps just after first
9535         jump dump.
9536         (dump_file): Corresponding changes.
9537         (rest_of_compilation): Move SSA path to just after the first
9538         jump pass.
9539         * doc/gcc.texi (Passes): Update due to movement of SSA path.
9540         * doc/invoke.texi: Update dump file #s as they were completely
9541         out of date with reality.
9542
9543 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
9544
9545         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
9546
9547         * expr.c (emit_move_insn_1): Deal with non-default
9548         STACK_PUSH_CODE.
9549
9550         * expr.c (emit_single_push_insn): Fix warning.
9551
9552 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
9553
9554         * expr.c (emit_move_insn_1): Avoid modifying
9555         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
9556
9557 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9558
9559         * emit-rtl.c (adjust_address): New function.
9560         * expr.h (adjust_address): Add declaration.
9561         * builtins.c: Replace some calls to change_address with calls to it
9562         or to validize_mem.
9563         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
9564         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
9565         * config/arm/arm.c, config/convex/convex.c: Likewise.
9566         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
9567         * config/i386/i386.c, config/i386/i386.md: Likewise.
9568         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
9569         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
9570         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
9571         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
9572         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
9573
9574 2001-07-02  Jim Wilson  <wilson@redhat.com>
9575
9576         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
9577
9578 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
9579
9580         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
9581         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
9582
9583 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
9584
9585         * cppinit.c (lang_defaults): New table.
9586         (set_lang): Just read from lang_defaults into the live options
9587         structure.
9588
9589 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
9590
9591         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
9592         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
9593         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
9594
9595 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9596
9597         * doc/install.texi: Various spelling and markup fixes.
9598         (Installing GCC): Component specific installation instructions are
9599         gone.
9600         Fix reference.
9601         Warn about removing old install dir in the presence of shared libs.
9602         (Configuration): Invoke with options target to match configure
9603         --help.
9604         Consistently refer to gas, gld pathnames.
9605         Invert --enable-multilib documentation.
9606         Remove references to old compiler versions.
9607
9608 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9609
9610         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
9611
9612 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9613
9614         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
9615         section.
9616         (Specific, mips*-sgi-irix5): Note IDO download.
9617         Reworded MIPS C hints.
9618         Use GNU as instead of GAS.
9619         Markup fixes.
9620         Removed SGI Freeware reference, IRIX 6 only.
9621         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
9622         Note N64 library requirement/workaround.
9623         Update O32 hints.
9624         Complete list of structure passing bug victims.
9625
9626 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9627
9628         * doc/install.texi: Remove CVS Id.
9629
9630 2001-07-02  Andreas Jaeger  <aj@suse.de>
9631
9632         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
9633         (find_inherently_necessary): Remove unused variable.
9634
9635 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
9636
9637         * c-common.h (TDI_inlined): New ast dump phase.
9638         (dump_flag_name): New function.
9639         * c-dump.c (dump_files): Add inlined phase.
9640         (dump_flag_name): Define.
9641         * doc/invoke.texi (-fdump-ast-inlined): Document.
9642
9643 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9644
9645         * stor-layout.c (layout_decl): Revert change to handling of alignment
9646         in packed types.
9647
9648 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9649
9650         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
9651         for FIELD_DECL.
9652
9653 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
9654
9655         * doc/tm.texi (FUNCTION_ARG): Document that the last call
9656         is special.
9657
9658 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
9659
9660         * tlink.c (recompile_files): Remove COMPILER_PATH and
9661         LIBRARY_PATH from the environment.
9662
9663 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
9664
9665         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
9666         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
9667         enumerators.
9668         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
9669
9670         * c-parse.in (OBJC_STRING): Kill.
9671         (objc_string): Decompose to [objc_string] '@' STRING.
9672         (reswords): Take the leading '@' off all the Objective C keywords.
9673         (objc_rid_sans_at): Kill.
9674         (init_reswords): Don't initialize it.
9675         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
9676         (_yylex): Kill reconsider label.  Look ahead one token after
9677         an '@'; if we get an identifier, check whether it's an
9678         Objective C @-keyword.  If so, return the keyword.  Otherwise,
9679         put back the token and return the '@' as a terminal.
9680
9681         * cpplib.c (lex_macro_node): Remove unnecessary check for
9682         leading '@' on identifier.  Clarify control flow and commentary.
9683
9684 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9685
9686         * cse.c (new_label_ref): Variable deleted.
9687         (insert): Remove set of new_label_ref.
9688         (check_for_label_ref): New function.
9689         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
9690
9691 See ChangeLog.5 for earlier changes.