OSDN Git Service

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