OSDN Git Service

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