OSDN Git Service

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