OSDN Git Service

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