OSDN Git Service

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