OSDN Git Service

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