OSDN Git Service

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