OSDN Git Service

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