OSDN Git Service

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