OSDN Git Service

* config/mips/mips-protos.h: Break up long lines.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Sat Oct 27 17:32:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2
3         * config/mips/mips-protos.h: Break up long lines.
4         Remove needless #ifdef/#endif blocks.
5         Don't declare functions declared in file made by genpreds or recog.h.
6         * config/mips/mips.c (mips_output_function_prologue): TSIZE
7         is now HOST_WIDE_INT; delete unneeded casts.
8         * config/mips/mips.h: Don't use #elif.
9         
10         * expr.c (stor_constructor_field): Always call adjust_address.
11         Copy TARGET before changing its alias set.
12         (store_field): Likewise, for TO_RTX.
13         (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find
14         replacement.
15         (safe_from_p, case ADDR_EXPR): Properly check for conflict.
16         (find_placeholder): Return 0 if can't find object.
17         (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder
18         returns 0.
19
20 Sat Oct 27 16:31:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
21
22         * ifcvt.c (if_convert): Call clear_aux_for_blocks.
23
24 Sat Oct 27 12:12:09 CEST 2001  Jan Hubicka  <jh@suse.cz>
25
26         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
27         merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
28         (merge_blocks): Properly udpate life after making edge nonfallthru.
29         * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.
30
31 2001-10-26  Kazu Hirata  <kazu@hxi.com>
32
33         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
34
35 2001-10-26  Neil Booth  <neil@daikokuya.demon.co.uk>
36
37         * c-typeck.c (convert_arguments): When comparing for enumeral
38         type equality, use TYPE_MAIN_VARIANT.
39         * gcc.dg/Wconversion.c: New tests.
40
41 2001-10-26  Kazu Hirata  <kazu@hxi.com>
42
43         * s390/s390.c: Fix comment typos.
44         * s390/s390.h: Likewise.
45         * s390/s390.md: Likewise.
46
47 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
48
49         * tree-inline.c (WALK_SUBTREE_TAIL): New macro.
50         (walk_tree): Use it for tail calls where appropriate.
51
52 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
53
54         * cse.c (check_for_label_ref): Don't require REG_LABEL notes for
55         non-local label_refs.
56
57 2001-10-26  Kazu Hirata  <kazu@hxi.com>
58
59         * config/h8300/h8300.md (4 anonymous patterns): New.
60
61 2001-10-26  Kazu Hirata  <kazu@hxi.com>
62
63         * config/h8300/h8300.c (get_shift_alg): Clean up.  Return the
64         algorithm through the shift_info structure.
65         (emit_a_shift): Update the use of get_shift_alg.
66
67 2001-10-27  Daniel Berlin  <dan@cgsoftware.com>
68
69         * sched-rgn.c: Remove bitset typedef.
70         Change bitset to sbitmap in prototypes / variable types.
71         Remove bbset_size.
72         Remove edgeset_bits.
73         Remove edgeset_size.
74         s/BITSET_ADD/SET_BIT/g
75         s/BITSET_INVERT/sbitmap_ones/g
76         s/BITSET_INTER/sbitmap_a_and_b/g
77         s/BITSET_UNION/sbitmap_a_or_b/g
78         s/BITSET_DIFFER/sbitmap_difference/g
79         s/bitset_member/TEST_BIT/g
80         (BITSET_*): Removed.
81         (bitset_member): Removed.
82         (extract_bitlst): Rewrite, now that we have sbitmaps, we can use
83         EXECUTE_IF_SET_IN_SBITMAP.
84         (split_edges): Rewrite, use sbitmap functions instead of bitset
85         operations.
86         (schedule_region): Allocate/free sbitmaps, rather than bitsets.
87
88 2001-10-26  Andreas Schwab  <schwab@suse.de>
89
90         * reload1.c (emit_input_reload_insns): Fix parens in last
91         (undocumented) change that was supposed to change only whitespace.
92
93 Fri Oct 26 07:18:08 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
94
95         * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning.
96
97         * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for
98         ASM_OPERANDS.
99
100 2001-10-26  Andreas Jaeger  <aj@suse.de>
101
102         * flow.c (clear_log_links): Remove unused variable.
103         * cfgcleanup.c (cleanup_cfg): Likewise.
104
105 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
106
107         * tree-inline.c (remap_decl): Don't copy size and size_unit here.
108         (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node.
109
110 2001-10-26  Richard Henderson  <rth@redhat.com>
111
112         * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG;
113         rename PV_REG to R27_REG.
114         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
115         (REG_CLASS_FROM_LETTER): Update.
116         (PREFERRED_RELOAD_CLASS): Don't widen a reg class.
117         * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27.
118         (udivsi3, modsi3, umodsi3): Likewise.
119         (divdi3, udivdi3, moddi3, umoddi3): Likewise.
120
121 2001-10-26  Richard Henderson  <rth@redhat.com>
122
123         * cfg.c (clear_aux_for_blocks): Split out of ...
124         (free_aux_for_blocks): here.
125         (clear_aux_for_edges): Split from ...
126         (free_aux_for_edges): here.
127         * basic-block.h: Declare them.
128         * lcm.c (compute_antinout_edge): Use them.
129         (compute_laterin, compute_available, compute_nearerout): Likewise.
130         (optimize_mode_switching): Likewise.
131
132 2001-10-26  Richard Henderson  <rth@redhat.com>
133
134         * Makefile.in (unstage*): Remove as, ld, collect-ld before
135         moving everything back to the main build directory.
136
137 2001-10-26  Christopher Faylor  <cgf@redhat.com>
138
139         * config/i386/cygwin.h: Search target specfic include directory, if
140         appropriate.
141
142 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
143
144         * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside
145         of macro guards. Fix #endif comment.
146
147         * output.h (default_exception_section, default_eh_frame_section):
148         Move prototypes outside of macro guard.
149
150         * crtstuff.c: Fix #endif comment.
151
152 Thu Oct 25 12:21:58 2001  Jeffrey A Law  (law@cygnus.com)
153
154         * doc/md.texi (movMM): Clarify semantics of storing into a
155         non-paradoxical SUBREG.
156
157 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
158
159         * langhooks.c (lang_hook_default_clear_binding_stack): New.
160         (lang_hook_default_get_alias_set): Move next to other alias
161         hooks.
162         * langhooks.h: Prototype lang_hook_default_clear_binding_stack.
163         (LANG_HOOKS_CLEAR_BINDING_STACK): New macro.
164         (LANG_HOOKS_INITIALIZER): Add it.
165         * toplev.h (struct lang_hooks): Add clear_binding_stack.
166         * toplev.c (compile_file):  Call lang_hooks.clear_binding_stack
167         instead of a loop calling poplevel.
168
169 2001-10-25  Nick Clifton  <nickc@cambridge.redhat.com>
170
171         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace
172         occurrences of #elif with #if...#endif.
173
174 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
175
176         * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning.
177
178 Thu Oct 25 08:46:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
179
180         * alias.c (can_address_p): No longer static.
181         * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
182         Return 0 if all parameters are default values.
183         (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
184         (adjust_address_1): Try harder to compute a size.
185         * expr.c (expand_assignment, store_constructor): If can't address,
186         set MEM_KEEP_ALIAS_SET_P.
187         (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
188         (store_field): Likewise.
189         (store_constructor): Simplify call to store_constructor_field.
190         * expr.h (can_address_p): New declaration.
191         * gensupport.c (gen_rtx_CONST_INT): New function.
192         * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
193         (MEM_SIZE): Get size from mode, if not set and not BLKmode.
194         (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
195
196         * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst.
197
198 2001-10-24  Christopher Faylor  <cgf@redhat.com>
199
200         * config/i386/cygwin.h: Use proper path for mingw crt files when
201         -mno-cygwin.
202
203 Wed Oct 24 18:43:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
204
205         * dwarf2out.c (file_info_cmp): Always return consistent results.
206
207 2001-10-24  Roger Sayle <roger@eyesopen.com>
208
209         * stmt.c (expand_end_case): Index jumptables from zero for
210         suitably small values of minval.
211
212 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
213
214         * stor-layout.c (place_union_field): If any field was aligned with
215         attribute aligned, set record type's TYPE_USER_ALIGN.
216         (place_field): Likewise.
217         (finalize_record_size): Don't clear TYPE_USER_ALIGN.
218         (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN.
219
220 2001-10-24  Zack Weinberg  <zack@codesourcery.com>
221
222         * c-common.h (struct c_common_identifier): Remove rid_code field.
223         (C_RID_CODE): Use ->node.rid_code instead of ->rid_code.
224
225         * c-typeck.c (constructor_designated): New local flag.
226         (struct constructor_stack): Add "designated" field to match.
227         (start_init): Clear it.
228         (really_start_incremental_init, push_init_level): Push and
229         clear it.
230         (pop_init_level): Pop it.
231         (set_designator): Set it.
232
233         (pop_init_level): Suppress "missing initializer" warnings if
234         constructor_designated is true.
235         (process_init_element): Suppress warning about union
236         initialization under traditional C, if constructor_designated
237         is true.
238
239 Wed Oct 24 15:35:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
240
241         * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last
242         change.
243
244 Wed Oct 24 13:26:12 2001  Jeffrey A Law  (law@cygnus.com)
245
246         * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition.
247
248 2001-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
249
250         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if
251         the node was already a set to a constant.
252
253 Wed Oct 24 12:41:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
254
255         * emit-rtl.c (set_mem_attributes): Fix typo in last change.
256         * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL.
257
258 2001-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
259
260         * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings.
261         (ASM_OUTPUT_ASCII): Const-ify.  Fix signed/unsigned warning.
262         (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
263         * s390.c (s390_final_chunkify): Don't use string concatenation.
264         (s390_function_prologue, s390_function_epilogue): Const-ify.
265         * s390.h (FUNCTION_PROFILER): Remove unused variable.
266
267 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
268
269         * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function
270         prototypes.
271
272 2001-10-23  Stan Shebs  <shebs@apple.com>
273
274         * config/rs6000/x-darwin: Use -no-cpp-precomp instead of
275         -traditional-cpp in first-stage compilation.
276
277 Tue Oct 23 21:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
278
279         * gensupport.c (target_flags): Add.
280
281 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
282
283         * builtins.c (expand_builtin_setjmp): Only call convert_memory_address
284         if needed.
285         (expand_builtin_longjmp, expand_builtin_alloca): Likewise.
286         * except.c (expand_builtin_frob_return_addr): Likewise.
287         (expand_builtin_eh_return): Likewise.
288         * stmt.c (expand_computed_goto): Likewise.
289         * explow.c (memory_address): Likewise.
290         (allocate_dynamic_stack_space): Clean up predicate testing.
291         (probe_stack_range): Convert SIZE to Pmode.
292         * calls.c (rtx_for_function_call): Only call convert_memory_address
293         if needed.
294         Pass function call operand as ptr_mode, not Pmode.
295         * expr.c (expand_assignment): Clean up calls to convert_memory
296         address by only doing so when needed and making offsets Pmode.
297         (store_constructor, expand_expr, expand_expr_unaligned): Likewise.
298         * function.c (assign_parms): Ensure address in MEM for RESULT_DECL
299         is in Pmode, not ptr_mode.
300
301 2001-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
302
303         * darwin-protos.h (constructor_section, destructor_section,
304         mod_init_section, mod_term_section): Prototype.
305         * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs):
306         Const-ify.
307         * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME):
308         Likewise.
309         (SECTION_FUNCTION): Prototype `FUNCTION'.  Delete
310         objc_section_init declaration.
311         (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init.
312         (objc_section_init, try_section_alias): Make static.
313         (alias_section): Make static and hide unused function.
314         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
315
316 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
317
318         * alias.c (can_address_p): Compnonents are not addressable if
319         the containing type has alias set 0.
320         (get_alias_set): Rework to use STRIP_NOPS.
321         Only call front-end routine on object, type, or object with
322         NOPs stripped, not inner values.
323         Use language hook to call front-end routine.
324         * builtins.c (get_memory_rtx): Always call set_mem_attributes.
325         (expand_builtin_apply): Call set_mem_align on MEMs we make.
326         Don't pass alignment to emit_block_move.
327         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
328         (expand_builtin_memset): Likewise, but for clear_storage.
329         * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
330         and remove C++ specific parts.
331         * c-common.h (c_common_get_alias_set): Add declaration.
332         * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
333         * calls.c (emit_call_1): Fix typo in sibcall_pop case.
334         (save_fixed_argument_area): Call set_mem_align.
335         Remove alignment in call to emit_block_move.
336         (emit_library_call_value_1, store_one_arg): Likewise.
337         (target_for_arg): Remove; disabled long ago.
338         * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
339         once and similar cleanups.
340         (offset_address): Use proper introductory comment.
341         * expr.c (emit_block_move): Use alignment from that of MEM args, not
342         from explicit operand; all callers changed.
343         (clear_storage): Likewise.
344         (expand_assignment): Don't call set_mem_alias_set on to_rtx.
345         (store_field): Remove kludge on alias set used for to_rtx.
346         (highest_pow2_factor, case *_DIV_EXPR): Never return 0.
347         (expand_expr_unaligned): Call set_mem_attributes instead of
348         set_mem_alias_set.
349         * expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
350         * function.c (assign_stack_temp_for_type): Set MEM alignment.
351         (expand_function_end): Track MEM attributes of trampolines.
352         * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
353         * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
354         attributes from original.
355         * langhooks.c (lang_hook_default_get_alias_set): New function.
356         (hook_get_alias_set_0): New function.
357         * langhooks.h (hook_get_alias_set_0): New declaration.
358         (lang_hook_default_get_alias_set): Likewise.
359         (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
360         * reload1.c (alter_reg): Use adjust_address_nv.
361         * rtl.c (get_mode_alignment): Moved to here.
362         * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
363         change default if unknown from 1 to BITS_PER_UNIT.
364         * stor-layout.c (get_mode_alignment): Remove from here.
365         * toplev.h (struct lang_hoks): Add get_alias_set field.
366         * tree.h (lang_get_alias_set): Delete declaration.
367         * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
368         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
369         (ix86_va_arg): Likewise.
370         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
371         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
372         * config/sparc/sparc.c (sparc_va_arg): Likewise.
373         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
374         (expand_block_move_mem): Remove dead code.
375
376 2001-10-22  Neil Booth  <neil@daikokuya.demon.co.uk>
377
378         * c-common.c (warn_div_by_zero): New.
379         * c-common.h (warn_div_by_zero): New.
380         * c-decl.c (c_decode_option): Take it on the command line.
381         * c-typeck.c (build_binary_op): Warn about division by zero.
382         * doc/invoke.texi: Document the new command line option, fix
383         documentation of -Wmultichar.
384         * testsuite/gcc.dg/divbyzero.c: New tests.
385         * testsuite/gcc.dg/noncompile/20010524-1.c: Update.
386
387 Tue Oct 23 15:30:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
388
389         * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op.
390
391         * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE
392         to avoid update_life_info call.
393         * basic-block.h (CLEANUP_UPATE_LIFE): Define.
394         * cfgcleanup.c (bb_flags): New enum.
395         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros.
396         (notice_new_block, update_forwarder_flag): New functions.
397         (try_simplify_condjump): Use FORWARDER_BLOCK_P.
398         (try_forward_edges): Likewise; update flags.
399         (merge_blocks): Likewise.
400         (outgoing_edges_match): Likewise.
401         (try_crossjump_to_edge): Likewise.
402         (try_optimize_cfg): Likewise; initialize and clear the flags;
403         recompute life info if needed.
404         (cleanup_cfg): No need to clear aux pointers.
405
406 2001-10-23  Alexandre Oliva  <aoliva@redhat.com>
407
408         * config/i386/i386.c (override_options): Default to minimum
409         stack alignment when optimizing for code size.
410         * doc/invoke.texi (-mpreferred-stack-boundary): Document the
411         change.
412
413         * config/i386/i386.c (override_options): Set upper limit of
414         -mpreferred-stack-boundary to 12.
415
416 2001-10-22  Zack Weinberg  <zack@codesourcery.com>
417
418         * recog.c (peephole2_optimize): Add default case to switch.
419
420 2001-10-23  Joseph S. Myers  <jsm28@cam.ac.uk>
421
422         * doc/gcc.texi (Sending Patches): Remove.
423
424 2001-10-22  Hans-Peter Nilsson  <hp@bitrange.com>
425
426         * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin
427         fields when comparing.
428
429 2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
430
431         * arm.h (HOST_INT, HOST_UINT): Delete.  Remove all uses.
432         * arm.c (HOST_INT, HOST_UINT): Likewise.
433
434 2001-10-22  Stan Shebs  <shebs@apple.com>
435
436         * config/darwin-protos.h (darwin_exception_section): Declare.
437         (darwin_eh_frame_section): Declare.
438
439 Mon Oct 22 18:21:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
440
441         * i386.md (movti_rex64): Fix mode.
442
443 2001-10-22  Stan Shebs  <shebs@apple.com>
444
445         * target.h (struct gcc_target): Add asm_out.exception_section,
446         asm_out.eh_frame_section.
447         * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro.
448         (TARGET_ASM_EH_FRAME_SECTION): New.
449         (TARGET_INITIALIZER): Update.
450         * output.h (default_exception_section): Declare.
451         (default_eh_frame_section): Declare.
452         * dwarf2out.c: Include target.h.
453         (output_call_frame_info): Call target hook for eh frames.
454         (default_eh_frame_section): New function.
455         * except.c: Include target.h.
456         (output_function_exception_table): Call target hook for exception
457         section.
458         * varasm.c (default_exception_section): Rename from
459         exception_section, remove EXCEPTION_SECTION macro.
460
461         * config/darwin.h (darwin_eh_frame_section): New function.
462         (EXCEPTION_SECTION): Remove.
463         (TARGET_ASM_EXCEPTION_SECTION): Define.
464         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove.
465         (nextstep_exception_section): New function.
466         (nextstep_eh_frame_section): New function.
467         (TARGET_ASM_EXCEPTION_SECTION): Define.
468         (TARGET_ASM_EH_FRAME_SECTION): Define.
469
470         * config/pa/som.h (EXCEPTION_SECTION): Remove.
471         (TARGET_ASM_EXCEPTION_SECTION): Define.
472         * config/rs6000/sysv4.h, config/rs6000/xcoff.h
473         (EXCEPTION_SECTION): Remove.
474         (TARGET_ASM_EXCEPTION_SECTION): Define.
475         * config/stormy16/stormy16.h: Remove comments referencing
476         EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP.
477
478         * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and
479         TARGET_ASM_EH_FRAME_SECTION.
480
481 2001-10-22  Nick Clifton  <nickc@cambridge.redhat.com>
482
483         * config/mips/mips.md (mul_acc_si): Fix precedence of conditional
484         terms.
485
486         * c-format.c: Fix spelling typo in comment.
487
488         * sched-int.h: Fix typo in GCC preamble.
489
490 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
491
492         PR debug/4252
493         * doc/invoke.texi: Remove references to -fdump-translation-unit.
494
495 2001-10-22  Richard Henderson  <rth@redhat.com>
496
497         * config/i386/i386.c (ix86_expand_clear): New.
498         * config/i386/i386-protos.h: Declare it.
499         * config/i386/i386.md (setcc peep2s): Use it.
500         (movsi_xor): Unexport.
501
502 2001-10-22  Richard Henderson  <rth@redhat.com>
503
504         * flow.c (clear_log_links): Use free_INSN_LIST_list, not
505         free_EXPR_LIST_list for LOG_LINKS.
506
507 2001-10-21  Robert Lipe  <robertlipe@usa.net>
508
509         * config/i386/i386.c (sco_asm_named_section): Delete.
510         (sco_asm_out_constructor): Delete.
511         * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h.
512         (ASM_OUTPUT_DOUBLE_INT): Likewise.
513         (TARGET_ASM_CONSTRUCTOR): Delete.  Use default.
514         (TARGET_ASM_NAMED_SECTION): Use default for ELF.
515         (EXCEPTION_SECTION): Delete EH scn renaming hack.
516
517 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
518
519         * c-format.c (maybe_read_dollar_number): Use safe-ctype macros
520         and/or fold extra calls into fewer ones.
521         * collect2.c (dump_file): Likewise.
522         * cppexp.c (parse_number): Likewise.
523         * cpplex.c (_cpp_lex_direct): Likewise.
524         * final.c (output_asm_insn, asm_fprintf): Likewise.
525         * fix-header.c (inf_scan_ident, main): Likewise.
526         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
527         Likewise.
528         * fold-const.c (real_hex_to_f): Likewise.
529         * gen-protos.c (parse_fn_proto): Likewise.
530         * genattrtab.c (check_attr_test, check_attr_value): Likewise.
531         * genrecog.c (change_state, write_action): Likewise.
532         * gensupport.c (shift_output_template): Likewise.
533         * local-alloc.c (requires_inout): Likewise.
534         * mips-tfile.c (IS_ASM_IDENT): Likewise.
535         * protoize.c (is_id_char, main): Likewise.
536         * real.c (asctoeg): Likewise.
537         * recog.c (asm_operand_ok): Likewise.
538         * reload.c (find_reloads): Likewise.
539         * scan.c (scan_identget_token): Likewise.
540         * sched-vis.c (print_value): Likewise.
541         * stringpool.c (ggc_alloc_string): Likewise.
542         * toplev.c (read_integral_parameter, decode_g_option): Likewise.
543         * tradcif.y (parse_number, yylex, parse_escape): Likewise.
544         * tradcpp.c (rescan): Likewise.
545         * tree.c (clean_symbol_name): Likewise.
546         * varasm.c (decode_reg_name): Likewise.
547
548         * alpha.h (ASM_OUTPUT_ASCII): Likewise.
549         * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise.
550         * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise.
551         * m88k.c (output_ascii): Likewise.
552         * m88k.h (OVERRIDE_OPTIONS): Likewise.
553         * mcore.h (REG_CLASS_FROM_LETTER): Likewise.
554         * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise.
555         * sh.h (REG_CLASS_FROM_LETTER): Likewise.
556
557 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
558
559         * langhooks.c (lang_hook_default_do_nothing,
560         lang_hook_default_decode_option): New defaults.
561         * langhooks.h: Make hooks unconditional and non-NULL.
562         * toplev.c (compile_file, toplev_main): Update.
563         * toplev.h: Update comments.
564         * objc/objc-act.c (lang_hooks): Update to new paradigm.
565
566 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
567
568         * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE.
569
570         * system.h (IN_RANGE): New macro.
571
572 2001-10-21  Zack Weinberg  <zack@codesourcery.com>
573
574         * aclocal.m4 (AM_WITH_NLS): Also create and substitute
575         INTLDEPS variable, which does not include $LIBICONV.
576         * Makefile.in: Use INTLDEPS in LIBDEPS.
577         * configure: Regenerate.
578
579 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
580
581         * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char.
582         * cpplex.c (lex_percent, lex_dot): Remove.
583         (get_effective_char, skip_block_comment, skip_line_comment,
584         parse_identifier_slow, parse_number, parse_string, save_comment,
585         _cpp_lex_direct): Update to do lookback freely.
586         (IF_NEXT_IS, BACKUP): New macros.
587         * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char.
588         * cppmacro.c (paste_tokens): Update.
589
590 2001-10-20  Nick Clifton  <nickc@cambridge.redhat.com>
591
592         * doc/invoke.texi (i386 and x86-64 Options): Fix typo.
593
594 2001-10-20  Hans-Peter Nilsson  <hp@axis.com>
595
596         * reload1.c (reload): Check CONSTANT_P before calling
597         LEGITIMATE_PIC_OPERAND_P.
598         * config/cris/cris.c (cris_legitimate_pic_operand): Revert
599         workaround of 2001-10-13.
600
601 Sat Oct 20 15:16:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
602
603         * i386.c (split_di): Handle splitting of DFmode.
604
605 Sat Oct 20 07:27:14 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
606
607         * emit-rtl.c (set_mem_attributes): Alignment is in bits.
608         (adjust_address_1, offset_address): Likewise.
609
610         * final.c (output_asm_operand_names): New fcn, from output_asm_insn.
611         (output_asm_insn): Call it for each line output.
612         Don't record an operand more than once.
613
614         * toplev.h (struct lang_hooks): HONOR_READONLY now bool.
615         * main.c: Include config.h and system.h, but not ansidecl.h.
616         * Makefile.in (main.o): Update accordingly.
617
618 Sat Oct 20 12:05:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
619
620         * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64.
621
622 Sat Oct 20 12:01:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
623
624         * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter.
625         * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies):
626         Break out from ...
627         (find_sub_basic_blocks): ... here;
628         (find_many_sub_basic_blocks): New.
629         * recog.c (split_all_insns): Update find_sub_basic_blocks call.
630
631         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4.
632
633         * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.:
634
635         * i386.c (split_di, split_ti): Revamp to use simplify_subreg.
636
637         * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new.
638         * flow.c (update_life_info): Measure time.
639         * c-decl.c: Include timevar.h
640         (c_expand_body): Measure time.
641         * toplev.c (rest_of_compilation): Measure time of mode switching
642         separately.
643         * Makefile.in (c-decl.o, cfgcleanup.o): Add dependancy.
644
645         * toplev.c (flag_asynchronous_unwind_tables): New global variable.
646         (lang_independent_options): Add asynchronous-unwind-tables
647         (toplev_main): flag_asynchronous_unwind_tables implies
648         flag_unwind_tables.
649         * flags.h (flag_asynchronous_unwind_tables): Declare.
650         * dwarf2out.c (dwarf2out_stack_adjust): Take into account
651         flag_asynchronous_unwind_tables.
652         (output_call_frame_info): Likewise.
653         * invoke.texi (-fasynchronous-unwind-tables): Document.
654         * i386.c (optimization_options): Enable
655         flag_asynchronous_unwind_tables.
656
657         * i386.c (ix86_expand_setcc):  Always expect target to be QImode.
658         * i386.md (s* expanders): Destination is QImode.
659
660         * toplev.c (rest_of_compilation): Do not call clear_log_links.
661         * rtl.h (clear_log_links): Kill.
662         * flow.c (clear_log_links): Make static; accept blocks parameter;
663         do no clear life info.
664         (update_life_info): Call clear_log_links.
665
666         * cfganal.c (forwarder_block_p): Avoid active_insn_p calls.
667
668 2001-10-20  Neil Booth  <neil@daikokuya.demon.co.uk>
669
670         * cpplex.c (handle_newline, skip_escaped_newlines,
671         get_effective_char, skip_block_comment, skip_line_comment,
672         parse_identifier_slow, parse_number, parse_string,
673         _cpp_lex_direct): Update to do more stepping back.
674         (trigraph_ok): Similarly.  Rename trigraph_p.
675         (SAVE_STATE, RESTORE_STATE): Remove.
676         (BUFF_SIZE_UPPER_BOUND): Tweak.  Add sanity check.
677
678         * cpplib.c (destringize): Rename destringize_and_run, and
679         call run_directive directly.
680         (_cpp_do__Pragma): Simplify.
681
682 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
683
684         * pe.c (arm_pe_unique_section): Const-ify.
685         * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
686         (switch_to_section): Add static prototype.
687
688         * output.h (drectve_section): Prototype.
689
690 2001-10-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
691
692         * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*,
693         fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*,
694         parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*,
695         i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware,
696         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
697         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*,
698         i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1,
699         i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*,
700         i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*,
701         i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*,
702         i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*,
703         i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*,
704         ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf,
705         mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*,
706         powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*,
707         powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*,
708         powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*,
709         powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*,
710         powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*,
711         powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*,
712         rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*,
713         sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf,
714         v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf,
715         cris-*-none, cris-*-linux*: Update ${tmfile} list.
716         (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*,
717         i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*,
718         mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*,
719         powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*,
720         v850-*-*): Delete superflous ${cpu_type} setting.
721         * config/linux.h: Delete svr4.h include.
722         (SET_ASM_OP): Delete.
723         * config/netware.h (INT_ASM_OP): Undef before define.
724         * config/ptx4.h: Delete elfos.h include.
725         (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping.
726         * config/svr4.h: Delete elfos.h include. Update commentary.
727         * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h,
728         config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h,
729         config/mn10200/mn10300.h, config/stormy16/stormy16.h,
730         config/v850/v850.h: Delete svr4.h include.
731         * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h,
732         config/m68k/m68kv4.h, config/m88k/sysv4.h,
733         config/sparc/sysv4.h: Update includes.
734         * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h,
735         config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h,
736         config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h,
737         config/m88k/dguxbcs.h: Delete includes.
738         * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include.
739         (PREFERRED_DEBUGGING_TYPE): Undef before defining it.
740         * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining
741         it.
742         * config/m88k/dgux.h: Delete include.
743         (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):  Undef before
744         defining it.
745         * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL,
746         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it.
747         * config/sh/elf.h: Update include.
748         (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
749         DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes.
750
751 2001-10-19  Catherine Moore  <clm@redhat.com>
752
753         * config/stormy16/stormy-abi:  Updates to varargs descriptions.
754         * config/stormy16/stormy16.c (stormy16_build_va_list):  Reverse
755         base and count fields.
756         (stormy16_expand_builtin_va_start):  last_reg_count changed to
757         size_of_reg_args.  Use count + size in first comparison.
758
759 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
760
761         * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro.
762         * toplev.h (struct lang_hooks): New field HONOR_READONLY.
763         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from
764         TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly.
765         Set alignment from type if INDIRECT_REF.
766         (adjust_address_1, offset_address): Simplify alignment compuitation.
767         * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P
768         here; done by set_mem_attributes.
769
770 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
771
772         * Makefile.in (rtlanal.o): Depend on $(TM_P_H).
773         * arm-protos.h (rdata_section, zero_init_section, common_section):
774         Prototype.
775         * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify.
776         * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid
777         traditional mode stringification.
778         * function.c (thread_prologue_and_epilogue_insns): Wrap variable
779         in macros controling its use.
780         * rtlanal.c: Include tm_p.h.
781         * varasm.c (asm_output_aligned_bss): Mark parameter with
782         ATTRIBUTE_UNUSED.
783         (assemble_constant_align, assemble_start_function, assemble_align,
784         assemble_variable, assemble_trampoline_template,
785         output_constant_def_contents): Wrap potentially empty if-stmt body
786         in brackets.
787
788 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
789
790         * a29k-protos.h (literal_section): Prototype.
791         * a29k.h (ASM_FILE_START): Don't discard pointer qualifier.
792         * a29k.md: Ensure function pointers are prototyped.
793         * genattrtab.c (write_eligible_delay): Mark parameter with
794         ATTRIBUTE_UNUSED.
795
796 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
797
798         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
799         * 1750a.c (print_operand): Fix format specifier warning.
800         * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier.
801         * 1750a.md: Likewise.
802         * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC.
803         * genemit.c (output_add_clobbers): Mark parameter with
804         ATTRIBUTE_UNUSED.
805         * genrecog.c (write_subroutine): Likewise.
806         * integrate.c (expand_inline_function): Delete unused variable.
807         * varasm.c (remove_from_pending_weak_list): Wrap with
808         ASM_WEAKEN_LABEL.
809
810 2001-10-19  Jakub Jelinek  <jakub@redhat.com>
811
812         * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg
813         field is different to previous argument's neg field.
814
815         * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT.
816
817 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
818
819         * final.c (get_decl_from_op): New function.
820         (output_asm_insn): Call it; write "*" when item with decl is address.
821
822 2001-10-19  Janis Johnson  <janis187@us.ibm.com>
823
824         * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation
825         about 64-bit support from the 3.0_branch version.
826
827 2001-10-19  Zack Weinberg  <zack@codesourcery.com>
828
829         * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and
830         USE_INCLUDED_LIBINTL when appropriate.
831         * configure, config.in: Regenerate.
832         * Makefile.in (datadir): Set to @datadir@.
833         (intl.o): Also depend on $(CONFIG_H) and system.h.
834
835         * intl.c: Factor out common gettext initialization sequence.
836         (gcc_init_libintl):  New function.
837         * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL;
838         otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn
839         off NLS.  Add multiple include guard.  No need to #ifdef-guard
840         an #undef.  Prototype gcc_init_libintl here.
841
842         * collect2.c (main), cppmain.c (general_init), gcc.c (main),
843         gcov.c (main), protoize.c (main), toplev.c (toplev_main):
844         Use gcc_init_libintl.
845
846 2001-10-19  Catherine Moore  <clm@redhat.com>
847
848         * config/stormy16/stormy16.h (ASM_COMMENT_START): Define.
849
850         * config/stormy16/stormy16.c (stormy16_split_move):  Make
851         sure that REG_INC notes are present for auto_inc operands.
852
853 2001-10-19  Andreas Jaeger  <aj@suse.de>
854
855         * configure: Regenerated.
856         * configure.in: Add x86_64 to switch statements.
857
858 2001-10-18  Richard Henderson  <rth@redhat.com>
859
860         * config/alpha/alpha.md (sibcall_osf_1): Load destination
861         address into $27 explicitly.
862         (sibcall_value_osf_1): Likewise.
863
864 Thu Oct 18 16:07:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
865
866         * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
867         (offset_address): New function.
868         (free_emit_status): Free regno_decl.
869         (init_emit): Pass proper number of elements to xcalloc.
870         Allocate regno_decl.
871         (mark_emit_status): Mark regno_decl values.
872         * expr.c (highest_pow2_factor): New function.
873         (expand_assigment): Use it and offset_address.
874         Properly handle ptr_mode vs. Pmode in offset calculation.
875         (store_constructor, expand_expr_unaligned): Likewise.
876         (expand_expr, case COMPONENT_EXPR): Likewise.
877         * expr.h (offset_address): New decl.
878         * function.h (struct emit_status): Add regno_decl.
879         (REGNO_DECL): New macro.
880         * final.c (output_asm_name): Move in file and don't conditionalize
881         on flag_print_asm_name.
882         (output_asm_insn): Only call output_asm_name if flag_print_asm_name.
883         Output names of operands, if known.
884         * function.c (assign_parms): Set REGNO_DECL.
885         * integrate.c (integrate_decl_tree): Likewise.
886         * stmt.c (expand_decl): Likewise.
887         * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies.
888
889 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
890
891         * attribs.c (handle_noinline_attribute): New function.
892         (handle_used_attribute): Likewise.
893         (c_common_attribute_table): Added noinline and used.
894         * doc/extend.texi (Function Attributes): Document them.
895         * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
896         Warn when merging inline with attribute noinline.
897         (start_decl, start_function): Warn if inline and attribute
898         noinline appear in the same declaration.
899
900 2001-10-17  Neil Booth  <neil@daikokuya.demon.co.uk>
901
902         * config.gcc: Update c4x and i370 for C front end-specific
903         dependencies.
904         * config/c4x/c4x-c.c: New.
905         * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove.
906         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
907         New declarations.
908         * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h.
909         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
910         Make extern.
911         (c4x_init_pragma): Remove.
912         (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION,
913         c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT,
914         c4x_pr_ignored): Move to c4x-c.c.
915         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
916         * config/c4x/t-c4x: Update.
917         * config/i370/i370-c.c: New.
918         * config/i370/i370.c: Don't include c-lex.h or c-pragma.h.
919         (i370_pr_map): Move to i370-c.c.
920         * config/i370/t-i370: New.
921
922         * doc/tm.texi: Update.
923
924 2001-10-17  Stan Shebs  <shebs@apple.com>
925
926         * config/rs6000/rs6000.c: Make assorted mechanical formatting and
927         typo fixes throughout.
928         (machopic_output_stub): Remove some dead code.
929
930 2001-10-17  Richard Earnshaw <rearnsha@arm.com>
931
932         * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
933         leak.
934
935 Wed Oct 17 05:26:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
936
937         * Makefile.in (print-rtl.o): Depend on TREE_H.
938         * alias.c (get_alias_set): Make two passes over objects to first
939         see if inner object is access via restricted pointer.
940         Defer allocating alias set for restricted pointer until here.
941         Call find_placeholder with second arg nonzero.
942         Minor cleanups.
943         * c-common.c (c_apply_type_quals_to_decl): Defer getting alias
944         set for restricted pointer types.
945         * emit-rtl.c (set_mem_attributes): Set more attributes.
946         (set_mem_align, change_address, adjust_address_1): New functions.
947         (change_address_1): Now static.
948         (adjust_address, adjust_address_nv): Deleted.
949         (replace_equiv_address): Call change_address_1.
950         * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
951         (find_placeholder): Get starting point from PLIST arg.
952         (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
953         * expr.h (set_mem_align, change_address, adjust_address_1): New decls.
954         (adjust_address, adjust_address_nv): New macros.
955         * print-rtl.c (tree.h): New include.
956         (print_rtx, case MEM): Print all memory attributes.
957
958 2001-10-17  Richard Henderson  <rth@redhat.com>
959
960         * config/alpha/alpha.c (direct_call_operand): Don't fall off end.
961
962 2001-10-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
963
964         * c-tree.texi: Eliminate duplicated word.
965         * cpp.texi: Likewise.
966         * install.texi: Likewise.
967         * invoke.texi: Likewise.
968         * tm.texi: Likewise.
969
970 2001-10-17  Michael Collison  <collison@isisinc.net>
971
972         * dsp16xx.c: Fix comment formatting to match GNU standards.
973         (dsp16xx_output_function_prologue): Change type of 'size'
974         parameter from 'int' to HOST_WIDE_INT.
975         (dsp16xx_output_function_epilogue): Change type of 'size'
976         parameter from 'int' to HOST_WIDE_INT.
977
978 2001-10-16  Richard Henderson  <rth@redhat.com>
979
980         * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
981         * configure, config.in: Rebuild.
982
983         * config/i386/i386.c (ix86_output_addr_vec_elt): New.
984         (ix86_output_addr_diff_elt): New.
985         * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
986         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
987         (JUMP_TABLES_IN_TEXT_SECTION): New.
988         * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
989         * config/i386/i386-protos.h: Update.
990
991         * config/i386/386bsd.h, config/i386/beos-elf.h,
992         config/i386/freebsd-aout.h, config/i386/freebsd.h,
993         config/i386/i386-interix.h, config/i386/i386elf.h,
994         config/i386/linux.h, config/i386/netbsd-elf.h,
995         config/i386/netbsd.h, config/i386/openbsd.h,
996         config/i386/ptx4-i.h, config/i386/rtemself.h,
997         config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
998         (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
999
1000 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
1001
1002         * stmt.c (expand_asm_operands): Update commentary.
1003
1004 2001-10-16  Stan Shebs  <shebs@apple.com>
1005
1006         * config/darwin.h (GCC_NAME): Remove, no longer used.
1007         (NO_MATH_LIBRARY): Ditto.
1008         (MATH_LIBRARY): Define to emptiness.
1009         (DWARF2_DEBUGGING_INFO): Define.
1010         (PREFERRED_DEBUGGING_TYPE): Define.
1011         (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section.
1012         (EXCEPTION_SECTION): Define.
1013         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1014         * config/darwin.c (darwin_encode_section_info): Handle case of
1015         DECL_INITIAL being error_mark_node.
1016
1017 2001-10-16  Richard Henderson  <rth@redhat.com>
1018
1019         * alpha.c (current_file_function_operand): Don't fail for profiling.
1020         (direct_call_operand): New.
1021         * alpha-protos.h: Declare it.
1022         * alpha.h (EXTRA_CONSTRAINT): Use it.
1023         (PREDICATE_CODES): Add it.
1024         (ASM_OUTPUT_MI_THUNK): Remove.
1025         * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove.
1026         * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative.
1027
1028 2001-10-16  Krister Walfridsson  <cato@df.lth.se>
1029
1030         * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define.
1031         (JUMP_TABLES_IN_TEXT_SECTION): Define.
1032
1033 Wed Oct 17 00:21:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
1034
1035         * cfg.c (free_edge): Break out from ....
1036         (remove_edge): ... here.
1037         (clear_edges): Use free_edge.
1038
1039         * att.h (ASM_QUAD): Add comment.
1040         * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
1041
1042 Wed Oct 17 00:01:02 CEST 2001  Jan Hubicka  <jh@suse.cz>
1043
1044         * i386.c (split_ti): New function.
1045         (ix86_split_to_parts): Support TImodes.
1046         * i386.h (VALID_INT_MODE_P): Add TImode.
1047         * i386.md (movdi splitter): Fix.
1048         (movti): Support 64bit integer registers.
1049         (movti_rex64): New function and splitter.
1050
1051         * i386.c (*_cost): Add movsx/movzx cost.
1052         * i386.h (struct processor_costs): Add movsx/movzx fields.
1053         (RTX_COSTS): Handle zero/sign extend + avoid believing that
1054         64bit operations require split on 64bit machine.
1055         (CONST_COST): Make large 64bit constants expensive on 64bit compilation.
1056
1057         * i386.c (ix86_setup_incomming_varargs): Fix mode of PLUS.
1058         (ix86_expand_move): Avoid pushes of memory if size does not match;
1059         move long constants to register.
1060         (x86_initialize_trampoline): Fix mode.
1061         * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):
1062         Use ASM_QUAD on 64bit.
1063         * i386.md (test pattern): Disallow impossible constants.
1064         (tablejump PIC expander): Fix emitting of sum.
1065         (movdicc_rex64): Rename to movdicc.
1066         * linux64.h (LINK_SPEC): Add missing '%'.
1067
1068 2001-10-16  Alexandre Oliva  <aoliva@redhat.com>
1069
1070         * tree-inline.c (inlinable_function_p): Leave it up to the
1071         front-end to turn -finline-functions into DECL_INLINE set for all
1072         functions.
1073
1074 2001-10-16  Stan Shebs  <shebs@apple.com>
1075
1076         * config/rs6000/darwin.h (ASM_COMMENT_START): Define.
1077
1078 2001-10-16  Alan Modra  <amodra@bigpond.net.au>
1079
1080         * recog.c: Formatting and comment typo fixes.
1081
1082         * configure.in (gcc_cv_as_bfd_srcdir): New.  Use it to find gas
1083         version in single tree build.
1084         * configure: Regenerate.
1085
1086 2001-10-15  David Edelsohn  <edelsohn@gnu.org>
1087
1088         * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and
1089         MODE arguments to gen_rtx and compare operand with const0_rtx.
1090
1091 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1092
1093         * system.h: Poison old unused target macros.
1094         * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
1095         * config/stormy16/stormy16.c: Update references to obsolete macros.
1096         * config/stormy16/stormy16.h: Similarly.
1097         * config/stormy16/stormy16.md: Similarly.
1098         * config/cris/cris.h: Similarly.
1099
1100 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1101
1102         * cpplib.c (struct pragma_entry): Store the name as a hashnode.
1103         (lookup_pragma_entry, insert_pragma_entry, do_pragma,
1104         cpp_register_pragma): Update accordingly.
1105
1106 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1107
1108         * c-pragma.h (cpp_register_pragma_space): Remove.
1109         * cpplib.h (cpp_register_pragma_space): Remove.
1110         * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
1111         (cpp_register_pragma_space): Remove.
1112         (cpp_register_pragma): Simplify using lookup_pragma_entry,
1113         add sanity checks.
1114         (do_pragma): Similarly.
1115         (_cpp_init_internal_pragmas): Don't register namespaces.
1116
1117         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
1118         Don't register namespaces.
1119         * cp/lex.c (init_cp_pragma): Similarly.
1120         * doc/tm.texi: Update.
1121
1122 2001-10-10  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1123
1124         PR c/4157
1125         * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES
1126
1127 2001-10-13  Michael Collison  <collison@dhcp-12-114.townisp.com>
1128
1129         * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and
1130         add scheduling support.
1131         * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code.
1132         * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code.
1133         * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes.
1134
1135
1136 2001-10-13  Hans-Peter Nilsson  <hp@axis.com>
1137
1138         * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around
1139         missing CONSTANT_P test in core GCC.
1140
1141 2001-10-12  Neil Booth  <neil@daikokuya.demon.co.uk>
1142
1143         * cppmain.c (struct printer): New member source.
1144         (scan_translation_unit): Fix spacing at start of lines.
1145         (cb_line_change): Update.
1146
1147         * gcc.dg/cpp/spacing2.c: New test.
1148
1149 2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
1150
1151         * config/cris/arit.c: Use __builtin_labs, not abs.
1152
1153         * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
1154
1155         * config/cris/cris.c (cris_target_asm_function_epilogue): Move
1156         misplaced sprintf and fprintf argument.
1157
1158 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
1159
1160         * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
1161         * configure.in, Makefile.in: Take out obsolete check-po logic.
1162         * configure, config.in: Regenerate.
1163
1164 2001-10-12  Ziemowit Laski  <zlaski@apple.com>
1165
1166         * objc/objc-act.c (finish_objc): Correct precondition for emitting
1167         symtab declarations.
1168
1169 2001-10-12  Stan Shebs  <shebs@apple.com>
1170
1171         * config/rs6000/rs6000.c: Remove uses of "register" specifier in
1172         declarations of arguments and local variables.
1173
1174 2001-10-12  Christopher Faylor  <cgf@redhat.com>
1175
1176         * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and
1177         ENDFILE_SPEC definition.
1178
1179 2001-10-12  Kazu Hirata  <kazu@hxi.com>
1180
1181         * gthr-dce.h: Fix comment formatting.
1182         * gthr-posix.h: Likewise.
1183         * gthr-single.h: Likewise.
1184         * gthr-solaris.h: Likewise.
1185         * gthr-vxworks.h: Likewise.
1186         * gthr-win32.h: Likewise.
1187
1188 2001-10-12  Jakub Jelinek  <jakub@redhat.com>
1189
1190         * final.c (output_asm_insn): Make sure assembly dialects are
1191         terminated, not nested.  Output `|' and `}' characters if they
1192         don't appear inside assembly dialect selection.
1193         * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
1194         rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
1195         rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
1196         strsetsi_rex_1): Add {} braces.
1197
1198 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
1199
1200         * toplev.c (compile_file): Ignore return value from yyparse.
1201         Always pop any nested binding levels after yyparse returns.
1202
1203 2001-10-11  Richard Henderson  <rth@redhat.com>
1204
1205         * doc/c-tree.texi (Expression trees): Add VTABLE_REF.
1206
1207 2001-10-11  Richard Henderson  <rth@redhat.com>
1208
1209         * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT,
1210         fall back to add_AT_long_long for large CONST_INT.
1211
1212 2001-10-11  Richard Henderson  <rth@redhat.com>
1213
1214         * config/i386/i386.md (setcc splitters): Add four splitters to
1215         simplify compound compares that simplify_comparison can't handle.
1216
1217 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
1218
1219         * cpplex.c (digraph_spellings, token_spellings): Make static.
1220
1221 2001-10-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1222
1223         * unroll.c (loop_iterations): Fixup last patch.
1224
1225 2001-10-11  Richard Henderson  <rth@redhat.com>
1226
1227         * rtl.h (REG_VTABLE_REF): New.
1228         * rtl.c (reg_note_name): Add it.
1229         * combine.c (distribute_notes): Handle it.
1230         * final.c (final_scan_insn): Handle it.
1231         * tree.def (VTABLE_REF): New.
1232         * expr.c (expand_expr): Handle it.
1233         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
1234         * output.h: Declare them.
1235
1236 2001-10-11  Richard Henderson  <rth@redhat.com>
1237
1238         * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look
1239         for a DECL_INITIAL.
1240
1241 2001-10-11  David Edelsohn  <edelsohn@gnu.org>
1242
1243         * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only
1244         available in 64-bit mode.
1245
1246 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
1247
1248         * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none,
1249         cris-*-linux* cases.
1250         * config/cris/cris-protos.h: New file.
1251         * config/cris/cris.c: New file.
1252         * config/cris/cris.h: New file.
1253         * config/cris/cris.md: New file.
1254         * config/cris/linux.h: New file.
1255         * config/cris/aout.h: New file.
1256         * config/cris/arit.c: New file.
1257         * config/cris/cris_abi_symbol.c: New file.
1258         * config/cris/mulsi3.asm: New file.
1259         * config/cris/t-aout: New file.
1260         * config/cris/t-cris: New file.
1261         * config/cris/t-elfmulti: New file.
1262         * config/cris/t-linux: New file.
1263         * doc/invoke.texi: Add CRIS options.
1264         * doc/install.texi (Specific): Add blurb for CRIS.
1265
1266 2001-10-10  Hartmut Schirmer <SchirmerH@Innovative-Systems.de>
1267
1268         * config/float-i128.h: Make sure __STDC__VERSION__ is defined
1269         before using it.
1270         * config/float/i32.h: Likewise.
1271         * config/float-i386.h: Likewise.
1272         * config/float-i64.h: Likewise.
1273         * config/float-m68k.h: Likewise.
1274         * config/float-sh.h: Likewise.
1275         * config/float-sparc.h: Likewise.
1276
1277 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
1278
1279         * doc/contrib.texi: Add note about CRIS port to my entry.
1280
1281 2001-10-11  Kazu Hirata  <kazu@hxi.com>
1282
1283         * basic-block.h: Fix formatting.
1284         * bitmap.h: Likewise.
1285         * cpplib.h: Likewise.
1286         * c-tree.h: Likewise.
1287         * diagnostic.h: Likewise.
1288         * flags.h: Likewise.
1289         * ggc.h: Likewise.
1290         * longlong.h: Likewise.
1291         * real.h: Likewise.
1292         * reload.h: Likewise.
1293         * rtl.h: Likewise.
1294         * tree.h: Likewise.
1295
1296 2001-10-10  Richard Henderson  <rth@redhat.com>
1297
1298         * c-parse.in (asm_operand): Allow named operands.
1299         * genconfig.c (max_recog_operands): Set to 29.
1300         * local-alloc.c (requires_inout): Skip multiple digits.
1301         * recog.c (asm_operand_ok): Likewise.
1302         (preprocess_constraints): Use strtoul for matching constraints.
1303         (constrain_operands): Likewise.
1304         * regmove.c (find_matches): Likewise.
1305         * reload.c (find_reloads): Likewise.
1306         * stmt.c (parse_output_constraint): Don't reject in-out
1307         constraint on operands > 9.  Reject '[' in constraint.
1308         (expand_asm_operands): Handle named operands.  Use strtoul
1309         for matching constraints.
1310         (check_operand_nalternatives): Split out from expand_asm_operands.
1311         (check_unique_operand_names): New.
1312         (resolve_operand_names, resolve_operand_name_1): New.
1313
1314         * doc/extend.texi (Extended Asm): Document named operands.
1315         * doc/md.texi (Simple Constraints): Document matching constraints
1316         on operands > 9.
1317
1318 2001-10-10  Richard Henderson  <rth@redhat.com>
1319
1320         * combine.c (try_combine): Handle a SEQUENCE of one insn.
1321
1322         * i386.c (test splitter): Narrow tests vs paradoxical subregs.
1323         (jcc splitters): Add two splitters to simplify compound compares
1324         that simplify_comparison can't handle.
1325
1326 2001-10-10  Richard Henderson  <rth@redhat.com>
1327
1328         * langhooks.c: Include langhooks.h.
1329         * Makefile.in (langhooks.o): Depend on it.
1330
1331 Wed Oct 10 23:49:06 EDT 2001  John Wehle  (john@feith.com)
1332
1333         * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
1334         should not be considered as a no-op.
1335         * flow.c (delete_noop_moves): Handle REG_LIBCALL notes.
1336
1337 2001-10-10  Stan Shebs  <shebs@apple.com>
1338
1339         * alias.c: Remove uses of "register" specifier in declarations
1340         of arguments and local variables.
1341         * c-common.c: Ditto.
1342         * c-convert.c: Ditto.
1343         * c-decl.c: Ditto.
1344         * c-format.c: Ditto.
1345         * c-semantics.c: Ditto.
1346         * c-typeck.c: Ditto.
1347         * caller-save.c: Ditto.
1348         * calls.c: Ditto.
1349         * cfg.c: Ditto.
1350         * cfgbuild.c: Ditto.
1351         * cfgrtl.c: Ditto.
1352         * collect2.c: Ditto.
1353         * combine.c: Ditto.
1354         * convert.c: Ditto.
1355         * cppexp.c: Ditto.
1356         * cppfiles.c: Ditto.
1357         * cse.c: Ditto.
1358         * dbxout.c: Ditto.
1359         * defaults.h: Ditto.
1360         * df.c: Ditto.
1361         * dwarf2out.c: Ditto.
1362         * dwarfout.c: Ditto.
1363         * emit-rtl.c: Ditto.
1364         * explow.c: Ditto.
1365         * expmed.c: Ditto.
1366         * expr.c: Ditto.
1367         * final.c: Ditto.
1368         * fix-header.c: Ditto.
1369         * floatlib.c: Ditto.
1370         * flow.c: Ditto.
1371         * fold-const.c: Ditto.
1372         * function.c: Ditto.
1373         * gcc.c: Ditto.
1374         * gcse.c: Ditto.
1375         * gen-protos.c: Ditto.
1376         * genattrtab.c: Ditto.
1377         * gencheck.c: Ditto.
1378         * genconfig.c: Ditto.
1379         * genemit.c: Ditto.
1380         * genextract.c: Ditto.
1381         * genflags.c: Ditto.
1382         * gengenrtl.c: Ditto.
1383         * genoutput.c: Ditto.
1384         * genpeep.c: Ditto.
1385         * genrecog.c: Ditto.
1386         * gensupport.c: Ditto.
1387         * global.c: Ditto.
1388         * gmon.c: Ditto.
1389         * graph.c: Ditto.
1390         * haifa-sched.c: Ditto.
1391         * hard-reg-set.h: Ditto.
1392         * hash.c: Ditto.
1393         * integrate.c: Ditto.
1394         * jump.c: Ditto.
1395         * lists.c: Ditto.
1396         * local-alloc.c: Ditto.
1397         * loop.c: Ditto.
1398         * mips-tdump.c: Ditto.
1399         * mips-tfile.c: Ditto.
1400         * optabs.c: Ditto.
1401         * prefix.c: Ditto.
1402         * print-rtl.c: Ditto.
1403         * read-rtl.c: Ditto.
1404         * real.c: Ditto.
1405         * recog.c: Ditto.
1406         * reg-stack.c: Ditto.
1407         * regclass.c: Ditto.
1408         * regmove.c: Ditto.
1409         * reload.c: Ditto.
1410         * reload1.c: Ditto.
1411         * reorg.c: Ditto.
1412         * resource.c: Ditto.
1413         * rtl.c: Ditto.
1414         * rtlanal.c: Ditto.
1415         * scan.c: Ditto.
1416         * sched-deps.c: Ditto.
1417         * sched-rgn.c: Ditto.
1418         * sdbout.c: Ditto.
1419         * simplify-rtx.c: Ditto.
1420         * stmt.c: Ditto.
1421         * stor-layout.c: Ditto.
1422         * toplev.c: Ditto.
1423         * tradcif.y: Ditto.
1424         * tradcpp.c: Ditto.
1425         * tree.c: Ditto.
1426         * unroll.c: Ditto.
1427         * varasm.c: Ditto.
1428         * xcoffout.c: Ditto.
1429
1430 2001-10-10  Richard Henderson  <rth@redhat.com>
1431
1432         * rtl.h (can_reverse_comparison_p): Remove.
1433
1434 2001-10-10  Christopher Faylor <cgf@redhat.com>
1435
1436         * config/i386/cygwin.h: Avoid adding include files if -nostdinc is
1437         used.
1438
1439 2001-10-10  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
1440
1441         * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define.
1442         (Thanks to Chris Faylor for suggesting macro name).
1443         (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more
1444         WIN32 defines.
1445         (STANDARD_INCLUDE_DIR): Remove i386- from directory name.
1446         (STANDARD_INCLUDE_COMPONENT): Change to MINGW.
1447         (MATH_LIBRARY): Undef before definition.
1448         (OUTPUT_QUOTED_STRING): Likewise.
1449         * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS.
1450
1451 2001-10-10  Richard Henderson  <rth@redhat.com>
1452
1453         * unwind-dw2-fde.c (fde_compare_t): Change return type to int.
1454         (fde_unencoded_compare): Likewise.  Don't use subtraction to get
1455         a tristate comparison value.
1456         (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise.
1457
1458 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1459
1460         PR c++/4512
1461         * unroll.c (loop_iterations): Ignore insns generated by loop
1462         unrolling.
1463
1464         * config.gcc (mips*-*-gnu*): Delete support.
1465         * config/mips/gnu.h: Remove.
1466
1467 2001-10-10  Kazu Hirata  <kazu@hxi.com>
1468
1469         * calls.c: Fix formatting.
1470         * c-decl.c: Likewise.
1471         * cfgcleanup.c: Likewise.
1472         * combine.c: Likewise.
1473         * cppfiles.c: Likewise.
1474         * cpplib.c: Likewise.
1475         * cppmacro.c: Likewise.
1476         * crtstuff.c: Likewise.
1477         * cse.c: Likewise.
1478         * dwarf2out.c: Likewise.
1479         * expmed.c: Likewise.
1480         * expr.c: Likewise.
1481         * fold-const.c: Likewise.
1482         * function.c: Likewise.
1483         * gcse.c: Likewise.
1484         * genattrtab.c: Likewise.
1485         * ggc-page.c: Likewise.
1486         * integrate.c: Likewise.
1487         * libgcc2.c: Likewise.
1488         * loop.c: Likewise.
1489         * optabs.c: Likewise.
1490         * profile.c: Likewise.
1491         * protoize.c: Likewise.
1492         * real.c: Likewise.
1493         * recog.c: Likewise.
1494         * reload1.c: Likewise.
1495         * reload.c: Likewise.
1496         * reorg.c: Likewise.
1497         * resource.c: Likewise.
1498         * sched-rgn.c: Likewise.
1499         * sdbout.c: Likewise.
1500         * stmt.c: Likewise.
1501         * toplev.c: Likewise.
1502         * varasm.c: Likewise.
1503
1504 2001-10-10  Janis Johnson  <janis187@us.ibm.com>, Alexandre Oliva  <aoliva@redhat.com>
1505
1506         * langhooks.c: Include rtl.h, insn-config.h and integrate.h.
1507         * Makefile.in (langhooks.o): Add dependencies.
1508
1509 Wed Oct 10 00:41:29 EDT 2001  John Wehle  (john@feith.com)
1510
1511         * rs6000.c (rs6000_emit_load_toc_table): Don't
1512         strdup the toc label.
1513         (create_TOC_reference): Likewise.
1514
1515 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
1516
1517         * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent
1518         version default.
1519
1520 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
1521
1522         * config/i386/i386.c (ix86_attribute_table): Correct
1523         min_len, max_len fields for dllimport, dllexport and shared.
1524
1525 2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
1526
1527         * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi,
1528         doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi:
1529         Consistently use "nonzero" instead of "non-zero".
1530
1531 2001-10-09  Kazu Hirata  <kazu@hxi.com>
1532
1533         * acconfig.h: Fix comment formatting.
1534         * c-dump.h: Likewise.
1535         * c-tree.h: Likewise.
1536         * conditions.h: Likewise.
1537         * expr.h: Likewise.
1538         * function.h: Likewise.
1539         * gthr.h: Likewise.
1540         * hwint.h: Likewise.
1541         * integrate.h: Likewise.
1542         * intl.h: Likewise.
1543         * loop.h: Likewise.
1544         * optabs.h: Likewise.
1545
1546 2001-10-09  Kazu Hirata  <kazu@hxi.com>
1547
1548         * c-common.h: Fix comment formatting.
1549         * c-dump.c: Likewise.
1550         * cfg.c: Likewise.
1551         * diagnostic.h: Likewise.
1552         * except.c: Likewise.
1553         * gcc.h: Likewise.
1554         * gcov-io.h: Likewise.
1555         * genattrtab.c: Likewise.
1556         * output.h: Likewise.
1557         * predict.h: Likewise.
1558         * reload1.c: Likewise.
1559         * reload.h: Likewise.
1560         * resource.h: Likewise.
1561         * scan.h: Likewise.
1562         * system.h: Likewise.
1563         * tree.h: Likewise.
1564         * tree-inline.c: Likewise.
1565         * tsystem.h: Likewise.
1566         * varasm.c: Likewise.
1567         * xcoffout.h: Likewise.
1568
1569 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
1570
1571         * doc/gcc.texi: Document preference for "nonzero" over "non-zero".
1572
1573 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
1574
1575         * config/alpha/freebsd.h, config/alpha/lib1funcs.asm,
1576         config/i386/i386elf.h, config/i386/netbsd-elf.h,
1577         config/i386/netware.h, config/mcore/gfloat.h,
1578         config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md,
1579         config/netware.h, gccbug.in: Update FSF address.
1580
1581 2001-10-09  Kazu Hirata  <kazu@hxi.com>
1582
1583         * c-common.c: Fix comment typos.
1584         * cfgrtl.c: Likewise.
1585         * collect2.c: Likewise.
1586         * cpplex.c: Likewise.
1587         * doloop.c: Likewise.
1588         * dwarf2out.c: Likewise.
1589         * dwarfout.c: Likewise.
1590         * expr.c: Likewise.
1591         * fold-const.c: Likewise.
1592         * gcc.c: Likewise.
1593         * gcov.c: Likewise.
1594         * gcse.c: Likewise.
1595         * global.c: Likewise.
1596         * ifcvt.c: Likewise.
1597         * loop.c: Likewise.
1598         * optabs.c: Likewise.
1599         * protoize.c: Likewise.
1600         * regclass.c: Likewise.
1601         * reorg.c: Likewise.
1602         * rtl.h: Likewise.
1603         * stmt.c: Likewise.
1604         * tree.h: Likewise.
1605         * doc/cpp.texi: Likewise.
1606         * doc/c-tree.texi: Likewise.
1607         * doc/extend.texi: Likewise.
1608         * doc/invoke.texi: Likewise.
1609         * doc/objc.texi: Likewise.
1610         * doc/tm.texi: Likewise.
1611
1612 2001-10-08  Richard Henderson  <rth@redhat.com>
1613
1614         * varasm.c (set_named_section_flags): Initialize "declared".
1615
1616 2001-10-08  Robert Lipe  <robertlipe@usa.net>
1617
1618         * varasm.c (struct in_named_entry): Add declared.
1619         (named_section_first_declaration): New function.
1620         (default_elf_asm_named_section): Use it.
1621         * output.h (named_section_first_declaration): New.
1622
1623 2001-10-08  Richard Henderson  <rth@redhat.com>
1624
1625         * i386.md (movsi_xor): Export.
1626         (setcc peep2): Use it when available; add an alternative to
1627         match zero_extendhisi2_and.
1628
1629 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1630
1631         * romp-protos.h (romp_initialize_trampoline): New function.
1632         * romp.c (romp_initialize_trampoline): Likewise.
1633         * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of
1634         romp_initialize_trampoline.
1635
1636 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1637
1638         * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'.
1639         * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
1640         * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
1641         * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
1642
1643 2001-10-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1644
1645         * unroll.c (loop_iterations): Extend check for multiple back edges.
1646
1647 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
1648
1649         * langhooks.h: New file.
1650         * Makefile.in (OBJS): Added langhooks.o.
1651         (c-lang.o): Depend on langhooks.h.
1652         (c-common.o): Don't depend on tree-inline.h.
1653         (tree-inline.o): Depend on toplev.h.
1654         (langhooks.o): New rule.
1655         * c-common.c: Don't include tree-inline.h.
1656         (c_mark_lang_decl): Mark argument c as unused.
1657         (c_common_lang_init): Don't initialize hooks here.
1658         * c-lang.c: Include langhooks.h, then override some macros.
1659         (lang_hooks): Initialize with macros in langhooks.h.
1660         (c_init): Don't initialize hooks here.
1661         * toplev.c (struct lang_hooks_for_tree_inlining): New struct.
1662         (struct lang_hooks): Add tree_inlining.  Refer to langhooks.h.
1663         * tree-inline.c: Include toplev.h.  Don't define hook variables.
1664         * tree-inline.h: Don't define hook types nor declare hook
1665         variables.  Move macros to...
1666         * langhooks.c: ... new file, as functions.  Adjust all callers.
1667
1668 2001-10-08  Jeffrey A Law  <law@cygnus.com>
1669
1670         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call
1671         purge_mem_unchanging_flag on all instructions, not just on those
1672         before NOTE_INSN_FUNCTION_BEG.
1673
1674 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1675
1676         * cppmacro.c (_cpp_create_definition): Leave comments off.
1677
1678         * doc/cpp.texi: Update.
1679
1680 2001-10-08  DJ Delorie  <dj@redhat.com>
1681
1682         * c-decl.c (grokfield): Make sure the only unnamed fields
1683         we're allowing are either structs or unions.
1684         * doc/extend.texi: Add documentation for the unnamed field
1685         extension.
1686
1687 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
1688
1689         * aclocal.m4 (gcc_AC_PROG_GNAT): New.
1690         * configure.in: Use it.
1691         * configure: Regenerated.
1692         * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
1693         config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.
1694
1695 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1696
1697         * cppfiles.c (open_file): Don't mark zero-length files
1698         never-reread here.  Don't output diagnostics here either.
1699         (stack_include_file): Mark them never-reread here.
1700         (_cpp_read_file): Update.
1701
1702 2001-10-08  Richard Henderson  <rth@redhat.com>
1703
1704         * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
1705
1706 2001-10-08  Richard Henderson  <rth@redhat.com>
1707
1708         * expr.c (store_expr): When converting a CONST_INT for storage
1709         in a SUBREG, convert it to both SUBREG modes before stripping
1710         the SUBREG.
1711
1712 2001-10-08  Richard Henderson  <rth@redhat.com>
1713
1714         * varasm.c (restore_varasm_status): New.
1715         * function.h: Declare it.
1716         * function.c (pop_function_context_from): Call it.
1717
1718 2001-10-08  Richard Henderson  <rth@redhat.com>
1719
1720         * c-common.h (struct c_lang_decl): Add declared_inline.
1721         * c-tree.h (DECL_DECLARED_INLINE_P): New.
1722         * c-lang.c (c_disregard_inline_limits): Use it.
1723         * c-decl.c (duplicate_decls): Likewise.
1724         (pushdecl, redeclaration_error_message): Likewise.
1725         (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
1726         (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
1727         Set DECL_INLINE if -finline-functions.
1728         (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
1729
1730 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1731
1732         * cppmacro.c (funlike_invocation_p): Move some logic to caller
1733         in enter_macro_context.  Create a padding token in its own context
1734         if necessary when the search for '(' fails.
1735         (enter_macro_context): Update.
1736
1737 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1738
1739         * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
1740         genmultilib, toplev.c: Fix spelling errors of "separate" as
1741         "seperate", and corresponding spelling errors of related words.
1742
1743 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1744
1745         * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
1746         * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
1747         Likewise.
1748         * c-dump.c (dump_option_value_info): Likewise.
1749         * c-format.c (format_length_info, format_char_info,
1750         format_flag_spec, format_flag_pair, format_kind_info): Likewise.
1751         * collect2.c (names): Likewise.
1752         * cppdefault.h (default_include): Likewise.
1753         * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
1754         * flow.c (life_analysis): Likewise.
1755         * gcc.c (dir_separator_str, modify_target, option_map,
1756         target_option_translations, spec_list_1, extra_specs_1,
1757         init_spec): Likewise.
1758         * gcov.c (gcov_version_string): Likewise.
1759         * genattr.c (write_units): Likewise.
1760         * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
1761         * gengenrtl.c (rtx_definition, defs): Likewise.
1762         * genrecog.c (pred_table): Likewise.
1763         * global.c (global_alloc): Likewise.
1764         * lcm.c (optimize_mode_switching): Likewise.
1765         * local-alloc.c (find_free_reg): Likewise.
1766         * params.h (param_info): Likewise.
1767         * predict.c (predictor_info): Likewise.
1768         * protoize.c (unexpansion_struct): Likewise.
1769         * real.c (bmask): Likewise.
1770         * recog.h (insn_operand_data, insn_data): Likewise.
1771         * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
1772         * stmt.c (expand_nl_goto_receiver): Likewise.
1773         * toplev.c (da, debug_args, lang_opt, documented_lang_options,
1774         target_switches, target_options): Likewise.
1775         * tradcif.y (token, tokentab2, yylex): Likewise.
1776         * tree.h (attribute_spec): Likewise.
1777
1778         * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
1779         Likewise.
1780         * arc.c (arc_output_function_epilogue): Likewise.
1781         * arm.c (processors, all_cores, all_architectures,
1782         arm_override_options, isr_attribute_arg, isr_attribute_args,
1783         arm_isr_value): Likewise.
1784         * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
1785         Likewise.
1786         * c4x.c (c4x_int_reglist): Likewise.
1787         * d30v.c (override_options): Likewise.
1788         * h8300.c (shift_insn): Likewise.
1789         * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
1790         pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
1791         ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
1792         builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
1793         ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
1794         * i386.h (processor_costs, ix86_cost): Likewise.
1795         * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
1796         * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
1797         * m68k.c (codes_68881, codes_FPA): Likewise.
1798         * m88k.c (mode_from_align, max_from_align, all_from_align,
1799         best_from_align, m_options): Likewise.
1800         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
1801         * mcore.c (mode_from_align): Likewise.
1802         * mips/elf64.h (UNIQUE_SECTION): Likewise.
1803         * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
1804         * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
1805         * mips.h (mips_regno_to_class): Likewise.
1806         * ns32k.c (scales): Likewise.
1807         * pa.c (import_string, magic_milli): Likewise.
1808         * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
1809         * sparc.c (leaf_reg_remap, sparc_override_options,
1810         reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
1811         Likewise.
1812         * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
1813
1814 2001-10-07  Dale Johannesen  <dalej@apple.com>
1815
1816         * reload1.c (reload_reg_free_p): Teach register interference
1817         checking that multiple output reloads are emitted in
1818         reverse order.
1819         reload1.c (reload_reg_reaches_end_p):  Ditto.
1820         reload1.c (reloads_conflict):  Ditto.
1821
1822 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1823
1824         * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and
1825         NULL_TREE inside @code.
1826
1827 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1828
1829         * doc/gcc.texi: Document consistent style of "32-bit",
1830         "Objective-C", and "@code{NULL}".
1831
1832 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
1833
1834         * cpplex.c (enum spell_type): Add SPELL_NUMBER.
1835         (cpp_token_len, cpp_spell_token, cpp_output_token,
1836         _cpp_equiv_tokens): Handle it.
1837         * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and
1838         CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF.
1839         * cppexp.c (_cpp_parse_expr): Use the correct operator code in
1840         error messages.
1841
1842 Sat Oct  6 07:42:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1843
1844         * gcc.c (default_compilers): Remove .ada.
1845
1846 2001-10-06  Neil Booth  <neil@daikokuya.demon.co.uk>
1847
1848         * doc/cppinternals.texi: Update.
1849
1850 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
1851
1852         * gcc.c (main): Set this_file_error if the appropriate
1853         compiler for a language has not been installed.
1854
1855 2001-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
1856
1857         * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set.
1858
1859 2001-10-05  Joseph S. Myers  <jsm28@cam.ac.uk>
1860
1861         * gccbug.in (CATEGORIES): Add ada.
1862
1863 2001-10-05  Catherine Moore  <clm@redhat.com>
1864
1865         * config/stormy16/stormy-abi:  Document abi changes.
1866         * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine.
1867         (ICALL_REGS): New register class.
1868         (NUM_ARGUMENT_REGISTERS): Now 6.
1869         (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs
1870         in registers.
1871         (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS.
1872         * config/stormy16.md (call_internal, call_value_internal,
1873         indirect_jump): Use new 'z' constraint.
1874
1875 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1876
1877         * doc/cppinternals.texi: Update.
1878
1879 2001-10-05  Richard Henderson  <rth@redhat.com>
1880
1881         * dwarf2out.c (FRAME_BEGIN_LABEL): New.
1882         (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and
1883         the gas section-name-as-label feature.
1884
1885 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1886
1887         * doc/cppinternals.texi: Update.
1888
1889 Fri Oct  5 08:17:46 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1890
1891         * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
1892         to ensure valid SImode constants.
1893
1894 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
1895
1896         * Makefile.in (c-decl.o): Depend on tree-inline.h.
1897         (c-lang.o): Likewise, as well as insn-config.h and integrate.h.
1898         * c-decl.c: Include tree-inline.h.
1899         (c_expand_body): Call optimize_inline_calls. Determine whether
1900         a function is inlinable upfront, and only clear
1901         DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
1902         * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
1903         (c_disregard_inline_limits): New function.
1904         (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
1905         (c_post_options): Enable tree inlining if inlining is enabled.
1906         Don't inline trees when instrumenting functions.
1907         (c_init): Initialize lang_disregard_inline_limits and
1908         lang_cannot_inline_tree_fn.
1909         * tree-inline.c (initialize_inlined_parameters): Handle calls
1910         with fewer arguments than declared parameters, and fewer
1911         parameters than passed arguments.  Don't assume value is a
1912         DECL.
1913         (declare_return_variable): Convert return value back to the
1914         original type, if it was promoted.
1915         (tree_inlinable_function_p): New function.
1916         (inlinable_function_p): Don't look at DECL_INLINE if we're
1917         inlining all functions.  Make it work with a NULL id.
1918         Re-check DECL_UNINLINABLE after language-specific checks.
1919         * tree-inline.h (tree_inlinable_function_p): Declare it.
1920         * integrate.c (save_for_inline): Don't bother to prepare argvec
1921         when not inlining.
1922         * cse.c (check_for_label_ref): Don't check deleted labels.
1923
1924         * Makefile.in (tree-inline.o): Depend on newly-included headers.
1925         * tree-inline.c: Include headers needed for the functions moved in.
1926         (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
1927         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
1928         (copy_body, initialize_inlined_parameters): Likewise.
1929         (declare_return_variable, inlinable_function_p): Likewise.
1930         (expand_call_inline, expand_calls_inline): Likewise.
1931         (optimize_inline_calls, clone_body): Likewise.
1932         (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
1933         (copy_tree_r, remap_save_expr): Likewise.
1934
1935 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
1936
1937         * Makefile.in (OBJS): Added tree-inline.o.
1938         (c-common.o): Depend on tree-inline.h.
1939         (tree-inline.o): New target.
1940         * c-common.c: Include tree-inline.h.
1941         (c_mark_lang_decl): Don't mark saved_tree.
1942         (c_common_lang_init): Set lang_anon_aggr_type_p.
1943         * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
1944         (struct c_lang_decl): Moved saved_tree to tree_decl.
1945         * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
1946         * integrate.h (function_attribute_inlinable_p): Declare it.
1947         * integrate.c (function_attribute_inlinable_p): Export it.
1948         * tree-inline.c: New file.  Define variables declared in...
1949         * tree-inline.h: New file.  Declare functions to be moved to
1950         tree-inline.c.  Define macros and declare types and hooks for
1951         language-specific tree inlining.
1952         (flag_inline_trees): Moved definition from cp/decl2.c.
1953         * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
1954         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
1955         (struct tree_decl): Moved saved_tree from c_lang_decl and
1956         inlined_fns from C++'s lang_decl.
1957
1958 2001-10-04  Loren J. Rittle  <ljrittle@acm.org>
1959
1960         * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which
1961         propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS.
1962
1963 2001-10-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1964
1965         * doc/cppinternals.texi: Update.
1966
1967 2001-10-04  Eric Christopher  <echristo@redhat.com>
1968
1969         * config/mips/mips.c (init_cumulative_args): Remember to set
1970         cum->prototype.
1971         * config.gcc: Redo linux configuration. Add target_cpu_default
1972         of soft-float to all mipsisa32 combinations and tx39.
1973         * config/mips/linux.h: Remove include of mips.h.
1974
1975 2001-10-03  Loren J. Rittle  <ljrittle@acm.org>
1976
1977         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS,
1978         HOST_LDFLAGS and HOST_CPPFLAGS.
1979
1980 2001-10-03  Ziemowit Laski  <zlaski@apple.com>
1981
1982         * c-parse.in (objc_inherit_code, objc_pq_context,
1983         objc_public_flag): Make static.
1984         (objc_interface_context, objc_implementation_context,
1985         objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
1986         global tree array in objc/objc-act.[ch].
1987         (methoddef): Remove unnecessary code.
1988
1989         * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
1990         Hoist struct definitions to objc-act.h.
1991         (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
1992         cat_count): Place declaration in objc-act.h.
1993         (objc_tree_index): Move enumeration to objc-act.h.
1994         (objc_global_trees): Place declaration and macro accessors in
1995         objc-act.h.
1996         (implementation_context): Remove duplicate; use
1997         objc_implementation_context instead:
1998         (method_context): Remove duplicate; use objc_method_context
1999         instead.
2000         (objc_ellipsis_node, objc_method_prototype_template,
2001         implemented_classes, function_type): Move global vars to
2002         objc_global_trees.
2003         (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
2004         (build_message_expr): Move actual construction of ObjC message
2005         send nodes to finish_message_expr.
2006         (finish_message_expr): New routine, contains code formerly in
2007         build_message_expr.
2008         * objc/objc-act.h (finish_message_expr): New prototype.
2009         (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
2010         declarations; these vars are now part of objc_global_trees.
2011         (objc_tree_index, objc_global_trees): Move definitions from
2012         objc-act.c.
2013         * objc/objc-tree.def: Update copyright info.
2014
2015 Wed Oct  3 12:22:11 EDT 2001  John Wehle  (john@feith.com)
2016
2017         * dwarf2asm.c (unaligned_integer_asm_op): Abort if
2018         op is NULL.
2019         * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use
2020         only if TARGET_ARCH64.
2021
2022 2001-10-02  Bernd Schmidt  <bernds@redhat.com>
2023
2024         * doc/extend.texi: Fix some problems with previous checkin.
2025         * doc/invoke.texi: Likewise.
2026
2027 2001-10-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2028
2029         * cpphash.h: Update comments.
2030         (cpp_context): Update.
2031         (spec_nodes): Remove n__Pragma.
2032         * cppinit.c (cpp_create_reader): Update.
2033         (builtin_array): Add _Pragma.
2034         * cpplib.h: Update comments.
2035         (NODE_DISABLED, BT_PRAGMA): New.
2036         (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes.
2037         * cppmacro.c (struct cpp_macro): Remove disabled.
2038         (builtin_macro): Return int, handle _Pragma, push the new token
2039         on the context stack.
2040         (funlike_invocation_p): Unconstify, update.
2041         (enter_macro_context): Handle builtins here.
2042         (replace_args, push_token_context, push_ptoken_context):
2043         Update for prototype changes.
2044         (_cpp_pop_context): Update.
2045         (cpp_get_token): Don't handle buitins, nor _Pragma here.
2046         (cpp_sys_macro_p): Update.
2047         (_cpp_free_definition): Clear disabled flag.
2048         (_cpp_create_definition): Upate.
2049         * cppmain.c: Update comments.
2050
2051 Tue Oct  2 12:46:01 CEST 2001  Bo Thorsen     <bo@suse.co.uk>,
2052                                 Andreas Jaeger <aj@suse.de>,
2053                                 Jan Hubicka    <jh@suse.cz>
2054
2055         * doc/invoke.texi (i386 Options): Document x86-64 options.
2056         (i386 and x86-64 Options): Rename i386 options section.
2057
2058         * config/i386/i386.h (TARGET_UNWIND_INFO): New.
2059         (TARGET_SWITCHES): Add -munwind-info.
2060         (MASK_NO_UNWIND_INFO): New.
2061         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
2062         biarch compilation.
2063         (ASM_OUTPUT_DOUBLE_INT): New.
2064
2065         * config/i386/linux64.h: New spec file for Linux x86-64 support.
2066         * config.gcc: Fix tm_file settings for x86-64.
2067         * config/i386/x86-64.h: New file with OS independent x86-64
2068         definitions.
2069         * config/i386/biarch64.h: New file used to configure compiler
2070         to biarch/64bit compilation.
2071
2072         * config/i386/i386.c: (override_options): Set flags default
2073         for 64bit compilation.
2074
2075 Tue Oct  2 12:46:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
2076
2077         * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
2078         (ix86_expand_int_movcc): Optimize DImode conditional moves with
2079         constants on x86_64.
2080         (ix86_attr_length_immediate_default): Support MODE_DI.
2081         * i386.md (fixdi splitter): Add missing "&& 1" in splitter
2082         condition.
2083         (indirect_jump, tablejump): Turn into expander.
2084
2085 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2086
2087         * c-common.c (c_format_attribute_table): Make format and
2088         format_arg attributes apply to function types rather than to
2089         decls.
2090         (is_valid_printf_arglist): Construct an attribute list and pass
2091         that to check_function_format rather than a name.
2092         * c-common.h (check_function_format): Adjust prototype.
2093         * c-decl.c (duplicate_decls): Preserve attributes from type of
2094         built-in decl when allowing for harmless conflict in types.
2095         * c-format.c (record_function_format,
2096         record_international_format, function_format_list,
2097         international_format_info, international_format_list): Remove.
2098         (function_format_info): Remove next, name and assembler_name.
2099         Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
2100         (decode_format_attr): New.
2101         (handle_format_attribute): Handle receiving a type rather than a
2102         decl.  Call decode_format_attr.  Store format information in a
2103         function_format_info.
2104         (handle_format_arg_attribute): Correct comment.  Handle receiving
2105         a type rather than a decl.  Use unsigned HOST_WIDE_INT for
2106         arg_num.
2107         (check_format_info_recurse, check_format_info_main): Take argument
2108         numbers as unsigned HOST_WIDE_INT.
2109         (check_function_format): Take a list of attributes from the
2110         function type rather than a name or assembler name.  Check for
2111         format attributes in that list and the attributes on the type of
2112         the current function rather than looking through
2113         function_format_list.
2114         (check_format_info): Use unsigned HOST_WIDE_INT for argument
2115         numbers.
2116         (check_format_info_recurse): Take format_arg attributes from the
2117         type of the function calls rather than using
2118         international_format_list.  Allow for multiple format_arg
2119         attributes.
2120         * c-typeck.c (build_function_call): Pass type attributes to
2121         check_function_format rather than name or assembler name.  Don't
2122         require there to be a name or assembler name to check formats.
2123
2124 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2125
2126         * attribs.c (decl_attributes): Possibly call
2127         insert_default_attributes to insert default attributes on
2128         functions in a lazy manner.
2129         * builtin-attrs.def: New file; define the default format and
2130         format_arg attributes.
2131         * c-common.c (c_format_attribute_table): Move to earlier in the
2132         file.
2133         (c_common_nodes_and_builtins): Initialize format_attribute_table.
2134         (enum built_in_attribute, built_in_attributes,
2135         c_attrs_initialized, c_init_attributes,
2136         c_common_insert_default_attributes): New.
2137         (c_common_lang_init): Don't initialize format_attribute_table.  Do
2138         call c_init_attributes.
2139         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
2140         * c-common.h (init_function_format_info): Don't declare.
2141         (c_common_insert_default_attributes): Declare.
2142         * c-decl.c (implicitly_declare, builtin_function): Call
2143         decl_attributes.
2144         (init_decl_processing): Don't call init_function_format_info.
2145         (insert_default_attributes): New.
2146         * c-format.c (handle_format_attribute,
2147         handle_format_arg_attribute): Be quiet about inappropriate
2148         declaration when applying default attributes.
2149         (init_function_format_info): Remove.
2150         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
2151         (insert_default_attributes): Declare.
2152
2153 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2154
2155         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
2156
2157 2001-10-01  Jim Wilson  <wilson@redhat.com>
2158
2159         * sched-deps.c (add_dependence): When elide conditional dependence,
2160         check that insn doesn't modify cond2.
2161
2162 2001-10-01  Dale Johannesen  <dalej@apple.com>
2163
2164         * config/rs6000/rs6000.h (enum processor_type): Add support
2165         for 7400 (G4) and 7450.
2166         (RTX_COSTS): Ditto.
2167         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
2168         (rs6000_issue_rate): Ditto.
2169         (rs6000_adjust_cost): Fix cycle counts for compares.
2170         (debug_stack_info):  Fix an obvious typo.
2171         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
2172         * doc/invoke.texi: Document.
2173         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
2174         for Darwin.
2175         (PROCESSOR_DEFAULT): Ditto.
2176
2177 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
2178
2179         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
2180         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
2181         later recursive make invocation.
2182
2183 2001-10-01  Hans Boehm  <boehm@acm.org>
2184
2185         * optabs.c (emit_libcall_block): When using non-call exceptions,
2186         don't add REG_LIBCALL reg notes to trapping calls.
2187
2188 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
2189
2190         * flow.c (propagate_block_delete_libcall): Remove unused first arg
2191         (propagate_one_insn):  Update for above change
2192
2193 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
2194
2195         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
2196         _Unwind_GetTextRelBase): Argument is unused.
2197
2198 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2199
2200         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
2201         Loop through NOPs, placeholders, and components.
2202         Don't go through NOPs if change mode.
2203         (record_alias_subset): Do nothing if SUBSET and SET are the same.
2204         * emit-rtl.c (set_mem_alias_set): Enable check.
2205         * expr.c (find_placeholder): New function.
2206         (expand_expr, case PLACEHOLDER_EXPR): Use it.
2207         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
2208         to modify it and avoid unneeded copies.
2209         * expr.h (expand_expr): Always define.
2210         (find_placeholder): New declaration.
2211
2212 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2213
2214         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
2215         operand 2 is the stack pointer.
2216         ("addr-peephole"): Fix address computation peephole when operand 2
2217         is the stack pointer.
2218
2219 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2220
2221         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
2222         (ix86_setup_incoming_varargs): Likewise.
2223
2224 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
2225
2226         * stor-layout.c (layout_type): Don't complain about too-large
2227         array here.
2228
2229 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2230
2231         * function.c (keep_stack_depressed): Don't use delete_insn.
2232
2233         * expr.h (set_mem_alias_set): Move decl to here.
2234         * rtl.h (mem_attrs): New typedef and struct.
2235         (union rtunion_def): Add field for mem_attrs.
2236         (X0MEMATTR, MEM_ATTRS): New macros.
2237         (MEM_ALIAS_SET): Use MEM_ATTRS.
2238         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
2239         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
2240         (set_mem_alias_set): Delete decl from here.
2241
2242         * alias.c (set_mem_alias_set): Delete from here.
2243         * emit-rtl.c (mem_attrs_htab): New variable.
2244         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
2245         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
2246         (mem_attrs_mark, get_mem_attrs): Likewise.
2247         (gen_rtx_MEM): Clear MEM_ATTRS.
2248         (set_mem_attributes): Move to here.
2249         (set_mem_alias_set): Likewise, and call get_mem_attrs.
2250         (init_emit_once): const_int_htab now deletable htab.
2251         Initialize mem_attrs_htab.
2252         * explow.c (set_mem_attributes): Delete from here.
2253         * function.c (put_var_into_stack): Clear MEM_ATTRS.
2254         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
2255         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
2256         * reload1.c (reload): Rework changing REG to MEM.
2257
2258 2001-09-30  H.J. Lu <hjl@gnu.org>
2259
2260         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
2261         * config.in: Rebuild.
2262
2263 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2264
2265         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
2266         ("tsthi_1"): Avoid allocation in register y.
2267         ("*movqi_68hc12"): Reorganize and fix constraints.
2268         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
2269         ("addqi3"): Likewise.
2270         ("addhi3"): Fix constraints.
2271         ("*logicalhi3_zexthi"): Disparage soft registers.
2272
2273 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2274
2275         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
2276         to tmp reg.
2277
2278 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2279
2280         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
2281         that we use setjmp/longjmp exceptions.
2282
2283 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
2284
2285         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
2286         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
2287         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
2288         _cpp_pool_alloc, _cpp_next_chunk): Remove.
2289         (_cpp_extend_buff, BUFF_ROOM): Update.
2290         (_cpp_append_extend_buff): New.
2291         (struct cpp_reader): Remove macro_pool, add a_buff.
2292         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
2293         macro_pool.
2294         (cpp_destroy): Free a_buff instead of macro_pool.
2295         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
2296         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
2297         _cpp_pool_alloc, ): Remove.
2298         (parse_number, parse_string): Update use of _cpp_extend_buff.
2299         (_cpp_extend_buff): Update.
2300         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
2301         * cpplib.c (glue_header_name, parse_answer):
2302         Update use of _cpp_extend_buff.
2303         (cpp_register_pragma, cpp_register_pragma_space): Use
2304         _cpp_aligned_alloc.
2305         (do_assert, do_unassert): Check for EOL, update.
2306         * cppmacro.c (stringify_arg, collect_args): Update to use
2307         _cpp_extend_buff and _cpp_append_extend_buff.
2308         (save_parameter, parse_params, alloc_expansion_token,
2309         _cpp_create_definition): Rework memory management.
2310
2311 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
2312
2313         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
2314         update md_exec_prefix.
2315         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
2316         to string constant.
2317
2318 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2319
2320         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
2321         (SELECT_CC_MODE): Use s390_select_ccmode.
2322         * config/s390/s390-protos.h (s390_select_ccmode): Add.
2323         * config/s390/s390.c (s390_select_ccmode): New.
2324         (s390_match_ccmode): Add CCLmode.
2325         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
2326         (output_branch_condition, output_inverse_branch_condition): Removed.
2327         (print_operand): Use s390_branch_condition_mnemonic.
2328         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
2329         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
2330         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
2331
2332         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
2333         when converting conditional branches to far branches.
2334         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
2335         cmpint_di): Use CCSmode instead of CCUmode.
2336
2337         * config/s390/s390.c (legitimate_la_operand_p): New.
2338         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
2339         * config/s390/s390.md (movsi): Convert load address patterns to
2340         arithmetic operations when necessary.
2341         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
2342         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
2343         (*do_la_reg_0): Don't use before reload.
2344
2345         * config/s390/s390.c (legitimize_address): Make more efficient
2346         use of two-register addressing mode.
2347
2348         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
2349         with -mno-backchain in some corner cases.
2350
2351         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
2352
2353 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
2354
2355         * reload.c (find_reloads): Mark new USE insns with QImode.
2356         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
2357         find_reloads_subreg_address): Likewise.
2358         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
2359         encountered.
2360         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
2361         CLOBBERs.
2362         (reload): Make sure there are no USEs with mode other than
2363         VOIDmode.  At the end, remove those marked with QImode.
2364
2365 2001-09-29  Per Bothner  <per@bothner.com>
2366
2367         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
2368         * Makefile.in (includedir):  Rename to local_includedir.
2369         (includedir):  Define as $(prefix)/include.
2370         * config.in (PREFIX_INCLUDE_DIR):  New variable.
2371         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
2372
2373 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
2374
2375         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
2376         storehps builtins.
2377         * doc/extend.texi (Vector Extensions): New node.
2378         * doc/invoke.texi (Machine Dependent Options): Add documentation for
2379         i386 -mmmx, -msse, -m3dnow.
2380
2381 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
2382
2383         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
2384
2385 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
2386
2387         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
2388
2389         * doc/invoke.texi (Optimize Options): Delete spurious @table.
2390
2391 2001-09-28  Richard Henderson  <rth@redhat.com>
2392
2393         * varasm.c (assemble_integer): Bound alignment check by
2394         BIGGEST_ALIGNMENT.
2395
2396         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
2397
2398 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2399
2400         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
2401
2402 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
2403
2404         Mostly from Graham Stott  <grahams@redhat.com>
2405         * c-common.c (type_for_mode): Add support for V2SFmode.
2406         * tree.c (build_common_tree_nodes_2): Likewise.
2407         * tree.h (enum tree_index, global_trees): Likewise.
2408         * config/i386/i386.c (x86_3dnow_a): New variable.
2409         (override_options): Support 3Dnow extensions.
2410         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
2411         Athlon's version of 3Dnow.
2412         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
2413         (ix86_expand_builtin): Handle them.
2414         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
2415         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
2416         TARGET_3DNOW_A): New macros.
2417         (TARGET_SWITCHES): Add 3Dnow switches.
2418         (VALID_MMX_REG_MODE_3DNOW): New macro.
2419         (VECTOR_MODE_SUPPORTED_P): Use it.
2420         (enum ix86_builtins): Add entries for 3Dnow builtins.
2421         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
2422         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
2423         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
2424         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
2425         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
2426         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
2427         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
2428         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
2429         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
2430         sfence_insn, prefetch): Make these available if TARGET_SSE or
2431         TARGET_3DNOW_A.
2432
2433 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
2434
2435         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
2436         ix86_va_start, ix86_build_va_list): Declare.
2437         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
2438         ix86_va_start, ix86_build_va_list): New global functions.
2439         * i386.md (sse_prologue_save_insn): New insn.
2440         (sse_prologue_save): New expander.
2441         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
2442         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
2443
2444 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2445
2446         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
2447         Use size_t everywhere, make definitions consistent with
2448         prototypes.
2449
2450 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
2451
2452         * gcse.c (replace_store_insn): Use delete_insn.
2453         * loop.c (move_movables): Likewise; avoid delete_insn
2454         from clobbering notes moved elsewhere.
2455         (check_dbra_loop): Use delete_insn.
2456         * ssa.c (convert_from_ssa): Likewise.
2457         * cse.c (cse_insn): Use delete_insn.
2458
2459 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2460
2461         * cpphash.h (struct cpp_buff): Make unsigned.
2462         (_cpp_get_buff): Take length of size_t.
2463         (_cpp_unaligned_alloc): New.
2464         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
2465         (struct cpp_reader): Remove ident_pool.  Add u_buff.
2466         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
2467         (cpp_destroy): Destroy u_buff, not ident_pool.
2468         * cpplex.c (parse_number, parse_string, save_comment,
2469         cpp_token_as_text): Update to use the unaligned buffer.
2470         (new_buff): Make unsigned.
2471         (_cpp_unaligned_alloc): New.
2472         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
2473         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
2474         Similarly.
2475         (collect_args): Make unsigned.
2476
2477 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
2478
2479         * cpplex.c (cpp_output_token): Use a putc loop for
2480         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
2481
2482         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
2483         * configure, config.in: Regenerate.
2484         * system.h: Replace fwrite and fprintf with their unlocked
2485         variants if available.
2486
2487 2001-09-27  Richard Henderson  <rth@redhat.com>
2488
2489         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
2490         in favour of .eh_frame.
2491
2492 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
2493
2494         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
2495         to macros.
2496         (LIBCALL_VALUE): Likewise.
2497
2498 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2499
2500         * cpphash.h: Update comment.
2501         * cpplex.c: Update comments.
2502         (_cpp_can_paste): Remove.
2503         * cpplib.h (_cpp_can_paste): Remove.
2504         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
2505         lexer rather than _cpp_can_paste.
2506
2507 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2508
2509         * doc/cppinternals.texi: Update.
2510
2511 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2512
2513         * cpphash.h (struct cpp_pool): Remove locks and locked.
2514         (struct cpp_context): Add member buff.
2515         (struct cpp_reader): Remove member argument_pool.
2516         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
2517         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
2518         * cpplex.c (chunk_suitable): Remove pool argument.
2519         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
2520         (new_buff, _cpp_extend_buff): Update.
2521         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
2522         which buffer is returned.
2523         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
2524         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
2525         * cppmacro.c (lock_pools, unlock_pools): Remove.
2526         (push_ptoken_context): Take a _cpp_buff.
2527         (enter_macro_context): Pool locking removed.
2528         (replace_args): Use a _cpp_buff for the replacement list with
2529         arguments replaced.
2530         (push_token_context): Clear buff.
2531         (expand_arg): Use _cpp_pop_context.
2532         (_cpp_pop_context): Free a context's buffer, if any.
2533
2534 2001-09-26  DJ Delorie  <dj@redhat.com>
2535
2536         * c-typeck.c (digest_init): Check for sizeless arrays.
2537
2538 2001-09-26  Richard Henderson  <rth@redhat.com>
2539
2540         * optabs.c (init_one_libfunc): Create a dummy function type
2541         instead of using error_mark_node.
2542
2543 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2544
2545         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
2546         _cpp_extend_buff, _cpp_free_buff): New.
2547         (struct cpp_reader): New member free_buffs.
2548         * cppinit.c (cpp_destroy): Free buffers.
2549         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
2550         _cpp_extend_buff, _cpp_free_buff): New.
2551         * cpplib.h (struct cpp_options): Remove unused member.
2552         * cppmacro.c (collect_args): New.  Combines the old parse_arg
2553         and parse_args.  Use _cpp_buff for memory allocation.
2554         (funlike_invocation_p, replace_args): Update.
2555
2556 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
2557
2558         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
2559
2560 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
2561
2562         * except.c (sjlj_mark_call_sites): Change address inside sequence.
2563
2564 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
2565
2566         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
2567         glibc.
2568
2569 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
2570             Jim Wilson  <wilson@redhat.com>
2571
2572         * doc/install.texi (Specific, ia64-*-linux): Document.
2573
2574 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
2575
2576         * Makefile.in (cfgrtl.o): Add.
2577         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
2578         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
2579         free_aux_for_edge): Declare.
2580         * cfg.c
2581         (HAVE_return): Undefine.
2582         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
2583         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
2584         free_aux_for_edge): New global functions.
2585         (first_delete_block): New static variable.
2586         (init_flow): Clear first_delete_block.
2587         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
2588          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
2589          try_redirect_by_replacing_jump, last_loop_beg_note,
2590          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
2591          delete_insn, delete_insn_chain, create_basic_block_structure,
2592          create_basic_block, flow_delete_block, compute_bb_for_insn,
2593          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
2594          set_block_for_new_insns, split_block, merge_blocks_nomove,
2595          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
2596          redirect_edge_and_branch, force_nonfallthru_and_redirect,
2597          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
2598          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
2599          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
2600          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
2601          purge_all_dead_edges): Move to ....
2602         * cfgrtl.c: New file; .... Here.
2603
2604         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
2605         (reroder_basic_block): Use alloc_aux_for_blocks.
2606         * predict.c (estimate_bb_frequencies): Likewise; use
2607         alloc_aux_for_edges.
2608         * profile.c (compute_branch_probabilities): Likewise.
2609         (branch_prob): Likewise.
2610         * reg-stack.c (reg_to_stack): Likewise.
2611
2612         * emit-rtl.c (emit_insns_after): Never return NULL.
2613
2614         * basic-block.h (set_block_for_new_insns): Delete.
2615         * cfgrtl.c (set_block_for_new_insns): Delete.
2616
2617         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
2618         calls when crossjumping.
2619
2620         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
2621         * unroll.c (copy_loop_body): Use delete_insn.
2622
2623         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
2624         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
2625         keep_stack_depressed): Likewise.
2626         * gcse.c (cprop_cc0_jump): Likewise.
2627         * local-alloc.c (update_equiv_regs): Likewise.
2628         * loop.c (scan_loop, loop_delete_insns): Likewise.
2629         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
2630         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
2631         delete_output_reload, delete_address_reloads_1,
2632         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
2633         Likewise.
2634         * sibcall.c (replace_call_placeholder): Likewise.
2635         * cse.c (cse_insn): Likewise.
2636
2637 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
2638
2639         From Graham Stott  <grahams@redhat.com>
2640         (def_builtin): Only define builtins appropriate for target_flags.  All
2641         callers changed.
2642         (builtin_decsription): Add new field mask which is used to determine
2643         when to define the builtin via the macro def_builtin.
2644
2645         (bdesc_comi): Initialise new mask fields.
2646         (bdesc_2srg): Likewise.
2647         (bdesc_1arg): Likewise.
2648
2649         * config/i386/i386.c (ix86_init_builtins): Correct return type
2650         building v4hi_ftype_v4hi_int_int tree node.
2651         (ix86_expand_sse_comi): Fix typo swapping operands.
2652         Don't swap comparision condition, it is already swapped.
2653         (ix86_expand_sse_compare): Before swapping operands
2654         move operand 1 into new rtx and not the target rtx.
2655         Don't swap comparison condition, it is already swapped.
2656         Always check whether we need to create a new TARGET.
2657
2658         * config/i386/i386.md: (sse_comi) Fix typos.
2659         (sse_ucomi): Likewise.
2660         (cvtss2si): Fix operand 0 contraint.
2661         (cvttss2si): Likewise.
2662         (sse_unpckhps): Fix mode for operand 2.
2663         (sse_unpcklps): Likewise.
2664
2665 2001-09-25  Graham Stott  <grahams@redhat.com>
2666
2667         * sibcall.c (skip_copy_to_return_value): Tighten return value
2668         copy check.
2669
2670 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
2671
2672         * rs6000.c (lwa_operand): Address must be word aligned.
2673
2674 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2675
2676         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
2677         number has been set.
2678         (type_hash_mark): Mark type itself.
2679
2680 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2681
2682         * c-lex.c (cb_def_pragma): Update.
2683         (c_lex): Update, and skip padding.
2684         * cppexp.c (lex, parse_defined): Update, remove unused variable.
2685         * cpphash.h (struct toklist): Delete.
2686         (union utoken): New.
2687         (struct cpp_context): Update.
2688         (struct cpp_reader): New members eof, avoid_paste.
2689         (_cpp_temp_token): New.
2690         * cppinit.c (cpp_create_reader): Update.
2691         * cpplex.c (_cpp_temp_token): New.
2692         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
2693         (cpp_output_token): Don't print leading whitespace.
2694         (cpp_output_line): Update.
2695         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
2696         do_include_common, do_line, do_ident, do_pragma,
2697         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
2698         parse_assertion): Update.
2699         (get_token_no_padding): New.
2700         * cpplib.h (CPP_PADDING): New.
2701         (AVOID_LPASTE): Delete.
2702         (struct cpp_token): New union member source.
2703         (cpp_get_token): Update.
2704         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
2705         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
2706         replace_args, quote_string, stringify_arg, parse_arg, next_context,
2707         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
2708         _cpp_backup_tokens, _cpp_create_definition): Update.
2709         (push_arg_context): Delete.
2710         (padding_token, push_token_context, push_ptoken_context): New.
2711         (make_string_token, make_number_token): Update, rename.
2712         (cpp_get_token): Update to handle tokens as pointers to const,
2713         and insert padding appropriately.
2714         * cppmain.c (struct printer): New member prev.
2715         (check_multiline_token): Constify.
2716         (do_preprocessing, cb_line_change): Update.
2717         (scan_translation_unit): Update to handle spacing.
2718         * scan-decls.c (get_a_token): New.
2719         (skip_to_closing_brace, scan_decls): Update.
2720         * fix-header.c (read_scan_file): Update.
2721
2722         * doc/cpp.texi: Update.
2723
2724 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2725
2726         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
2727         leak by passing malloc'ed pointer to reconcat, not concat.
2728
2729 2001-09-24  DJ Delorie  <dj@redhat.com>
2730
2731         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
2732
2733 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
2734
2735         * flow.c (delete_dead_jumptables): Delete jumptable if the only
2736         reference is from the literal pool.
2737
2738 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
2739
2740         * doc/install.texi (Final install): Request additional information
2741         in mail about successful builds.
2742
2743 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2744
2745         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
2746         initial value of return pointer register instead of value in frame-20.
2747         Revise comments.
2748
2749 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2750
2751         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
2752         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
2753         the libcall if there isn't a referenced identifier for the symbol.
2754
2755 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2756
2757         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
2758         non 64-bit machines.  Use these as a plabel for the trampoline.
2759         (TRAMPOLINE_SIZE): Adjust size for new words.
2760         (INITIALIZE_TRAMPOLINE): Initialize new words.
2761         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
2762         pointer to the plabel in the trampoline.
2763
2764 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2765
2766         * pa.c (function_arg): Pass floating arguments in both general and
2767         floating registers in indirect (dynamic) calls when generating code
2768         for the 32 bit ABI and the HP assembler.
2769
2770 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2771
2772         * doc/install.texi: Markup fixes.
2773         Use Solaris 2, SunOS 4 as appropriate.
2774         (Specific, *-*-solaris2*): Explain this.
2775         Unconditionally warn against /usr/ucb tools.
2776         Remove Sun as warning, obsolete.
2777         Move X11 header bug workaround here, update patches.
2778         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
2779         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
2780
2781 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
2782
2783         * errors.h (warning, error, fatal, internal_error): Don't mark
2784         with ATTRIBUTE_PRINTF_n.
2785         * toplev.h (internal_error, fatal_io_error, warning, error,
2786         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
2787         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
2788         Likewise.
2789
2790 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2791
2792         * function.c (pop_function_context_from): var_refs_queue
2793         and temp slots now in GC memory.
2794         (mark_function_status, free_after_compilation): Likewise;
2795         also struct function now in GC memory.
2796         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
2797         (combine_temp_slots): Likewise.
2798         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
2799         (prepare_function_start): Use GC memory for struct function.
2800         (mark_temp_slot): Deleted.
2801         (gcc_mark_struct_function): struct function now in GC memory.
2802
2803         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
2804         code for division, not modulus.
2805
2806         * rtl.def (MEM): Remove obsolete part of comment.
2807
2808 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
2809
2810         * c-format.c (init_function_format_info): Check __builtin_printf
2811         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
2812         in gnu89 mode.
2813
2814 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2815
2816         * c-common.c (format_attribute_table): Remove decl.
2817         * tree.h (format_attribute_table, lang_attribute_table): New decls.
2818         (lang_attribute_common): Likewise.
2819
2820         * function.c (fix_lexical_address): Use set_mem_alias_set.
2821         (expand_function_start): Likewise.
2822         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
2823
2824         * varasm.c (output_constant): Fix unused variable warning.
2825
2826         * attribs.c: New file, from c-common.c.
2827         (attribute_tables): Now four elements.
2828         (format_attribute_table, lang_attribute_common): New variables.
2829         (init_attributes): Reflect above changes.
2830         (handle_mode_attribute): Delete check for wider than uintmax.
2831         * c-common.c: Delete parts moved to attribs.c.
2832         (enum attrs): Deleted; unused.
2833         (c_format_attribute_table): New variable.
2834         (c_common_lang_init): Initialize format_attribute_table with it.
2835         * c-common.h (decl_attributes): Remove decl.
2836         * tree.h (decl_attribute): Move it to here.
2837         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
2838         (attribs.o): New rule.
2839
2840 2001-09-22  Andreas Jaeger  <aj@suse.de>
2841
2842         * builtins.c (c_getstr): Remove unused variable.
2843
2844 2001-09-21  Richard Henderson  <rth@redhat.com>
2845
2846         * reload1.c (reload): Use delete_insn instead of splatting
2847         NOTE_INSN_DELETED.
2848
2849 2001-09-21  Richard Henderson  <rth@redhat.com>
2850
2851         * reload.c (push_secondary_reload): Don't check for "=" in output
2852         constraint after ""->ALL_REGS check.
2853
2854 2001-09-21  Richard Henderson  <rth@redhat.com>
2855
2856         * predict.c (expected_value_to_br_prob): Use pc_set.
2857
2858         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
2859         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
2860
2861 2001-09-21  Richard Henderson  <rth@redhat.com>
2862
2863         * rtl.h (LCT_RETURNS_TWICE): New.
2864         * calls.c (emit_call_1): Set current_function_calls_setjmp for
2865         ECF_RETURNS_TWICE.
2866         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
2867         to ECF_RETURNS_TWICE.
2868         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
2869         call to setjmp.
2870
2871         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
2872
2873         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
2874         (JMP_BUF_SIZE): New.
2875
2876 2001-09-21  Richard Henderson  <rth@redhat.com>
2877
2878         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
2879         to R8_REGS.
2880
2881 2001-09-21  Richard Henderson  <rth@redhat.com>
2882
2883         * tree.def (FDESC_EXPR): New.
2884         * expr.c (expand_expr): Handle it.
2885         * varasm.c (initializer_constant_valid_p): Likewise.
2886         (output_constant): Likewise.
2887         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
2888         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
2889         (ASM_OUTPUT_FDESC): New.
2890         * doc/tm.texi: Document the new macros.
2891
2892 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
2893
2894         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
2895         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
2896         once merging is complete.
2897
2898 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2899
2900         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
2901
2902 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
2903
2904         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
2905         that would be invalid after a merge.
2906
2907 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
2908
2909         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
2910         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
2911         remove some labels.
2912         (flow_delete_insn): This one.
2913         (delete_insn_chain): Rename from ...; do not care labels.
2914         (flow_delete_insn_chain): ... this one.
2915         (flow_delete_block): Remove the insns one BB has been expunged.
2916         (merge_blocks_nomove): Likewise.
2917         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
2918         updating BB boundaries.
2919         (tidy_fallthru_edge): Likewise.
2920         (commit_one_edge_insertion): Likewise.
2921         * cfgbuild.c (find_basic_block): Likewise.
2922         (find_basic_blocks_1): Likewise.
2923         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
2924         (try_crossjump_to_edge): Likewise.
2925         (try_optimize_cfg): Likewise.
2926         * cse.c (delete_trivially_dead_insns): Likewise.
2927         * df.c (df_insn_delete): Likewise.
2928         * doloop.c (doloop_modify): Use delete_related_insns.
2929         * emit-rtl.c (try_split): Likewise.
2930         (remove_insn): Update BB boundaries.
2931         * expect.c (connect_post_landing_pads): Use delete_related_insns.
2932         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
2933         updating BB boundaries.
2934         (propagate_block_delete_insn): Likewise.
2935         (propagate_block_delete_libcall): Likewise.
2936         * function.c (delete_handlers): Use delete_related_insns.
2937         (thread_prologue_and_epilogue_insns): Likewise.
2938         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
2939         * genpeep.c (gen_peephole): Use delete_related_insns.
2940         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
2941         BB boundaries.
2942         (find_cond_trap): Likewise.
2943         * integrate.c (save_for_inline): Use delete_related_insns.
2944         (copy_insn_list): Likewise.
2945         * jump.c (pruge_linie_number_notes): Likewise.
2946         (duplicate_loop_exit_test): Likewise.
2947         (delete_computation): Likewise.
2948         (delete_related_insn): Rename from ...; use delete_insn
2949         (delete_insn): ... this one.
2950         (redirect_jump): Use delete_related_insns.
2951         * loop.c (scan_loop): Likewise.
2952         (move_movables): Likewise.
2953         (find_and_verify_loops): Likewise.
2954         (check_dbra_loop): Likewise.
2955         * recog.c (peephole2_optimize): Likewise.
2956         * reg-stack.c (delete_insn_for_stacker): Remove.
2957         (move_for_stack_reg): Use delete_insn.
2958         * regmove.c (combine_stack_adjustments_for_block): Likewise.
2959         * reload1.c (delete_address_reloads): Use delete_related_insns.
2960         (fixup_abnormal_edges): Use delete_insn.
2961         * recog.c (emit_delay_sequence): Use delete_related_insns.
2962         (delete_from-delay_slot): Likewise.
2963         (delete_scheduled_jump): likewise.
2964         (optimize_skip): Likewise.
2965         (try_merge_delay_insns): Likewise.
2966         (full_simple_delay_slots): Likewise.
2967         (fill_slots_from_thread): Likewise.
2968         (relax_delay_slots): Likewise.
2969         (make_return_insns): Likewise.
2970         (dbr_schedule): Likewise.
2971         * rtl.h (delete_insn): Rename to delete_related_insns.
2972         (delete_insn, delete_insn_chain): New prototypes.
2973         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
2974         by df_insn_delete already.
2975         * ssa-dce.c (delete_insn_bb): Use delete_insn.
2976         * ssa.c (convert_from_ssa): Use delete_related_insns.
2977         * unroll.c (unroll_loop): Likewise.
2978         (calculate_giv_inc): Likewise.
2979         (copy_loop_body): Likewise.
2980
2981         * i386-protos.h (ix86_libcall_value, ix86_function_value,
2982         ix86_function_arg_regno_p, ix86_function_arg_boundary,
2983         ix86_return_in_memory, ix86_function_value): Declare.
2984         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
2985         new static valurables.
2986         (x86_64_reg_class): New enum
2987         (x86_64_reg_class_name): New array.
2988         (classify_argument, examine_argument, construct_container,
2989          merge_classes): New static functions.
2990         (optimization_options): Enable flag_omit_frame_pointer and disable
2991         flag_pcc_struct_return on 64bit.
2992         (ix86_libcall_value, ix86_function_value,
2993         ix86_function_arg_regno_p, ix86_function_arg_boundary,
2994         ix86_return_in_memory, ix86_function_value): New global functions.
2995         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
2996         (function_arg_advance): Handle x86_64 passing conventions.
2997         (function_arg): Likewise.
2998         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
2999         (RETURN_IN_MEMORY): Move offline.
3000         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
3001         (FUNCTION_VALUE_REGNO_P): New macro.
3002         (FUNCTION_ARG_REGNO_P): Move offline.
3003         (struct ix86_args): Add maybe_vaarg.
3004         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
3005         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
3006
3007 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
3008
3009         * s390.md: Changed attributes for scheduling.
3010         * s390.c: (s390_adjust_cost, s390_adjust_priority)
3011         Changed scheduling
3012
3013 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3014
3015         Table-driven attributes.
3016         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
3017         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
3018         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
3019         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
3020         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
3021         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
3022         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
3023         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
3024         * tree.h (struct tree_decl): Change machine_attributes to
3025         attributes.
3026         * doc/c-tree.texi: Document that all attributes are now attached
3027         to decls and types.
3028         * c-common.c (add_attribute, attrtab, attrtab_idx,
3029         default_valid_lang_attribute, valid_lang_attribute): Remove.
3030         (attribute_tables, attributes_initialized,
3031         c_common_attribute_table, default_lang_attribute_table): New
3032         variables.
3033         (handle_packed_attribute, handle_nocommon_attribute,
3034         handle_common_attribute, handle_noreturn_attribute,
3035         handle_unused_attribute, handle_const_attribute,
3036         handle_transparent_union_attribute, handle_constructor_attribute,
3037         handle_destructor_attribute, handle_mode_attribute,
3038         handle_section_attribute, handle_aligned_attribute,
3039         handle_weak_attribute, handle_alias_attribute,
3040         handle_no_instrument_function_attribute,
3041         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
3042         handle_no_limit_stack_attribute, handle_pure_attribute): New
3043         functions.
3044         (init_attributes, decl_attributes): Rewrite to implement
3045         table-driven attributes.
3046         * c-common.h (enum attribute_flags): Move to tree.h.
3047         * c-format.c (decl_handle_format_attribute,
3048         decl_handle_format_arg_attribute): Rename to
3049         handle_format_attribute and handle_format_arg_attribute.  Update
3050         for table-driven attributes.
3051         * c-common.h (decl_handle_format_attribute,
3052         decl_handle_format_arg_attribute): Remove prototypes.
3053         (handle_format_attribute, handle_format_arg_attribute): Add
3054         prototypes.
3055         * c-decl.c (grokdeclarator): Handle attributes nested inside
3056         declarators.
3057         * c-parse.in (setattrs, maybe_setattrs): Remove.
3058         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
3059         Update to handle nested attributes properly.
3060         (maybe_resetattrs, after_type_declarator,
3061         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
3062         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
3063         properly.
3064         (make_pointer_declarator): Update to handle nested attributes
3065         properly.
3066         * doc/extend.texi: Update documentation of limits of attributes
3067         syntax.  Warn about problems with attribute semantics in C++.
3068         * target.h (struct target): Remove valid_decl_attribute and
3069         valid_type_attribute.  Add attribute_table and
3070         function_attribute_inlinable_p.
3071         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
3072         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
3073         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
3074         Add.
3075         (TARGET_INITIALIZER): Update.
3076         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
3077         definition.
3078         (function_attribute_inlinable_p): New function.  Check for the
3079         presence of any machine attributes before using
3080         targetm.function_attribute_inlinable_p.
3081         (function_cannot_inline_p): Update.
3082         * Makefile.in (integrate.o): Update dependencies.
3083         * doc/tm.texi: Update documentation of target attributes and
3084         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
3085         * tree.c (default_valid_attribute_p, valid_machine_attribute):
3086         Remove.
3087         (default_target_attribute_table,
3088         default_function_attribute_inlinable_p): New.
3089         (lookup_attribute): Update comment to clarify handling of multiple
3090         attributes with the same name.
3091         (merge_attributes, attribute_list_contained): Allow multiple
3092         attributes with the same name but different arguments to appear in
3093         the same attribute list.
3094         * tree.h (default_valid_attribute_p): Remove prototype.
3095         (struct attribute_spec): New.
3096         (default_target_attribute_table): Declare.
3097         (enum attribute_flags): Move from c-common.h.  Add
3098         ATTR_FLAG_TYPE_IN_PLACE.
3099         (default_function_attribute_inlinable_p): Declare.
3100         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
3101         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3102         (TARGET_ATTRIBUTE_TABLE): Define.
3103         (vms_attribute_table): New.
3104         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
3105         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3106         (TARGET_ATTRIBUTE_TABLE): Define.
3107         (arc_attribute_table, arc_handle_interrupt_attribute): New.
3108         * config/arm/arm.c (arm_valid_type_attribute_p,
3109         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
3110         Remove.
3111         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
3112         define.
3113         (TARGET_ATTRIBUTE_TABLE): Define.
3114         (arm_attribute_table, arm_handle_fndecl_attribute,
3115         arm_handle_isr_attribute): New.
3116         * config/avr/avr.c (avr_valid_type_attribute,
3117         avr_valid_decl_attribute): Remove.
3118         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
3119         define.
3120         (TARGET_ATTRIBUTE_TABLE): Define.
3121         (avr_attribute_table, avr_handle_progmem_attribute,
3122         avr_handle_fndecl_attribute): New.
3123         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
3124         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3125         (TARGET_ATTRIBUTE_TABLE): Define.
3126         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
3127         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
3128         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3129         (TARGET_ATTRIBUTE_TABLE): Define.
3130         (h8300_attribute_table, h8300_handle_fndecl_attribute,
3131         h8300_handle_eightbit_data_attribute,
3132         h8300_handle_tiny_data_attribute): New.
3133         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
3134         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
3135         Remove prototypes.
3136         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
3137         declarations.
3138         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
3139         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
3140         define.
3141         (TARGET_ATTRIBUTE_TABLE): Define.
3142         (ix86_attribute_table, ix86_handle_cdecl_attribute,
3143         ix86_handle_regparm_attribute): New.
3144         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
3145         i386_pe_valid_type_attribute_p): Remove.
3146         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
3147         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
3148         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3149         (TARGET_ATTRIBUTE_TABLE): Define.
3150         (ia64_attribute_table): New.
3151         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
3152         interrupt_ident2, model_ident1, model_ident2): Remove.
3153         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3154         (TARGET_ATTRIBUTE_TABLE): Define.
3155         (init_idents): Update.
3156         (m32r_attribute_table, m32r_handle_model_attribute): New.
3157         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
3158         Remove.
3159         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3160         (TARGET_ATTRIBUTE_TABLE): Define.
3161         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
3162         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
3163         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3164         (TARGET_ATTRIBUTE_TABLE): Define.
3165         (mcore_attribute_table, mcore_handle_naked_attribute): New.
3166         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
3167         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3168         (TARGET_ATTRIBUTE_TABLE): Define.
3169         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
3170         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
3171         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3172         (TARGET_ATTRIBUTE_TABLE): Define.
3173         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
3174         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
3175         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3176         (TARGET_ATTRIBUTE_TABLE): Define.
3177         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
3178         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3179         New.
3180         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
3181         Remove.
3182         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
3183         (TARGET_ATTRIBUTE_TABLE): Define.
3184         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
3185         New.
3186         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
3187         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3188         (TARGET_ATTRIBUTE_TABLE): Define.
3189         (v850_attribute_table, v850_handle_interrupt_attribute,
3190         v850_handle_data_area_attribute): New.
3191         * config/v850/v850-c.c (mark_current_function_as_interrupt):
3192         Return void.  Call decl_attributes instead of
3193         valid_machine_attribute.
3194
3195 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
3196
3197         * sh-protos.h (sh_pr_n_sets): Declare.
3198         * sh.c (calc_live_regs): If the initial value for PR has been copied,
3199         look at the copy to determine if PR needs to be saved.
3200         sh_pr_n_sets: New function.
3201         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
3202         (ALLOCATE_INITIAL_VALUE): Define.
3203
3204         * sh.c (initial_elimination_offset):
3205         Fix RETURN_ADDRESS_POINTER_REGNUM case.
3206
3207 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
3208
3209         * integrate.c (allocate_initial_values): New function.
3210         * integrate.h (allocate_initial_values): Declare.
3211         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
3212         here...
3213         * reload1.c (reload): And initialization of reg_equiv_memory_loc
3214         from here...
3215         * toplev.c (rest_of_compilation): To here.
3216         Call allocate_initial_values.
3217         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
3218
3219 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3220
3221         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
3222
3223 2001-09-20  DJ Delorie  <dj@redhat.com>
3224
3225         * c-typeck.c (really_start_incremental_init): Discriminate
3226         between zero-length arrays and flexible arrays.
3227         (push_init_level): Detect zero-length arrays and handle them
3228         like fixed-sized arrays.
3229         * expr.c (store_constructor): Handle zero-length arrays and
3230         flexible arrays correctly.
3231         * doc/extend.texi: Update zero-length array notes.
3232
3233 2001-09-20  Jim Wilson  <wilson@redhat.com>
3234
3235         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
3236         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
3237         for issue port conflicts.
3238         (cycle_end_fill_slots): TYPE_L instructions take two slots.
3239
3240 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
3241
3242         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
3243         on ia64.
3244
3245 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3246
3247         * fold-const.c (hashtab.h): Include.
3248         (int_const_binop): Remove FORSIZE arg and compute from type; all
3249         callers changed.
3250         Call size_int_type_wide for all single-word constants.
3251         (size_htab_hash, size_htab_eq): New functions.
3252         (size_int_type_wide): Rework to use hash table.
3253         * ggc-common.c (hashtab.h): Include.
3254         (struct d_htab_root): New struct.
3255         (d_htab_roots): New variable.
3256         (ggc_add_deletable_htab, ggc_htab_delete): New functions
3257         (ggc_mark_roots): Handle deletable htabs.
3258         * ggc-page.c (ggc_marked_p): New function.
3259         * ggc-simple.c (ggc_marked_p): Likewise.
3260         * ggc.h: Reformatting throughout.
3261         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
3262         * tree.c (init_obstacks): Make type_hash_table a deletable root.
3263         (type_hash_add): Allocate struct type_hash from GC memory.
3264         (mark_hash_entry, mark_type_hash): Deleted.
3265         (type_hash_marked_p, type_hash_mark): New functions.
3266         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
3267
3268 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
3269
3270         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
3271         than SImode.
3272
3273 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3274
3275         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
3276         array-too-large test for signed sizetype.
3277
3278 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
3279
3280         * i386.md (indirect_jump): Allow Pmode operand.
3281         (tablejump): LIkewise; perform expansion to 64bit mode.
3282         * i386.c (symbolic_operand): Allow 64bit PIC references.
3283         (pic_symbolic_operand): Likewise.
3284         (ix86_find_base_term): Strip the 64bit PIC references.
3285         (legitimate_pic_address_disp_p): Handle 64bit PIC.
3286         (legitimize_pic_address): Likewise.
3287         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
3288         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
3289
3290 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
3291
3292         * stringpool.c (get_identifier_with_length): New function.
3293         * tree.h (get_identifier_with_length): New prototype.
3294
3295 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
3296             David Edelsohn  <edelsohn@gnu.org>
3297
3298         Revert:
3299         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
3300         already sign-extended.
3301
3302         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
3303         * config/rs6000/rs6000.c (logical_operand): Always compare op as
3304         HOST_WIDE_INT.
3305         (rs6000_emit_set_long_const): Avoid unnecessary shift.
3306         (output_profile_hook): Declare label_name const.
3307         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
3308         to match constraints.
3309
3310 2001-09-19  Stan Shebs  <shebs@apple.com>
3311
3312         * alias.c: Fix typos in comments.
3313         * sched-rgn.c (init_ready_list): Ditto.
3314         * unwind-dw2.c (uw_frame_state_for): Ditto.
3315         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
3316         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
3317         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
3318
3319 2001-09-19  Richard Henderson  <rth@redhat.com>
3320
3321         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
3322         to the exit block.
3323         * Makefile.in (cfg.o): Depend on TM_P_H.
3324
3325 2001-09-19  Richard Henderson  <rth@redhat.com>
3326
3327         * config/alpha/alpha.c (local_symbol_p): Split out from ...
3328         (local_symbolic_operand): ... here.
3329         (small_symbolic_operand): Check mode.
3330         (global_symbolic_operand): New.
3331         (input_operand): Reject symbolics if explicit relocs.
3332         (call_operand): Tidy.
3333         (alpha_legitimize_address): Use movdi_er_high_g.
3334         (alpha_expand_mov): Likewise.
3335         * config/alpha/alpha-protos.h: Update.
3336         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3337         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
3338         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
3339         (UNSPECV_LDGP2): Remove.
3340         (all call patterns): Use 's' not 'i' for symbolic constraint.
3341         (call_osf call_value_osf): Use call_operand.
3342         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
3343         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
3344         (prologue_ldgp_1_er): Remove.
3345         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
3346         (builtin_setjmp_receiver_er patterns): Use them.
3347         (exception_receiver_er): Likewise.
3348
3349 2001-09-19  Richard Henderson  <rth@redhat.com>
3350
3351         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
3352
3353         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
3354         and NON_LOCAL_GOTO notes.
3355         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
3356         copy over CALL_INSN_FUNCTION_USAGE.
3357
3358 2001-09-18  Catherine Moore  <clm@redhat.com>
3359
3360         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
3361         Define as 0.
3362
3363 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
3364
3365         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
3366         new-style tm_file specification.  Specify correct tm_p_file,
3367         md_file, and out_file for s390x.
3368
3369         * config/s390/linux.h, linux64.h:  Don't include other target
3370         macro header files.  Now handled via tm_file.
3371
3372         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
3373         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
3374         are defined before use.
3375
3376 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
3377
3378         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
3379         code generation only for Gnu assembler.
3380
3381 2001-09-18  Catherine Moore  <clm@redhat.com>
3382
3383         * config/stormy16 (LIB_SPEC): Remove -lnosys.
3384
3385 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
3386
3387         * config/mips/mips.c (mips_frame_set): New.
3388         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
3389         a parallel frame-related expression with a set for each register.
3390
3391 2001-09-18  Philip Blundell  <philb@gnu.org>
3392
3393         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
3394         header files.
3395
3396 2001-09-17  Dale Johannesen  <dalej@apple.com>
3397
3398         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
3399         * config/rs6000/aix.h (FIXED_R2): Define.
3400         * config/rs6000/darwin.h (FIXED_R2): Define.
3401         * config/rs6000/sysv4.h (FIXED_R2): Define.
3402
3403 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
3404
3405         * except.c (dw2_build_landing_pads): New local
3406         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
3407         barrier after clobbers.  Fixes c++/4012.
3408
3409 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3410
3411         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
3412
3413 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3414
3415         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
3416         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
3417
3418 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3419
3420         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
3421         alloca/strcpy.
3422
3423 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3424
3425         * cpphash.h (_cpp_lex_direct): New.
3426         * cpplex.c (_cpp_lex_token): Update.
3427         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
3428         and increment that pointer.
3429         * cppmacro.c (alloc_expansion_token): New.
3430         (lex_expansion_token): Lex macro expansion directly into
3431         macro storage.
3432
3433 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
3434
3435         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
3436
3437 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
3438
3439         * basic-block.h (free_bb_for_insn): Declare.
3440         * bb-reorder.c (label_for_bb): Use block_label.
3441         (emit_jump_to_block_after): Remove.
3442         (insert_intra_1): Do not update block_for_insn.
3443         (insert_inter_bb_scope_notes): Likewise; update bb->end
3444         * cfg.c (free_bb_for_insn): New.
3445         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
3446         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
3447         (commit_one_edge_insertion): Likewise.
3448         (commit_one_edge_insertion): Do not update BB boundary.
3449         (commit_edge_insertions): Do not call compute_bb_for_insn.
3450         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
3451         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
3452         (merge_blocks_move_successor_nojumps): Likewise.
3453         (try_crossjump_to_edge): Do not update block_for_insn.
3454         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
3455         * df.c (df_pattern_emit_later): Do not update BB boundary.
3456         (df_jump_pattern_emit_after): Likewise.
3457         (df_insn_move_before): Use emit_insn_before.
3458         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
3459          properly.
3460         (add_insn_after, add_insn_before, emit_insns_after): Update BB
3461         boundaries and basic_block_for_insn.
3462         (reorder_insns_nobb): Rename from reorder_insns.
3463         (reorder_insns): New.
3464         (emit_block_insn_before, emit_block_insn_after): Kill.
3465         * flow.c (check_function_return_warnings): Do not call
3466         compute_bb_for_insn; Do not free basic_block_for_insn.
3467         (attempt_auto_inc): Do not update basic_block_for_insn.
3468         * function.c (emit_return_into_block): Likewise;
3469         do not update BB boundaries.
3470         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
3471         (insert_insn_end_bb): Use emit_insn_before; Likewise.
3472         (pre_insert_copy_insn): Likewise.
3473         (update_ld_motion_notes): Likewise.
3474         (insert_insn_start_bb): Likewise.
3475         (replace_store_insn): Likewise.
3476         * ifcvt.c (noce_process_if_block): Likewise.
3477         (if_convert): Do not call compute_bb_for_insn.
3478         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
3479         Use emit_insn_before and emit_insn_after.
3480         * recog.c (split_all_insns): Do not update BB boundaries;
3481         Do not call compute_bb_for_insn.
3482         (peephole2_optimize): Do not update BB boundaries.
3483         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
3484         emit_insn_before.
3485         (emit_swap_insn): Likewise.
3486         (convert_regs_1): Likewise.
3487         * reload1.c (reload): Call compute_bb_for_insn.
3488         * rtl.h (reorder_insns_nobb): Declare.
3489         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
3490         * toplev.c (rest_of_compilation): Call free_bb_for_insn
3491         at places CFG is invalidated; do not call compute_bb_for_insn.
3492
3493         * cfg.c (expunge_block): Invalidate BB structure.
3494
3495         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
3496         array.
3497
3498         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
3499
3500 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3501
3502         * cpphash.h (_cpp_lex_token): Update prototype.
3503         * cpplex.c (_cpp_lex_token): New prototype.
3504         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
3505         lex_macro_node, read_flag, do_pragma_poison): Update.
3506         * cppmacro.c (cpp_get_token, parse_params,
3507         lex_expansion_token): Update.
3508
3509 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3510
3511         * cppmain.c (scan_translation_unit): Don't worry about
3512         putting a space after hashes.
3513         * cpplib.c (directive_diagnostics): New.
3514         (_cpp_handle_directive): Update to use directive_diagnostics.
3515         (run_directive): Don't toggle prevent_expansion.
3516         (do_line): Backup in case of the line extension.
3517         * cpplib.h (cpp_lexer_pos): Remove.
3518         * cppmacro.c (_cpp_create_definition): Precede a leading #
3519         with whitespace.
3520
3521 2001-09-15  Richard Henderson  <rth@redhat.com>
3522
3523         * c-typeck.c (comptypes): Handle zero-length arrays properly.
3524
3525 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3526
3527         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
3528
3529 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3530
3531         PR preprocessor/3571
3532         * tradcpp.c (handle_directive): Skip non-vertical space.
3533
3534 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3535
3536         * cppmain.c (setup_callbacks): Set line callback only
3537         if outputting preprocessed source.
3538
3539 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3540
3541         * collect2.c (main): Const-ification.
3542         * gcc.c (translate_options, process_command): Use xstrdup in
3543         lieu of xmalloc/strcpy.
3544         (main): Use concat in lieu of xmalloc/strcpy/strcat.
3545
3546 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3547
3548         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
3549         example.
3550
3551 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3552
3553         * scan-decls.c (scan_decls): Fix typo.
3554
3555 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3556
3557         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
3558         Split mlstring_pos into mls_line and mls_col.
3559         * cppinit.c (cpp_create_reader): Initialize line to 1.
3560         (cpp_destroy): Free tokenruns.
3561         (push_include): Don't update lexer_pos.
3562         * cpplex.c (unterminated, parse_string): Update.
3563         (lex_token): Don't update lexer_pos, update.
3564         * cpplib.c (if_stack): Save line instead of line + col.
3565         (start_directive, _cpp_do__Pragma, do_else, do_elif,
3566         push_conditional, _cpp_pop_buffer): Update.
3567         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
3568         (_cpp_create_definition): Update.
3569
3570 2001-09-15  Eric Christopher  <echristo@redhat.com>
3571
3572         * config/mips/abi64.h: Add support for MEABI.
3573
3574 2001-09-15  Eric Christopher  <echristo@redhat.com>
3575
3576         * config/mips/mips.md: Add unspec #2.
3577         (reload_indi): Use.
3578         (reload_outdi): Ditto.
3579         (reload_outsi): Ditto.
3580         (HILO_delay): New.
3581
3582 2001-09-15  Eric Christopher  <echristo@redhat.com>
3583             Jason Eckhardt  <jle@redhat.com>
3584
3585         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
3586         * config/mips/isa32-linux.h: New file.
3587         * config/mips/isa3264.h: Ditto.
3588         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
3589         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
3590         (output_block_mode): Support MEABI.
3591         (function_arg): Ditto. Fix floating point arg passing.
3592         (mips_va_start): Ditto.
3593         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
3594         processors.
3595         (mips_asm_file_start): Add new section to pass abi to gdb.
3596         (function_arg_pass_by_reference): Support MEABI.
3597         (mips_parse_cpu): Support mips32 and mips64 processors.
3598         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
3599         TARGET_MIPS5KC.  Support isa32 and isa64.
3600         (processor_type): Add r4kc, r5kc, r20kc.
3601         (GENERATE_MULT3_SI): New.
3602         (GENERATE_MULT3_DI): Ditto.
3603         (GENERATE_MULT3): Remove.
3604         (ISA_HAS_64BIT_REGS): Add isa == 64.
3605         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
3606         (ISA_HAS_MADD_MSUB): New.
3607         (ISA_HAS_CLZ_CLO): Ditto.
3608         (ISA_HAS_DCLZ_DCLO): Ditto.
3609         (ABI_GAS_ASM_SPEC): New.
3610         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
3611         (ASM_SPEC): Ditto.
3612         (LINK_SPEC): Ditto.
3613         (SUBTARGET_CC1_SPEC): Ditto.
3614         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
3615         (PAD_VARARGS_DOWN): Support MEABI.
3616         (HARD_REGNO_NREGS): Move to mips.c.
3617         (ASM_OUTPUT_IDENT): Add #undef.
3618         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
3619         (mulsi3): Use GENERATE_MULT3_SI.
3620         (mulsi3_mult3): Ditto.  Support mips32, mips64.
3621         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
3622         (mul_sub_si): New pattern.
3623         (unnamed splitters): New.
3624         (muldi3): Use GENERATE_MULT3_DI.
3625         (muldi3_internal2): Ditto.
3626         (movdicc): Support mips32.
3627         * config/mips/t-isa3264: New file.
3628
3629 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
3630
3631         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
3632         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
3633         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
3634
3635         * reorg.c (fill_slots_from_thread): After call to
3636         steal_delay_list_from_target, update own_thread as new_thread may
3637         have branched.
3638
3639 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3640
3641         * cpperror.c (print_location): Take line and column, for
3642         default positioning use the previously lexed token.
3643         (_cpp_begin_message): Take line and column.
3644         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
3645         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
3646         * cpphash.h (_cpp_begin_message): Update prototype.
3647         * cppinit.c (push_include): Don't set output line.
3648         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
3649         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
3650         (do_pragma): Kludge for front ends.  Don't expand macros at all.
3651         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
3652         (struct cpp_token): Remove output_line.
3653         (struct cpp_callbacks): New member line_change.
3654         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
3655         cpp_get_token): Preserve BOL flag.
3656         (cpp_get_line): Remove.
3657         (_cpp_backup_tokens): Remove useless abort().
3658         * cppmain.c (cb_line_change): New.
3659         (scan_translation_unit): Don't worry about starting new lines here.
3660         * scan-decls.c (scan_decls): Update.
3661         * c-lex.c (c_lex, init_c_lex): Update.
3662         (cb_line_change, src_lineno): New.
3663
3664 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
3665
3666         * tree.c (append_random_chars): Generate the random
3667         characters in a reproducable fashion.
3668
3669 2001-09-14  Richard Henderson  <rth@redhat.com>
3670
3671         * config/i386/i386.c (internal_label_prefix): New.
3672         (internal_label_prefix_len): New.
3673         (override_options): Set them.
3674         (local_symbolic_operand): New.
3675         (legitimate_pic_address_disp_p): Use it.
3676         (legitimize_pic_address): Likewise.
3677
3678 2001-09-14  Marc Espie <espie@openbsd.org>
3679
3680         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
3681         correctly.
3682
3683 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3684
3685         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
3686         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
3687
3688 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
3689
3690         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
3691         invocation of SUBREG_REGNO_OFFSET.
3692
3693         * haifa-sched.c: Fix typo in FSF copyright statement.
3694         * sched-deps.c: Fix typo in FSF copyright statement.
3695         * sched-ebb.c: Fix typo in FSF copyright statement.
3696         * sched-rgn.c: Fix typo in FSF copyright statement.
3697         * sched-vis.c: Fix typo in FSF copyright statement.
3698
3699         * config.gcc: Move inclusion of arm elf specific header files
3700         from the files themselves into the tm_file variable.  Make
3701         sure that elfos.h is included before target specific elf
3702         headers.
3703         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
3704         already defined.
3705         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
3706         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
3707         ASM_OUTPUT_CASE_LABEL): Protect definition.
3708         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
3709         not already defined.
3710         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
3711         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
3712         Remove duplicate definition.
3713         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
3714         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
3715         (RDATA_SECTION_FUNCTION): Remove redundant definition.
3716         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
3717         Remove inclusion of arm/elf.h.
3718         * config/arm/unknown-elf.h: as for conix-elf.h.
3719         (STARTFILE_SPEC): Include crti.o and crtn.o.
3720         * config/arm/linux-elf.h: as for conix-elf.h.
3721         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
3722         * config/arm/strongarm-elf.h: Remove inclusion of
3723         unknown-elf.h.
3724         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
3725         * config/arm/unknown-elf-oabi.h: Remove inclusion of
3726         unknown-elf.h and elf.h.
3727         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
3728         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
3729         ASM_WEAKEN_LABEL): Remove redundant definition.
3730         * config/arm/elf.h: Test for inclusion of elfos.h
3731         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
3732         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
3733         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
3734         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
3735         redundant definition.
3736         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
3737         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
3738         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
3739         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
3740         Add rules to build crti.o and crtn.o
3741         * crti.asm: New file.
3742         * crtn.asm: New file.
3743
3744 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3745
3746         * c-parse.in (_yylex): Use _cpp_backup_tokens.
3747         * cpphash.h (struct tokenrun): Add prev.
3748         (struct lexer_state): Remove bol.
3749         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
3750         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
3751         : Remove.
3752         * cppinit.c (cpp_create_reader): Don't set bol.
3753         (cpp_destroy): Don't free lookaheads.
3754         * cpplex.c (lex_directive): Remove.
3755         (next_tokenrun): Update.
3756         (_cpp_lex_token): Clean up logic.
3757         (lex_token): Update to return a pointer to lexed token, since it
3758         can move to the start of the buffer.  Simpify newline handling.
3759         * cpplib.c (SEEN_EOL): Update.
3760         (skip_rest_of_line): Remove lookahead stuff.
3761         (end_directive): Line numbers are already incremented.  Revert
3762         to start of lexed token buffer if we can.
3763         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
3764         parse_answer): Use _cpp_backup_tokens.
3765         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
3766         instead.  Don't check for EOL.
3767         (do_include_common, do_line, do_pragma_system_header): Use
3768         skip_rest_of_line.
3769         * cpplib.h (BOL, _cpp_backup_tokens): New.
3770         * cppmacro.c (save_lookahead_token, take_lookahead_token,
3771         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
3772         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
3773         (builtin_macro): Don't use cpp_get_line.
3774         (cpp_get_line): Short term kludge.
3775         (parse_arg): Handle directives in arguments here.  Back up when
3776         appropriate.  Store EOF at end of argument list.
3777         (funlike_invocation_p): Use _cpp_backup_tokens.
3778         (push_arg_context): Account for EOF at end of list.
3779         (cpp_get_token): Remove lookahead stuff.  Update.
3780
3781 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3782
3783         * c-parse.in (yyerror): Const-ification and/or static-ization.
3784         * c-typeck.c (push_member_name): Likewise.
3785         * collect2.c (main): Likewise.
3786         * dbxout.c (dbxout_parms): Likewise.
3787         * diagnostic.c (format_with_decl): Likewise.
3788         * dwarf2out.c (output_ranges): Likewise.
3789         * dwarfout.c (fundamental_type_code): Likewise.
3790         * except.c (dw2_output_call_site_table): Likewise.
3791         * gcc.c (do_spec_1): Likewise.
3792         * genopinit.c (optabs): Likewise.
3793         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
3794         gen_declaration_1, handle_impent): Likewise.
3795         * protoize.c (default_include, in_system_include_dir, abspath):
3796         Likewise.
3797         * sched-vis.c (visualize_stall_cycles): Likewise.
3798         * sdbout.c (plain_type_1, sdbout_end_function,
3799         sdbout_end_epilogue): Likewise.
3800         * varasm.c (decode_reg_name): Likewise.
3801
3802         * 1750a.c (mod_regno_adjust): Likewise.
3803         * alpha.c (alpha_write_one_linkage,
3804         unicosmk_output_default_externs): Likewise.
3805         * arm.c (arm_condition_codes): Likewise.
3806         * arm.h (arm_condition_codes): Likewise.
3807         * avr.c (output_movsisf, encode_section_info): Likewise.
3808         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
3809         Likewise.
3810         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
3811         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
3812         * m88k.c (output_function_profiler): Likewise.
3813         * mips.c (mips_output_conditional_branch): Likewise.
3814         * ns32k.c (ns32k_out_reg_names): Likewise.
3815         * ns32k.h (ns32k_out_reg_names): Likewise.
3816         * pj.c (pj_output_rval): Likewise.
3817         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
3818         * sparc.c (sparc_flat_function_prologue,
3819         sparc_flat_function_epilogue): Likewise.
3820
3821 2001-09-13  Markus Werle <numerical.simulation@web.de>
3822             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3823
3824         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
3825         Aachen University of Technology".
3826
3827 2001-09-13  Andreas Schwab  <schwab@suse.de>
3828
3829         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
3830         C99.
3831
3832 2001-09-13  Richard Henderson  <rth@redhat.com>
3833
3834         * config/alpha/alpha.c (small_symbolic_operand): New.
3835         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
3836         (some_operand, input_operand): Don't handle HIGH.
3837         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
3838         (alpha_expand_mov): Likewise.
3839         (print_operand) [H]: Just print HIGH symbol.
3840         (print_operand_address): Handle small data.
3841         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
3842         (TARGET_SWITCHES): Add -msmall-data/large-data.
3843         (PIC_OFFSET_TABLE_REGNUM): New.
3844         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
3845         (PREDICATE_COES): Update.
3846         * config/alpha/alpha.md (adddi_er_high): New.
3847         (adddi_er_low): Handle small data.
3848         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
3849         prefer .sdata to .rodata.
3850         (SELECT_RTX_SECTION): Likewise.
3851
3852 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
3853
3854         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
3855         defining __size_t and leaving size_t undefined.
3856
3857 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
3858
3859         * basic-block.h (expunge_block): Declare.
3860         * cfg.c (expunge_block): Remove static declaration.
3861
3862 2001-09-12  Richard Henderson  <rth@redhat.com>
3863
3864         * integrate.c (copy_insn_list): Copy label name from
3865         NOTE_INSN_DELETED_LABEL.
3866
3867 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3868
3869         * c-common.c (c_tree_code_name): Const-ification.
3870         * c-decl.c (c_decode_option): Likewise.
3871         * c-typeck.c (warn_for_assignment): Likewise.
3872         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
3873         Likewise.
3874         * cppinit.c (output_deps): Likewise.
3875         * dependence.c (dependence_string, direction_string): Likewise.
3876         * dwarf2out.c (output_ranges): Likewise.
3877         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
3878         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
3879         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
3880         standard_startfile_prefix, standard_startfile_prefix_1,
3881         standard_startfile_prefix_2, tooldir_base_prefix,
3882         standard_bindir_prefix, find_a_file): Likewise.
3883         * genattrtab.c (make_length_attrs): Likewise.
3884         * gencheck.c (tree_codes): Likewise.
3885         * genemit.c (gen_split): Likewise.
3886         * genrecog.c (special_mode_pred_table): Likewise.
3887         * graph.c (graph_ext): Likewise.
3888         * protoize (default_include): Likewise.
3889         * reload.c (reload_when_needed_name): Likewise.
3890         * sched-vis.c (visualize_stall_cycles): Likewise.
3891         * tlink.c (recompile_files): Likewise.
3892         * toplev.c (decode_g_option): Likewise.
3893         * tradcpp.c (output_deps): Likewise.
3894         * varasm.c (decode_reg_name): Likewise.
3895
3896         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
3897         Const-ification.
3898         * arm.md: Likewise.
3899         * avr.c (avr_regnames, encode_section_info): Likewise.
3900         * c4x.c (float_reg_names): Likewise.
3901         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
3902         * elfos.h (const_section): Likewise.
3903         * i386.c (ix86_comp_type_attributes): Likewise.
3904         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
3905         * ia64/aix.h (UNIQUE_SECTION): Likewise.
3906         * ia64.c (type_names): Likewise.
3907         * m68hc11.c (reg_class_names): Likewise.
3908         * m88k.c (m_options): Likewise.
3909         * mips.c (mips_output_conditional_branch, mips_unique_section):
3910         Likewise.
3911         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3912         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
3913         ultra_code_names): Likewise.
3914         * sparc.h (OVERRIDE_OPTIONS): Likewise.
3915
3916 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
3917
3918         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
3919         Use --fatal-warnings option for gas.
3920         * configure: Rebuilt.
3921
3922 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3923
3924         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
3925
3926 2001-09-11  Jim Wilson  <wilson@redhat.com>
3927
3928         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
3929
3930 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3931
3932         * builtins.c (c_strlen): Treat an offset too large for a
3933         HOST_WIDE_INT as out of range.
3934
3935 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
3936
3937         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
3938         (EDGE_CRITICAL_P): New predicate.
3939         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
3940         handling.
3941         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
3942         (dump_edge_info): Remove "crit".
3943         * cfganal.c (mark_critical_edges): Kill.
3944         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
3945         * cfgcleanup.c (cleanup_cfg): Likewise.
3946         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
3947         (find_spanning_tree): Likewise.
3948         * reg-stack.c (convert_regs_1): Likewise.
3949         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
3950
3951         * basic-block.h (create_basic_block_structure): New.
3952         (create_basic_block): Update prototype.
3953         (force_nonfallthru): New.
3954         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
3955         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
3956         handle updating of block_for_insn, creating of empty BBs and BBs at
3957         the end of INSN chain.
3958         (create_basic_block): New function.
3959         (split_block): Use create_basic_block.
3960         (force_nonfallthru_and_redirect): Break out from ...; cleanup
3961         (redirect_edge_and_branch_force): ... here.
3962         (force_nonfallthru): New.
3963         (split_edge): Rewrite to use force_nonfallthru and create_block.
3964         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
3965         (find_basic_blocks): Free basic_block_for_insn.
3966         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
3967
3968         * cfg.c: Fix formating.
3969         * cfgcleanup.c: Fix formating.
3970         (merge_blocks, tail_recursion_label_p): Return bool.
3971         (merge_blocks_move_predecessor_nojumps,
3972          merge_blocks_move_successor_nojumps): Return void.
3973
3974 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
3975
3976         * configure.in: Check whether assembler supports section merging.
3977         * config.in: Rebuilt.
3978         * configure: Rebuilt.
3979         * varasm.c (variable_section, output_constant_pool): Pass alignment
3980         to SELECT_SECTION and SELECT_RTX_SECTION.
3981         (mergeable_string_section): New.
3982         (mergeable_constant_section): New.
3983         (default_elf_asm_named_section): Output SECTION_MERGE and
3984         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
3985         * output.h (mergeable_string_section): New.
3986         (mergeable_constant_section): New.
3987         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
3988         * toplev.c (flag_merge_constants): New.
3989         (f_options): Add -fmerge-constants and -fmerge-all-constants
3990         options.
3991         (toplev_main): Default to -fno-merge-constants if not optimizing.
3992         * flags.h (flag_merge_constants): Add extern.
3993         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
3994         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
3995         argument.
3996         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
3997         Define if assembler has working .subsection -1 support.
3998         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
3999         Put constant into special SHF_MERGE sections if the linker should
4000         attempt to merge duplicates.
4001         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
4002         macro argument.
4003         Put constant into special SHF_MERGE sections if the linker should
4004         attempt to merge duplicates.
4005         * config/alpha/elf.h: Likewise.
4006         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
4007         has working .subsection -1 support.
4008         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
4009         SELECT_SECTION.
4010         * config/svr3.h: Likewise.
4011         * config/darwin.h: Likewise.
4012         * config/arm/aof.h: Likewise.
4013         * config/arm/linux-elf.h: Likewise.
4014         * config/avr/avr.h: Likewise.
4015         * config/c4x/c4x.h: Likewise.
4016         * config/d30v/d30v.h: Likewise.
4017         * config/i386/dgux.h: Likewise.
4018         * config/i386/osfrose.h: Likewise.
4019         * config/i386/sco5.h: Likewise.
4020         * config/i386/svr3gas.h: Likewise.
4021         * config/ia64/aix.h: Likewise.
4022         * config/m32r/m32r.h: Likewise.
4023         * config/m68k/m68k.h: Likewise.
4024         * config/m88k/dgux.h: Likewise.
4025         * config/m88k/m88k.h: Likewise.
4026         * config/mcore/mcore-pe.h: Likewise.
4027         * config/mips/mips.h: Likewise.
4028         * config/pa/pa.h: Likewise.
4029         * config/pa/pa-linux.h: Likewise.
4030         * config/romp/romp.h: Likewise.
4031         * config/rs6000/sysv4.h: Likewise.
4032         * config/rs6000/xcoff.h: Likewise.
4033         * config/s390/linux.h: Likewise.
4034         * config/sparc/sparc.h: Likewise.
4035         * config/sparc/sysv4.h: Likewise.
4036         * config/stormy16/stormy16.h: Likewise.
4037         * config/v850/v850.h: Likewise.
4038         * config/vax/vms.h: Likewise.
4039         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
4040         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
4041         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
4042         default_elf_asm_named_section for SHF_MERGE sections.
4043
4044 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
4045
4046         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
4047         is OK.
4048
4049 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
4050
4051         * c-common.c (split_specs_attrs): Allow for empty attributes with
4052         empty TREE_PURPOSE.  Fixes PR c/4294.
4053
4054 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
4055
4056         * basic-block.h (cached_make_edge, make_single_succ): New.
4057         (make_edge): Remove first parameter.
4058         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
4059         * cfg.c (cached_make_edge): Rename from make_edge; return newly
4060         created edge; use obstack allocation.
4061         (make_edge, make_single_succ_edge): New.
4062         (first_removed_edge): New static variable.
4063         (init_flow): Initialize first_removed_edge and n_edges.
4064         (clear_edges): Use remove_edge.
4065         (flow_delete_block): Likewise.
4066         (remove_edge): Add removed edges to the removed edges list.
4067         (split_block, redirect_edge_and_branch_force, split_edge):
4068         Use make_edge.
4069         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
4070         (add_noreturn_fake_exit_edges): Likewise.
4071         (connect_infinite_loops_to_exit): Liekwise.
4072         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
4073         Use cached_make_edge.
4074         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
4075         * profile.c (branch_prob): Update make_edge call.
4076         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
4077
4078 2001-09-11  Richard Henderson  <rth@redhat.com>
4079
4080         * config/alpha/alpha.c: Tidy formatting.
4081         (local_symbolic_operand): Verify mode.
4082         (alpha_sa_mask): Ignore unicos for eh_return.
4083         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
4084         * config/alpha/alpha.md (umk divsi patterns): Remove.
4085         (extendsfdf2): Remove unicos check.
4086         (tablejump): Merge vms and unicos code; always use direct set
4087         plus label_ref use.
4088
4089 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4090
4091         * config.gcc (alpha*-*-unicosmk*): New target.
4092
4093         * config/alpha/alpha-protos.h (symbolic_operand,
4094         unicosmk_add_call_info_word, unicosmk_add_extern,
4095         unicosmk_defer_case_vector, unicosmk_unique_section,
4096         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
4097         unicosmk_asm_file_start, unicosmk_asm_file_end,
4098         unicosmk_output_common): Declare.
4099
4100         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
4101         direct_return, function_arg, alpha_va_start, alpha_va_arg,
4102         alpha_does_function_need_gp, alpha_end_function): Support Cray
4103         Unicos/Mk.
4104         (alpha_init_machine_status, alpha_mark_machine_status,
4105         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
4106         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
4107         unicosmk_asm_named_section, unicosmk_insert_attributes,
4108         unicosmk_section_type_flags, symbolic_operand,
4109         unicosmk_output_module_name, unicosmk_output_default_externs,
4110         unicosmk_output_dex, unicosmk_output_externs,
4111         unicosmk_output_addr_vec, unicosmk_ssib_name,
4112         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
4113         unicosmk_asm_file_end, unicosmk_output_common,
4114         unicosmk_section_type_flags, unicosmk_unique_section,
4115         unicosmk_add_call_info_word, unicosmk_text_section,
4116         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
4117         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
4118         unicosmk_dex_count, unicosmk_special_name): New.
4119         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
4120         TARGET_ABI_UNICOSMK.
4121         (get_aligned_mem, alpha_expand_unaligned_load,
4122         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
4123         alpha_expand_unaligned_store_words): Support big-endian mode.
4124         (print_operand): Likewise. New format specifier 't'. Use
4125         TARGET_AS_SLASH_BEFORE_SUFFIX.
4126         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
4127         (alpha_pv_save_size): Update with above change.
4128         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
4129         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
4130         Unicos/Mk.
4131
4132         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
4133         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
4134         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
4135         (EXTRA_CONSTRAINT): New constraint 'U'.
4136         (PREDICATE_CODES): Add symbolic_operand.
4137
4138         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
4139         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
4140         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
4141         (integer division and modulus patterns): Split in default and
4142         Unicos/Mk versions.
4143         (*divmodsi_internal, *divmoddi_internal): Disable for
4144         TARGET_ABI_UNICOSMK.
4145         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
4146         little-endian and big-endian versions.
4147         (ext, ins, msk): Likewise.
4148         (extv, extzv, insv): Support big-endian mode.
4149         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
4150         (call_umk, call_value_umk, *call_umk, tablejump_umk,
4151         *tablejump_umk_internal, *call_value_umk): New.
4152         (*movdi_nofix): Add pattern for loading an address into a register on
4153         TARGET_ABI_UNICOSMK.
4154         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
4155         (umk_mismatch_args, arg_home_umk): New.
4156         (various insns): Don't use mov, fmov, nop, fnop and unop.
4157         (realign): Support TARGET_ABI_UNICOSMK.
4158
4159         * config/alpha/unicosmk.h: New file.
4160         * config/alpha/t-unicosmk: New file.
4161
4162         * fixinc/inclhack.def (unicosmk_restrict): New.
4163         * fixinc/fixincl.x: Regenerate.
4164
4165         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
4166         (wchar_t): Check for and define __WCHAR_T__.
4167
4168 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
4169
4170         * combine.c (simplify_shift_const): Treat shifts by the mode
4171         size as undefined.
4172
4173 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
4174
4175         * cpphash.h (struct tokenrun): New.
4176         (struct cpp_context): New member bol.
4177         (struct cpp_reader): New members.
4178         (_cpp_init_tokenrun): New.
4179         * cppinit.c (cpp_create_reader): Set up the token runs.
4180         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
4181         (lex_token): New internalised version of _cpp_lex_token.  Don't
4182         handle directives or the multiple include opimisation here any
4183         more.  Simply lex a token.
4184         * cpplib.c (run_directive): Clear bol.
4185         (_cpp_pop_buffer): Set bol.
4186         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
4187         arguments.
4188
4189 2001-09-11  Michael Meissner  <meissner@redhat.com>
4190
4191         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
4192         give an error if the user uses -mfp32.
4193         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
4194         default options.
4195         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
4196         floating point register size.
4197         (EXTRA_SPECS): Add CPP_FPR_SPEC.
4198
4199         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
4200         HOST_WIDE_INT_PRINT_DEC to properly print the result of
4201         int_size_in_bytes.
4202         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
4203         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
4204
4205 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
4206
4207         * dbxout.c (dbxout_parms): Fix typo in comment.
4208         * unroll.c (loop_find_equiv_value): Ditto.
4209         * toplev.c (rest_of_compilation): Ditto.
4210         * loop.c (scan_loop): Ditto.
4211         * dwarf2out.c (struct dw_fde_struct): Ditto.
4212
4213 2001-09-10  Zack Weinberg  <zackw@panix.com>
4214
4215         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
4216         copying identifier when we're just going to throw it away.
4217         (parse_identifier_slow): New routine to handle abnormal cases.
4218         (_cpp_lex_token): Update call site.
4219
4220         * hashtable.c (ht_lookup): Don't assume that the string we've
4221         been given is NUL-terminated.
4222         * system.h: #define __builtin_expect(a, b) to (a) if not
4223         GCC >=3.0.
4224
4225 2001-09-10  Michael Meissner  <meissner@redhat.com>
4226
4227         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
4228         binutils, gdb.
4229
4230 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
4231
4232         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
4233
4234 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4235
4236         * builtins.c (c_getstr): Correct thinko in last change and further
4237         cleanup.
4238
4239 2001-09-10  Tim Freeman <tim@fungibole.com>
4240
4241         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
4242         into varray's and register them as roots with the garbage
4243         collector so they are not collected too soon.
4244
4245 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
4246
4247         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
4248         New.
4249         * basic-block.h (flow_obstack, label_value_list,
4250         tail_recursion_label_list): Declare
4251         (tidy_fallthru_edges): Declare.
4252         (expunge_block, last_loop_beg_note): Delete.
4253         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
4254         * cfg.c: New file
4255         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
4256         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
4257         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
4258         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
4259         expunge_block, flow_delete_block, compute_bb_for_insn,
4260         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
4261         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
4262         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
4263         try_redirect_by_replacing_jump, last_loop_beg_note,
4264         redirect_edge_and_branch, redirect_edge_and_branch_force,
4265         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
4266         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
4267         commit_edge_insertions, dump_flow_info, debug_flow_info,
4268         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
4269         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
4270         Move here from flow.c
4271         * cfganal.c: New file.
4272         (forwarder_block_p, can_fallthru, mark_critical_edges,
4273          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
4274          find_unreachable_blocks, create_edge_list, free_edge_list,
4275          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
4276          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
4277          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
4278          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
4279          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
4280          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
4281         Move here from flow.c
4282         * cfgbuild.c: New file
4283         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
4284          make_edges, find_basic_blocks_1, find_basic_blocks,
4285          find_sub_basic_blocks): Move here from flow.c
4286         * cfgcleanup.c: New file.
4287         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
4288          merge_blocks_move_predecessor_nojumps,
4289          merge_blocks_move_successor_nojumps, merge_blocks,
4290          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
4291          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
4292         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
4293         if succeeded.
4294         * cfgloop.c: New file
4295         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
4296          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
4297          flow_loop_exit_edges_find, flow_loop_nodes_find,
4298          flow_loop_pre_header_scan, flow_loop_pre_header_find,
4299          flow_loop_tree_node_add, flow_loops_tree_build,
4300          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
4301          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
4302         Move here from flow.c
4303         * flow.c: Remove everything moved elsewhere
4304         * output.h (cleanup_cfg): Return bool.
4305
4306         * bb-reorder.c (reorder_block_def): Remove 'index'.
4307         (insert_intra_1): Add argument BB, set block for new note.
4308         (make_reorder_chain): Do not depdent on BB indexes.
4309         (make_reorder_chain_1): Do not use BB indexes.
4310         (label_for_bb): Likewise; set BB for new insn.
4311         (emit_jump_to_block_after): Likewise.
4312         (fixup_reoder_chain): Sanity check that all basic blocks
4313         are chained; verify newly created insn chain; remove
4314         undocnitional jump simplifying; Do not use BB indexes;
4315         properly initialize count and frequency information;
4316         dump reordered sequence.
4317         (insert_intra_bb_scope_notes): update call of insert_intra_1.
4318         (insert_inter_bb_scope_notes): Set block for new insn.
4319         (reorder_basic_blocks): Dump flow info before reoredering.
4320
4321 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4322
4323         * alias.c (clear_reg_alias_info): Use K&R format definition.
4324         Avoid unsigned warning.
4325         * builtins.c: Use "unsigned int", not "unsigned".
4326         (target_char_cast): Use host_integerp and tree_low_cst.
4327         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
4328         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
4329         (c_getstr): Likewise.
4330         (std_expand_builtin_va_arg): Use int_size_in_bytes.
4331         (builtin_memcpy_read_str): Avoid unsigned warning.
4332         (expand_builtin_memcpy): Alignments are unsigned.
4333         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
4334         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
4335         * predict.c (expensive_function_p): LIMIT now unsigned.
4336         * resource.c (mark_target_live_regs): Make some vars unsigned.
4337         * sdbout.c: Use "unsigned int", not "unsigned".
4338         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
4339         (sdbout_source_line): Likewise.
4340         (sdbout_record_type_name): Remove "const" for NAME declaration.
4341         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
4342
4343 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
4344
4345         * calls.c (store_one_arg): Expand comment.
4346
4347 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4348
4349         * calls.c (store_one_arg): Make sure that the entire argument is
4350         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
4351
4352 2001-09-09  Richard Henderson  <rth@redhat.com>
4353
4354         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
4355
4356 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
4357
4358         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
4359
4360 2001-09-09  Richard Henderson  <rth@redhat.com>
4361
4362         * config/alpha/alpha.c (alpha_next_sequence_number): New.
4363         (alpha_this_literal_sequence_number): New.
4364         (alpha_this_gpdisp_sequence_number): New.
4365         (some_operand, input_operand): Add HIGH.
4366         (local_symbolic_operand): New.
4367         (alpha_encode_section_info): New.
4368         (alpha_legitimate_address_p): Allow LO_SUM.
4369         (alpha_legitimize_address): Generate HIGH+LO_SUM.
4370         (alpha_expand_mov): Likewise.
4371         (secondary_reload_class): Check memory_operand not general_operand
4372         for FP_REGS test.
4373         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
4374         (alpha_expand_unaligned_store): Likewise.
4375         (alpha_expand_unaligned_load_words): Likewise.
4376         (alpha_expand_unaligned_store_words): Likewise.
4377         (alpha_expand_block_clear): Likewise.
4378         (print_operand): Handle %#, %*, %H.
4379         (print_operand_address): Handle LO_SUM.
4380         (find_lo_sum): New.
4381         (alpha_does_function_need_gp): Use it.
4382         (alpha_expand_block_move): Fix signed compare warnings.
4383         (alpha_sa_mask, alpha_align_insns): Likewise.
4384         * config/alpha/alpha-protos.h: Update.
4385         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
4386         (MASK_EXPLICIT_RELOCS): New.
4387         (TARGET_SWITCHES): Add -mexplicit-relocs.
4388         (EXTRA_CONSTRAINT): Add 'T'.
4389         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
4390         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
4391         (ENCODE_SECTION_INFO): Out line.
4392         (REDO_SECTION_INFO_P): New.
4393         (STRIP_NAME_ENCODING): New.
4394         (ASM_OUTPUT_LABELREF): New.
4395         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
4396         (PREDICATE_CODES): Update.
4397         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
4398         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
4399         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
4400         builtin_setjmp_receiver_er, exception_receiver_1_er,
4401         call_value_osf_1_er): New patterns.
4402         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
4403         (movqi, movhi, movsi): Add explicit $31 base register to lda.
4404         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
4405         (FINAL_PRESCAN_INSN): New.
4406
4407 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
4408
4409         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
4410
4411 2001-09-08  Andreas Jaeger  <aj@suse.de>
4412
4413         * i386.h (TARGET_SWITCHES): Fix description.
4414
4415 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
4416
4417         * rs6000.c (num_insns_constant): Compute number of instructions
4418         more accurately.
4419
4420         * doc/install.texi: Explain AIX exception handling work-around.
4421         Update URL for AIX fixes.
4422
4423 2001-09-07  Jim Wilson  <wilson@redhat.com>
4424
4425         * alias.c (clear_reg_alias_info): New.
4426         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
4427         * rtl.h (clear_reg_alias_info): Declare.
4428
4429 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4430
4431         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
4432         available.
4433         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
4434         (m16m,edivm,emulm): Change declaration to match definition.
4435
4436 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
4437
4438         * reload.c (push_reload): Check for subreg_lowpart_p instead of
4439         SUBREG_BYTE being 0 when determining if the inner part of a subreg
4440         can be reloaded.
4441
4442 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4443
4444         * c-common.c (signed_or_unsigned_type): Handle machine mode types
4445         which have no corresponding C type.
4446         * fold_const.c (target_isinf,target_isnan,target_negative): Update
4447         the representation of 64-bit doubles to work with 64-bit ints.
4448
4449 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
4450
4451         * config/mips/mips.c (override_options): Do not override ISA when ABI
4452         specified if MIPS_CPU_STRING_DEFAULT was specified.
4453
4454 2001-09-07  Richard Henderson  <rth@redhat.com>
4455
4456         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
4457         (express_from_1): Wrap lines.
4458         * rtlanal.c (commutative_operand_precedence): Rename from
4459         operand_preference; export.
4460         * rtl.h: Declare it.
4461         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
4462         (simplify_binary_operation): Invoke simplify_plus_minus on
4463         (CONST (PLUS ...)) as well.
4464         (struct simplify_plus_minus_op_data): New.
4465         (simplify_plus_minus_op_data_cmp): New.
4466         (simplify_plus_minus): Use them.  Avoid infinite recursion with
4467         simplify_binary_operation wrt CONST.
4468
4469 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
4470
4471         * h8300-protos.h (general_operand_dst_push): Remove.
4472         * h8300.c (general_operand_dst_push): Likewise.
4473         * h8300.h (OK_FOR_T): Likewise.
4474         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
4475         * h8300.md (pushqi_h8300): New.
4476         (pushqi_h8300hs): Likewise.
4477         (pushqi): Likewise.
4478         (pushhi_h8300): Likewise.
4479         (pushhi_h8300hs): Likewise.
4480         (pushhi): Likewise.
4481
4482 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4483
4484         * genattrtab.c (attr_printf): First arg is unsigned.
4485         Clean up formatting of callers.
4486
4487 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
4488
4489         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
4490         registers.
4491
4492 2001-09-07  Andreas Jaeger  <aj@suse.de>
4493
4494         * i386.h (TARGET_SWITCHES): Fix descriptions.
4495
4496 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4497
4498         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
4499
4500 2001-09-06  Ira Ruben  <ira@apple.com>
4501
4502         Remove OP_IDENTIFIER.
4503         * tree.def (OP_IDENTIFIER): Remove.
4504         * tree.c (tree_node_kind enum): Remove op_id_kind.
4505         (tree_node_kind_names): Remove "op_identifiers".
4506         (make_node): Remove OP_IDENTIFIER test.
4507         (build_op_identifier): Removed because it isn't being used.
4508         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
4509         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
4510
4511 2001-09-06  Richard Henderson  <rth@redhat.com>
4512
4513         * simplify-rtx.c (simplify_binary_operation): Revert last change.
4514
4515 2001-09-06  Richard Henderson  <rth@redhat.com>
4516
4517         * simplify-rtx.c (simplify_binary_operation): Simplify contents
4518         of CONST.
4519
4520 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4521
4522         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
4523         number used for CR register.
4524
4525 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
4526                           Joern Rennecke (amylaar@cygnus.com)
4527
4528         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
4529         * h8300.c (initial_offset): Handle offset between RP and FP.
4530         (h8300_return_addr_rtx): New function.
4531         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
4532         return register.
4533         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
4534         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
4535         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
4536         (CAN_ELIMINATE, REGISTER_NAMES):
4537         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
4538
4539 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
4540
4541         Remove TYPE_NONCOPIED_PARTS.
4542         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
4543         (struct tree_type): Remove noncopied_parts.
4544         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
4545         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
4546         (fixed_type_p): Remove.
4547         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
4548         (expand_expr, MODIFY_EXPR): Likewise.
4549         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
4550         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
4551
4552 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
4553
4554         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
4555         compiler warnings.
4556         (mask64_operand): Likewise.
4557         (includes_rldic_lshift_p): Likewise.
4558         (includes_rldicr_lshift_p): Likewise.
4559
4560 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
4561
4562         * objc/objc-act.c (build_message_expr): If a class method cannot
4563         be found, do not issue a warning if a corresponding instance
4564         method exists in the root class.
4565
4566 2001-09-05  Richard Henderson  <rth@redhat.com>
4567
4568         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
4569
4570 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
4571
4572         * function.c (ggc_mark_struct_function): Mark f->outer.
4573         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
4574         * integrate.c (output_inline_function): ... not here.
4575
4576 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
4577
4578         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
4579
4580         * i386.c (size_cost): New static variable.
4581         (override_function): Use size_cost when -Os is specified.
4582
4583         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
4584         properly;  Use current_function_calls_eh_return.
4585         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
4586         use leave to avoid depdendancy chain.
4587
4588         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
4589         get BB loop_depth instead of computing it from LOOP notes.
4590
4591         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
4592
4593 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4594
4595         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4596         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4597         UNALIGNED_DOUBLE_INT_ASM_OP): Define
4598
4599 2001-09-05  Jeffrey A Law  (law@cygnus.com)
4600             Jason Merrill (jason@redhat.com)
4601
4602         * stor-layout.c (layout_type): Complain if an array's size can
4603         not be represented in a size_t.
4604
4605         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
4606
4607 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
4608
4609         * gcc.c: (process_command) Add parentheses around assignment
4610         used as truth value.
4611
4612 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
4613
4614         * config/mips/mips.c (save_restore_insns): Don't mark any register
4615         save slots as unchanging if current_function_calls_eh_return.
4616
4617 2001-09-05  Richard Henderson  <rth@redhat.com>
4618
4619         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
4620         * config/alpha/alpha-protos.h: Declare it.
4621         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
4622         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
4623         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
4624         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
4625         (REG_OK_FOR_BASE_P): Select one of the above.
4626
4627 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
4628
4629         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
4630         (crti.o): Prefix name of object file with $(T).
4631         (crtn.o): Likewise.
4632
4633 2001-09-05  David S. Miller  <davem@redhat.com>
4634
4635         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
4636         * config/sparc/linux64.h: Likewise.
4637
4638 2001-09-05  Andreas Jaeger  <aj@suse.de>
4639
4640         * doc/invoke.texi (i386 Options): -mwide-multiply is not
4641         available anymore, remove the documentation.
4642         (i386 Options): Fix typo, cleanup index entries.
4643
4644         * prefix.c (concat): Remove, we can use the version from liberty.
4645
4646 2001-09-05  Richard Henderson  <rth@redhat.com>
4647
4648         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
4649         New functions split out of md file expanders.
4650         * config/alpha/alpha-protos.h: Declare them.
4651         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
4652
4653 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4654
4655         * cppmacro.c (funlike_invocation_p): No need to restore context.
4656
4657 2001-09-04  Richard Henderson  <rth@redhat.com>
4658
4659         * reload.c (push_reload): Export.
4660         * reload.h (push_reload): Declare it.
4661
4662         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
4663         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
4664         * config/alpha/alpha.c (alpha_legitimize_address): New.
4665         (alpha_legitimize_reload_address): Likewise.
4666         * config/alpha/alpha-protos.h: Declare them.
4667
4668 2001-09-04  Stan Shebs  <shebs@apple.com>
4669
4670         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
4671         * config/darwin.c (machopic_stub_name): Account for internally
4672         generated lib calls such as memcpy.
4673
4674 2001-09-04  Richard Henderson  <rth@redhat.com>
4675
4676         * unwind.h (_UA_END_OF_STACK): New flag.
4677         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
4678
4679 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
4680
4681         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
4682
4683 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
4684
4685         * config/mips/mips.c (save_restore_insns): Change base_offset to
4686         fp_offset in second call to mips_emit_frame_related_store.
4687
4688 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
4689
4690         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
4691         sometimes be represented as a NOTE of type
4692         NOTE_INSN_DELETED_LABEL.
4693         (Insns): Document NOTE_INSN_DELETED_LABEL.
4694
4695 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
4696
4697         * c-common.h (tree_dump_index): Add more comments.
4698         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
4699         (dump_option_value_info): New struct.
4700         (dump_options): New array.
4701         (dump_switch_p): Parse switch options symbolically.
4702         * doc/invoke.texi (-fdump-ast): Rename to ...
4703         (-fdump-tree): ... here. Document that options are symbolic, and
4704         not all are applicable.
4705
4706 2001-09-04  David S. Miller  <davem@redhat.com>
4707
4708         * config/sparc/sparc.md (define_splits): Kill constraints.
4709
4710         Cleanup redundant and unused insn attributes.
4711         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
4712         binary, and move.  Mark ialu as default.
4713         (commented out define_function_unit "alu"): Kill.
4714         (define_attr "use_clobbered"): Kill.
4715         (whole file): Kill address insn type references.  Replace
4716         all unary/binary/move references with ialu.
4717         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
4718         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
4719         TYPE_IALU.
4720
4721         Simplify length insn attribute and make more judicious use
4722         of insn attribute defaulting.
4723         * config/sparc/sparc.md (all insns with length > one): Mark as
4724         insn type multi if real instructions, else use default if
4725         it is a forced splitter.
4726         (all insns with length == one): Use default insn length.
4727         (all insns of type ialu): Use default insn type.
4728
4729         Fix erroneous insn attribute settings.
4730         (addx): Set insn type to misc.
4731         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
4732         const_umulsidi3_sp64): Set insn type to imul.
4733
4734         Track SFmode vs DFmode insns according to UltraSPARC
4735         scheduling rules.
4736         * config/sparc/sparc.md ("fptype"): New attribute, default
4737         to "single".
4738         (all DFmode single insns): Mark as fptype "double".
4739
4740 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
4741
4742         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
4743
4744 2001-09-03  Richard Henderson  <rth@redhat.com>
4745
4746         * function.h (struct function): Add arg_pointer_save_area_init.
4747         * function.c (expand_function_end): Init arg_pointer_save_area.
4748         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
4749         when called from a nested function.
4750
4751 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
4752
4753         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
4754         is enabled.
4755
4756 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
4757
4758         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
4759
4760 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
4761
4762         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
4763         (emit_push_insn): Use specified padding direction when
4764         STACK_PUSH_CODE is POST_INC.
4765
4766         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
4767
4768 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4769
4770         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
4771
4772 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
4773
4774         * cppinit.c (cpp_start_read): Free the imacros list as we
4775         traverse it.  Don't free the chains before returning.
4776         (_cpp_push_next_buffer): Only try pushing buffers if we've
4777         completed -imacros handling.
4778
4779 2001-08-31  Eric Christopher  <echristo@redhat.com>
4780
4781         * gcc.c (handle_braces): Add explaination for abort.
4782
4783 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
4784
4785         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
4786         move adjustment of bitpos instead.
4787
4788 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
4789
4790         * function.c: Remove all_functions.  Make outer_function_chain
4791         static.
4792         (init_function_start): Don't add new function structure to
4793         all_functions.
4794         (find_function_data, push_function_context_to,
4795         pop_function_context_from, put_var_into_stack,
4796         trampoline_address): Update for changed structure element names.
4797         (push_function_context_to): Disentangle.
4798         (free_after_compilation): Also free F.
4799         (expand_dummy_function_end): Don't free cfun here.
4800         (put_var_into_stack): Comment why we can't use find_function_data here.
4801         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
4802         (mark_function_chain): Split into maybe_mark_struct_function and
4803         ggc_mark_struct_function.  Export the latter.
4804         (init_function_once): Mark from cfun and outer_function_chain;
4805         not all_functions.
4806
4807         * function.h (struct function): Kill next_global.  Rename next
4808         to outer.  All users updated to match.
4809         (all_functions, outer_function_chain): Don't declare.
4810
4811         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
4812         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
4813         don't touch f->inlinable, after calling rest_of_compilation.
4814
4815         * tree.h: Forward-declare struct function.  Prototype
4816         ggc_mark_struct_function.
4817
4818 2001-08-31  Kazu Hirata  <kazu@hxi.com>
4819
4820         * config/h8300/h8300.md (*andorhi3): Fix typos.
4821
4822 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4823
4824         * calls.c (emit_library_call_value): Don't use a fixed
4825         argument after VA_CLOSE, i.e. out of scope in traditional C.
4826
4827         * emit-rtl.c (gen_rtvec): Likewise.
4828
4829 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4830
4831         * Makefile.in (c-pragma.o): Depend on output.h.
4832         (reorg.o): Depend on except.h.
4833
4834         * c-pragma.c: Include output.h.
4835
4836         * reorg.c: Include except.h.
4837
4838         * unwind-dw2.c: Call __builtin_alloca, not alloca.
4839
4840 2001-08-31  Richard Henderson  <rth@redhat.com>
4841
4842         * sched-deps.c (add_dependence): Don't elide dependancy if the
4843         conditional used by insn is modified in elem.
4844
4845 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
4846
4847         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
4848
4849 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
4850
4851         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
4852         dump_switch_p.
4853
4854 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
4855
4856         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
4857         function.
4858         (stormy16_asm_out_constructor): New function.
4859         (TARGET_ASM_CONSTRUCTOR): Define.
4860         (TARGET_ASM_DESTRUCTOR): Define.
4861
4862 2001-08-31  Andreas Jaeger  <aj@suse.de>
4863
4864         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
4865         * loop.c (add_label_notes): Likewise.
4866         * reload.c (find_reloads): Likewise.
4867         * config/sh/sh.c (machine_dependent_reorg): Likewise.
4868
4869 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
4870
4871         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
4872         code here.  Take _Unwind_{W,Sw}ord*.
4873         (read_encoded_value_with_base): Use them.
4874         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
4875         words.
4876         (extract_cie_info): Simplify read_?leb128 handling.
4877         (execute_stack_op, execute_cfa_program): Likewise.
4878         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
4879
4880 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
4881
4882         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
4883         the frame pointer to pop the stack if convenient.
4884
4885         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
4886         Don't use post-increment before combine.
4887         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
4888         a call-saved register.
4889
4890 2001-08-31  Andreas Jaeger  <aj@suse.de>
4891
4892         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
4893         code was correct.
4894
4895 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
4896
4897         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
4898         not DIV/MOD, of course.
4899
4900 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
4901
4902         * rtl.def: Undo my patch commited 2001-08-27.
4903
4904         * genattrtab.c: Ditto.
4905
4906         * rtl.h: Ditto.
4907
4908         * sched-int.h: Ditto.
4909
4910         * target-def.h: Ditto.
4911
4912         * target.h: Ditto.
4913
4914         * haifa-sched.c: Ditto.
4915
4916         * sched-rgn.c: Ditto.
4917
4918         * sched-vis.c: Ditto.
4919
4920         * Makefile.in: Ditto.
4921
4922         * doc/md.texi: Ditto.
4923
4924         * doc/tm.texi: Ditto.
4925
4926         * doc/contrib.texi: Ditto.
4927
4928         * doc/gcc.texi: Ditto.
4929
4930         * genattrtab.h: Remove it.
4931
4932         * genautomata.c: Remove it.
4933
4934         * genattr.c: Undo my patch and Richard Henderson's patch commited
4935         2001-08-27.
4936
4937 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
4938
4939         * config.gcc (h8300-*-elf*): New case.
4940         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
4941         (SUBTARGET_CPP_SPEC): Define.
4942         (EXTRA_SPECS): Define.
4943         (SUBTARGET_EXTRA_SPECS): Define.
4944         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
4945         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
4946
4947 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
4948
4949         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
4950         (LIB2FUNCS_EXTRA): Define.
4951         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
4952         config/h8300/fixunssfsi.c: New file.
4953
4954 2001-08-30  Kazu Hirata  <kazu@hxi.com>
4955
4956         * config/h8300/h8300.md (zero_extendqihi2): Changes to
4957         define_expand to accomodate target-specific attributes.
4958         (anonymous zero_extendqihi2 patterns): New.
4959
4960 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
4961
4962         * h8300.md (*andorhi3): New pattern.
4963
4964 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
4965
4966         * h8300.c (dosize): Fix test for "sub".
4967
4968 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
4969
4970         * c-typeck.c (pointer_diff): Try to eliminate common term before
4971         doing conversions.
4972
4973 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
4974
4975         * config/arm/arm.c (arm_compute_initial_elimination_offset):
4976         Account for the saves of the FP registers.
4977
4978         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
4979         (TEXT_SECTION_ASM_OP): Define.
4980         (INIT_SECTION_ASM_OP): Define.
4981         (FINI_SECTION_ASM_OP): Define.
4982         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
4983         (RDATA_SECTION_FUNCITON): Provide prototype.
4984
4985 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
4986
4987         * reload1.c (move2add_note_store): Correct typo checking for
4988         argument pushes.
4989
4990 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
4991
4992         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
4993         note should not be considered outside the libcall block.
4994
4995 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4996
4997         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
4998
4999 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5000
5001         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
5002
5003 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5004
5005         * config/h8300/h8300-protos.h: Add a prototype for
5006         emit_logical_op.
5007         * config/h8300/h8300.c (emit_logical_op): New.
5008         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
5009         (andsi3): Likewise.
5010         (iorhi3): Likewise.
5011         (iorsi3): Likewise.
5012         (xorhi3): Likewise.
5013         (xorsi3): Likewise.
5014
5015 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5016
5017         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
5018         comparison with rtx INTVAL.
5019         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
5020         expression.
5021         * pa.h (FUNCTION_ARG_SIZE): Likewise.
5022
5023 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5024
5025         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
5026         comment typos.
5027
5028 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5029
5030         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
5031         (reg n) to (mem (pre_dec (reg n))
5032         (anonymous movsi pattern): Likewise.
5033
5034 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5035
5036         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
5037
5038 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5039
5040         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
5041         several special constants.
5042
5043 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5044
5045         * config/h8300/lib1funcs.asm: Fix comment typos.
5046
5047 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5048
5049         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
5050         Fix format specifier warnings.
5051
5052         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
5053         inet_makeaddr, semctl): Prototype.
5054
5055         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
5056         (save_restore_insns): Use base_offset, not gp_offset.
5057
5058         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
5059         (ASM_OUTPUT_BYTE): Fix format specifier warning.
5060
5061 2001-08-29  Richard Henderson  <rth@redhat.com>
5062
5063         * bb-reorder.c (function_tail_eff_head): New.
5064         (record_effective_endpoints): Set it.
5065         (fixup_reorder_chain): Use it.
5066
5067 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5068
5069         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
5070
5071 2001-08-28  Dale Johannesen  <dalej@apple.com>
5072
5073         * config/darwin.c (machopic_function_base_name): Add const
5074         qualifier to a string.
5075         (darwin_encode_section_info): Ditto.
5076
5077 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5078
5079         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
5080         function definition.
5081
5082 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
5083
5084         * df.h (struct df): Add rts_order variable.
5085
5086         * df.c (df_visit_next_rts): New function.
5087         (df_visit_next): Renamed to df_visit_next_rc
5088         (df_analyse_1): Allocate/compute/free rts_order as well.
5089         (df_rd_global_compute): Use df_visit_next_rc instead of
5090         df_visit_next.
5091         (df_ru_global_compute): Use df_visit_next_rts instead of
5092         df_visit_next.
5093
5094         * flow.c (flow_reverse_top_sort_order_compute): New function.
5095
5096         * basic-block.h: Add prototype.
5097
5098 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
5099
5100         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
5101         blocks, the BB_REACHABLE is now set, rather than aux being
5102         non-NULL. Update the test to reflect this.
5103
5104 2001-08-28  Eric Christopher  <echristo@redhat.com>
5105
5106         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
5107         config/mips/crti.asm: Ditto.
5108
5109 2001-08-28  Eric Christopher <echristo@redhat.com>
5110             Richard Henderson <rth@redhat.com>
5111
5112         * c-pragma.h (add_weak): Move prototype from here...
5113         * output.h (add_weak): ... to here.
5114         * varasm.c (add_weak): Fix typo.
5115         * config/mips/crti.asm: New file.
5116         * config/mips/crtn.asm: Ditto.
5117         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
5118         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
5119         (INVOKE__main): Ditto.
5120         (INIT_SECTION_ASM_OP): New.
5121         (FINI_SECTION_ASM_OP): Ditto.
5122         (STARTFILE_SPEC): Add crti.
5123         (ENDFILE_SPEC): Add crtn.
5124         * config/mips/elf64.h: Same.
5125         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
5126         Remove.
5127         * config/mips/vxworks.h: Ditto.
5128         * config/mips/t-elf: Support crti and crtn.
5129
5130 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
5131
5132         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
5133         INSN_LIST.
5134
5135 2001-08-28  Richard Henderson  <rth@redhat.com>
5136
5137         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
5138         (one_cmplbi2 splitter): Remove redundant test.
5139
5140 2001-08-28  Dale Johannesen  <dalej@apple.com>
5141
5142         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
5143
5144 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
5145
5146         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
5147
5148 2001-08-28  Stan Shebs  <shebs@apple.com>
5149
5150         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
5151         (UNALIGNED_SHORT_ASM_OP): Define.
5152         (UNALIGNED_INT_ASM_OP): Define.
5153
5154 2001-08-28  Will Cohen  <wcohen@redhat.com>
5155
5156         * config/rs6000/rs6000.md (store_multiple): Correct RTL
5157         generation for first set.
5158
5159 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
5160
5161         * flow.c (redirect_edge_succ_nodup): Return new edge.
5162         (try_simplify_condjump): Use new edge.
5163         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
5164
5165         * cse.c (cse_basic_block): Skip note instructions.
5166
5167 2001-08-27  Richard Henderson  <rth@redhat.com>
5168
5169         * combine.c (combine_simplify_rtx): Don't reverse condition
5170         if there is no reverse for the condition.
5171         (simplify_comparison): Don't simplify subregs from INT to FP.
5172
5173         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
5174         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
5175         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
5176         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
5177         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
5178         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
5179
5180 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
5181
5182         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
5183         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
5184         (pushqi1): New.
5185         (adddi_dilshr32, adddi_dishl32): Only data register can be
5186         source for mem destination.
5187
5188         * expmed.c (store_bit_field): Ignore adjustment to bitpos
5189         and use bitnum to decide about register move.
5190
5191 2001-08-27  Richard Henderson  <rth@redhat.com>
5192
5193         * genattr.c (main): Emit state_t even when not doing scheduling.
5194
5195 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
5196             Richard Henderson  <rth@redhat.com>
5197
5198         * gcse.c (reg_first_set, reg_last_set): Replace with ...
5199         (reg_avail_info, current_bb): ... these.
5200         (oprs_unchanged_p, record_last_reg_set_info): Use them.
5201         (compute_hash_table): Likewise.
5202
5203 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
5204
5205         * flow.c (verify_flow_info): Use checksums to verify edges.
5206
5207 2001-08-27  Richard Henderson  <rth@redhat.com>
5208
5209         * genautomata.c (expand_automata): Always create a description.
5210
5211 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
5212
5213         * optabs.c (expand_binop): Correctly handle the carry in multiword
5214         add/subtract operations.
5215
5216 2001-08-27  Fred Fish  <fnf@be.com>
5217
5218         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
5219         __SIZE_TYPE__.
5220
5221 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
5222
5223         * reload.c (find_reloads_toplev): Back out this change:
5224
5225         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
5226
5227         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
5228         mem if the address is a mode_dependent_address_p.
5229
5230 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
5231
5232         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
5233         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
5234         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
5235         RTL constructions.
5236
5237         * genattr.c (main): New variable num_insn_reservations.  Increase
5238         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
5239         pipeline hazard recognizer interface.
5240
5241         * genattrtab.h: New file.
5242
5243         * genattrtab.c: Include genattrtab.h.
5244         (attr_printf, check_attr_test, make_internal_attr,
5245         make_numeric_value): Move protypes into genattrtab.h.  Define them
5246         as external.
5247         (num_dfa_decls): New global variable.
5248         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
5249         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
5250         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
5251         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
5252
5253         * genautomata.c: New file.
5254
5255         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
5256
5257         * sched-int.h: (curr_state): Add the external definition for
5258         automaton pipeline interface.
5259         (haifa_insn_data): Add comments for members blockage and units.
5260
5261         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
5262         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
5263         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
5264         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
5265         TARGET_SCHED_DFA_POST_CYCLE_INSN,
5266         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
5267         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
5268         macros.
5269         (TARGET_SCHED): Use the new macros.
5270
5271         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
5272         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
5273         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
5274         dfa_bubble): New members in gcc_target.sched.
5275
5276         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
5277         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
5278         (insn_queue): Redefine it as pointer to array.
5279         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
5280         INSN_QUEUE_SIZE.
5281         (max_insn_queue_index_macro_value): New variable.
5282         (curr_state, dfa_state_size, ready_try): New varaibles for
5283         automaton interface.
5284         (ready_element, ready_remove, max_issue): New function prototypes
5285         for automaton interface.
5286         (choose_ready): New function prototype.
5287         (insn_unit, blockage_range): Add comments.
5288         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
5289         FUNCTION_UNITS_SIZE == 0.
5290         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
5291         actual_hazard, potential_hazard): Add comments.
5292         (insn_cost): Use cost -1 as undefined value.  Remove
5293         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
5294         pipeline interface.
5295         (ready_element, ready_remove): New functions for automaton
5296         interface.
5297         (schedule_insn): Add new code for automaton pipeline interface.
5298         (queue_to_ready): Add new code for automaton pipeline interface.
5299         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
5300         (debug_ready_list): Print newline when the queue is empty.
5301         (max_issue): New function for automaton pipeline interface.
5302         (choose_ready): New function.
5303         (schedule_block): Add new code for automaton pipeline interface.
5304         Print ready list before scheduling each insn.
5305         (sched_init): Add new code for automaton pipeline interface.
5306         Initiate insn cost by -1.
5307         (sched_finish): Free the current automaton state and finalize
5308         automaton pipeline interface.
5309
5310         * sched-rgn.c: Include target.h.
5311         (init_ready_list, new_ready, debug_dependencies): Add new code for
5312         automaton pipeline interface.
5313
5314         * sched-vis.c: Include target.h.
5315         (get_visual_tbl_length): Add code for automaton interface.
5316         (target_units, print_block_visualization):  Add comments.
5317
5318         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
5319         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
5320         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
5321         (getruntime.o, genautomata.o): New entries.
5322         (genattrtab.o): Add new dependency file genattrtab.h.
5323         (genattrtab): Add new dependencies.  Link it with `libm.a'.
5324         (getruntime.o, hashtab.o): New entries for canadian cross.
5325
5326         * doc/md.texi: Description of automaton based model.
5327
5328         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
5329         Add comments.
5330         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
5331         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
5332         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
5333         TARGET_SCHED_DFA_POST_CYCLE_INSN,
5334         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
5335         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
5336         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
5337         hook descriptions.
5338         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
5339         MAX_DFA_ISSUE_RATE): New macro descriptions.
5340
5341         * doc/contrib.texi: Add dfa based scheduler contribution.
5342
5343         * doc/gcc.texi: Add more information about genattrtab.
5344
5345 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
5346
5347         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
5348         an RTL basic block.
5349
5350 2001-08-27  Richard Henderson  <rth@redhat.com>
5351
5352         * function.c (expand_function_end): Don't init arg_pointer_save_area.
5353         (get_arg_pointer_save_area): New.  Create an init it here.
5354         (fix_lexical_addr): Use it.
5355         * function.h: Declare it.
5356         * builtins.c (expand_builtin_setjmp_receiver): Use it.
5357         * stmt.c (expand_nl_goto_receiver): Use it.
5358
5359 2001-08-27  Richard Henderson  <rth@redhat.com>
5360
5361         * final.c (final_scan_insn): Don't enter APP_ON mode for
5362         empty asm strings.
5363
5364         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
5365         alignment for assemble_integer for DW_EH_PE_aligned.
5366         * except.c (output_function_exception_table): Likewise.
5367
5368 2001-08-26  Andreas Jaeger  <aj@suse.de>
5369
5370         * c-tree.h: Add prototyp for c_sizeof_nowarn.
5371
5372 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
5373
5374         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
5375
5376 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
5377
5378         * config/rs6000/rs6000.c (mask_operand): Rewrite without
5379         bit-shifting loop.
5380         (mask64_operand): Likewise.
5381         (rldic_operand): Delete.
5382         (includes_lshift64_p): Delete.
5383         (includes_rldic_lshift_p): New function.
5384         (includes_rldicr_lshift_p): New function.
5385         (print_operand): Don't call rldic_operand in case 'W'.
5386         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
5387         (includes_lshift64_p): Remove.
5388         (includes_rldic_lshift_p): Declare.
5389         (includes_rldicr_lshift_p): Declare.
5390         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
5391         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
5392         Replace match_operand rldic_operand predicate with
5393         const_int_operand.  Replace includes_lshift64_p condition with
5394         includes_rldic_lshift_p.
5395         <ashldi3_internal 64 bit rldicr patterns>: New.
5396
5397 2001-08-27  Andreas Jaeger  <aj@suse.de>
5398
5399         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
5400         * errors.c: Likewise.
5401         * final.c: Likewise.
5402         * dwarf2asm.c: Likewise.
5403         * doprint.c (checkit): Likewise.
5404         * diagnostic.c: Likewise.
5405         * collect2.c: Likewise.
5406         * calls.c: Likewise.
5407         * c-semantics.c (build_stmt): Likewise.
5408         * c-format.c (status_warning): Likewise.
5409         * c-errors.c (pedwarn_c99): Likewise.
5410         * builtins.c (validate_arglist): Likewise.
5411         * config/pj/pj.c (pj_printf): Likewise.
5412         * fix-header.c: Likewise.
5413         * gcc.c: Likewise.
5414         * gcov.c (fnotice): Likewise.
5415         * gensupport.c (message_with_line): Likewise.
5416         * mips-tfile.c: Likewise.
5417         * protoize.c (notice): Likewise.
5418         * read-rtl.c (fatal_with_file_and_line): Likewise.
5419         * rtl-error.c: Likewise.
5420         * tradcpp.c: Likewise.
5421         * tree.c: Likewise.
5422         * cp/tree.c (build_min_nt): Likewise.
5423         (build_min): Likewise.
5424         * cp/lex.c: Likewise.
5425         * cp/errfn.c: Likewise.
5426         * cp/rtti.c (create_pseudo_type_info): Likewise.
5427
5428 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
5429
5430         * df.c (df_uses_record): Return after recording all uses
5431         in ASM_OPERANDS.
5432
5433 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
5434
5435         * df.c (df_insn_modify): Realloc the INSN table here, if
5436         necessary, here, too.
5437
5438 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
5439
5440         * config/mips/mips.c (mips_function_value): Handle complex return
5441         values.
5442
5443 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
5444
5445         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
5446         unshared.
5447         * reload.c (make_memloc): Copy result if it is still
5448         reg_equiv_memory_loc[regno] on return.
5449         (subst_reloads) [ENABLE_CHECKING]: Check that none of
5450         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
5451         reg_equiv_mem are modified by the substitutions.
5452
5453 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
5454
5455         * predict.c (expensive_function_p): New.
5456         * rtl.h (expensive_function_p): Declare.
5457         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
5458         (use_fast_prologue_epilogue): New static variable.
5459         (expand_prologue): Set it; emit short prologues if unset.
5460         (expand_epilogue): Likewise.
5461
5462 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
5463
5464         * config.gcc: Add stormy16-*-elf case.
5465         * config/stormy16/stormy-abi: New file.
5466         * config/stormy16/stormy16-lib2.c: New file.
5467         * config/stormy16/stormy16-protos.h: New file.
5468         * config/stormy16/stormy16.c: New file.
5469         * config/stormy16/stormy16.h: New file.
5470         * config/stormy16/stormy16.md: New file.
5471         * config/stormy16/t-stormy16: New file.
5472
5473 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
5474
5475         * i386.h (no-accumulate-outgoing-args): Use proper mask.
5476
5477 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
5478
5479         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
5480         descriptor members are pointer size, not constant 4.
5481         * config/rs6000/rs6000.md (define_splits): Remove more unused
5482         constraints.
5483
5484 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5485
5486         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
5487
5488 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
5489
5490         * cp/rtti.c (VPARAMS): Fix parameter.
5491
5492 2001-08-24  Zack Weinberg  <zackw@panix.com>
5493
5494         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
5495         to zero.
5496         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
5497         to switch.
5498         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
5499         in if controlling use of insv.
5500         (extract_bit_field): Likewise, for extv and extzv.
5501
5502 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
5503
5504         * i386.md (movcc peep2): Fix load of 0.
5505
5506 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5507
5508         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
5509         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
5510
5511 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
5512
5513         * c-pragma.h: Move weak_syms and weak_decls...
5514         * varasm.c: ...here.  Now static.
5515         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
5516         depend on HANDLE_PRAGMA_WEAK.
5517
5518         * c-common.c (c_alignof, c_alignof_expr): Move here...
5519         * c-typeck.c: ...from here.
5520         * c-tree.h, c-common.h: Adjust.
5521
5522 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
5523
5524         * config/ia64/ia64.c (rws_update): If !pred, set write_count
5525         instead of incrementing it.
5526
5527         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
5528         asm ready, don't try to move them all into the same array element.
5529
5530 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
5531
5532         * function.c (thread_prologue_and_epilogue_insns): Avoid
5533         fallthru flag on edge to exit.
5534
5535         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
5536
5537         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
5538         dead edges.
5539
5540 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
5541
5542         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
5543         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
5544         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
5545         Remove prototype.
5546
5547 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
5548
5549         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
5550         replace "GNU CC" with "GCC".
5551
5552 2001-08-23  Richard Henderson  <rth@redhat.com>
5553
5554         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
5555         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
5556         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
5557         Need GR between FR and not GR_AND_FR.
5558         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
5559         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
5560         AR regs before GR regs.
5561         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
5562         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
5563         (REGISTER_MOVE_COST): Update.
5564         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
5565
5566 2001-08-23  Richard Henderson  <rth@redhat.com>
5567
5568         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
5569         a register class.
5570
5571 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
5572
5573         * reload1.c (emit_reload_insns): Don't look for notes
5574         on a NULL store_insn.
5575
5576 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5577
5578         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
5579         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
5580         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
5581         format specifier warnings.
5582         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
5583
5584 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
5585
5586         * config/i386/i386-protos.h: Correct declaration of
5587         i386_pe_asm_named_section.
5588
5589 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5590
5591         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
5592         variable i.
5593         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
5594
5595 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5596
5597         * cpperror.c (print_location): Don't show _Pragma.
5598         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
5599         and file change callback generation here.
5600         (stack_include_file): Update use of cpp_push_buffer.
5601         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
5602         (struct cpp_buffer): Remove type, pfile members.
5603         * cppinit.c (cpp_handle_option): Use free_chain.
5604         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
5605         (skip_escaped_newlines, get_effective_char, lex_percent): Take
5606         a cpp_reader rather than a cpp_buffer.
5607         (skip_escaped_newlines, get_effective_char, skip_block_comment,
5608         skip_line_comment, parse_string, lex_percent, lex_dot,
5609         _cpp_lex_token): Update accordingly.
5610         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
5611         generation here.
5612         (cpp_push_buffer): Update prototype.
5613         (run_directive): Update use of cpp_push_buffer.
5614         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
5615         handle_assertion): Update use of run_directive.
5616         * cpplib.h (enum cpp_buffer_type): Remove.
5617         (cpp_push_buffer): Update prototype.
5618         * fix-header.c (read_scan_file): Update.
5619
5620 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5621
5622         * gcc.c (struct prefix_list): Change prefix to const char *.
5623
5624 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5625
5626         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
5627
5628 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
5629
5630         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
5631         from a new MEM.
5632
5633         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
5634         a squeezable note.
5635         * rtl.h: Adjust.
5636         * ifcvt.c (dead_or_predicable): Adjust.
5637         * loop.c (find_and_verify_loops): Adjust.
5638         * stmt.c (expand_end_case): Adjust.
5639         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
5640         head and end insn pointers in the basic block, not just local copies.
5641         (merge_blocks_move_predecessor_nojumps): Likewise.
5642
5643 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
5644
5645         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
5646         bitmap.h, builtin-types.def, builtins.c, builtins.def,
5647         c-aux-info.c, c-common.c, c-common.def, c-common.h,
5648         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
5649         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
5650         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
5651         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
5652         conditions.h, config.gcc, configure.frag, configure.in,
5653         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
5654         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
5655         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
5656         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
5657         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
5658         emit-rtl.c, errors.c, errors.h, except.c, except.h,
5659         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
5660         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
5661         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
5662         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
5663         gencheck.c, gencodes.c, genconfig.c, genemit.c,
5664         genextract.c, genflags.c, gengenrtl.c, genmultilib,
5665         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
5666         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
5667         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
5668         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
5669         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
5670         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
5671         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
5672         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
5673         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
5674         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
5675         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
5676         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
5677         params.h, predict.c, predict.def, predict.h, prefix.c,
5678         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
5679         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
5680         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
5681         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
5682         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
5683         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
5684         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
5685         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
5686         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
5687         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
5688         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
5689         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
5690         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
5691         xcoffout.h: replace "GNU CC" with "GCC".
5692
5693 2001-08-21  Richard Henderson  <rth@redhat.com>
5694
5695         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
5696         (final_scan_insn): Consider jump tables data even if we have no
5697         independant text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
5698         ADDR_VEC_ALIGN.
5699         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
5700         (ASM_OUTPUT_CASE_END): Remove.
5701         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
5702         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
5703         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
5704
5705 2001-08-21  Richard Henderson  <rth@redhat.com>
5706
5707         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
5708         at barrier insns.  Emit stop bits before barriers.
5709
5710         * flow.c (flow_find_cross_jump): Don't consider unconditional
5711         return insns for commoning.
5712
5713         * final.c (compute_alignments): Fix typo.
5714
5715         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
5716         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
5717         (store_bit_field): Use mode_for_extraction more places.
5718         (extract_bit_field): Likewise.
5719
5720 2001-08-21  Zack Weinberg  <zackw@panix.com>
5721
5722         * caller-save.c: Don't include insn-codes.h.
5723         (reg_save_code, reg_restore_code): Make arrays of int.
5724         All uses updated to match.
5725         (insert_save, insert_restore): No need to initialize "code"
5726         variable upon declaration.
5727         * Makefile.in: update dependencies; fix typo in clean rule.
5728
5729 2001-08-21  Richard Henderson  <rth@redhat.com>
5730
5731         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
5732         (merge_if_block): Handle fallout from same.
5733
5734 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5735
5736         * builtins.c (type_to_class): Fix typo in last change.
5737
5738 2001-08-21  Richard Henderson  <rth@redhat.com>
5739
5740         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
5741         ia64_asm_output_label.
5742
5743         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
5744         copy of gp while the real gp register contains garbage.
5745
5746 2001-08-21  Zack Weinberg  <zackw@panix.com>
5747
5748         * expmed.c (mode_for_extraction): New function.
5749         (store_bit_field, extract_bit_field): Use it.
5750         * expr.h: Prototype it and provide an enum for its first argument.
5751
5752         * combine.c, function.c, recog.c: Don't include insn-codes.h.
5753         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
5754         and digging through the insn_data tables.
5755         * Makefile.in: Update dependencies.
5756
5757 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5758
5759         * cppfiles.c (stack_include_file): line-map.c now handles include
5760         depth.
5761         (handle_missing_handler): Similarly.
5762         (_cpp_execute_include): Similarly.
5763         (_cpp_pop_file_buffer): Similarly.
5764         * cpphash.h (struct cpp_reader): Remove system_include_depth,
5765         buffer_stack_depth and include_depth.
5766         * cpplib.c (do_include_common): line-map.c now handles include depth.
5767         (cpp_push_buffer): Similarly.
5768         (_cpp_pop_buffer): Similarly.
5769         * cppmacro.c (builtin_macro): Update.
5770         * line-map.c (init_line_maps): Set depth.
5771         (add_line_map): Increment "used" earlier.  Update and use the
5772         include depth.
5773         (trace_include): Use the include depth.
5774         * line-map.h (struct line_maps): New member depth.
5775
5776 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5777
5778         * cppfiles.c (stack_include_file): Don't handle -H here.
5779         * cppinit.c (cpp_start_read): Set include tracing after
5780         cpp_post_options and after stacking the main file.
5781         * line-map.c (trace_include): New.
5782         (init_line_maps, add_line_map): Update.
5783         * line-map.h (struct line_maps): New member trace_includes.
5784
5785 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5786
5787         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
5788         * cppfiles.c (stack_include_file): Only stack a file if there
5789         is something to do.  Return a boolean indicating whether a
5790         buffer was stacked or not.
5791         (_cpp_execute_include): Similarly.
5792         (_cpp_read_file): Similarly.
5793         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
5794
5795 2001-08-21  Sam Steingold  <sds@gnu.org>
5796
5797         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
5798         (RECACHE): keep obufp_before_macroname up to date
5799
5800 2001-08-21  Zack Weinberg  <zackw@panix.com>
5801
5802         * stmt.c: Don't include insn-codes.h.
5803         (expand_end_case): Machine specific logic moved to expr.c.
5804         No need to worry about __builtin_classify_type.
5805         (check_for_full_enumeration_handling, emit_case_nodes):
5806         Kill #if 0 blocks.
5807
5808         * builtins.o (expand_builtin_classify_type): Split up so code
5809         can be shared with fold_builtin_classify_type.
5810         (type_to_class, fold_builtin_classify_type): New functions.
5811         (fold_builtins): Handle __builtin_classify_type.
5812
5813         * expr.c (do_tablejump): Now static.
5814         (case_values_threshold, try_casesi, try_tablejump): New;
5815         code mostly from stmt.c (expand_end_case).
5816         (expr.h): Update prototypes.
5817
5818         * Makefile.in (stmt.o): Update dependencies.
5819
5820 2001-08-21  Will Cohen  <wcohen@redhat.com>
5821
5822         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
5823         declaration of variable i.
5824         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
5825         declaration of variable i.
5826
5827 2001-08-21  Richard Henderson  <rth@redhat.com>
5828
5829         * crtstuff.c: Fix thinko last change.  Move list tails to start
5830         of CRT_END section.  Tidy ifdefs.
5831         (__EH_FRAME_BEGIN__): Always static for ELF.
5832         (__do_global_ctors_1): Rename from __frame_dummy.
5833         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
5834         name change; don't hide __EH_FRAME_BEGIN__.
5835
5836 2001-08-21  Richard Henderson  <rth@redhat.com>
5837
5838         * gdbinit.in: Move break on exit after break on fancy_abort.
5839
5840         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
5841         sized types.
5842
5843 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5844
5845         * cpphash.h (_cpp_push_next_buffer): New.
5846         * cppinit.c (do_includes): Remove.
5847         (push_include, free_chain, _cpp_push_next_buffer): New.
5848         (cpp_start_read): Use them to rework command line option handling.
5849         (cpp_handle_option): Combine handling of -include and -imacros.
5850         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
5851         appropriate.  Always insert missing \n at EOF.
5852         * cpplib.c (start_directive): Get the directive position right.
5853         * cppmain.c (cb_file_change): Always print the first line, unless
5854         preprocessed.
5855
5856 2001-08-20  Andreas Jaeger  <aj@suse.de>
5857
5858         * profile.c (compute_branch_probabilities): Remove extra new-line
5859         in error message.
5860         * flow.c (verify_flow_info): Likewise.
5861
5862 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
5863
5864         * basic-block.h (basic_block): Add new field 'flags'.
5865         (BB_REACHABLE): Define.
5866         (expunge_block): Declare.
5867         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
5868         (EXIT_BLOCK_PTR): Ditto.
5869         (expunge_block): Remove static declaration.
5870         (cleanup_cfg): Clear bb->aux on every basic block.
5871         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
5872         computing reachability.
5873         (delete_unreachable_blocks): Delete block b if b->flags has
5874         BB_REACHABLE unset.
5875
5876 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
5877
5878         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
5879
5880 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5881
5882         * sparc.c (sparc_variable_issue): Fix typo in last change.
5883
5884 2001-08-20  Richard Henderson  <rth@redhat.com>
5885
5886         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
5887
5888 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5889
5890         * pa.h (RETURN_IN_MEMORY): Improve comment.
5891
5892 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
5893
5894         * doc/invoke.texi (Profiling options): Clarify the interactions
5895         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
5896
5897 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
5898
5899         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
5900         command.
5901
5902 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5903
5904         * gcc.c (make_relative_prefix): Allocate a sufficiently large
5905         buffer.
5906
5907 2001-08-20  Richard Henderson  <rth@redhat.com>
5908
5909         * final.c (end_final): Fix typo last change.
5910
5911 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
5912
5913         * cppinit.c (init_standard_includes): The returned buffer
5914         is already malloc-ed.
5915         * gcc.c (add_prefix): Similarly.
5916         * prefix.c (translate_name): Update to support clear buffer
5917         ownership rules.
5918         (update_path): Similarly.  Be sure to free any newly allocated
5919         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
5920         (tr): New function.
5921         * prefix.h (update_path): Update prototype and document.
5922         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
5923         up and update to new buffer ownership rules.
5924         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
5925
5926 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
5927
5928         * final.c (compute_alignments): New function.
5929         (init_insn_lengths): Do not care label_align.
5930         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
5931         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
5932         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
5933         (shorted_branches): Realloc label_align array; do
5934         not call init_insn_lengths; Do not care about loop alignments.
5935         * output.h (compute_alignments): Declare.
5936         * toplev.c (rest_of_compilation): Call compute_alignments.
5937         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
5938
5939         * predict.c (block_info_def): Add npredecesors, remove nvisited;
5940         change visited to tovisit.
5941         (propagate_freq): Use faster traversing algorithm.
5942         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
5943         to tovisit; reverse meaning.
5944
5945         * predict.c (struct block_info_def): Remove nvisited.
5946         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
5947         (estimate_bb_frequencies): Call mark_dfs_back_edges.
5948
5949 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
5950
5951         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
5952         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
5953         (TARGET_FUSED_MADD): New.
5954         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
5955         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
5956         the multiply-add instructions.
5957
5958 2001-08-19  Richard Henderson  <rth@redhat.com>
5959
5960         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
5961         is aligned to pointer size.
5962
5963 2001-08-19  Richard Henderson  <rth@redhat.com>
5964
5965         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
5966         display markers during final schedule.
5967
5968 2001-08-19  Richard Henderson  <rth@redhat.com>
5969
5970         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
5971
5972 2001-08-19  Richard Henderson  <rth@redhat.com>
5973
5974         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
5975         in the same string.
5976         (ASM_NAME_TO_STRING): Remove.
5977         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
5978         in the same string.  Remove support for expressions.
5979
5980 2001-08-19  Richard Henderson  <rth@redhat.com>
5981
5982         * config/i386/i386.md (tablejump): Make an expander; handle
5983         pic relative addressing here.
5984         (tablejump_1): Rename from tablejump_pic.
5985         (casesi): Remove.
5986
5987 2001-08-19  Richard Henderson  <rth@redhat.com>
5988
5989         * regclass.c (fix_register): Fix typo.
5990
5991 2001-08-18  Richard Henderson  <rth@redhat.com>
5992
5993         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
5994         (struct _Unwind_Context): Expand br_loc to hold it.
5995         (uw_frame_state_for): Handle leaf functions better.
5996         (uw_update_reg_address): Update for br_loc change.
5997
5998 2001-08-18  Richard Henderson  <rth@redhat.com>
5999
6000         * crtstuff.c: Move list heads before code that uses them.
6001         (__JCR_LIST__): Remove initial null.
6002         (frame_dummy, __frame_dummy): Do java registration here ...
6003         (__do_global_ctors_aux): ... not here.
6004
6005         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
6006         (__do_global_dtors_aux): Update to match.
6007         (__JCR_LIST__, __do_jv_register_classes): New.
6008         (.init): Call it.
6009         * config/ia64/crtend.asm (__JCR_END__): New.
6010         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
6011         instead of an indirect LTOFF22 reloc.
6012
6013 2001-08-18  Richard Henderson  <rth@redhat.com>
6014
6015         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
6016         * regclass.c (init_reg_sets_1): Fix typo.
6017         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
6018         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
6019         (ia64_compute_frame_size): Make ar.unat live when in use.
6020         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
6021         for ar.pfs; remove ar.unat handling.
6022         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
6023         call-saved.
6024         (PREDICATE_CODES): Add ar_pfs_reg_operand.
6025         * config/ia64/ia64-protos.h: Update decls.
6026         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
6027         (sibcall_pic): Likewise.
6028
6029 2001-08-18  Richard Henderson  <rth@redhat.com>
6030
6031         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
6032         pred_rel_mutex when searching for insn_group_barrier.
6033         * config/ia64/ia64.md (cycle_display): Combine the expander
6034         and insn patterns.
6035
6036         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
6037         bit before asm as needed.
6038
6039 2001-08-18  Richard Henderson  <rth@redhat.com>
6040
6041         * timevar.def (TV_MACH_DEP): New.
6042         * toplev.c (rest_of_compilation): Use it.
6043         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
6044
6045 2001-08-18  Zack Weinberg  <zackw@panix.com>
6046
6047         * unwind-dw2.c (execute_stack_op): Add default aborts to
6048         the inner switches to prevent warnings.
6049
6050 2001-08-18  Richard Henderson  <rth@redhat.com>
6051
6052         * timevar.h (struct timevar_time_def): Change element type to float.
6053         (ticks_to_msec, clocks_to_msec): Likewise.
6054         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
6055         (get_time): Likewise.
6056         (timevar_print): Adjust zero check and printing to match.
6057
6058 2001-08-18  Zack Weinberg  <zackw@panix.com>
6059
6060         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
6061         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
6062         Eliminate overfull or underfull hboxes.
6063
6064 2001-08-18  Zack Weinberg  <zackw@panix.com>
6065
6066         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
6067
6068 2001-08-18  Zack Weinberg  <zackw@panix.com>
6069
6070         * haifa-sched.c: Convert to target hooks.  Macros replaced
6071         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
6072         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
6073         MD_SCHED_FINISH, and HAVE_cycle_display.
6074         * target-def.h (TARGET_SCHED_ADJUST_COST,
6075         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
6076         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
6077         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
6078         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
6079         New hook #defines to be overridden.
6080         (TARGET_SCHED): Bring them all together.
6081         (TARGET_INITIALIZER): Update.
6082         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
6083         instead of 'struct rtx_def *' throughout.
6084         (struct sched): New set of hooks for the scheduler.
6085         * Makefile.in (haifa-sched.o): Depend on target.h.
6086         * doc/tm.texi: Document the new scheduler hooks, together in
6087         their own section, instead of scattered around.
6088         Fix a bunch of underfull/overfull hboxes.
6089
6090         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
6091         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
6092         sparc.h: Don't define any of the old scheduler macros.
6093
6094         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
6095         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
6096         sparc.c: Create hook functions from code extracted from
6097         corresponding target header, or make existing hooks static, as
6098         appropriate.  Set the appropriate entries in targetm.
6099
6100         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
6101         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
6102         rs6000-protos.h, s390-protos.h, sparc-protos.h:
6103         Remove prototypes for functions which are now static.
6104
6105         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
6106         related gunk; the Haifa scheduler is now the only choice.
6107
6108 2001-08-18  Zack Weinberg  <zackw@panix.com>
6109
6110         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
6111         * genopinit.c: Put floating point divide insns in sdiv_optab.
6112         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
6113         * config/gofast.h, config/c4x/c4x.h,
6114         config/ia64/hpux_longdouble.h, config/mips/mips.h,
6115         config/pa/long_double.h, config/rs6000/sysv4.h,
6116         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
6117         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
6118         (init_optabs): Use init_optabv for overflow-trapping optabs.
6119         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
6120         cmp_optab RTX codes so have_insn_for can find them.
6121
6122         * optabs.c (expand_simple_binop, expand_simple_unop,
6123         have_insn_for, gen_sub3_insn): New interfaces.
6124         * expr.h: Prototype new functions.
6125         (enum optab_methods): Move here from optabs.h.
6126
6127         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
6128         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
6129         Use new functions instead of working directly with optabs.
6130         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
6131         unroll.c: Don't include optabs.h.
6132         * caller-save.c, combine.c, function.c, stmt.c: Just include
6133         insn-codes.h, not optabs.h.
6134         * Makefile.in: Update dependencies.
6135
6136         * combine.c (make_compound_operation, simplify_comparison):
6137         Fix typos testing for this or that instruction.
6138
6139 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
6140
6141         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
6142         generating libgcc.a.
6143
6144 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6145
6146         * except.c (TYPE_HASH): Delete.
6147
6148         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
6149         HOST_WIDE_INT.
6150
6151         * tree.c (TYPE_HASH): Delete.
6152
6153         * tree.h (TYPE_HASH): Define.
6154
6155 2001-08-18  Graham Stott  <grahams@redhat.com>
6156
6157         * config/mips/mips.md (adddi3_internal_2+1): Remove contraints from
6158         define_split.
6159         (adddi3_internal_2+2): Likewise.
6160         (eh_set_lr_di+1): Likewise.
6161
6162 2001-08-17  Richard Henderson  <rth@redhat.com>
6163
6164         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
6165         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
6166         * dwarf2asm.c: ... here.
6167         * dwarfout.c: Remove them.
6168
6169         * varasm.c (assemble_integer): Add align parameter.
6170         (assemble_real, output_constant, output_constructor): Likewise.
6171         * output.h: Update decls.
6172         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
6173         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
6174         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
6175         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
6176         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
6177         Update all callers.
6178
6179         * final.c (end_final): Abort profile block generation if we
6180         havn't layed it out properly.
6181         * output.h (assemble_eh_integer): Remove stale decl.
6182         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
6183         (min_align): New.
6184         (assemble_integer): Handle unaligned data.
6185         (assemble_real): Abort on unaligned data.
6186         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
6187         anything useful.
6188         (default_dtor_section_asm_out_destructor): Use assemble_align.
6189         (default_named_section_asm_out_constructor): Likewise.
6190         (default_ctor_section_asm_out_constructor): Likewise.
6191         * config/darwin.c (machopic_asm_out_constructor): Likewise.
6192         (machopic_asm_out_destructor): Likewise.
6193         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
6194         (nextstep_asm_out_destructor): Likewise.
6195         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
6196         (vms_asm_out_destructor): Likewise.
6197
6198 2001-08-17  Richard Henderson  <rth@redhat.com>
6199
6200         * config/mips/iris6.h (TARGET_IRIX6): New.
6201         (current_section_name, current_section_flags): New.
6202         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
6203         (MAX_OFILE_ALIGNMENT): New.
6204         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
6205         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
6206         (copy_file_data): Split out from
6207         (mips_asm_file_end): ... here.
6208         (mips_asm_file_start): Remove extra .section directive.  Use
6209         tmpfile instead of mips_make_temp_file.
6210         (mips_unique_section): Use const char * as needed for warnings.
6211         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
6212         re-add align parameter.
6213         (iris6_asm_named_section): New.
6214         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
6215         (iris6_asm_output_align, iris6_section_align_1): New.
6216         (iris6_asm_file_start, iris6_asm_file_end): New.
6217         * config/mips/mips-protos.h: Update decls.
6218
6219 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
6220
6221         * doc/install.texi (Install GCC): Add links to build status pages.
6222         (Specific): Ditto.
6223         (Final install): Ditto; request updates for specific info
6224
6225 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
6226
6227         * cpperror.c (print_location):  Don't take a file name; use the
6228         line map instead.
6229         (_cpp_begin_message): Similarly.
6230         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
6231         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
6232         (cpp_pedwarn_with_file_and_line): Remove.
6233         * cppfiles.c (stack_include_file): Update; set filename to stdin
6234         here when appropriate.
6235         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
6236         (_cpp_begin_message): Don't take a file name.
6237         * cppinit.c: Add comment.
6238         * cpplex.c: Fix end-of-directive indicator.
6239         * cpplib.c: Don't include intl.h.
6240         (run_directive, do_diagnostic): Update.
6241         (do_line): Update to not use nominal_fname.
6242         (cpp_push_buffer): Don't take a filename.
6243         * cpplib.h (struct ht): Remove.
6244         (cpp_push_buffer): Don't take a filename.
6245         (cpp_pedwarn_with_file_and_line): Remove.
6246         * cppmacro.c (struct cpp_macro): Remove file.
6247         (builtin_macro): Update.
6248         (_cpp_create_definition): Update.
6249         * cppmain.c: Correct comment.
6250         * fix-header.c (read_scan_file): Update.
6251
6252 2001-08-17  Kazu Hirata  <kazu@hxi.com>
6253
6254         * sbitmap.c: Fix comment formatting.
6255         * sched-deps.c: Likewise.
6256         * sibcall.c: Likewise.
6257         * simplify-rtx.c: Likewise.
6258         * ssa.c: Likewise.
6259         * ssa-ccp.c: Likewise.
6260         * stor-layout.c: Likewise.
6261         * timevar.c: Likewise.
6262         * toplev.c: Likewise.
6263         * unwind-dw2.c: Likewise.
6264         * unwind-dw2-fde.c: Likewise.
6265         * varasm.c: Likewise.
6266
6267 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6268
6269         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
6270         or larger than an integer in memory.
6271
6272 2001-08-17  Zack Weinberg  <zackw@panix.com>
6273
6274         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
6275         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
6276         * rtl.h: Don't forward-declare union tree_node here.  Don't
6277         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
6278         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
6279         and tree respectively.
6280         * tree.h: Don't forward-declare struct rtx_def here.  Don't
6281         typedef tree here.  Change all uses of struct rtx_def *,
6282         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
6283         and tree respectively.
6284
6285 2001-08-17  Richard Henderson  <rth@redhat.com>
6286
6287         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
6288         config/mips/openbsd.h: Fix typos last change.
6289
6290 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6291
6292         * doc/invoke.texi (Optimize Options): The default for
6293         -finline-limit is 600.
6294
6295 2001-08-17  Richard Henderson  <rth@redhat.com>
6296
6297         * varasm.c (text_section): Allow TEXT_SECTION to override the
6298         printing of TEXT_SECTION_ASM_OP.
6299         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
6300         (DATA_SECTION, BSS_SECTION): Remove.
6301         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
6302         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
6303         Rename from s/_NAME//.
6304         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
6305         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
6306         (TEXT_SECTION): ... here.  New.
6307         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
6308         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
6309         * config/mips/openbsd.h: Likewise.
6310         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
6311         (mips_asm_file_end): Likewise test.
6312         (mips_output_function_epilogue): Likewise.  Switch back to data
6313         section after emitting the function.
6314
6315         * doc/tm.texi (Sections): Document TEXT_SECTION.
6316
6317 2001-08-17  Richard Henderson  <rth@redhat.com>
6318
6319         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
6320         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
6321
6322 2001-08-17  Richard Henderson  <rth@redhat.com>
6323
6324         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
6325         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
6326         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
6327         Add aligned attribute.
6328
6329 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
6330
6331         * config/sh/sh.md: Add modes to unspecs in first insn to match
6332         those in the second.
6333
6334         * Makefile.in: Fix collect2 copy for Cygwin.
6335
6336 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
6337
6338         Install the proper patch.
6339         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
6340         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
6341         (expand_function_start): Likewise.
6342         * stmt.c (expand_decl): Likewise.
6343         * varasm.c (make_decl_rtx): Likewise.
6344
6345 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
6346
6347         * final.c: Undo my previous accidental checkin.
6348         * output.h: Likewise.
6349         * tm.texi: Likewise.
6350
6351 2001-08-16  Richard Henderson  <rth@redhat.com>
6352
6353         * varasm.c (named_section_flags): Remove align parameter.
6354         * varasm.c, dwarf2out.c: Update all callers.
6355         * output.h: Update prototypes.
6356
6357         * target.h (target.asm_out.named_section): Remove align parameter.
6358         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
6359         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
6360         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
6361         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
6362         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
6363
6364         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
6365         (get_named_section_flags, set_named_section_flags): New.
6366         (named_section_flags): Use them.
6367         (named_section): Do decl vs section flags check here...
6368         (default_section_type_flags): ... not here.
6369         (init_varasm_once): Create in_named_htab.
6370         (resolve_unique_section): Mark reloc unused.
6371
6372 2001-08-16  Richard Henderson  <rth@redhat.com>
6373
6374         * varasm.c (force_const_mem): Keep pool alignment in bits.
6375         (output_constant_pool): Use assemble_align.
6376
6377 2001-08-16  Zack Weinberg  <zackw@panix.com>
6378
6379         * doc/tm.texi: Remove extra @table command.
6380
6381 2001-08-16  Zack Weinberg  <zackw@panix.com>
6382
6383         * final.c (shorten_branches): Clear the end of the label_align
6384         array only if we made it larger.  Break up messy expressions
6385         for clarity.
6386
6387         * diagnostic.c (internal_error): Check for error recursion
6388         before doing ICE suppression.
6389
6390         * timevar.c: Timing variables now count in milliseconds.
6391         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
6392         (get_time): Not here.
6393         (timevar_print): Don't print any timer whose user, cpu, and
6394         wall times are all zero as displayed.
6395         * timevar.h: Update comment aboout units.  Make timevar
6396         counters unsigned.
6397
6398 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
6399
6400         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
6401         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
6402         (expand_function_start): Likewise.
6403         * stmt.c (expand_decl): Likewise.
6404         * varasm.c (make_decl_rtx): Likewise.
6405
6406 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
6407
6408         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
6409         (finalize_record_size): Don't set TYPE_USER_ALIGN.
6410
6411 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6412
6413         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
6414         variables.
6415
6416 2001-08-16  Andreas Jaeger  <aj@suse.de>
6417
6418         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
6419         prototype.
6420
6421 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
6422
6423         * rtl.h (only_sets_cc0_p): New prototype.
6424         * jump.c (sets_cc0_p): Handle INSN.
6425         (only_sets_cc0_p): New function.
6426         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
6427         (tidy_fallthru_edge): Likewise.
6428         * integrate.c (copy_insn_list): Likewise.
6429         * unroll.c (unroll_loop): Likewise.
6430         (copy_loop_body): Likewise.
6431
6432 2001-08-15  Jason Eckhardt  <jle@redhat.com>
6433
6434         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
6435
6436 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
6437
6438         * predict.c (struct block_info_def): Remove nvisited.
6439         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
6440         (estimate_bb_frequencies): Call mark_dfs_back_edges.
6441
6442         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
6443         (ix86_adjust_cost): Teach scheduler that latency to load operand can
6444         be masked.
6445
6446 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
6447
6448         * predict.def: Update hitrates.
6449
6450 2001-08-15  Richard Henderson  <rth@redhat.com>
6451
6452         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
6453
6454 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
6455
6456         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
6457         note from its associated jump.
6458
6459 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
6460
6461         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
6462         also on 64-bit s390x targets.
6463
6464 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
6465
6466         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
6467         function.
6468         (arm_expand_prologue): Handled nested functions which take a
6469         variable argument list.
6470         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
6471         macro with an invocation of
6472         arm_compute_initial_elimination_offset.
6473         * config/arm/arm-protos.h: Prototype
6474         arm_compute_initial_elimination_offset.
6475
6476 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6477
6478         * doc/install.texi (Specific, avr): Fix markup.
6479         (Specific, c4x): Ditto.
6480
6481 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6482
6483         * predict.c (dump_prediction): Change `bool' parameter to `int'.
6484
6485 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
6486
6487         * Makefile.in (OBJS): Add rtl-error.o
6488         (rtl-error.o): New rule.
6489         (diagnostic.o): Adjust dependency.
6490         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
6491         error_for_asm, _fatal_insn, _fatal_insn_not_found,
6492         warning_for_asm): Move to...
6493         rtl-error.c: ...here.  New file.
6494
6495 2001-08-14  Richard Henderson  <rth@redhat.com>
6496
6497         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
6498         if USING_SJLJ_EXCEPTIONS.
6499
6500 2001-08-14  Steve Ellcey <sje@cup.hp.com>
6501
6502         * tlink.c (scan_linker_output): Check string for unsatisfied in
6503         addition to undefined and unresolved.
6504
6505 2001-08-14  Graham Stott  <grahams@redhat.com>
6506
6507         * libgcc2.c (*): Replace EH_FRAME_SECTION with
6508         EH_FRAME_SECTION_NAME.
6509
6510 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
6511
6512         * genattrtab.c (simplify_test_exp_in_temp): New function.
6513         (simplify_test_exp): Avoid explicit use of temporary obstack.
6514         (simplify_cond, insert_right_side, evaluate_eq_attr,
6515         simplify_and_tree, simplify_or_tree, eliminate_known_true):
6516         Use simplify_test_exp_in_temp.
6517         (optimize_attrs): Iterate until expression stabilizes.
6518
6519 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
6520
6521         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
6522         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
6523
6524 2001-08-13  Richard Henderson  <rth@redhat.com>
6525
6526         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
6527         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
6528         * config/arm/conix-elf.h: Likewise.
6529
6530 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
6531
6532         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
6533         in gcc.c.
6534         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
6535
6536         * gcse.c (hash_scan_set): Expressions that are set as part of
6537         jump instructions are not available.
6538
6539 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
6540
6541         * config/s390/s390.c (print_operand, s390_function_prologue,
6542         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
6543
6544 2001-08-13  Richard Henderson  <rth@redhat.com>
6545
6546         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
6547         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
6548         * doc/tm.texi (Exception Region Output): Document it.
6549
6550 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
6551
6552         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
6553         DWARF2 instead of stabs by default.
6554
6555 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
6556
6557         * config/rs6000/rs6000.c: Include optabs.h.
6558
6559 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
6560
6561         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
6562         save/restore routines.
6563         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
6564
6565 2001-08-13  Andreas Jaeger  <aj@suse.de>
6566
6567         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
6568         the english is correct.
6569
6570 2001-08-13  Zack Weinberg  <zackw@panix.com>
6571
6572         * expr.h: Split out optab- and libfunc-related code to...
6573         * optabs.h, libfuncs.h: ... these new headers.
6574
6575         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
6576         (OPTABS_H): New.
6577         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
6578         dependencies.
6579         * mkconfig.sh: Don't include insn-codes.h from config.h.
6580
6581         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
6582         enum insn_code is available.  Move reload_in_optab and
6583         reload_out_optab array declarations to optabs.h.
6584         * regmove.c (gen_add3_insn): Move to optabs.c, export from
6585         there, prototype in expr.h.
6586         * gencodes.c: Cleanup: zap global variables, don't use
6587         printf where puts will do, don't bother defining MAX_INSN_CODE
6588         which nothing uses, let CODE_FOR_nothing get its value implicitly.
6589
6590         * genemit.c, genopinit.c: Include optabs.h in generated file.
6591         * genoutput.c: Include insn-codes.h in generated file.
6592         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
6593         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
6594         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
6595         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
6596         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
6597         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
6598         Include optabs.h.
6599         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
6600         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
6601         config/m88k/m88k.c, config/sparc/sparc.c:
6602         Include libfuncs.h.
6603         * reload.c: Include expr.h and optabs.h before reload.h.
6604         * config/alpha/alpha.c: Include tree.h before reload.h.
6605         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
6606         and reload.h in that order.
6607         * config/sparc/sparc.c: Include debug.h.
6608         * recog.c: Include insn-codes.h.
6609
6610 2001-08-13  Andreas Jaeger  <aj@suse.de>
6611
6612         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
6613         s390*linux.
6614
6615 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
6616
6617         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
6618         * gcc.c (init_spec): Fix typo in comment.
6619         * varasm.c (data_section): Fix typo in comment.
6620
6621 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
6622
6623         * predict.c (dump_prediction): New argument "USED".
6624         (combine_predictions_for_insn): Determine the used heuristics,
6625         output the case no heuristic applied.
6626         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
6627
6628 2001-08-13  Andreas Jaeger  <aj@suse.de>
6629
6630         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
6631         register %rip.
6632
6633 2001-08-13  Kazu Hirata  <kazu@hxi.com>
6634
6635         * jump.c: Fix formatting.
6636
6637 2001-08-13  Kazu Hirata  <kazu@hxi.com>
6638
6639         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
6640         length.
6641
6642 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
6643
6644         * loop.c (check_dbra_loop): Use condjump_label to compute
6645         jump_label.
6646
6647         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
6648         to better document the files they're in.
6649
6650 2001-08-12  Zack Weinberg  <zackw@panix.com>
6651
6652         * recog.h (struct insn_operand_data): Shrink 'mode' field
6653         to 16 bits.
6654
6655 2001-08-12  Kazu Hirata  <kazu@hxi.com>
6656
6657         * gcc.c: Fix comment formatting.
6658         * gccspec.c: Likewise.
6659         * gcov.c: Likewise.
6660         * gcse.c: Likewise.
6661         * genemit.c: Likewise.
6662         * gengenrtl.c: Likewise.
6663         * genrecog.c: Likewise.
6664         * gensupport.c: Likewise.
6665         * ggc-page.c: Likewise.
6666         * global.c: Likewise.
6667         * graph.c: Likewise.
6668         * ifcvt.c: Likewise.
6669         * integrate.c: Likewise.
6670         * lcm.c: Likewise.
6671         * libgcc2.c: Likewise.
6672         * loop.c: Likewise.
6673         * mbchar.c: Likewise.
6674         * optabs.c: Likewise.
6675         * predict.c: Likewise.
6676         * prefix.c: Likewise.
6677         * profile.c: Likewise.
6678         * protoize.c: Likewise.
6679         * real.c: Likewise.
6680         * recog.c: Likewise.
6681         * regclass.c: Likewise.
6682         * regmove.c: Likewise.
6683         * reg-stack.c: Likewise.
6684         * reload1.c: Likewise.
6685         * resource.c: Likewise.
6686         * rtlanal.c: Likewise.
6687         * rtl.c: Likewise.
6688
6689 2001-08-12  Kazu Hirata  <kazu@hxi.com>
6690
6691         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
6692         a tree representing a constant is passed to the macro.
6693
6694 2001-08-12  Richard Henderson  <rth@redhat.com>
6695
6696         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
6697         (rs6000_elf_asm_out_destructor): New.
6698         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
6699         (DTORS_SECTION_ASM_OP): Remove.
6700         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
6701         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
6702
6703 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
6704
6705         Revert:
6706         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6707         * gcc.c (set_collect_gcc_options): New function, split out from
6708         main.
6709         Ignore elided switches.
6710         (do_spec_1): Invoke before executing command.
6711         (set_input): Export.
6712         Move declaration ...
6713         * gcc.h (set_input): ... here.
6714         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
6715         file.
6716
6717 2001-08-12  Richard Henderson  <rth@redhat.com>
6718
6719         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
6720         thinko wrt TARGET_RELOCATABLE.
6721
6722 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
6723
6724         * fix-header.c (cb_file_change): Update prototype.
6725
6726 2001-08-11  Zack Weinberg  <zackw@panix.com>
6727
6728         * toplev.c (set_float_handler): Make static.
6729         * toplev.h: Don't prototype set_float_handler.
6730
6731         * simplify-rtx.c: Don't include setjmp.h.
6732         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
6733         New functions.
6734         (simplify_unary_operation, simplify_binary_operation): Use them,
6735         via do_float_handler.
6736
6737         * fold-const.c: Don't include setjmp.h.
6738         (exact_real_inverse_1): New function.
6739         (exact_real_inverse): Use it, via do_float_handler.
6740
6741         * varasm.c: Don't include setjmp.h.
6742         (assemble_real_1): New function.
6743         (assemble_real): Use it, via do_float_handler.
6744         Call internal_error if we get a trap here.
6745
6746         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
6747         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
6748
6749 2001-08-11  Zack Weinberg  <zackw@panix.com>
6750
6751         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
6752         STACK_BOUNDARY if not already defined.
6753
6754         * calls.c, function.c, reload1.c, explow.c: Don't default
6755         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
6756         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
6757
6758         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
6759         to run-time test.
6760
6761         * doc/tm.texi: Document that STACK_BOUNDARY is required;
6762         clarify difference between it and PREFERRED_STACK_BOUNDARY.
6763
6764 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6765
6766         * cppmacro.c (enter_macro_context): Push macro expansions even
6767         if empty.
6768
6769 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6770
6771         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
6772         (rs6000_elf_section_type_flags): Actually return a value.
6773
6774 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
6775
6776         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
6777         Clean up code: add missing comments and prototypes, fix warnings,
6778         remove obsolete code, fix spacing to conform to coding style.
6779
6780 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
6781
6782         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
6783         and TARGET_ASM_CLOSE_PAREN.
6784         (regclass_map): CC register belongs to class NO_REGS.
6785         (legitimize_pic_address): Don't generate unnecessary moves
6786         (to avoid confusing loop optimization).
6787         (check_and_change_labels): Replace jump_long by indirect_jump.
6788         (s390_final_chunkify): Don't start a new literal pool on section
6789         switch in 64-bit code.
6790         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
6791
6792         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
6793         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
6794         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
6795         modes correctly.
6796         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
6797         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
6798         (CONST_COSTS): Fixed incorrect costs.
6799
6800         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
6801         Use emit_jump instead of emit_jump_insn (gen_jump).
6802         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
6803         (to avoid confusing flow analysis).
6804         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
6805         (casesi, casesi_jump): New.
6806         (jump_long): Removed.  Functionality merged into indirect_jump.
6807         (indirect_jump): Accept address_operand, not just register_operand.
6808         (cjump_long, icjump_long): Use same logic as indirect_jump.
6809         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
6810         Fixed broken setjmp/longjmp handling.
6811         (do_builtin_setjmp_setup): Removed.
6812
6813         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
6814         broken GNU as versions that don't accept .quad with large
6815         negative values.  Use hexadecimal output instead.
6816         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
6817         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
6818         FUNCTION_EPILOGUE): Removed.  Now in targetm.
6819
6820         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
6821
6822         * config/s390/fixdfdi.h: Add missing copyright statement.
6823         Fix type conflicts on 64-bit.  Add missing SFmode routines.
6824
6825         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
6826         email address.
6827
6828 2001-08-11  Richard Henderson  <rth@redhat.com>
6829
6830         * rtl.h (REG_EH_RETHROW): Remove.
6831         * rtl.c (reg_note_name): Update.
6832         * combine.c (distribute_notes): Don't check for it.
6833
6834 2001-08-11  Richard Henderson  <rth@redhat.com>
6835
6836         * combine.c (distribute_notes): Place REG_SETJMP.
6837
6838 2001-08-11  Richard Henderson  <rth@redhat.com>
6839
6840         * doc/extend.texi (Arrays and pointers implementation): Discourage
6841         relying on sign-extension of pointers.
6842
6843 2001-08-11  H.J. Lu <hjl@gnu.org>
6844
6845         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
6846         in_dtors.
6847         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
6848         RDATA_SECTION_ASM_OP.
6849
6850 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6851
6852         * doc/install.texi (Specific, c4x): Fix cross-reference to the
6853         main manual to work both for info and HTML versions.
6854
6855 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6856             Matt Kraai <kraai@alumni.carnegiemellon.edu>
6857
6858         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
6859         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
6860         (struct cpp_pool): New member first.
6861         * cppinit.c (append_include_chain): Plug memory leaks.
6862         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
6863         Allocate pragma structures from the (aligned) macro pool to
6864         avoid leaking memory.
6865         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
6866         so we don't leak memory.
6867         * hashtable.c (ht_destroy): New.
6868         * hashtable.h (ht_destroy): New.
6869
6870 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6871             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6872
6873         * c-lex.c (map): Make const.
6874         (cb_file_change): Update for callback passing a line map.
6875         Don't assume we have a previous map.  Remove sanity check
6876         about popping too many files.
6877         * cpperror.c (print_location): Make map const.
6878         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
6879         (cpp_make_system_header): Similarly.
6880         (search_from): Similarly.
6881         (_cpp_execute_include): Don't remember where we came from.
6882         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
6883         (struct cpp_reader): Make map const.
6884         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
6885         * cpplib.c (do_line): Update; line maps now hold sysp.
6886         (cpp_push_buffer): Similarly.
6887         (_cpp_do_file_change): Similarly; callback with map instead.
6888         (cpp_get_line_maps): Constify return value.
6889         (_cpp_pop_buffer): Update.
6890         * cpplib.h (struct cpp_file_change): Remove.
6891         (struct cpp_callbacks): Update.
6892         (cpp_get_line_maps): Constify return value.
6893         * cppmacro.c (_cpp_create_definition): Update.
6894         * cppmain.c (struct printer): Constify map.
6895         (maybe_print_line): Similarly.
6896         (print_line): Similarly.  Deduce flags 1 and 2 here.
6897         (cb_file_change): Update.
6898         * line-map.c (free_line_maps): Warn regardless.
6899         (add_line_map): Return pointer to const.  When passed NULL to_file
6900         with LC_LEAVE, use the obvious values for the return point so the
6901         caller doesn't have to figure them out.
6902         (lookup_line): Return pointer to const.
6903         (print_containing_files): Take pointer to const.
6904         * line-map.h (struct line_map): New members reason, sysp.
6905         (add_line_map): Return pointer to const.
6906         (lookup_line): Similarly.
6907         (print_containing_files): Take pointer to const.
6908
6909 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
6910             Richard Henderson  <rth@redhat.com>
6911
6912         * regmove.c (regmove_optimize): Avoid setting a register twice in
6913         a parallel set.
6914
6915 2001-08-10  Richard Henderson  <rth@redhat.com>
6916
6917         * doc/extend.texi (Arrays and pointers implementation): Document
6918         behavior of pointer/integer conversion.
6919
6920 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
6921
6922         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
6923
6924 2001-08-10  Richard Henderson  <rth@redhat.com>
6925
6926         * doc/extend.texi (C Implementation): New chapter.
6927         * doc/gcc.texi (Top): Link it in.
6928
6929 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
6930
6931         * doc/install.texi (Specific): Fix CVS merge botch.
6932
6933 2001-08-10  Richard Henderson  <rth@redhat.com>
6934
6935         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
6936         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
6937
6938 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
6939
6940         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
6941         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
6942         this macro is now required.
6943
6944         * cselib.c (cselib_process_insn), flow.c (propagate_block),
6945         loop.c (find_and_verify_loops), reload.c (reload): Check
6946         for rtx code of CALL_INSN, not CALL, when deciding if we
6947         need to check for REG_SETJMP note.
6948
6949         * gcse.c (compute_hash_table, compute_store_table): Update
6950         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
6951         logic.
6952
6953         * config/avr/avr.c: Fix typo.
6954         * config/convex/convex.c (expand_movstr): Use adjust_address.
6955         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
6956         variable.
6957         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
6958         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
6959         Fix typo.
6960         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
6961         Do define STACK_BOUNDARY.
6962         * config/i370/i370.c: Include expr.h.
6963         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
6964         config/pa/som.h, config/v850/v850.h: Take in_ctors and
6965         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
6966         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
6967         * config/m88k/m88k.c: Include c-tree.h after expr.h.
6968         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
6969         * config/romp/romp.c: Include expr.h after tree.h.
6970         Include toplev.h.
6971         (output_fpop): Use xmalloc, not oballoc.
6972         * config/we32k/we32k.c: Include expr.h.
6973
6974 2001-08-10  Kazu Hirata  <kazu@hxi.com>
6975
6976         * config/h8300/h8300.h: Fix formatting.
6977
6978 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
6979
6980         * c-common.h (RETURN_NULLIFIED_P): Lose.
6981         * c-semantics.c (genrtl_return_stmt): Don't check it.
6982
6983 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
6984
6985         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
6986         (mips_annotate_frame_insn): New function.
6987         (mips_emit_frame_related_store): New function.
6988         (save_restore_insns): Don't mark instructions that set up the base
6989         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
6990         the store instructions instead.
6991         (mips_expand_prologue): If the stack size is moved into a temporary
6992         register, do not mark that move as frame-related.  Add a
6993         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
6994
6995 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
6996
6997         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
6998         stack slot as unchanging if current_function_calls_eh_return.
6999
7000 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
7001
7002         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
7003         access the second half of the TFmode scratch operand.
7004
7005 2001-08-10  Anthony Green  <green@redhat.com>
7006
7007         * java/class.c (emit_register_classes): Conditionalize code on
7008         JCR_SECTION_NAME.
7009
7010 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7011
7012         * doc/install.texi (Specific, avr): Fix cross-reference to the
7013         main manual to work both for info and HTML versions.
7014
7015 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7016
7017         * stmt.c (expand_null_return_1): Remove code to generate simple returns
7018         and "use_goto" argument.
7019         (expand_null_return, expand_value_return): Update all callers.
7020         * function.c (expand_function_end): Remove code to generate simple
7021         return.
7022         * config/vax/vax.md (epilogue): New expander for function return.
7023         * doc/md.texi (epilogue): Remove "if defined".
7024
7025 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
7026
7027         * Makefile.in: Partially revert my previous change:
7028         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
7029         of the hashtab.o and safe-ctype.o rules.
7030
7031 2001-08-09  Richard Henderson  <rth@redhat.com>
7032
7033         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
7034         (USE_COLLECT2): Remove duplicate definition.
7035         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
7036         (use_collect2): Remove dead code.
7037         * configure.in (use_collect2): Remove will_use_collect2 and
7038         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
7039         * configure: Rebuild.
7040
7041         * target.h (targetm.asm_out.constructor): New.
7042         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
7043         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
7044         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
7045         * varasm.c (in_ctors, in_dtors): New.
7046         (assemble_constructor, assemble_destructor): Remove.
7047         (default_stabs_asm_out_destructor): New.
7048         (default_named_section_asm_out_destructor): New.
7049         (dtors_section, default_dtor_section_asm_out_destructor): New.
7050         (default_stabs_asm_out_constructor): New.
7051         (default_named_section_asm_out_constructor): New.
7052         (ctors_section, default_ctor_section_asm_out_constructor): New.
7053         * output.h: Update declarations.
7054         * c-decl.c (c_expand_body): Use target hooks instead of
7055         assemble_constructor and assemble_destructor.
7056         * profile.c (output_func_start_profiler): Likewise.
7057         * objc/objc-act.c (finish_objc): Likewise.
7058         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
7059         for the constructor.
7060         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
7061
7062         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
7063         (DTORS_SECTION_ASM_OP): Likewise.
7064         (__CTOR_LIST__): Use attribute section when possible.
7065         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
7066
7067         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
7068         ASM_OUTPUT_CONSTRUCTOR.
7069
7070         * config/darwin.c (machopic_asm_out_constructor): New.
7071         (machopic_asm_out_destructor): New.
7072         * config/darwin-protos.h: Update declarations.
7073         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7074         (ASM_OUTPUT_DESTRUCTOR): Remove.
7075         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7076         * config/nextstep.c (nextstep_asm_out_constructor): New.
7077         (nextstep_asm_out_destructor): New.
7078         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7079         (ASM_OUTPUT_DESTRUCTOR): Remove.
7080         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7081         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
7082         ASM_OUTPUT_*STRUCTOR.
7083         * config/i386/aix386ng.h: Likewise.
7084
7085         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
7086         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
7087         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
7088         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7089         * config/lynx.h: Likewise.
7090         * config/netware.h: Likewise.
7091         * config/psos.h: Likewise.
7092         * config/alpha/alpha-interix.h: Likewise.
7093         * config/alpha/elf.h: Likewise.
7094         * config/arc/arc.h: Likewise.
7095         * config/arm/aof.h: Likewise.
7096         * config/arm/coff.h: Likewise.
7097         * config/arm/elf.h: Likewise.
7098         * config/c4x/c4x.h: Likewise.
7099         * config/h8300/h8300.h: Likewise.
7100         * config/i386/cygwin.h: Likewise.
7101         * config/i386/djgpp.h: Likewise.
7102         * config/i386/i386-coff.h: Likewise.
7103         * config/i386/i386-interix.h: Likewise.
7104         * config/i386/sco5.h: Likewise.
7105         * config/i386/vsta.h: Likewise.
7106         * config/i386/win32.h: Likewise.
7107         * config/i960/i960-coff.h: Likewise.
7108         * config/ia64/sysv4.h: Likewise.
7109         * config/m68hc11/m68hc11.h: Likewise.
7110         * config/m68k/coff.h: Likewise.
7111         * config/m68k/mot3300.h: Likewise.
7112         * config/m88k/m88k.h: Likewise.
7113         * config/mcore/mcore-pe.h: Likewise.
7114         * config/mcore/mcore.h: Likewise.
7115         * config/mips/elf.h: Likewise.
7116         * config/mips/elf64.h: Likewise.
7117         * config/mips/iris6.h: Likewise.
7118         * config/pa/pa64-hpux.h: Likewise.
7119         * config/rs6000/sysv4.h: Likewise.
7120         * config/sh/sh.h: Likewise.
7121         * config/sparc/litecoff.h: Likewise.
7122
7123         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
7124         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
7125         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7126         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7127         (ASM_OUTPUT_DESTRUCTOR): Remove.
7128         * config/a29k/a29k.c: Move include of tree.h.
7129         * config/a29k/udi.h: Delete file.
7130         * config/alpha/alpha.c (vms_asm_out_constructor): New.
7131         (vms_asm_out_destructor): New.
7132         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
7133         (EXTRA_SECTION_FUNCTIONS): Likewise.
7134         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7135         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7136         * config/c4x/c4x.c: Move include of tree.h.
7137         * config/clipper/clipper.c (clix_asm_out_constructor): New.
7138         (clix_asm_out_destructor): New.
7139         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7140         (ASM_OUTPUT_DESTRUCTOR): Remove.
7141         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7142         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7143         (TARGET_ASM_CONSTRUCTOR): New.
7144         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
7145         (sco_asm_out_constructor): New.
7146         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
7147         * config/i386/svr3gas.h: Remove stack grows up code.
7148         Remove code duplicated from i386/sysv3.h.
7149         (TARGET_ASM_CONSTRUCTOR): New.
7150         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7151         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
7152         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7153         (TARGET_ASM_CONSTRUCTOR): New.
7154         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
7155         (m68hc11_asm_out_destructor): New.
7156         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
7157         (TARGET_ASM_DESTRUCTOR): New.
7158         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
7159         * config/m68k/dpx2.h: Properly undef all the bits inherited from
7160         config/svr3.h pertaining to section manipulation.
7161         * config/m68k/dpx2g.h: Remove #if 0 code.
7162         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
7163         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
7164         (ASM_OUTPUT_CONSTRUCTOR): Remove.
7165         (TARGET_ASM_CONSTRUCTOR): New.
7166         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
7167         (m88k_svr3_asm_out_constructor): New.
7168         (m88k_svr3_asm_out_destructor): New.
7169         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7170         (ASM_OUTPUT_DESTRUCTOR): Remove.
7171         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7172         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
7173         * config/rs6000/aix.h: Likewise.
7174         * config/mips/rtems64.h: Don't undef removed constructor related bits.
7175         * config/mips/vxworks.h: Likewise.
7176         * config/rs6000/lynx.h: Likewise.
7177         * config/sh/elf.h: Likewise.
7178         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
7179         (DTORS_SECTION_ASM_OP): New.
7180         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7181         (ASM_OUTPUT_DESTRUCTOR): Remove.
7182         * config/sparc/sol2-sld-64.h: Likewise.
7183         * config/vax/vax.c (vms_asm_out_constructor): New.
7184         (vms_asm_out_destructor): New.
7185         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7186         (ASM_OUTPUT_DESTRUCTOR): Remove.
7187         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7188
7189         * doc/tm.texi (@node Initialization): Update.
7190
7191 2001-08-09  Richard Henderson  <rth@redhat.com>
7192
7193         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
7194         (__do_global_dtors_aux): Use gp-relative static data to avoid
7195         one dynamic relocation.
7196         (__do_frame_setup): Register Java classes.
7197         * config/alpha/crtend.asm (__JCR_END__): New.
7198
7199 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
7200
7201         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
7202         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
7203         (GEN, STAGESTUFF): Add new files.
7204         (insn-constants.h, s-constants, tm-preds.h, s-preds,
7205         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
7206         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
7207         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
7208         as well as insn-codes.h and insn-flags.h in config.h; and no
7209         extra headers in tconfig.h and hconfig.h.
7210
7211         * gencodes.c: Eliminate code to generate predicate declarations
7212         or #defines for md-file constants.
7213         * genconstants.c, genpreds.c: New files.
7214
7215         * i386.md: Re-order guard expressions such that TARGET_64BIT
7216         comes first, when this permits better optimization.  Add
7217         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
7218         why this is desirable.
7219
7220 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
7221
7222         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
7223         (find_fde_for_dso): Remove.
7224         (_Unwind_IteratePhdrCallback): New.
7225         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
7226         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
7227
7228 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7229
7230         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
7231         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
7232
7233 2001-08-09  Graham Stott  <grahams@redhat.com>
7234
7235         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
7236         (vis_no_unit): Use it.
7237         (visualize_no_unit): Add the insn only if room exists.
7238
7239 2001-08-09  Graham Stott  <grahams@redhat.com>
7240
7241         * predict.c (estimate_probability): Replace magic numbers with
7242         appropriate enumeration.
7243
7244 2001-08-09  Graham Stott  <grahams@redhat.com>
7245
7246         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
7247         parameter.
7248         (EXTRACT_FLAGS): Likewise.
7249
7250 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
7251
7252         * config/mips/mips.c    (mips_legitimate_address_p): Check for
7253         CONST_INT in last patch.
7254
7255 2001-08-08  Anthony Green  <green@redhat.com>
7256
7257         * java/class.c (emit_register_classes): Use assemble_jcr if
7258         possible.  Keep the original mechanism as a fallback.
7259         * defaults.h (JCR_SECTION_NAME): Define if we have named section
7260         and weak symbol support.
7261         * crtstuff.c (__JCR_LIST__): Define.
7262         (__JCR_END__): Define.
7263         (_Jv_RegiserClasses): Define weak symbol if possible.
7264         (__do_global_ctors_aux): Register classes for ELF targets with
7265         weak symbol support.
7266
7267 2001-08-08  Kazu Hirata  <kazu@hxi.com>
7268
7269         * dbxout.c: Fix comment formatting.
7270         * dependence.c: Likewise.
7271         * df.c: Likewise.
7272         * diagnostic.c: Likewise.
7273         * dominance.c: Likewise.
7274         * doprint.c: Likewise.
7275         * dwarf2out.c: Likewise.
7276         * dwarfout.c: Likewise.
7277         * emit-rtl.c: Likewise.
7278         * except.c: Likewise.
7279         * explow.c: Likewise.
7280         * expmed.c: Likewise.
7281         * expr.c: Likewise.
7282         * flow.c: Likewise.
7283         * fold-const.c: Likewise.
7284         * function.c: Likewise.
7285
7286 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7287
7288         * global.c (retry_global_alloc): Avoid shadowing allocno.
7289
7290 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
7291
7292         * except.c (remove_fixup_regions): Fix typo.
7293
7294 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
7295
7296         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
7297         unsigned HOST_WIDE_INT to avoid warning.
7298         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
7299         * flow.c (set_block_for_new_insns): Likewise.
7300
7301 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
7302
7303         * sibcall.c (return_value_pseudo): New static variable.
7304         (skip_copy_to_return_value): Handle return_value_pseudo.
7305         (call_ends_block_p): Ensure that return_value_pseudo is set.
7306         (optimize_sibling_and_tail_recursive_call): Discover the
7307         load of pseudo return value in alternate exit block.
7308
7309 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
7310
7311         * calls.c (ECF_ALWAYS_RETURN): New constant.
7312         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
7313         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
7314         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
7315         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
7316         * rtl.c (reg_note_name): New name.
7317         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
7318
7319 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
7320
7321         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
7322
7323 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
7324
7325         * alias.c (get_alias_set): Return a previously calculated
7326         alias set for a VAR_DECL.
7327         * function.c (gen_mem_addressof): Calculate the alias set before
7328         touching the RTL.
7329
7330 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
7331
7332         * predict.def: Set hitrates according our experimental run.
7333
7334 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
7335
7336         * i386.h (HARD_REGNO_RENAME_OK): New macro.
7337
7338 2001-08-08  H.J. Lu <hjl@gnu.org>
7339
7340         * config/mips/mips.c (mips_unique_section): New. Copied from
7341         config/mips/elf.h.
7342
7343         * config/mips/mips-protos.h (mips_unique_section): New
7344         prototype.
7345
7346         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
7347
7348         * config/mips/little.h: New. Generic little endian mips
7349         targets. Only mips*-*-linux* is converted to use it so far.
7350
7351         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
7352         (WCHAR_TYPE): Defined
7353         (WCHAR_TYPE_SIZE): Likewise.
7354         (INIT_SUBTARGET_OPTABS): Likewise.
7355         (BSS_SECTION_ASM_OP): Likewise.
7356         (SBSS_SECTION_ASM_OP): Likewise.
7357         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7358         (ASM_DECLARE_OBJECT_NAME): Likewise.
7359         (UNIQUE_SECTION): Likewise.
7360         (EXTRA_SECTIONS): Likewise.
7361         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
7362         (ASM_OUTPUT_DESTRUCTOR): Likewise.
7363         (ASM_OUTPUT_DEF): Likewise.
7364         (HANDLE_SYSV_PRAGMA): Removed.
7365         (NO_IMPLICIT_EXTERN_C): Likewise.
7366         (TARGET_MEM_FUNCTIONS): Likewise.
7367         (STARTFILE_SPEC): Likewise.
7368         (ENDFILE_SPEC): Likewise.
7369         (LIB_SPEC): Likewise.
7370         (INVOKE__main): Likewise.
7371         (CTOR_LIST_BEGIN): Likewise.
7372         (CTOR_LIST_END): Likewise.
7373         (DTOR_LIST_BEGIN): Likewise.
7374         (DTOR_LIST_END): Likewise.
7375         (SET_ASM_OP): Likewise.
7376         (ASM_OUTPUT_SOURCE_LINE): Likewise.
7377         (ASM_OUTPUT_DEF): Likewise.
7378         (ASM_OUTPUT_IDENT): Likewise.
7379
7380         * config/mips/mips.h (ASM_SPEC): Undefine before define.
7381         (CPLUSPLUS_CPP_SPEC): Likewise.
7382         (ASM_APP_ON) Redefine only if not defined.
7383         (ASM_APP_OFF): Likewise.
7384         (ASM_OUTPUT_SOURCE_LINE): Likewise.
7385         (ASM_OUTPUT_IDENT): Likewise.
7386
7387         * config.gcc: Update tm_file for Linux/mips.
7388
7389 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
7390
7391         * cselib.c (cselib_record_sets): If insn is predicated, turn
7392         sources into IF_THEN_ELSEs.
7393
7394         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
7395         Turn into define_insn_and_split.
7396
7397         * sched-deps.c: Include "cselib.h".
7398         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
7399         Use cselib to turn memory addresses into VALUEs.
7400         (sched_analyze): Call cselib_init/cselib_finish if necessary.
7401         * sched-int.h (struct sched_info): New member USE_CSELIB.
7402         * sched-ebb.c (ebb_sched_info): Initialize it.
7403         * sched-rgn.c (rgn_sched_info): Likewise.
7404         * Makefile.in (sched-deps.o): Update dependencies.
7405
7406         * cselib.h (cselib_subst_to_values): Declare.
7407         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
7408         that have no value and autoincs to be handled by generating a new
7409         dummy value.
7410
7411 2001-08-08  Graham Stott  <grahams@redhat.com>
7412
7413         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
7414         within fixed length SEQUENCE.
7415
7416 2001-08-08  Graham Stott  <grahams@redhat.com>
7417
7418         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
7419         (diagnostic_prefixing_rule): Likewise.
7420         (diagnostic_line_cutoff): Likewise.
7421         (diagnostic_kind_count): Likewise.
7422
7423 2001-08-08  Graham Stott  <grahams@redhat.com>
7424
7425         * alias.c (find_base_decl): Delete redundent assignment.
7426
7427 2001-08-08  Graham Stott  <grahams@redhat.com>
7428
7429         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
7430         (abs): Uppercase and paranthesize macro parameter.
7431         (MEM_DEPENDENCY): Add whitespace.
7432
7433 2001-08-08  Graham Stott  <grahams@redhat.com>
7434
7435         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
7436         failure check for CONST_INT
7437
7438 2001-08-08  Graham Stott  <grahams@redhat.com>
7439
7440         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
7441         (libcall_dead_p): Likewise.
7442
7443         (mark_used_regs): Constify fmt.
7444         (find_use_as_address): Likewise.
7445
7446 2001-08-08  Graham Stott  <grahams@redhat.com>
7447
7448         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
7449          parameter.
7450
7451 2001-08-08  Graham Stott  <grahams@redhat.com>
7452
7453         * combine.c (combine_simplify_rtx): Update comment and
7454         remove erroneous test.
7455
7456 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7457
7458         * cppinit.c (cpp_finish): Pop the final buffer without comment.
7459         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
7460         take care to avoid multiple no-newline at EOF warnings in that
7461         case.
7462
7463 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
7464
7465         * calls.c (expand_call): Do not emit INSN_SETJMP note.
7466         (emit_library_call_value_1): Likewise.
7467         (emit_call_1): Emit REG_SETJMP note.
7468         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
7469         of INSN_SETJMP
7470         * cselib.c (cselib_process_insn): Likewise.
7471         * flow.c (propagate_block): Likewise.
7472         * loop.c (find_and_verify_loops): Likewise.
7473         * reload.c (find_equiv_regs): Likewise.
7474         * reload1.c (reload): Likewise.
7475         * resource.c (mark_referenced_resources,
7476         mark_set_resources): Likewise.
7477         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
7478         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
7479         * haifa-sched.c (unlink_other_notes): Likewise.
7480         (reemit_notes): Likewise.
7481         * sched-ebb.c (sched_ebb): Likewise.
7482         * sched-rgc.c (sched_region): Likewise.
7483         * rtl.c (note_insn_name): Likewise.
7484         (reg_note_name): Add REG_SETJMP
7485         * rtl.h (reg_note): Add REG_SETJMP.
7486         (insn_note): Remove NOTE_INSN_SETJMP.
7487
7488         * profile.c (branch_prob): Add fake edges for setjmp.
7489
7490 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
7491
7492         * config.gcc: Quote target_cpu_default2 correctly for
7493         powerpc*-*-* targets.
7494
7495 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7496
7497         * cpplib.h, line-map.h: Update comments.
7498         * cppmain.c (printer_init): Move inline.
7499         (maybe_print_line, print_line): Take a map pointer.
7500         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
7501         (cb_file_change): Don't use prior value of print.map.
7502
7503 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
7504
7505         * doc/install.texi: Document fine-grained multilib configuration.
7506
7507 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
7508
7509         * rtlanal.c (find_first_parameter_load): Call note_stores
7510         only on the instructions.
7511
7512 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
7513
7514         * alias.c (nonlocal_mentioned_p):
7515         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
7516         * calls.c (emit_call_1): Likewise.
7517         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
7518         * cselib.c (cselib_process_insn): Likewise.
7519         * df.c (df_insns_modify): Likewise.
7520         * flow.c (need_fake_edge_p): Likewise.
7521         (propagate_one_insn): Likewise.
7522         * haifa-sched.c (reemit_notes): Likewise.
7523         * integrate.c (copy_insn_list): Likewise.
7524         * jump.c (delete_prior_computation): Likewise.
7525         * local-alloc.c (validate_equiv_mem): Likewise.
7526         * loop.c (scan_loop): Likewise.
7527         * predict.c (estimate_probability): Likewise.
7528         * reload.c (reload): Likewise.
7529         * sched-deps (sched_analyze): Likewise.
7530         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
7531         * gcse.c (compute_hash_table): Likewise.
7532         (mark_call): Likewise.
7533         (store_killed_in_insn): Likewise.
7534
7535 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
7536
7537         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
7538
7539 2001-08-06  Richard Henderson  <rth@redhat.com>
7540
7541         * varasm.c (assemble_gc_entry): Remove.
7542         * output.h: Likewise.
7543
7544 2001-08-06  Richard Henderson  <rth@redhat.com>
7545
7546         * varasm.c (assemble_constructor): Take a symbol_ref and a
7547         priority instead of a bare string.  Move priority handling
7548         here from cp/decl2.c.
7549         * output.h: Update decls.
7550
7551         * c-decl.c (c_expand_body): Update calls to assemble_constructor
7552         and assemble_destructor.
7553         * profile.c (output_func_start_profiler): Likewise.
7554         * objc/objc-act.c (finish_objc): Likewise.
7555         (build_module_descriptor): Return the symbol not the symbol name.
7556
7557 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
7558
7559         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
7560         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
7561         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
7562         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
7563         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
7564         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
7565
7566 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7567
7568         * cpperror.c (print_containing_files): Moved to line-map.c.
7569         (print_location): line-map.c handles re-listing or otherwise.
7570         * cpphash.h (struct lexer_state): Remove next_bol.
7571         (struct cpp_buffer): Remove include_stack_listed.
7572         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
7573         Remove faked buffer handling.
7574         (_cpp_do_file_change): Tweak.
7575         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
7576         * cppmain.c (struct printer): Remove filename.
7577         (print_line, cb_file_change): Update accordingly.
7578         * line-map.c: Include intl.h.
7579         (init_line_maps): Initialize last_listed.
7580         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
7581         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
7582         (print_containing_files): New.
7583         * line-map.h (struct line_maps): New member last_listed.
7584         (print_containing_files, INCLUDED_FROM): New.
7585         * Makefile.in: Update.
7586         * po/POTFILES.in: Add line-map.c.
7587
7588 2001-08-06  Richard Henderson  <rth@redhat.com>
7589
7590         * except.c (convert_from_eh_region_ranges_1): Never mark
7591         USE or CLOBBER insns as throwing.
7592
7593         * expr.c (store_constructor): Don't clobber memory targets.
7594
7595 2001-08-06  Andreas Jaeger  <aj@suse.de>
7596
7597         * profile.c (branch_prob): Remove unused variable insn.
7598
7599         * Makefile.in (local-alloc.o): Add dependency on except.h.
7600
7601         * local-alloc.c: Include except.h for can_throw_internal prototype.
7602
7603 2001-08-06  Richard Henderson  <rth@redhat.com>
7604
7605         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
7606         * function.c (expand_main_function): Implement it.
7607         * doc/tm.texi: Document it.
7608
7609 2001-08-06  Stan Shebs  <shebs@apple.com>
7610
7611         * doc/install.texi: Document powerpc-*-darwin* details.
7612
7613 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
7614
7615         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
7616         (ASM_CPU_SPEC): Move back to rs6000.h
7617         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
7618
7619         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
7620
7621         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
7622         readded.
7623
7624         * config/rs6000/linux64.h: Ditto.
7625
7626         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
7627         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
7628         nothing.
7629
7630         Remove accidently readded definitions of FUNCTION_PROLOGUE,
7631         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
7632
7633         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
7634         to rs6000.h
7635
7636 2001-08-05  Richard Henderson  <rth@redhat.com>
7637
7638         * local-alloc.c (update_equiv_regs): Do not move insns that
7639         can throw.
7640
7641 2001-08-05  Jan Hubicka  <jh@suse.cz>
7642
7643         * Makefile.in (reload1.o): Add dedendancy on except.h
7644         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
7645         prototypes.
7646         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
7647         indicating wehther edges has been cleaned up.
7648         * reload1.c: Inlucde except.h
7649         (fixup_abnormal_edges): Accept deleted insns.
7650         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
7651         after combine.
7652
7653 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7654
7655         * cpplib.c (do_line): Correct line number after pop_buffer.
7656
7657 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7658
7659         PR preprocessor/3824
7660         * line-map.c: Update comments.
7661         * line-map.h: Update comments.
7662         * tradcif.y: Don't consider large numbers unsigned.
7663
7664 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7665
7666         PR preprocessor/3081
7667         * c-lex.c (map): New.
7668         (cb_file_change): Update map and use it.
7669         (cb_def_pragma, cb_define, cb_undef): Use map and line.
7670         (c_lex): Update to use map.
7671         * cpperror.c (print_location): Move to using logical line numbers.
7672         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
7673         (cpp_make_system_header): Similarly.
7674         (_cpp_execute_include): Stop line numbering hacks.  Store the
7675         line we will return to.
7676         * cpphash.h (CPP_BUF_LINE): Remove.
7677         (struct cpp_buffer): Remove lineno and pseudo_newlines.
7678         Add map and return_to_line.
7679         (_cpp_do_file_change): Update.
7680         * cppinit.c (cpp_start_read): Update line kludge.
7681         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
7682         (trigraph_ok): Use logical line numbers for diagnostics.
7683         (skip_block_comment): Likewise.
7684         (skip_whitespace): Likewise.
7685         (skip_line_comment): Use pfile->line instead.
7686         (_cpp_lex_token): Update to use logical line numbering exclusively.
7687         Handle BOL locally.  Accept new lines in directives, but keep
7688         pfile->line decremented.  Diagnostics use logical lines.  Update
7689         directive handling.
7690         * cpplib.c (SEEN_EOL): New.
7691         (skip_rest_of_line, check_eol): Use it.
7692         (end_directive): Increase line number when accepting the newline
7693         at the end of a directive.
7694         (run_directive): Simplify.
7695         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
7696         (_cpp_do_file_change): Update to take buffer line number as an
7697         argument, and store the current map in the cpp_reader.  Remove
7698         line number kludges.
7699         (_cpp_do__Pragma): Restore output position after a _Pragma.
7700         (cpp_push_buffer): Don't set output line or lineno.
7701         (_cpp_pop_buffer): Transfer more info from a faked buffer.
7702         Remove line kludge.  Set output_line.
7703         * cppmacro.c (builtin_macro): Update handling of __LINE__.
7704         (parse_arg): Use logical lines.
7705         (save_lookahead_token): Save EOFs too now.
7706         * cppmain.c (struct printer): Fix comments.
7707         (printer_init): Simplify, let caller do errors.
7708         (scan_translation_unit, check_multiline_token, dump_macro): Update.
7709         (maybe_print_line): Simplify.
7710         (print_line): Don't print a linemarker if -P.
7711         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
7712         (cb_file_change): Simplify.
7713         * line-map.h (LAST_SOURCE_LINE): Fix.
7714         (CURRENT_LINE_MAP): New.
7715
7716 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
7717
7718         * doloop.c (doloop_modify_runtime): Properly compute number of
7719         iterations if loop was unrolled.
7720
7721         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
7722         if their CSELIB_VAL_PTRs are.
7723
7724         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
7725         (setup_spill_pointers): Initialize it.
7726         (spill_restore_mem): Set it.
7727         (do_spill, do_restore): Use it to add REG_INC note.
7728         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
7729
7730         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
7731         asms if other insns are available.
7732
7733         * config/ia64/ia64.c (condop_operator): New predicate.
7734         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
7735         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
7736         patterns.
7737
7738         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
7739         temporary register than directly using a MEM.
7740
7741 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
7742
7743         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
7744         parameter in last change.
7745
7746 2001-08-04  Zack Weinberg  <zackw@panix.com>
7747
7748         * sparc.md: Don't use #if inside C test expression.
7749
7750 2001-08-04  Richard Henderson  <rth@redhat.com>
7751
7752         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
7753
7754 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7755
7756         * cpphash.h (struct cpp_reader): New member directive_line.
7757         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
7758         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
7759         do_pragma): Pass line to callbacks.
7760         (start_directive): Record line of directive.
7761         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
7762         cb_include): Similarly.
7763         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
7764         Similarly.
7765
7766 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
7767
7768         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
7769         comment.
7770
7771 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
7772
7773         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
7774
7775         * reload1.c (fixup_abnormal_edges): New static function.
7776         (reload): Use it.
7777
7778         * flow.c (need_fake_edge_p): New function.
7779         (flow_call_edges_add): Fix handling of noreturn and sibbling calls;
7780         avoid call insn to be very last insn in the insn stream.
7781
7782         * profile.c (branch_prob): Call flow_call_edges_add instead of
7783         doing that by hand; cleanup cfg to re-merge basic blocks once
7784         we are done.
7785
7786 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7787
7788         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
7789         are also on line-map.h.
7790         * cppfiles.c (stack_include_file): Update.
7791         * cpphash.h (struct cpp_buffer): New member return_at_eof.
7792         (_cpp_pop_buffer): New.
7793         * cppinit.c (cpp_destroy, cpp_finish): Update.
7794         (do_includes): Mark each buffer to return at EOF.
7795         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
7796         return as requested.
7797         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
7798         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
7799         * cpplib.h (cpp_pop_buffer): Remove.
7800         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
7801         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
7802         buffers.
7803         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
7804         to pop buffers.
7805         (do_preprocessing): Update.
7806         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
7807         * c-parse.in (_yylex): Similarly.
7808         * scan-decls.c (scan_decls): Similarly.
7809         * line-map.h: Update comments.
7810
7811         * objc/Make-lang.in (objc-act.o): Update dependencies.
7812
7813 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7814
7815         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
7816         and soft register for operand 0.
7817         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
7818
7819 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7820
7821         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
7822         register for operand 0.
7823         ("bitcmpqi_z_used"): Allow memory for operand 0.
7824         (split "bitcmpqi"): New split to handle address reg as operand 1.
7825
7826 2001-08-04  Andreas Jaeger  <aj@suse.de>
7827
7828         * gcse.c: Revert Daniel's last patch.
7829
7830 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
7831
7832         * sparc-protos.h: Add prototypes for fp_zero_operand and
7833         reg_or_0_operand.
7834         * sh-protos.h: Add prototype for fpul_operand.
7835
7836 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
7837
7838         * doc/extend.texi (Other Builtins): Fix typo in last change.
7839
7840 2001-08-03  Richard Henderson  <rth@redhat.com>
7841
7842         * target.h (gcc_target): Add asm_out.named_section,
7843         section_type_flags, have_named_sections.
7844         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
7845         (TARGET_HAVE_NAMED_SECTIONS): New.
7846         (TARGET_SECTION_TYPE_FLAGS): New.
7847
7848         * Makefile.in (toplev.o): Depend on TARGET_H.
7849         (varasm.o, dbxout.o): Likewise.
7850         * c-common.c (decl_attributes): Check targetm.have_named_sections
7851         instead of ifdef ASM_OUTPUT_SECTION_NAME.
7852         * dbxout.c (dbxout_function_decl): Likewise.
7853         (dbxout_function_end): Likewise.
7854         * toplev.c (compile_file): Likewise.
7855         * varasm.c (exception_section): Likewise.
7856         * cp/decl2.c (finish_objects): Likewise.
7857
7858         * defaults.h (EH_FRAME_SECTION): Remove.
7859         (EH_FRAME_SECTION_ASM_OP): Remove.
7860         (EH_FRAME_SECTION_NAME): New.
7861         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
7862         (UNIQUE_SECTION_P): Remove.
7863         * dwarf2out.c (SECTION_FORMAT): Remove.
7864         (ASM_OUTPUT_SECTION): Remove.
7865         (output_call_frame_info): Use named_section_flags.
7866         (output_comp_unit, dwarf2out_start_source_file): Likewise.
7867         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
7868         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
7869         * varasm.c (in_eh_frame, eh_frame_section): Remove.
7870         (named_section_flags): New.
7871         (named_section): Use it and targetm.section_type_flags.
7872         (resolve_unique_section): New.
7873         (assemble_start_function): Use it.
7874         (asm_emit_uninitialised, assemble_variable): Likewise.
7875         (default_section_type_flags): New.
7876         (default_no_named_section, default_elf_asm_named_section): New.
7877         (default_coff_asm_named_section, default_pe_asm_named_section): New.
7878         * output.h: Update varasm.c decls.
7879         (SECTION_*): New flags.
7880
7881         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
7882         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
7883
7884         * config/elfos.h (UNIQUE_SECTION_P): Remove.
7885         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
7886         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
7887         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
7888         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
7889         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
7890         * config/mips/elf.h, config/mips/elf64.h: Likewise.
7891         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
7892         * config/pa/pa64-hpux.h,
7893
7894         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
7895         (TARGET_ASM_NAMED_SECTION): New.
7896         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
7897         * config/alpha/vms.h, config/arm/coff.h: Likewise.
7898         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
7899         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
7900         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
7901         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
7902         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
7903         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
7904         * config/i386/sco5.h, config/i386/win32.h: Likewise.
7905         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
7906         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
7907         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
7908         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
7909         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
7910         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
7911         * config/sparc/sysv4.h: Likewise.
7912
7913         * config/nextstep.h: Error until named sections implemented.
7914
7915         * config/a29k/a29k.c (a29k_asm_named_section): New.
7916         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
7917         (vms_section_type_flags, vms_asm_named_section): New.
7918         * config/arm/arm.c (arm_elf_asm_named_section): New.
7919         * config/avr/avr.c (asm_output_section_name): Remove.
7920         * config/avr/avr-protos.h: Update.
7921         * config/c4x/c4x.c (c4x_asm_named_section): New.
7922         * config/h8300/h8300.c (h8300_asm_named_section): New.
7923         * config/i386/i386.c (sco_asm_named_section): New.
7924         * config/i386/winnt.c (SECTION_PE_SHARED): New.
7925         (i386_pe_section_type_flags): New.
7926         (i386_pe_asm_named_section): New.
7927         * config/i386/i386-protos.h: Update.
7928         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
7929         * config/mcore/mcore.c (mcore_asm_named_section): New.
7930         * config/mips/mips.c (iris6_asm_named_section): New.
7931         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
7932         instead of UNIQUE_SECTION_P.
7933         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
7934         (xcoff_asm_named_section): New.
7935         * config/sh/sh.c (sh_asm_named_section): New.
7936         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
7937
7938         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
7939         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
7940         (EH_FRAME_SECTION_NAME): New.
7941         (EXCEPTION_SECTION): New.
7942         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
7943         (DEBUG_*_SECTION): Remove.
7944         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
7945         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
7946         (EH_FRAME_SECTION_ASM_OP): Remove.
7947
7948         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
7949         (ASM_OUTPUT_SECTION_NAME): Remove.
7950         (TARGET_ASM_NAMED_SECTION): New.
7951         (TARGET_HAVE_NAMED_SECTIONS): New.
7952         (TARGET_SECTION_TYPE_FLAGS): New.
7953         (EH_FRAME_SECTION_ASM_OP): Remove.
7954         (EH_FRAME_SECTION_NAME): New.
7955
7956 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
7957
7958         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
7959         for complex expressions when cfun == 0.
7960         * doc/extend.texi: Document that __builtin_constant_p can be
7961         used in data initializers as well as functions.
7962
7963 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
7964
7965         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
7966         variable I locally, instead of expecting a declaration in the
7967         calling context.
7968
7969 2001-08-03  Richard Henderson  <rth@redhat.com>
7970
7971         * except.c (collect_one_action_chain): Add an explicit cleanup
7972         action if regions surrounding a catch were encoded entirely
7973         within the call-site entry.
7974
7975 2001-08-03  Richard Henderson  <rth@redhat.com>
7976
7977         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
7978         don't take REGNO of a non-register.
7979
7980 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7981
7982         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
7983         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
7984         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
7985         (__gthread_mutex_init_function): New function for mutex initialization.
7986
7987 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
7988
7989         * Makefile.in: Revert screwed up commit.
7990
7991 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7992
7993         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
7994         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
7995         merged by linker script to get a final _exit().
7996         (__do_global_dtors): New for destructor handling in specific exit
7997         section.
7998         (__do_global_ctors): New for constructors in specific install section.
7999         (__map_data_section): Map data sections before running constructors.
8000         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
8001         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
8002         (DTORS_SECTION_ASM_OP): Likewise.
8003         (CTORS_SECTION_FUNCTION): Define to force a reference to
8004         __do_global_ctors.
8005         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
8006
8007 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
8008
8009         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
8010
8011         * Makefile.in: Add df.h to gcse.c dependencies.
8012
8013 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8014
8015         * varasm.c (output_constant_def_contents): Use for the length of a
8016         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
8017         depending on which is larger.
8018
8019 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
8020
8021         * gcse.c: Include df.h for use as a dataflow analyzer.
8022         Remove regvec.
8023         Declaration of reg_set_info: gone.
8024         New df_analyzer variable used by store motion.
8025         (reg_set_info): Deleted.
8026         (mark_mem_regs): New function, analyze regs used by a mem.
8027         (store_ops_ok): Use dataflow analyzer results to determine if
8028         necessary regs are changed in the block.
8029         (find_moveable_store): Remove check for symbol ref, we can handle
8030         much more complex expressions now.
8031         (compute_store_table): Remove most of the code, it's unnecessary
8032         now that the dataflow analyzer records the info for us.
8033         (store_killed_after): Add parameter to say whether to do the
8034         store_ops_okay test, used to speed up testing when we already know
8035         the answer, and just want to know if the store itself was killed.
8036         (build_store_vector): Largely rewritten to calculate the various
8037         vectors properly, and somewhat optimized.
8038         (store_motion): Init the df_analyzer, get REG_DEF chains.
8039         Also handle trapping expressions (since mems almost always trap)
8040         (simple_mem): Redefine what a simple mem is.
8041
8042 2001-08-03  DJ Delorie  <dj@redhat.com>
8043
8044         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
8045         set from a constant part of the condition.
8046
8047 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
8048
8049         * mkdeps.c (deps_add_default_target): Make local variable
8050         ``start'' a const char pointer.
8051         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
8052
8053 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8054
8055         * doc/install.texi (Configuration): Fix markup.
8056         (Specific, i?86-*-udk): Likewise.
8057         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
8058         --with-gnu-ld.
8059         Document --enable-threads and --enable-libgcj status.
8060         (Specific, mips-sgi-irix*): Canonicalize triples.
8061         (Specific, mips-sgi-irix5): Warn about problems with this config.
8062         Mention required GNU as patch.
8063         Native assembler problems are fixed.
8064         (Specific, mips-sgi-irix6): Update O32 ABI support status.
8065         Document --enable-threads and --enable-libgcj status.
8066
8067 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
8068
8069         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
8070         of mkinstalldirs.
8071
8072 2001-08-03  Richard Henderson  <rth@redhat.com>
8073
8074         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
8075         constant data.
8076
8077 2001-08-03  Richard Henderson  <rth@redhat.com>
8078
8079         * rtlanal.c (find_first_parameter_load): Stop if we
8080         reach a CODE_LABEL at BOUNDARY.
8081
8082 2001-08-03  Richard Henderson  <rth@redhat.com>
8083
8084         * config/alpha/alpha.md (force_movdi): New insn.
8085         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
8086         Tweek FRP marking of VMS prologue insns.
8087         * config/alpha/vms.h (EPILOGUE_USES): New.
8088
8089 2001-08-02  Richard Henderson  <rth@redhat.com>
8090
8091         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
8092
8093 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
8094
8095         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
8096         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
8097         config/convex/convex.h, config/d30v/d30v.c,
8098         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
8099         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
8100         config/mips/mips.h, config/mn10200/mn10200.h,
8101         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
8102         config/v850/v850.h, config/vax/openbsd.h,
8103         config/vax/openbsd1.h, config/vax/ultrix.h,
8104         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
8105         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
8106         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
8107         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
8108         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
8109         in comments and documentation.
8110
8111 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8112
8113         * line-map.c: New.
8114         * line-map.h: New.
8115         * Makefile.in (line-map.o): New.
8116         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
8117         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
8118         * cpperror.c (print_containing_files): Similarly.
8119         (print_location): Update.  Don't output a space before _Pragma.
8120         * cppfiles.c (stack_include_file): Set to line 1 immediately.
8121         (stack_include_filee, cpp_make_system_header): Update.
8122         (_cpp_execute_include): Get logical line number right for calling
8123         as-yet-unterminated #include.
8124         * cpphash.h (struct cpp_reader): Add line_maps.
8125         (_cpp_do_file_change): Update.
8126         * cppinit.c (cpp_create_reader): Initialize line maps.
8127         (cpp_destroy): Destroy line maps.
8128         (cpp_start_read): Get logical line number right.
8129         * cpplex.c (parse_string): Only warn once for multi-line strings.
8130         Use boolean variable for null warning.
8131         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
8132         already.
8133         (do_include_common): End the directive early.
8134         (do_line): Don't warn about out-of-range lines in preprocessed
8135         source.  Update.  Remove unused variables.
8136         (_cpp_do_file_change): Update for new line mapping.
8137         (pragma_cb): New typedef.
8138         (cpp_register_pragma): Stop looking ahead before calling the
8139         handler.  Clean up.
8140         (do_pragma_system_header): End directive early.
8141         (cpp_get_line_maps): New.
8142         (cpp_pop_buffer): Fudge logical line.  Update.
8143         * cpplib.h: Include line-map.h
8144         (enum cpp_fc_reason): Remove.
8145         (struct cpp_file_change): Update.
8146         (cpp_get_line_maps): New.
8147         * cppmain.c (struct_printer): New member map.
8148         (cb_file_change): Update for new mappings.
8149         * fix-header.c (cb_file_change): Similarly.
8150
8151 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
8152
8153         * Makefile.in (libgcc.mk): Define mkinstalldirs.
8154         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
8155
8156 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
8157
8158         * config/vax/vax.c: include expr.h.
8159
8160 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
8161
8162         * Makefile.in ($(srcdir)/configure): Only rebuild in
8163         maintainer mode.
8164         ($(srcdir)/config.in): Only define in maintainer mode.
8165         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
8166
8167 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
8168
8169         * doc/install.texi (Install GCC: Binaries): Update Bull info.
8170
8171 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8172
8173         * gcc.c (set_collect_gcc_options): New function, split out from
8174         main.
8175         Ignore elided switches.
8176         (do_spec_1): Invoke before executing command.
8177         (set_input): Export.
8178         Move declaration ...
8179         * gcc.h (set_input): ... here.
8180         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
8181         file.
8182
8183 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
8184
8185         Kill -fhonor-std.
8186         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
8187         interaction.
8188         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
8189
8190 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
8191
8192         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
8193         for the unnamed instructions it expands to.
8194
8195 2001-08-02  Richard Henderson  <rth@redhat.com>
8196
8197         * regclass.c (call_really_used_regs): Conditionally define.
8198         (init_reg_sets_1): Don't use it if not defined.
8199         (fix_register): Similarly, don't set it.
8200
8201 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8202
8203         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
8204         Correct comment that had been missed in the previous change.
8205
8206 2001-08-01  Stan Shebs  <shebs@apple.com>
8207
8208         * config/darwin.c (machopic_stub_name): Try matching by name.
8209         (update_stubs): New function.
8210         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
8211         unconditionally.
8212
8213 2001-08-01  Richard Henderson  <rth@redhat.com>
8214
8215         * except.c (output_function_exception_table): Use assemble_align.
8216         * varasm.c (assemble_eh_label): Remove.
8217         (assemble_eh_align, assemble_eh_integer): Remove.
8218
8219 2001-08-01  Robert Lipe  <robertl@caldera.com>
8220
8221         * dwarfout.c: Remove reference to README.DWARF.
8222
8223 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
8224
8225         * regclass.c (call_really_used_regs): New array for registers which
8226         are actually used by a call.
8227         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
8228         new array.
8229         (fix_register): Set call_really_used too.
8230         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
8231         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
8232
8233 2001-08-01  Richard Henderson  <rth@redhat.com>
8234
8235         * read-rtl.c (read_name): Consider \r whitespace.
8236
8237 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
8238
8239         * config.gcc: Recognize powerpc-*-netbsd*.
8240
8241         * doc/install.texi (Host/target specific installation notes for
8242         GCC): Mention powerpc-*-netbsd*.
8243
8244         * config/rs6000/netbsd.h: New file.
8245         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
8246         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
8247         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
8248         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
8249         (TARGET_VERSION): Redefine.
8250
8251         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
8252         mcall-netbsd as a match for mcall-sysv.
8253         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
8254         (ncrti.S, ncrtn.S): New targets.
8255         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
8256
8257         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
8258         "netbsd' as a V4 ABI.
8259         (ASM_SPEC): Check for -mcall-netbsd.
8260         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
8261         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
8262         (LIB_SPEC, ENDFILE_SPEC): Ditto.
8263         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
8264         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
8265         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
8266         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
8267
8268         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
8269         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
8270
8271 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
8272
8273         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
8274         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
8275         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
8276         including "unwind-pe.h".
8277
8278 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
8279
8280         * rs6000.md (define_splits): Kill unused constraints.
8281
8282 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
8283                               Jan Hubicka  <jh@suse.cz>
8284
8285         * function.c (thread_prologue_and_epilogue_insns): Kill code
8286         dealing with non-existent CFG.
8287
8288 2001-08-01  Kazu Hirata  <kazu@hxi.com>
8289
8290         * alias.c: Fix comment formatting.
8291         * bitmap.c: Likewise.
8292         * builtins.c: Likewise.
8293         * calls.c: Likewise.
8294         * c-common.c: Likewise.
8295         * c-decl.c: Likewise.
8296         * c-dump.c: Likewise.
8297         * c-lex.c: Likewise.
8298         * collect2.c: Likewise.
8299         * combine.c: Likewise.
8300         * conflict.c: Likewise.
8301         * cppfiles.c: Likewise.
8302         * cppinit.c: Likewise.
8303         * cpplex.c: Likewise.
8304         * cpplib.c: Likewise.
8305         * cppmacro.c: Likewise.
8306         * cppspec.c: Likewise.
8307         * c-pragma.c: Likewise.
8308         * crtstuff.c: Likewise.
8309         * cse.c: Likewise.
8310         * cselib.c: Likewise.
8311         * c-semantics.c: Likewise.
8312         * c-typeck.c: Likewise.
8313
8314 2001-08-01  H.J. Lu <hjl@gnu.org>
8315
8316         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
8317
8318 2001-08-01  H.J. Lu <hjl@gnu.org>
8319
8320         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
8321
8322 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
8323
8324         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
8325         contextualizing Objective-C class name lookup by the lexer.
8326         (typespec_reserved_nonattr): Disable ObjC class name lookup after
8327         seeing a TYPESPEC.
8328         (protocoldef): Add support for forward @protocol declarations.
8329         (yylexname): Suppress ObjC class name lookup in certain contexts;
8330         re-enable after lookup is complete.
8331         (_yylex): Re-enable ObjC class name lookup when certain
8332         punctuation marks are seen.
8333
8334         * objc/objc-act.c (check_protocol_recursively): New function used
8335         for finding circular dependencies in protocols.
8336         (objc_declare_protocols): New function for handling forward
8337         @protocol declarations.
8338         (receiver_is_class_object): Detect the case when 'self' is used
8339         inside of a class method.
8340         (build_message_expr): Issue a warning if class method is desired
8341         but instance method is found instead.
8342         (conforms_to_protocol): Streamline.
8343         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
8344         protocol Foo, even if 'Bar foo' does not.
8345         (check_protocols): Streamline.
8346         (start_protocol): Add checks for circular and duplicate protocol
8347         definitions.
8348         (encode_aggregate_within): For typedefs of structs, encode the
8349         underlying struct.
8350         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
8351         (objc_declare_protocols): New prototype.
8352
8353 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8354
8355         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
8356         * cpplex.c (handle_newline): Update prototype.  Maintain logical
8357         line number.
8358         (skip_escaped_newlines, skip_block_comment, parse_string):
8359         Update accordingly.
8360         (_cpp_lex_token): Update, and store token position within the token.
8361         * cpplib.h (struct cpp_token): Add line and column entries.
8362         * cppmacro.c (replace_args): Position stringified tokens correctly.
8363
8364 2001-08-01  Andreas Jaeger  <aj@suse.de>
8365
8366         * basic-block.h: Add prototype for last_loop_beg_note.
8367
8368 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
8369
8370         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
8371         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
8372         comment.
8373         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
8374         while handling WITH_CLEANUP_EXPR node. Use second operand calling
8375         expand_decl_cleanup.
8376         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
8377         the first RTX.
8378         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
8379         operand while calling simple_cst_equal.
8380         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
8381         operand is the cleanup expression, the third is the RTL_EXPR.
8382         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
8383
8384 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
8385
8386         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
8387
8388 2001-07-31  matthew green  <mrg@eterna.com.au>
8389
8390         * config.gcc (i386-*-netbsdelf): New description.
8391         * config/i386/netbsd-elf.h: New file.
8392
8393 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
8394
8395         * loop.c (check_dbra_loop): Use single_set to compute
8396         jump_label.
8397
8398 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
8399
8400         PowerPC reorg and support for powerpc64-*-linux*.
8401
8402         Also fixes emitting of constants on 32 bit and 64 bit
8403         platforms.
8404
8405         * config.gcc: powerpc64-*-linux* is a new target.
8406         Things that needed aix.h now also include xcoff.h
8407
8408         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
8409         xcoff.h.
8410         Move AIX specific stuff into aix.h.
8411         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
8412         with more than just XCOFF now.
8413         (SET_ASM_OP): Remove, now defined where needed.
8414         (FUNCTION_PROLOGUE): New macro definition.
8415         (FUNCTION_EPILOGUE): New macro definition.
8416         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
8417
8418         * config/rs6000/xcoff.h: New file.
8419
8420         * config/rs6000/linux64.h: New file.
8421
8422         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
8423
8424 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
8425
8426         * rs6000.c (print_operand_address): Handle ELF syntax.
8427         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
8428         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
8429         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
8430
8431 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
8432
8433         * rs6000.c (rs6000_override_options): Only disable
8434         flag_function_sections for XCOFF.
8435         (exact_log2_cint_operand): New predicate.
8436         (reg_or_{add,sub}_cint64_operand): New predicates.
8437         (add_operand): Compare CONST_INT with fewer function calls.
8438         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
8439         (print_operand, case 'p'): Ensure positive operand.
8440         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
8441         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
8442         (PREDICATE_CODES): Add new predicates.
8443         * rs6000.md (addsi3): Split 32-bit constants more correctly.
8444         (divsi3, modsi3): Ensure positive power-of-2.
8445         (adddi3): Use new predicate.  Split 32-bit constants more
8446         correctly.  Re-arrange splitter to handle any constant.
8447         (subdi3): Use new predicate.
8448         (divdi3, moddi3): Ensure positive power-of-2.
8449         (movdi): Use rs6000_emit_set_const.
8450         (load_toc_v4_pic_di): Delete.
8451
8452 2001-07-31  Graham Stott <grahams@redhat.com>
8453
8454         * function.c (pad_below): Revert 2001-07-26 patch.
8455
8456 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
8457
8458         * reg-stack (convert_regs_1): Fix best edge condition.
8459
8460 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
8461
8462         * jump.c (duplicate_loop_exit_test): Better test for jumps
8463         entering the loop; create loop pre_header.
8464
8465 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
8466
8467         * doc/install.texi: Add s390 and s390x as new targets.
8468         * doc/invoke.texi: Add documantation of S/390 and zSeries
8469         target options.
8470         * doc/md.texi: Add documantation of S/390 and zSeries constraints.
8471
8472 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
8473
8474         * config/m68k/m68k.md: Replace all general_operand with
8475         nonimmediate_operand for all destinations.
8476         * config/m68k/m68k.c (not_sp_operand): Likewise.
8477
8478 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
8479
8480         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
8481
8482 2001-07-30  Richard Henderson  <rth@redhat.com>
8483
8484         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
8485         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
8486
8487 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
8488
8489         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
8490         Add missing doc strings
8491         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
8492         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
8493
8494 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
8495
8496         * i386.c (ix86_output_main_function_alignment_hack): New function.
8497         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
8498
8499         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
8500         edges by EDGE_DFS_BACK flag.
8501         (dump_edge_info): Add dfs_back flag.
8502         * basic-block.h (EDGE_DFS_BACK): New constant.
8503         (mark_dfs_back_edges): Declare.
8504         * alias.c (loop_p): Remove.
8505         (mark_constant_function): Use mark_dfs_back_edges.
8506
8507         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
8508         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
8509         (compensate_edge): Break out from ...
8510         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
8511         (convert_regs_2): Set block_done once block is really done;
8512         Do updating of the predecesors counts.
8513
8514         * toplev.c (rest_of_compilation): Recompute block_for_insn
8515         before post-reload cfg_cleanup.
8516         * function.c (thread_prologue_epilogue_insns):
8517         Call set_block_for_new_insns when emitting prologue directly.
8518
8519 2001-07-30  Andreas Jaeger  <aj@suse.de>
8520
8521         * jump.c: Add prototype for mark_modified_reg.
8522
8523         * cse.c (set_live_p): Add unused attribute.
8524
8525         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
8526         overflow.
8527         (scan_for_source_files): Use long for count to avoid overflow.
8528         (output_data): Likewise.
8529         (output_data): Don't use string concatatenation to silence gcc
8530         -traditional.
8531
8532         * predict.c: Fix typos and grammar.
8533
8534         * gcse.c (insert_insn_end_bb): Remove unused variables.
8535
8536 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
8537
8538         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
8539         (attempt_auto_inc): LIkewise.
8540         (mark_used_reg): Likewise.
8541         (try_pre_increment_1): Likewise.
8542         * regclass.c (regclass): Likewise.
8543         * global.c (allocno_compare): Update comment; change scaling factor.
8544         * local-alloc.c (QTY_CMP_PRI): Likewise.
8545         * regs.h (REG_FREQ_FROM_BB): New.
8546         (REG_FREQ_MAX): Likewise.
8547
8548 2001-07-30  H.J. Lu <hjl@gnu.org>
8549
8550         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
8551         -D_GNU_SOURCE.
8552
8553 2001-07-30  H.J. Lu  (hjl@gnu.org)
8554
8555         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
8556         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
8557         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
8558
8559 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
8560
8561         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
8562         as -mthumb-interwork when -mcpu=arm7 is specified.
8563
8564 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
8565
8566         * predict.def (noreturn, loop branch, loop exit): Mark as first
8567         match heuristics.
8568
8569 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
8570
8571         * combine.c (try_combine): Avoid barrier after noop jumps.
8572
8573 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8574
8575         * cpphash.h (struct cpp_reader): Remove import_warning.
8576         * cpplib.c (skip_rest_of_line): Don't bother turning off
8577         macro expansion.
8578         (parse_include): Move include handling to...
8579         (do_include_common): ... here.  Move import warning from...
8580         (do_import): ... here.
8581         (do_pragma_poison): Don't do a callback for poison identifiers.
8582         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
8583         * cppmain.c (setup_callbacks): Similarly.
8584
8585 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
8586
8587         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
8588         handle multiple sets.
8589         * except.c (sjlj_mark_call_sites): .... here.
8590         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
8591
8592 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
8593
8594         Suggested by Richard Henderson and Richard Kenner:
8595         * combine.c (recog_for_combine): Use the fake recog
8596         only if instruction does not match.
8597         * rtl.h (NOOP_MOVE_INSN_CODE): New.
8598         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
8599
8600         * combine.c (try_combine): Discover noop jump as direct jump.
8601
8602 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
8603
8604         * df.c (df_rd_global_compute): Add successors to worklist, not
8605         current item.
8606         (df_ru_global_compute): Ditto.
8607
8608 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
8609
8610         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
8611         increment REG_N_SETS.
8612
8613 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
8614
8615         * sbitmap.h: New prototype for sbitmap_a_xor_b.
8616
8617         * sbitmap.c (sbitmap_a_xor_b): New function.
8618         ifdef the basic block stuff on IN_GCC.
8619
8620 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8621
8622         * cppexp.c (parse_defined): Always record the macro name.
8623         (lex): Don't worry about identifiers, or special-case
8624         CPP_NOT here.
8625         (_cpp_parse_expr): Figure out at the end of the routine
8626         whether we saw a valid !defined() expression.
8627         * cppfiles.c (stack_include_file): Update for mi_valid.
8628         (_cpp_pop_file_buffer): Similarly.
8629         * cpplex.c (_cpp_lex_token): Similarly.
8630         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
8631         mi_if_not_defined, mi_lexed): Remove.
8632         (mi_valid): New.
8633         * cpplib.c (do_if): Simplify.
8634         (do_endif, push_conditional, _cpp_handle_directive): Update
8635         for renaming of mi_state to mi_valid.
8636 doc:
8637         * cpp.texi: Add index entries for digraphs, and add comment
8638         that C++ refers to them as alternative tokens.
8639
8640 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
8641
8642         * basic-block.h (CLEANUP_PRE_LOOP): New.
8643         * except.c (finish_eh_generation): Update call of cleanup_cfg.
8644         * sibcall.c (optimize_sibling_calls): Likewise.
8645         * toplev.c (rest_of_compilation): Likewise.
8646         * flow.c (try_forward_edges): Take argument MODE;
8647         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
8648         (try_optimize_cfg): Update call of try_forward_edges.
8649
8650 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
8651                                 Jan Hubicka  <jh@suse.cz>
8652
8653         * (validate_replace_rtx_1): Fix simplification of MINUS.
8654
8655 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8656
8657         PR preprocessor/3669
8658         * cppinit.c (init_dependency_output): Turn off dump requests
8659         if sending dependencies to stdout.
8660
8661 2001-07-28  Richard Henderson  <rth@redhat.com>
8662
8663         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
8664         not optimizing.
8665
8666 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
8667
8668         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
8669
8670 2001-07-28  Kazu Hirata  <kazu@hxi.com>
8671
8672         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
8673         is VAR_DECL first to prevent an ICE.
8674
8675 2001-07-28  Richard Henderson  <rth@redhat.com>
8676
8677         * varasm.c (immed_real_const_1): Don't elide special cases for
8678         nested functions.
8679         (clear_const_double_mem): Clear const_tiny_rtx too.
8680
8681 2001-07-28  Richard Henderson  <rth@redhat.com>
8682
8683         * dwarf2out.c (dw_val_class_offset): New.
8684         (struct dw_ranges_struct, dw_ranges_ref): New.
8685         (ranges_table, ranges_table_allocated): New.
8686         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
8687         (add_AT_offset, add_ranges, output_ranges): New.
8688         (print_die, output_die): Handle dw_val_class_offset.
8689         (attr_checksum, size_of_die, value_format): Likewise.
8690         (gen_lexical_block_die): Handle non-contiguous blocks.
8691         (gen_block_die): Likewise.
8692         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
8693         if needed.  Dump the ranges table.
8694         * final.c (final_start_function): Remove unnecessary notes and
8695         rebuild the block tree before numbering the blocks.
8696         * function.c (reorder_blocks_0): Walk the existing block tree
8697         to unmark all blocks.
8698         (reorder_blocks_1): Create block fragments when duplicate block
8699         notes are seen.
8700         (reorder_fix_fragments): New.
8701         (reorder_blocks): Call it.
8702         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
8703
8704 2001-07-28  Richard Henderson  <rth@redhat.com>
8705
8706         * emit-rtl.c (adjust_address): Make a copy of the memory address.
8707
8708 2001-07-28  Richard Henderson  <rth@redhat.com>
8709
8710         * flow.c (add_to_mem_set_list): New function.
8711         (init_propagate_block_info): Use it.
8712         (mark_set_1): Likewise.
8713         (insn_dead_p): Canonicalize memory address for dead store
8714         comparison.  Allow wider mode stores to kill narrower mode stores.
8715         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
8716         (invalidate_mems_from_set): Don't handle MEMs.
8717
8718 2001-07-28  Kazu Hirata  <kazu@hxi.com>
8719
8720         * config/h8300/h8300.h: Fix formatting.
8721
8722 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
8723
8724         * basic-block.h (EDGE_FREQUENCY): New macro.
8725         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
8726         for new BB/edges.
8727         * flow.c (find_sub_basic_blocks): Likewise.
8728         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
8729         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
8730
8731         * predict.c (DEF_PREDICTOR): New argument FLAGS.
8732         (HITRATE): New macro.
8733         (PRED_FLAG_FIRST_MATCH): New constant.
8734         (predictor_info): New field flgags.
8735         (combine_predictions_for_insn): Use DS theory to combine
8736         probabilities; set the edge probabilities when finished.
8737         (estimate_probability): Avoid duplicated matches
8738         of LOOP_BRANCH heuristics for nested loops; update comment.
8739         * predict.def: Add flags for each prediction, set probabilities
8740         according to B&L paper.
8741         * predict.h (DEF_PREDICTOR): New argument FLAGS.
8742
8743         * profile.c (compute_branch_probabilities):  Cleanup way the edge
8744         probabilities are computed and REG_BR_PROB notes are dropped; if
8745         values does not match, emit error.
8746         (init_branch_prob): Do error instead of warning when profile driven
8747         feedback is missing or corrupt.
8748
8749 2001-07-27  DJ Delorie  <dj@redhat.com>
8750
8751         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
8752         against a constant, try to adjust the compare to have the desired
8753         constant in it so that min/max optimizations happen more often.
8754
8755 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
8756
8757         * flow.c (last_loop_beg_note): New function.
8758         (redirect_edge_and_branch): Use it.
8759         (split_edge): Likewise.
8760
8761         * alias.c (loop_p): Avoid uninitialized memory access.
8762
8763         * flow.c (try_forward_edges): Avoid accessing freed memory.
8764
8765         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
8766         variable access.
8767
8768 2001-07-26  Andrew Haley  <aph@redhat.com>
8769         Joern Rennecke <amylaar@redhat.com>
8770
8771         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
8772         (SUBTARGET_CPP_ENDIAN_SPEC): New.
8773         (SUBTARGET_CPP_SPEC): New.
8774         (CPP_SPEC): Remove.
8775         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
8776         (SUBTARGET_CPP_PTR_SPEC): New.
8777         (CPP_DEFAULT_CPU_SPEC): New.
8778         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
8779         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
8780         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
8781         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
8782         (SUBTARGET_CPP_SPEC): Define as an empty string.
8783
8784 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8785
8786         * doc/install.texi (Configuration): Properly link the host
8787         specific instructions also when generating HTML.
8788
8789 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
8790
8791         * flow.c (redirect_edge_and_branch_force): Test
8792         target->global_live_at_start.
8793
8794 2001-07-26  Richard Henderson  <rth@redhat.com>
8795
8796         * simplify-rtx.c (avoid_constant_pool_reference): Export.
8797         * rtl.h (avoid_constant_pool_reference): Declare it.
8798         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
8799         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
8800
8801 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
8802
8803         * rtl.h (cleanup_barriers): Declare.
8804         * jump.c (cleanup_barriers): New function.
8805         * toplev.c (rest_of_compilation): Call cleanup_barriers
8806         before loop optimizer and after bb_reorder.
8807
8808         * flow.c (back_edge_of_syntactic_loop_p): New.
8809         (split_edge): Use it.
8810
8811 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8812
8813         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
8814
8815 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
8816
8817         * cse.c (cse_process_notes): Replace any registers if the address
8818         remains valid.
8819
8820 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
8821
8822         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
8823         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
8824         (propagate_block): Update prototype.
8825         * flow.c (update_life_info): Simplify the CFG and
8826         recalculate the global regs which are alive when
8827         removing dead code during a global update.
8828         (propagate_block): Return non-zero if an INSN is
8829         deleted.
8830
8831 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8832
8833         * Makefile.in (LIBICONV): Define.
8834
8835 2001-07-26  Catherine Moore  <clm@redhat.com>
8836
8837         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
8838         of conditional to avoid tree checking errors.
8839
8840 2001-07-26  Kazu Hirata  <kazu@hxi.com>
8841
8842         * regmove.c (regmove_optimize): Don't replace a reg with
8843         another reg of a different mode.
8844
8845 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
8846
8847         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
8848         limit length of dependancy flush list.
8849         * params.h (MAX_PENDING_LIST_LENGTH): Define.
8850         * sched-int.h  (struct deps): Add pending_flush_length field.
8851         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
8852         has 1 element in it.
8853         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
8854         (sched_analyze): After a jump, if the pending memory flush list is too
8855         large, flush the pending lists.
8856         (init_deps): Initialize pending_flush_length to 0.
8857         * doc/invoke.texi (max_pending_list_length): Document parameter.
8858
8859 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
8860
8861         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
8862         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
8863         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
8864
8865 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8866
8867         * cpphash.h (struct_lexer_state): Delete was_skipping.
8868         Move skipping here from struct cpp_reader.
8869         * cpplex.c (parse_identifier): Update.
8870         (_cpp_lex_token): Don't skip tokens in a directive.
8871         * cpplib.c (struct if_stack): Update.
8872         (start_directive, end_directive): Don't change skipping state.
8873         (_cpp_handle_directive): Update.
8874         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
8875         (do_else, do_endif): Update; only check for excess tokens if not
8876         in a skipped conditional block.
8877         (push_conditional): Update for new struct if_stack.
8878
8879 2001-07-26  Graham Stott  <grahams@redhat.com>
8880
8881         * function.c (locate_and_pad_parm): Also pad initial offset
8882         so that the total argument size also includes the padding.
8883
8884 2001-07-26  Graham Stott <grahams@redhat.com>
8885
8886         * gensupport.c (alter_output_for_insn): Correct enable checking failure
8887         change XSTR to XTMPL.
8888
8889         (process_one_cond_exec): Likewise
8890
8891 2001-07-25  Richard Henderson  <rth@redhat.com>
8892
8893         * varasm.c (assemble_variable): Create DECL_RTL before setting
8894         TREE_ASM_WRITTEN.
8895
8896 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
8897
8898         * predict.c (estimate_probability): Avoid duplicated predictions.
8899
8900         * loop.c (find_and_verify_loops): Grok multiple barriers.
8901
8902 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8903
8904         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
8905
8906         * dbxout.c: Consistently use putc instead of fputc.
8907         (print_wide_int): New function; call instead of direct fprintf.
8908         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
8909         (dbxout_type_fields, dbxout_type_method_1): Likewise.
8910         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
8911         (print_int_cst_octal): Likewise.
8912         (print_octal): Show we wrote characters.
8913         (dbxout_type): Set have_used_extensions in more places.
8914
8915 2001-07-25  Catherine Moore  <clm@redhat.com>
8916
8917         * config/v850/v850.c (v850_va_arg):  Use addr
8918         instead of valist to build incr.
8919
8920 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
8921
8922         * flow.c (delete_dead_jumptables): New function.
8923         (life_analyzis): Call it.
8924         * bb-reorder.c (skip_insns_after_block): Handle contradictory
8925         sequences.
8926
8927 2001-07-25  Richard Henderson  <rth@redhat.com>
8928
8929         * except.c (reachable_handlers): Handle a region being removed
8930         out from under a RESX.
8931
8932 2001-07-25  Richard Henderson  <rth@redhat.com>
8933
8934         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
8935         swap GE/GT if it is an fp comparison.
8936
8937 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
8938
8939         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
8940         operands.
8941
8942 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
8943
8944         * ssa.c (rename_insn_1): Do not wrap an assignment to a
8945         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
8946         glitch.
8947
8948         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
8949         throw an exception.
8950         (visit_expression): When attempting to simplify an expression,
8951         retrieve any modes for arguments before they are simplified
8952         to constants.
8953
8954 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
8955             Janis Johnson  <janis@us.ibm.com>
8956
8957         * stmt.c (expand_goto): A nonlocal goto can be a call too.
8958         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
8959         pointer parameters to match documented usage of nonlocal_goto.
8960         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
8961         parameters to their correct order.
8962         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
8963         parameters to their correct order.
8964
8965 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
8966
8967         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
8968
8969 2001-07-25  Jan Hubicka  <jh@suse.cz>
8970             Richard Henderson  <rth@redhat.com>
8971
8972         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
8973         the sequence.
8974         (make_edges): New argument update_p; populate the edge cache if set.
8975         (find_basic_blocks): Update make_edges invocation.
8976
8977 2001-07-24  Joel Sherrill <joel@OARcorp.com>
8978
8979         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
8980
8981 2001-07-24  Joel Sherrill <joel@OARcorp.com>
8982
8983         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
8984         -Acpu and -Amachine.h.
8985         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
8986         Corrected header to say ELF not a.out.
8987         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
8988         when given -msoft-float.
8989
8990 2001-07-24  Joel Sherrill <joel@OARcorp.com>
8991
8992         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
8993         extra multilib parts like arm-elf.
8994         (i960-*-coff*, i960-*-rtems): Should not use collect2.
8995         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
8996         crtfini.o as extra multilib parts.
8997
8998 2001-07-24  Joel Sherrill <joel@OARcorp.com>
8999
9000         * configure.in: Add rtems as a supported thread model.
9001         * gthr-rtems.h: Add missing entry point __gthread_active_p.
9002         * configure: Rebuilt.
9003
9004 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
9005
9006         * stor-layout.c (get_mode_alignment): make it work when
9007         BITS_PER_UNIT is not a power of two.
9008         * builtins.c (get_pointer_alignment): Likewise.
9009
9010 2001-07-24  Richard Henderson  <rth@redhat.com>
9011
9012         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
9013         the retrieved constant into the expected mode.
9014
9015 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
9016
9017         * flow.c (try_simplify_condjump): Avoid duplicated edges.
9018         (verify_flow_info): Check for duplicated edges; clarify
9019         error reporting.
9020
9021         * flow.c (block_label): Update basic_block_for_insn.
9022         (commit_edge_insertions): Call compute_bb_for_insn.
9023
9024         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
9025         returns too.
9026
9027         * flow.c (redirect_edge_and_branch,
9028         try_optimize_cfg): Use redirect_edge_succ_nodup
9029         (redirect_edge_succ_nodup): New.
9030         * basic_block.h (redirect_edge_succ_nodup): Declare.
9031
9032         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
9033         after gcse.
9034
9035 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
9036
9037         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
9038         (try_crossjump_to_edge): Update commetns.
9039         (try_crossjump_bb): Likewise.
9040
9041 2001-07-24  Richard Henderson  <rth@redhat.com>
9042
9043         * combine.c (distribute_notes): Move set of need_refresh
9044         for noop_move_p down to catch all cases.
9045
9046 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
9047
9048         * recog.c (split_all_insns_noflow): New.
9049         * rtl.h (split_all_insns_noflow): Declare.
9050         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
9051         * m68hc11.c (m68hc11_reorg): Likewise.
9052         * sh.c (machine_dependent_reorg): Likewise.
9053         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
9054         call.
9055
9056 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
9057
9058         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
9059         (ashlsi3_n splitter): Likewise.
9060         (lshrsi3_n splitter): Likewise.
9061
9062         (GOTaddr2picreg): Make const SImode.
9063         (sym_label2reg): Likewise.
9064         (symGOT2reg): Likewise.
9065         (symGOTOFF2reg) Likewise.
9066
9067         (casesi_worker_0): Make unspec SImode.
9068
9069 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
9070
9071         * config/sh/sh.c (barrier_align): Check that an operand really is
9072         an insn before extracting its INSN_CODE.
9073
9074 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
9075
9076         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
9077         dangling else.
9078
9079         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
9080         for SImode to prevent overflow.
9081
9082 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9083
9084         * config/mips/irix6-libc-compat.c: New file.
9085         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
9086         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
9087         passing workaround.
9088
9089 2001-07-24  lars brinkhoff  <lars@nocrew.org>
9090
9091         * rtl.texi (REG_POINTER): Document.
9092         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
9093         QFmode, HFmode, TQFmode, QCmode, and HCmode.
9094
9095 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
9096
9097         * flow.c (delete_noop_moves): Do not confuse libcall regions.
9098
9099 2001-07-23  Richard Henderson  <rth@redhat.com>
9100
9101         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
9102
9103 2001-07-23  Kazu Hirata  <kazu@hxi.com>
9104
9105         * config/h8300/h8300-protos.h: Add a prototype for
9106         general_operand_dst_push.
9107         * config/h8300/h8300.c (general_operand_dst_push): New.
9108         * config/h8300/h8300.h (OK_FOR_T): New.
9109         (EXTRA_CONSTRAINT): Use it.
9110         * config/h8300/h8300.md (movqi_push): Remove and integrate into
9111         the existing movqi pattern.
9112         (movhi_push): Likewise.
9113
9114         * reload.c: Fix comment typos.
9115
9116 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
9117
9118         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
9119
9120 2001-07-23  H.J. Lu  (hjl@gnu.org)
9121
9122         * doc/extend.texi: Update __builtin_return_address and
9123         __builtin_frame_address.
9124
9125 2001-07-23  Richard Henderson  <rth@redhat.com>
9126
9127         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
9128         before CSE.
9129         * config/i386/i386.md: New setcc+movzbl peephole2.
9130
9131 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9132
9133         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
9134         * objc/objc-act.c: Include debug.h.
9135         (synth_module_prologue): Save and restore debug hooks too.
9136
9137 2001-07-23  lars brinkhoff  <lars@nocrew.org>
9138
9139         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
9140         and C4X_FLOAT_FORMAT.
9141         (BOOL_TYPE_SIZE): Document.
9142
9143 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
9144
9145         * unroll.c (loop_iterations): Fix miscalculation of initial
9146         giv offset.
9147
9148 2001-07-13  Andrew Haley  <aph@redhat.com>
9149
9150         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
9151         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
9152         * config/sh/sh.c (sh_can_redirect_branch): New function.
9153         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
9154         * reorg.c (steal_delay_list_from_target): Use
9155         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
9156
9157 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
9158
9159         * flow.c (try_simplify_condjump): Unlink insn chain on
9160         fallthru edge; use can_fallthru.
9161
9162 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
9163
9164         * basic-block.h (find_sub_basic_block): Declare.
9165         * flow.c (make_edges): New arguments MIN and MAX;
9166         (find_sub_basic_blocks): Revamp to use make_edges
9167         and purge_dead_edges.
9168         (find_basic_blocks): Update call of find_sub_basic_block.
9169
9170         * recog.c (split_all_insns): Always expect CFG to be consistent;
9171         call find_sub_basic_blocks in case something has changed.
9172         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
9173         has been built.
9174
9175         * basic-block.h (delete_noop_moves): Declare.
9176         * combine.c (combine_instructions): Call it.
9177         (recog_for_combine): Tolerate noop moves
9178         (distribute_notes): Force refresh when register dies at noop move.
9179         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
9180         too.
9181         (life_analysis): Update delete_noop_moves call.
9182         (set_noop_p): Move too ...
9183         * rtlanal.c (noop_move_p): ... here.
9184         * rtl.h (noop_move_p): Declare.
9185
9186         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
9187         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
9188         after combine.
9189         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
9190         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
9191
9192 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
9193
9194         * reload.c (push_reload): Fix typo in comment.
9195         (find_reloads_address): Ditto.
9196         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
9197
9198 2001-07-22  Richard Henderson  <rth@redhat.com>
9199
9200         * flow.c: Grammar check and clarify a lot of comments.
9201         (try_simplify_condjump): Rename variables to be clearer.
9202         (try_forward_edges): Skip complex and fallthru edges.
9203         Rearrange tests to avoid duplicate checks.
9204         (flow_find_cross_jump): Likewise.
9205         (outgoing_edges_match): Allow match if neither branch has
9206         probability data.  Loosen probability match to 5%.
9207         (try_crossjump_to_edge): Hoist repeated indirection into
9208         local variables.
9209         (try_crossjump_bb): Don't check complex edges.  Eliminate
9210         redundant crossjump tests.
9211         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
9212         checks before more expensive checks.
9213
9214 2001-07-22  Richard Henderson  <rth@redhat.com>
9215
9216         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
9217         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
9218         arguments.
9219
9220 2001-07-22  Richard Henderson  <rth@redhat.com>
9221
9222         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
9223         (const_sint32_operand): Likewise.
9224         * m68k.md (anon mulsi pattern): Use const_int_operand not
9225         const_sint32_operand.
9226         (umulsi3_highpart): Zero extend a constant input.
9227         (smulsi3_highpart): Don't bother checking SImode constant.
9228         (const_umulsi3_highpart): Give op3 DImode.
9229         (const_smulsi3_highpart): Likewise.
9230
9231 2001-07-22  Richard Henderson  <rth@redhat.com>
9232
9233         * flow.c (split_block): Make sure bb_note is included in the
9234         new block when splitting before a label.
9235
9236 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
9237
9238         * basic-block.h (redirect_edge_and_branch_force,
9239         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
9240         * flow.c (redirect_edge_and_branch_force,
9241         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
9242         (redirect_edge_and_branch_force): Fix copying of lifeness information.
9243         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
9244         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
9245         instead of label; update CFG after transformation.
9246         (find_if_case_1): Update call, use redirect_edge_and_branch_force
9247         for finishing the transformation; handle even case where ELSE
9248         does not follow THEN.
9249         (find_if_case_2): Update call of dead_or_predictable; simplify
9250         CFG update.
9251
9252         * emit-rtl.c (split_branch_probability): New global variable.
9253         (try_split): Take care to set split_branch_probability and
9254         create REG_BR_PROB note for new jump insns.
9255         * md.texi (define_split): Document new feature.
9256
9257         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
9258
9259 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
9260
9261         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
9262         (asm_out_file): Remove redundant declaration.
9263         (assemble_asm): Remove old #if 0 block.
9264         (assemble_variable): Remove end of function; debug output is
9265         now handled with global_decl.  Remove old #if 0 block.  Update.
9266         Remove saved_in_section and associated no-op code.
9267         * Makefile.in (varasm.o): Correct dependencies.
9268
9269 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
9270
9271         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9272         the definition in defaults.h.
9273
9274 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
9275
9276         * jump.c: Update comments.
9277         (delete_barrier_successors, delete_unreferenced_labels,
9278         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
9279         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
9280         jump_optimize, jump_optimize_minimal): Kill.
9281         (rebuild_jump_labels): Move code from jump_optimize_1.
9282         (purge_line_number_notes): Likewise.
9283         (copy_loop_headers): Likewise.
9284         * reg-stack.c: Update comment.
9285         * stmt.c: Likewise.
9286         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
9287         JUMP_AFTER_REGSCAN): Kill.
9288         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
9289         purge_line_number_notes and copy_loop_headers.
9290
9291 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
9292            Richard Henderson  <rth@redhat.com>
9293
9294         * dbxout.c (dbxout_global_decl): New.
9295         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
9296         * sdbout.c (sdbout_finish): New.
9297         (sdbout_debug_hooks): Use it, add comments.
9298         (sdbout_global_decl): Defer initialised public vars to
9299         sdbout_finish.
9300         * varasm.c (assemble_variable): Don't output debug information
9301         for file-scope variables.
9302
9303 2001-07-22  Richard Henderson  <rth@redhat.com>
9304
9305         * config/alpha/alpha.c (get_trap_mode_suffix): New.
9306         (get_round_mode_suffix): New.
9307         (print_operand): Use them for [/].  Remove support for [&'`()+].
9308         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
9309         * config/alpha/alpha.md (attr round_suffix): New.
9310         (attr trap_suffix): New.
9311         (all insns): Set them appropriately.  Use %/ instead of the
9312         myriad punctuators.
9313
9314 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9315
9316         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
9317
9318 2001-07-22  Richard Henderson  <rth@redhat.com>
9319
9320         * regrename.c (regrename_optimize): Compute nregs for each
9321         potential target register.
9322
9323 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
9324            Richard Henderson  <rth@redhat.com>
9325
9326         * dbxout.c (dbxout_global_decl): New.
9327         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
9328         * sdbout.c (sdbout_finish): New.
9329         (sdbout_debug_hooks): Use it, add comments.
9330         (sdbout_global_decl): Defer initialised public vars to
9331         sdbout_finish.
9332         * varasm.c (assemble_variable): Don't output debug information
9333         for file-scope variables.
9334
9335 2001-07-21  H.J. Lu  (hjl@gnu.org)
9336
9337         * config/mips/mips.c (mips_cpu): Moved into ...
9338         (override_options): Here.
9339
9340         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
9341         mips_tune.
9342         (mips_cpu): Removed.
9343
9344 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9345
9346         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
9347         ("iorqi3"): Likewise.
9348         ("xorqi3"): Likewise.
9349         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
9350         ("*subhi3_sp): Likewise.
9351         ("*subhi3"): Likewise.
9352         ("extendhisi2"): Accept D, X and Y as source operand to avoid
9353         reload problems.
9354
9355 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
9356
9357         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
9358         * config/freebsd.h: Likewise.
9359         * config/linux.h: Likewise.
9360         * config/openbsd.h: Likewise.
9361         * config/alpha/linux-elf.h: Likewise.
9362         * config/arm/linux-elf.h: Likewise.
9363         * config/d30v/d30v.h: Likewise.
9364         * config/fr30/fr30.h: Likewise.
9365         * config/ia64/aix.h: Likewise.
9366         * config/ia64/ia64.h: Likewise.
9367         * config/mips/linux.h: Likewise.
9368         * config/pj/pj.h: Likewise.
9369         * config/rs6000/linux.h: Likewise.
9370         * config/sparc/linux.h: Likewise.
9371         * config/sparc/linux64.h: Likewise.
9372
9373 2001-07-20  Bruce Korb  <bkorb@gnu.org>
9374
9375         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
9376         because getc() and char* may disagree on signedness.
9377
9378 2001-07-20  Richard Henderson  <rth@redhat.com>
9379
9380         * doc/rtl.texi (REG_DEAD): Update for current semantics.
9381
9382         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
9383         insns to delete in the presence of cc0 in a jump insn.
9384
9385 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
9386                                 Jan Hubicka  <jh@suse.cz>
9387
9388         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
9389         of doing the change by hand.
9390
9391 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
9392
9393         * rtlanal.c (set_noop_p): Return true for noop jumps.
9394
9395         * expr.c (emit_single_push_insn): Add call to push expander.
9396         * expr.h (optab_index): Add OTI_push
9397         (push_optab): New constant.
9398         * genopinit.c (optabs): Add push_optab.
9399         * optabs.c (init_optab): Init push optab.
9400         * md.texi (push??1): Document
9401
9402 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9403
9404         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
9405         expand to emit the pattern; put a REG_INC note for push/pop
9406         instructions.
9407         ("movdf", "movdf_internal"): Likewise.
9408         ("movsi", "movsi_internal"): Likewise.
9409         ("movsf", "movsf_internal"): Likewise.
9410         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
9411
9412 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9413
9414         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
9415         gen_highpart.
9416
9417 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
9418
9419         * params.def: Change default max inline insns to 100.
9420
9421 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
9422
9423         * combine.c (combine_simplify_rtx): Generate a new shift operation
9424         when simplifying the first operand of a (neg (ashift)) expression.
9425
9426 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
9427
9428         * regclass.c (N_REG_INTS): Use only 32 bits per element.
9429
9430 2001-07-20  Kelley Cook  <kelley.cook@home.com>
9431
9432         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
9433         information.   Move rest into ...
9434         (*-*-solaris): ... here.  Eliminate redundant information and
9435         reword necessary packages section.  Delete 4.x assembler bug info.
9436         (sparc-sun-*): Merge into ...
9437         (sparc-sun-sunos*): here.
9438
9439 2001-07-20  Catherine Moore  <clm@redhat.com>
9440
9441         * config/v850/v850.md (casesi): Generate LABEL_REF
9442         with Pmode.
9443
9444 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
9445
9446         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
9447         * i386.c (ix86_zero_extend_to_Pmode): Make global.
9448         * i386.md (strclrsi expander): Use it.
9449
9450 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
9451
9452         * integrate.c (copy_insn_list): handle
9453         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
9454         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
9455         identically as to CODE_LABEL.
9456
9457         * fold-const (fold): Convert A/B/C to A/(B*C) and
9458         A/(B/C) to (A/B)*C
9459
9460         * except.c (connect_post_landing_pads): Delete the RESX insns.
9461
9462 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
9463
9464         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
9465
9466         * config/mips/mips.md (nmadd/nmsub): Use macro.
9467
9468 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
9469
9470         * cppinit.c (remove_dup_dir): Make static.
9471         (remove_dup_dirs): Make static. Only warn about preempting a
9472         system directory with a non-system directory.
9473
9474 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
9475
9476         * ifcvt.c (noce_try_store_flag_constants): Correct order
9477         of parameters to trunc_int_for_mode.
9478
9479 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
9480
9481         * reorg.c (fill_simple_delay_slots): If an instruction might throw
9482         an exception that will be caught within this function, do not fill
9483         its delay slot with any subsequent instruction.
9484
9485 2001-07-19  Steve Ellcey <sje@cup.hp.com>
9486
9487         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
9488         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
9489         pointer extension instruction.
9490         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
9491         * simplify-rtx.c (simplify_unary_operation) Likewise.
9492         * explow.c (convert_memory_address) Check value of
9493         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
9494         less than zero.
9495         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
9496         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
9497         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
9498         Add Multilib Support.
9499         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
9500         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
9501         Add Multilib Support.
9502         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
9503         support.
9504         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
9505         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
9506         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
9507
9508 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
9509
9510         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
9511         old and new operands in `<', `3' and `b'.
9512
9513 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9514
9515         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
9516         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
9517         (toplev.o): Don't depend on xcoffout.h.
9518         * c-decl.c: Include debug.h
9519         (duplicate_decls): Use debug hook.
9520         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
9521         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9522         (dbxout_types): Remove.
9523         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
9524         * debug.c (do_nothing_debug_hooks): Update.
9525         (debug_true_tree, debug_nothing_rtx): New.
9526         * debug.h (struct rtx_def): New.
9527         (struct gcc_debug_hooks): New hooks ignore_block,
9528         outlining_inline_function and label.
9529         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
9530         dwarf2out_frame_finish): New.
9531         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
9532         Make static, update prototype.
9533         (dwarf2_debug_hooks): Update.
9534         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
9535         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
9536         * dwarfout.c (dwarf_debug_hooks): Update.
9537         * emit-rtl.c: Include debug.h.
9538         (remove_unnecessary_notes): Use debug hook.
9539         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
9540         (final_scan_insn): Use debug hook.
9541         * integrate.c (output_inline_function): Use debug hook.
9542         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
9543         (sdb_debug_hooks): Update.
9544         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
9545         * toplev.c: Don't include xcoffout.h.
9546         (note_outlining_of_inline_function, debug_ignore_block): Remove.
9547         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
9548         Remove.
9549         * tree.h (dwarf2out_do_frame): Remove.
9550
9551 2001-07-19  Catherine Moore  <clm@cygnus.com>
9552
9553         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
9554
9555 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
9556
9557         * reload1.c (eliminate_regs_in_insn): When updating a set
9558         to the frame pointer to the hardware frame pointer, perform
9559         the update always not just when REPLACE is set.
9560
9561         * reload1.c (choose_reload_regs): Don't inherit a reload
9562         that crosses multiple registers if registers past the first
9563         don't fit in the desired class.
9564
9565         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
9566         when negating constants.
9567
9568 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
9569
9570         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
9571         * doc/tree.texi: Ditto.
9572
9573 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
9574             Jakub Jelinek  <jakub@redhat.com>
9575
9576         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
9577         (extract_cie_info): Handle "eh" augmentation properly,
9578         remember eh_ptr.
9579         (struct frame_state, __frame_state_for): New.
9580
9581 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9582
9583         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
9584         HANDLE_SYSV_PRAGMA): Define.
9585         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
9586         previous args.
9587         (copy_object): Caller changed.
9588
9589 2001-07-19  Andreas Schwab  <schwab@suse.de>
9590
9591         * configure.in (assembler dwarf2 debug_line support): Define nop
9592         insn for m68k.
9593         * configure: Regenerated.
9594
9595 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9596
9597         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
9598         dwarfout.h.
9599         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
9600         to conditionally compiled block.
9601         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9602         * dbxout.h (dbxout_function): Remove.
9603         * debug.c (do_nothing_debug_hooks): Update.
9604         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
9605         global_decl, deferred_inline_function.
9606         * dwarf2out.c (dwarf2_debug_hooks): Update.
9607         (dwarf2out_global_decl): New.
9608         * dwarfout.c: Don't include dwarfout.h.
9609         (dwarfout_global_decl, dwarfout_function_decl,
9610         dwarfout_deferred_inline_function): New.
9611         (dwarf_debug_hooks): Update.
9612         * dwarfout.h: Remove.
9613         * final.c: Don't include dwarfout.h.
9614         * sdbout.c (sdbout_global_decl): New.
9615         (sdbout_debug_hooks): Update.
9616         * toplev.c: Don't include dwarfout.h.
9617         (check_global_declarations, rest_of_compilation): Use new debug hooks.
9618         (note_deferral_of_defined_inline_function): Remove.
9619         * toplev.h (note_deferral_of_defined_inline_function): Remove.
9620         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
9621         * ch/lex.c: Don't include dwarfout.h.
9622         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
9623         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
9624         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
9625         * cp/optimize.c: Include debug.h.
9626         (maybe_clone_body): Use debug hook.
9627         * cp/semantics.c: Include debug.h.
9628         (expand_body): Use debug hook.
9629         * po/POTFILES.in: Remove dwarfout.h.
9630
9631 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9632
9633         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
9634         * c-parse.in (yyerror, _yylex): Similarly.
9635         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
9636         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
9637         Update comments.
9638         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
9639         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
9640
9641 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
9642
9643         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
9644         in-class declaration at -g1.  Fixes c++/2814.
9645
9646 2001-07-18  Richard Henderson  <rth@redhat.com>
9647
9648         * doc/md.texi (reload_in/out): Document restrictions in predicates
9649         and constraints for these patterns.  Document empty string matching
9650         ALL_REGS.
9651
9652 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9653
9654         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
9655
9656 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
9657
9658         * cse.c: Undo my previous patch.
9659
9660 2001-07-18  Tom Tromey  <tromey@redhat.com>
9661
9662         For PR java/2812:
9663         * configure: Rebuilt.
9664         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
9665         instead.
9666         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
9667
9668 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
9669                                 Jan Hubicka  <jh@suse.cz>
9670
9671         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
9672         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
9673         * jump.c (mark_jump_label): Do not forward branches.
9674
9675 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
9676
9677         * cse.c (delete_trivially_dead_insns): Delete the libcall block
9678         when return value is unused.
9679
9680 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
9681
9682         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
9683
9684 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
9685
9686         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
9687         on error.  We can't blindly return the result of
9688         pthread_mutex_trylock because it returns a positive number on
9689         error, while we must return -1 on error.
9690         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
9691         fixes.
9692         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
9693
9694 2001-07-18  Andreas Jaeger  <aj@suse.de>
9695
9696         * integrate.c (output_inline_function): Correct type of debug_hooks.
9697
9698 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
9699
9700         * combine.c (combine_simplify_rtx): DIV can be treated
9701         associatively for floats if unsafe math optimisations are enabled.
9702
9703 2001-07-17  Richard Henderson  <rth@redhat.com>
9704
9705         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
9706
9707 2001-07-17  Richard Henderson  <rth@redhat.com>
9708
9709         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
9710         don't force the function address into a register.
9711         (expand_call, emit_library_call_value_1): Update callers.
9712         * builtins.c (expand_builtin_apply): Likewise.
9713         * expr.h (prepare_call_address): Update decl.
9714
9715 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
9716
9717         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
9718         config directory.
9719         * config/i386/chorus.h: Move up.
9720         * config/sparc/chorus.h: Likewise.
9721         * config/rs6000/chorus.h: Likewise.
9722         * config/chorus.h: Moved here.
9723
9724 2001-07-17  Andreas Schwab  <schwab@suse.de>
9725
9726         * configure.in  (assembler eh_frame optimization): Handle big
9727         endian.
9728         * configure: Regenerated.
9729
9730 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
9731
9732         * expr.c (epxand_expr): Convert divisions into multiplications by
9733         reciprocals if -ffast-math.
9734
9735 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
9736
9737         * dbxout.c (dbxout_really_begin_function): Rename to
9738         dbxout_begin_function.
9739         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9740         (dbxout_begin_function): Remove.
9741         (dbxout_function): Update.
9742         (dbxout_source_line): Update prototype.
9743         * dbxout.h (dbxout_begin_function): Remove.
9744         * debug.c (do_nothing_debug_hooks): Update.
9745         (debug_nothing_tree): Update.
9746         (debug_nothing_charstar_rtx): Remove.
9747         * debug.h (union tree_node): Declare.
9748         (struct rtx_def): Remove.
9749         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
9750         begin_function.  Change source_line prototype.
9751         (debug_nothing_tree): New.
9752         (debug_nothing_charstar_rtx): Delete.
9753         (dwarf2out_begin_prologue): Moved from ...
9754         * tree.h: ... here.
9755         * dwarf2out.c (dwarf2_debug_hooks): Update.
9756         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
9757         debug info, call dwarf2out_source_line.
9758         (dwarf2out_souce_line): Update prototype.
9759         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
9760         Change prototype, make static.
9761         (dwarfout_source_line): Update prototype.
9762         (dwarf_debug_hooks): Update.
9763         * dwarfout.h (dwarfout_begin_function): Remove.
9764         * final.c (final_start_function, final_scan_insn): Use appropriate
9765         debug hooks, update to use notice_source_line.
9766         (output_source_line): Rename notice_source_line.  Don't call the
9767         source_line debug hook.
9768         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
9769         make static, update prototype.
9770         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
9771         prototype.
9772         (sdbout_end_prologue): New.
9773         (sdbout_source_line): Update prototype.
9774         (sdbout_debug_hooks): Update.
9775         (sdbout_symbol): Remove unused var.
9776         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
9777         Delete.
9778         * varasm.c: Include debug.h.
9779         (assemble_start_function): Use begin_function debug_hook.
9780         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
9781         update with prototype.
9782         (xcoffout_source_line): Update prototype.
9783         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
9784         update prototype.
9785         (xcoffout_source_line): Update prototype.
9786
9787 2001-07-17  Richard Henderson  <rth@redhat.com>
9788
9789         * c-typeck.c (build_binary_op): Do not shorten unsigned
9790         right shift after sign extension.
9791
9792 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
9793
9794         * combine.c (combine_simplify_rtx): Attempt to simplify
9795         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
9796
9797         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
9798         (simplify_binary_operation, simplify_unary_operation,
9799          simplify_relational_operation): Use it.
9800
9801         * combine.c (combine_simplify_rtx): Don't do associative law
9802         on divisions; allow associative law on floats.
9803
9804 2001-07-17  H.J. Lu <hjl@gnu.org>
9805             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9806
9807         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
9808         ASM_OUTPUT_WEAK_ALIAS are defined.
9809         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
9810         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
9811         Moved ...
9812         * config/mips/iris5.h: ... here.
9813         (HANDLE_SYSV_PRAGMA): Defined as 1.
9814         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
9815         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
9816         symbol.
9817
9818 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
9819
9820         * c-parse.in (all_prefix_attributes): New variable.
9821         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
9822         (maybe_resetattrs): New production.
9823         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
9824         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
9825         notype_initdcl, nested_function, notype_nested_function,
9826         component_decl, components, components_notype,
9827         component_declarator, component_notype_declarator,
9828         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
9829         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
9830         after a comma being applied to more than one declarator.
9831         * doc/extend.texi (Attribute Syntax): Update.  Remove
9832         documentation of bugs that are no longer present.
9833
9834 2001-07-13  Eric Christopher  <echristo@redhat.com>
9835
9836         * config/mips/mips.h: Change TUNE_MIPS* options to use
9837         mips_tune.
9838         (EXTRA_SPECS): Add cc1_cpu_spec.
9839         * config/mips/mips.md (muldf3): Fix typo.
9840
9841 2001-07-16  Richard Henderson  <rth@redhat.com>
9842
9843         * config/m68k/m68k.c: Include expr.h and reload.h.
9844         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
9845         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
9846
9847 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
9848             Richard Henderson  <rth@redhat.com>
9849
9850         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
9851         (insn_live_p): Fix fall off end of function.
9852         (dead_libcall_p): Remove COUNTS argument; update callers.
9853         (delete_trivially_dead_insns): Remove unused variables.
9854
9855 2001-07-17  Andreas Jaeger  <aj@suse.de>
9856
9857         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
9858         x86-64 pic support.
9859
9860         * lcm.c (optimize_mode_switching): Avoid warning for unused
9861         variable if !NORMAL_MODE.
9862
9863         * flow.c (try_crossjump_to_edge): Remove unused variable.
9864
9865 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9866
9867         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
9868         atexit declaration in stdlib.h.
9869
9870 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
9871
9872         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
9873
9874 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
9875
9876         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
9877         * except.c (finish_eh_generation): Update call of cleanup_cfg;
9878         do rebuild_jump_labels instead of jump_optimize
9879         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
9880         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
9881         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
9882
9883         * flow.c: Include timevar.h
9884         (find_basic_block): Push/pop timevar;
9885         (cleanup_cfg): Likewise.
9886         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
9887         * Makefile: Add dependencies on timevar.h
9888
9889         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
9890         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
9891
9892         * rtl.h (delete_trivially_dead_insns): Add new parameter.
9893         * toplev.c (rest_of_compilation): Update calls.
9894         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
9895         (delete_trivially_dead_insns): ... here; accept new argument
9896         preserve_basic_blocks; preserve basic blocks if set.
9897
9898         * reg-stack.c (stack_regs_mentioned): Return 0 if
9899         stack_regs_mentioned_data is not initialized.
9900         (reg_to_stack): Make stack_regs_mentioned survive after the
9901         reg-stack is completted; do not call cleanup_cfg.
9902         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
9903         make cleanup_cfg after bb-reorder to output to debug file.
9904
9905 2001-07-16  Richard Henderson  <rth@redhat.com>
9906
9907         * regclass.c (init_reg_sets): Use only 32 bits per initializer
9908         from int_reg_class_contents.
9909
9910 2001-07-16  Richard Henderson  <rth@redhat.com>
9911
9912         * hard-reg-set.h (regs_invalidated_by_call): Declare.
9913         * regclass.c (regs_invalidated_by_call): Move from cse.c.
9914         (init_reg_sets_1): Move initialization from cse_main.
9915         * cse.c (regs_invalidated_by_call): Move to regclass.c.
9916         (cse_main): Move its initialization also.
9917         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
9918         * flow.c (propagate_one_insn): Likewise.
9919         * gcse.c (compute_hash_table): Likewise.
9920         (compute_kill_rd, compute_store_table): Likewise.
9921         * sched-deps.c (sched_analyze_1): Likewise.
9922
9923 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
9924
9925         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
9926         gen_rtx_SET.
9927
9928 2001-07-16  Steve Ellcey <sje@cup.hp.com>
9929
9930         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
9931         in if statement so we don't access undefined memory.
9932
9933 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
9934
9935         * gcse.c: Update comment at top.
9936         Update comment on mem handling.
9937         mem_last_set, mem_first_set, mem_set_in_block: gone.
9938         Declaration of reg_set_info: gone.
9939         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
9940         pointless with load_killed_in_block_p (they are *more*
9941         conservative then it, not less, and less accurate).
9942         (oprs_not_set_p): Ditto.
9943         (alloc_gcse_mem): Don't allocate mem_set_in_block
9944         (free_gcse_mem): Don't free it, either.
9945         (record_last_mem_set_info): Update comment in front, remove
9946         mem_*set_* stuff. Note the reason we don't handle stores directly
9947         here.
9948         (compute_hash_table): Update comments to reflect reality. Remove
9949         mem_*set_* references.
9950         (reset_opr_set_tables): Remove mem_*set_* references.
9951         (mark_call): Ditto.
9952         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
9953         (mark_clobber): Ditto (on both parts, we double set here too).
9954         (expr_killed_p): Remove mem_set_in_block test.
9955         (compute_transp): Remove mem_set_in_block test.
9956
9957         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
9958         of edge, and removal of phi alternative to dump file.
9959         (ssa_ccp_substitute_constants): Add note about register now being
9960         constant, and which uses were replaced in what insns to dump file.
9961
9962 2001-07-16  Andreas Jaeger  <aj@suse.de>
9963
9964         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
9965         variables of type HOST_WIDEST_INT.
9966
9967         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
9968         (__bb_exit_func): Correct type of count_max to avoid overflow.
9969         (num_digits): Handle long long argument.
9970
9971         * combine.c (gen_lowpart_for_combine): Remove unused variable.
9972
9973 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9974
9975         * output.h (sdb_begin_function_line): Restore as an extern
9976         variable.
9977         * sdbout.c (sdb_begin_function_line): Make extern.
9978
9979 2001-07-15  Richard Henderson  <rth@redhat.com>
9980
9981         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
9982         * genrecog.c (maybe_both_true_mode): New.
9983         (maybe_both_true_2): Use it.
9984         (write_switch): Don't put Pmode in a switch.
9985         * rtl.c (mode arrays): Don't explicitly size them.
9986
9987 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
9988
9989         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
9990         handling; move unconditional splitting before mode switching.
9991
9992         * i386.md (type): Add fistp type.
9993         (i387, length_attr, scheduling definitions): Handle this type.
9994         (fix_trunc?f?i2): Revamp to use mode switching.
9995         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
9996         * i386.h (fp_cw_mode): New enum
9997         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
9998         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
9999
10000 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10001
10002         * Makefile.in (integrate.o): Add debug.h.
10003         * integrate.c (debug.h): Add.
10004         (output_inline_function): Save, reset, and restore debug_hooks.
10005
10006 2001-07-15  Richard Henderson  <rth@redhat.com>
10007
10008         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
10009         instead of COMPARE for the EQUIV expression.
10010
10011 2001-07-15  Richard Henderson  <rth@redhat.com>
10012
10013         * flow.c (redirect_edge_and_branch_force): Initialize
10014         global_live_at_start and global_live_at_end.
10015         (allocate_bb_life_data): Export.
10016         * basic-block.h (allocate_bb_life_data): Declare.
10017         * toplev.c (rest_of_compilation): Call it.
10018
10019 2001-07-15  Richard Henderson  <rth@redhat.com>
10020
10021         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
10022         (alpha_tablejump_best_label): New.
10023         * config/alpha/alpha-protos.h: Declare them.
10024         * config/alpha/alpha.md: Use braced strings for code blocks.
10025         (tablejump_osf): Break out add with r29.
10026         (tablejump_osf_internal): Remove.
10027         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
10028         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
10029
10030 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
10031
10032         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
10033         of the movable.
10034
10035         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
10036
10037         * i386-protos.h (ix86_split_fp_branch): Update prototype.
10038         (ix86_fp_jump_nontrivial_p): New.
10039         * i386.md (fp_jcc_?): Update call of split_fp_branch;
10040         use ix86_fp_jump_nontrivial_p.
10041         * i386.c (ix86_fp_jump_nontrivial_p): New.
10042         (ix86_split_fp_branch): Accept code instead of rtx.
10043         (ix86_expand_compare): Expand comparison early in case
10044         doing so is resonably cheap.
10045
10046 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
10047
10048         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
10049         not 'machine'.
10050         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
10051         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
10052
10053 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
10054
10055         * dbxout.c (dbxout_source_line): Make static, update prototype.
10056         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
10057         (dbxout_init, dbxout_finish, dbxout_source_line,
10058         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
10059         * dbxout.h (dbxout_source_line): Delete.
10060         * debug.c (debug_nothing_file, debug_nothing_file_int,
10061         debug_nothing_file_charstar_rtx): New.
10062         (do_nothing_debug_hooks): Update.
10063         (debug_nothing_void, debug_nothing_charstar_rtx,
10064         dwarf2out_end_epilogue): New.
10065         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
10066         * debug.h (struct rtx_def): Declare.
10067         (gcc_debug_hooks): New hooks source_line, end_epilogue
10068         and end_function.
10069         (debug_nothing_void, debug_nothing_charstar_rtx,
10070         dwarf2out_end_epilogue): New.
10071         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
10072         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
10073         (dwarf2_debug_hooks): Update.
10074         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
10075         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
10076         * dwarf2out.h (dwarf2out_source_line): Remove.
10077         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
10078         Make static, update prototype.
10079         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
10080         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
10081         (dwarf_debug_hooks): Update.
10082         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
10083         dwarfout_end_function): Remove.
10084         * final.c (profile_function): Use debug hooks for ending functions
10085         and epilogues.
10086         (output_source_line, final_end_function): Update prototype,
10087         use debug hooks.
10088         (final_start_function, final_scan_insn): Update.
10089         * output.h (sdb_begin_function_line): Remove.
10090         (final_end_function): Update prototype.
10091         * sdbout.c (sdb_begin_function_line): Make static.
10092         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
10093         (sdbout_source_line): New.
10094         (sdbout_end_epilogue, sdbout_end_function): Make static, update
10095         prototypes.
10096         (sdb_debug_hooks): Update.
10097         (sdbout_init, sdbout_source_line,
10098         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
10099         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
10100         * toplev.c (compile_file, rest_of_compilation): Update.
10101         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
10102         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
10103         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
10104         Update for prototype changes.
10105         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
10106         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
10107
10108 2001-07-15  Richard Henderson  <rth@redhat.com>
10109
10110         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
10111         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
10112         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
10113         * config/alpha/alpha.c: Likewise.
10114         * config/alpha/alpha.md: Likewise.
10115         * config/alpha/alpha32.h: Likewise.
10116         * config/alpha/vms.h: Likewise.
10117         (OPEN_VMS): Remove.
10118
10119 2001-07-14  Richard Henderson  <rth@redhat.com>
10120
10121         * config/alpha/alpha.md: Use define_constants for unspec values.
10122         Substitute throughout.
10123
10124 2001-07-14  Tim Josling  <tej@melbpc.org.au>
10125
10126         * tree.def (EXPON_EXPR) remove. Never supported anyway.
10127
10128 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10129
10130         * pa.md: Remove unused constraints from define_split's.
10131
10132 2001-04-14  Richard Henderson  <rth@redhat.com>
10133
10134         * ifcvt.c (find_cond_trap): Test for exit block.
10135
10136 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
10137
10138         Re-install recently reverted patch.
10139         * emit-rtl.c (try_split): Update mark_jump_label call.
10140         * flow.c (find_sub_basic_blocks): Likewise.
10141         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
10142         jump_back_p): Kill.
10143         (mark_all_labels): Kill second parameter.
10144         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
10145         (rebuild_jump_labels, jump_optimize_minimal): Update call
10146         of jump_optimize_1.
10147         (jump_optimize_1): Kill crossjumping code.
10148         (mark_jump_label): Kill cross_jump parameter.
10149         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
10150         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
10151         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
10152          splitting.
10153         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
10154         DFI_bpro.
10155         (dump_file_info): Likewise.
10156         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
10157         reorganize passes to do reg-stack first, bb-reorder second.
10158         * invoke.texi (-d letters doc): Remove the jump2 pass.
10159
10160 2001-07-14  Richard Henderson  <rth@redhat.com>
10161
10162         * ifcvt.c (find_cond_trap): New.
10163         (find_if_header): Call it.
10164         (merge_if_block): Relax existing jump sanity check.
10165         * jump.c (jump_optimize_1): Remove conditional trap handling.
10166
10167 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
10168
10169         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
10170         millicode.
10171         (insn_refs_are_delayed): Correct comment.
10172         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
10173         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
10174         instead of r31.  Make associated insn !TARGET_64BIT, and
10175         provide an additional 64-bit insn that clobbers r2.
10176         (divsi3): Likewise.
10177         (udivsi3): Likewise.
10178         (modsi3): Likewise.
10179         (umodsi3): Likewise.
10180
10181 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
10182
10183         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
10184
10185         * flow.c (redirect_edge_and_branch_force, split_edge,
10186         try_crossjump_to_edge): Use set_block_for_new_insns.
10187         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
10188
10189 2001-07-13  H.J. Lu  (hjl@gnu.org)
10190
10191         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
10192         the correct patch.
10193
10194 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
10195
10196         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
10197
10198 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
10199
10200         * c-common.c (decl_attributes): Take a pointer to the node to
10201         which attributes are to be attached, and a flags argument.
10202         * c-common.h (enum attribute_flags): New.
10203         (decl_attributes): Update prototype.
10204         * c-decl.c (start_decl, push_parm_decl, finish_struct,
10205         finish_enum, start_function): Update calls to decl_attributes.
10206         * c-parse.in (component_declarator, component_notype_declarator,
10207         label): Update calls to decl_attributes.
10208
10209 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
10210
10211         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
10212         * config/avr/avr.c (legitimate_address_p): Return value changed
10213         from letter to register classes. For better debugging.
10214
10215 2001-07-13  Kazu Hirata  <kazu@hxi.com>
10216
10217         * jump.c (reversed_comparison_code_parts): Fix comment typos.
10218
10219 2001-07-13  H.J. Lu  (hjl@gnu.org)
10220
10221         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
10222
10223 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
10224
10225         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
10226         correctly for shared configurations.
10227         * config/t-libgcc-pic:  New.
10228         * config/{i386,m68k,sparc}/t-openbsd:  New.
10229         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
10230         Support -shared.  Support debugging libraries with -g.
10231         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
10232         frame information does not emit pointer diffs.
10233         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
10234         emit pointer diffs.
10235
10236 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
10237
10238         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
10239
10240 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
10241
10242         * combine.c (try_combine): Ensure const_int pow2 is positive.
10243
10244 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
10245
10246         * config.gcc: Add configuration for s/390.
10247         * config/s390/s390.c: New. Subroutines for code generation.
10248         * config/s390/s390.h: New. Definitions for s/390.
10249         * config/s390/s390-protos.h: New. Prototypes.
10250         * config/s390/linux.h: New. Definitions for linux for s/390.
10251         * config/s390/linux64.h: New. Definitions for linux for zSeries.
10252         * config/s390/t-linux: New. Makefile fragment.
10253         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
10254         * config/s390/fixdfdi.h: New. Fix L_fix*di.
10255
10256 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
10257
10258         * emit-rtl.c (try_split): Update mark_jump_label call.
10259         * flow.c (find_sub_basic_blocks): Likewise.
10260         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
10261         jump_back_p): Kill.
10262         (mark_all_labels): Kill second parameter.
10263         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
10264         (rebuild_jump_labels, jump_optimize_minimal): Update call
10265         of jump_optimize_1.
10266         (jump_optimize_1): Kill crossjumping code.
10267         (mark_jump_label): Kill cross_jump parameter.
10268         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
10269         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
10270         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
10271          splitting.
10272         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
10273         DFI_bpro.
10274         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
10275         reorganize passes to do reg-stack first, bb-reorder second.
10276         * invoke.texi (-d letters doc): Remove the jump2 pass.
10277
10278 2001-07-12  Steve Ellcey <sje@cup.hp.com>
10279
10280         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
10281
10282 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10283
10284         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
10285         basic blocks.
10286         (verify_flow_info): Make diagnostics prettier.
10287
10288 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
10289
10290         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
10291
10292         * flow.c (outgoing_edges_match): Return early if condition reversal
10293         failed.
10294
10295 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
10296
10297         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
10298         (mips_move_2words): When splitting a move into two instructions,
10299         prefix the second address operand with '%D'.
10300
10301 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
10302
10303         * Makefile.in (final.o): Depend on debug.h.
10304         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
10305         (dbx_debug_hooks): Add new hooks.
10306         (xcoff_debug_hooks): New.
10307         * debug.c (debug_nothing_file_int_int): New.
10308         (do_nothing_debug_hooks): Update.
10309         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
10310         (debug_nothing_file_int_int): New.
10311         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
10312         static, update prototype.
10313         (dwarf2_debug_hooks): Update.
10314         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
10315         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
10316         static, update prototype.
10317         (dwarf_debug_hooks): Update.
10318         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
10319         * final.c: Include debug.h.
10320         (final_scan_insn): Use debug hooks when beginning and ending blocks.
10321         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
10322         static, update prototype.
10323         (sdb_debug_hooks): Update.
10324         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
10325         * toplev.c: Distinguish between xcoff and dbx.
10326
10327         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
10328         Call all debug hooks, not just dwarf ones.
10329
10330 2001-07-11  Timothy Wall  <twall@redhat.com>
10331
10332         * config.gcc: Add configuration for AIX5/IA64.
10333         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
10334         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
10335         support prefix/suffix code.
10336         * config/ia64/t-aix: New.  Makefile fragment.
10337         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
10338
10339 2001-07-11  Kazu Hirata  <kazu@hxi.com>
10340
10341         * recog.c (validate_change): Fix a comment typo.
10342
10343 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
10344
10345         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
10346         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
10347         hooks directly.
10348         * dbxout.c (dbx_debug_hooks): Add new hooks.
10349         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
10350         make static.
10351         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
10352         make static.
10353         * dbxout.h (dbxout_start_new_source_file,
10354         dbxout_resume_previous_source_file): Delete.
10355         * debug.c (do_nothing_debug_hooks): Add new hooks.
10356         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
10357         (debug_nothing_int_charstar, debug_nothing_int): New.
10358         * debug.h (gcc_debug_hooks): New hooks define, undef,
10359         start_source_file and end_source_file.
10360         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
10361         (debug_nothing_int_charstar, debug_nothing_int): New.
10362         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
10363         the conditionally compiled section.
10364         (dwarf2out_start_source_file, dwarf2out_end_source_file,
10365         dwarf2out_define, dwarf2out_undef): Make static.
10366         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
10367         dwarf2out_define, dwarf2out_undef): Remove.
10368         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
10369         (dwarfout_start_source_file, dwarfout_end_source_file,
10370         dwarfout_define, dwarfout_undef): Make static.
10371         (dwarfout_start_source_file_check,
10372         dwarfout_end_source_file_check): New.
10373         (dwarfout_define, dwarfout_finish): Update.
10374         * dwarfout.h (dwarfout_start_new_source_file,
10375         dwarfout_resume_previous_source_file, dwarfout_define,
10376         dwarfout_undef): Remove.
10377         * sdbout.c (sdb_debug_hooks): Add new hooks.
10378         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
10379         make static.
10380         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
10381         make static, take an arg.
10382         * sdbout.h (sdbout_start_new_source_file,
10383         sdbout_resume_previous_source_file): Delete.
10384         * toplev.c (debug_start_source_file, debug_end_source_file,
10385         debug_define, debug_undef): Delete.
10386         * toplev.h (debug_start_source_file, debug_end_source_file,
10387         debug_define, debug_undef): Delete.
10388
10389         * java/jcf-parse.c: Include debug.h.
10390         (parse_class_file): Update to use debug hooks directly.
10391         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
10392
10393 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10394
10395         * alias.c (set_mem_alias_set): New function.
10396         * rtl.h (set_mem_alias_set): Declare it.
10397         * builtins.c (expand_builtin_return_addr): Call it instead of
10398         using MEM_ALIAS_SET accessor.
10399         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
10400         (get_memory_rtx, expand_builtin_va_arg): Likewise.
10401         (expand_builtin_va_copy):Likewise.
10402         * caller-save.c (setup_save_areas): Likewise.
10403         * calls.c (compute_argument_addresses): Likewise.
10404         * explow.c (set_mem_attributes): Likewise.
10405         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
10406         (expand_assignment, store_constructor_field, store_field): Likewise.
10407         (expand_expr_unaligned): Likewise.
10408         * function.c (assign_stack_temp_for_type): Likewise.
10409         (put_reg_into_stack, gen_mem_addressof): Likewise.
10410         * ifcvt.c (noce_try_cmove_arith): Likewise.
10411         * reload1.c (reload, alter_reg): Likewise.
10412         * config/alpha/alpha.c (get_aligned_mem): Likewise.
10413         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
10414         (alpha_expand_unaligned_store): Likewise
10415         (alpha_expand_unaligned_load_words): Likewise.
10416         (alpha_expand_unaligned_store_words): Likewise.
10417         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
10418         (alpha_expand_epilogue): Likewise.
10419         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
10420         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
10421         * config/i386/i386.c (legitimize_pic_address): Likewise.
10422         * config/i960/i960.c (setup_incoming_varargs): Likewise.
10423         * config/ia64/ia64.c (spill_restore_mem): Likewise.
10424         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
10425         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
10426         * config/mips/mips.c (mips_va_arg): Likewise.
10427         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
10428         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
10429         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
10430         (setup_incoming_varargs, rs6000_va_arg): Likewise.
10431         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
10432         (rs6000_emit_epilogue): Likewise.
10433         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
10434         * config/sparc/sparc.c (sparc_va_arg): Likewise.
10435         * config/v850/v850.c (v850_va_arg): Likewise.
10436
10437 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
10438
10439         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
10440         when fallthru edge is present.
10441         (mege_blocks): Handle case where creation of jump insn
10442         is required.
10443
10444         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
10445         CLEANUP_POST_REGSTACK): New constants.
10446         * except.c (finish_eh_generation): Update call of cleanup_cfg,
10447         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
10448         * output.h (cleanup_cfg): Update prototype.
10449         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
10450         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
10451         cleanup_cfg call; kill missleading comment.
10452         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
10453         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
10454         parameter; control optimizations performed using it.
10455         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
10456         try_crossjump_bb): New functions.
10457
10458 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10459
10460         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
10461         extern.
10462         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
10463         pa_output_function_prologue.
10464         * pa-protos.h (pa_output_function_prologue): New prototype.
10465
10466 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10467
10468         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
10469         and low to get correct sign extension in low+high test.
10470
10471 2001-07-11  Janis Johnson <janis@us.ibm.com>
10472
10473         * gcov.c (arcdata): Use gcov_type to fix branch percentage
10474         for large hit count.
10475
10476         * profile.c (branch_prob): Fix .bbg info for computed gotos
10477         and C++ EH code.
10478
10479 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
10480
10481         * stmt.c (parse_output_constraint): New function, split out
10482         from ...
10483         (expand_asm_operands): ... here.  Use parse_output_constraint.
10484         * tree.h (parse_output_constraint): Declare it.
10485
10486 2001-07-11  Richard Henderson  <rth@redhat.com>
10487
10488         * bitmap.c: Comment some functions; fiddle whitespace.
10489         (bitmap_free): Don't export.
10490         (bitmap_element_allocate): Use memset.
10491         * bitmap.h (bitmap_free): Don't declare.
10492
10493 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
10494
10495         * gcse.c, lcm.c, sched-deps.c:
10496         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
10497
10498         * flow.c (flow_loops_find): Free dom if we found no loops, since
10499         we aren't going to save it.
10500
10501         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
10502         done.
10503
10504 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
10505
10506         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
10507
10508 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10509
10510         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
10511         #ifndef DWARF2_DEBUGGING_INFO.
10512
10513 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
10514
10515         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
10516
10517 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
10518
10519         * config/mips/mips.c (gen_int_relational): Tell the caller not to
10520         reverse a branch if a NE comparison is implemented with GTU.
10521
10522 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
10523             H.J. Lu  <hjl@gnu.org>
10524
10525         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
10526         constant addresses.
10527         (call_internal2): Likewise.
10528         (call_value_internal1): Likewise.
10529         (call_value_internal2): Likewise.
10530         (call_value_multiple_internal1): Likewise.
10531         (call_value_multiple_internal2): Likewise.
10532
10533 2001-07-10  Kazu Hirata  <kazu@hxi.com>
10534
10535         * calls.c (emit_library_call_value_1): Fix a comment typo.
10536         * dwarf2out.c (mem_loc_descriptor): Likewise.
10537         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
10538
10539 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
10540
10541         * simplify-rtx.c (simplify_subreg): Fix typo in comment
10542
10543 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10544
10545         * recog.c (offsettable_address_p): Handle LO_SUM case.
10546         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
10547         instead of plus_constant.
10548
10549 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10550
10551         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
10552         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
10553
10554 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10555
10556         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
10557         adjust_address_nv instead of plus_constant.
10558
10559 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
10560
10561         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
10562         dwarf2out.o): Depend on debug.h, wrap long lines.
10563         * dbxout.c: Include debug.h.
10564         (dbx_debug_hooks): New.
10565         (dbxout_init): Make static, take just 2 args.
10566         (dbxout_finish): Make static.
10567         * dbxout.h (dbxout_init, dbxout_finish): Delete.
10568         * debug.c: New file.
10569         * debug.h: New file.
10570         * dwarf2out.c: Include debug.h.
10571         (dwarf2_debug_hooks): New.
10572         (dwarf2out_init): Make static.
10573         (dwarf2out_finish): Make static, take 2 args.
10574         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
10575         * dwarfout.c: Include debug.h.
10576         (dwarf_debug_hooks): New.
10577         (dwarfout_init): Make static.
10578         (dwarfout_finish): Make static, take 2 args.
10579         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
10580         * sdbout.c: Include debug.h.
10581         (sdb_debug_hooks): New.
10582         (sdbout_init): Make static, take 2 args.
10583         * sdbout.h (sdbout_init): Delete.
10584         * toplev.c: Include debug.h.
10585         (debug_hooks): New.
10586         (compile_file): Set deubg_hooks based on command line options.
10587         Use the hooks unconditionally rather than conditional compilation.
10588
10589 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
10590
10591         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
10592         first_insn_after_basic_block_note instead.
10593
10594         * df.c (df_bb_refs_unlink): #if 0 out for now.
10595
10596 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
10597
10598         * ssa.h: Add prototype for ssa_const_prop
10599         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
10600         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
10601         (ssa_fast_dce): Remove unused variable
10602
10603 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
10604
10605         * diagnostic.c (finish_diagnostic): Rename to
10606         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
10607         calls thourghout.
10608
10609 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
10610
10611         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
10612         .loc support.
10613
10614         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
10615         (dump_file): Only pad the demangled name with spaces if the
10616         mangled name was padded with spaces.
10617
10618 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
10619
10620         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
10621         edge detection.
10622
10623 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10624
10625         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
10626         extraction if no direct load if either EXPAND_CONST_ADDRESS or
10627         EXPAND_INITIALIZER.
10628
10629         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
10630         whether can put offset inside LO_SUM to check mode alignment, not size.
10631
10632 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
10633
10634         * doc/tm.texi (Misc): Fix thinko.
10635
10636 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
10637
10638         * regmove.c (replace_in_call_usage): Fix warnings.
10639         * sched-deps.c (add_dependence): Fix warnings.
10640         * simplify-rtx.c (simplify_subreg): Likewise.
10641         Return NULL_RTX instead of NULL.
10642
10643         * reg-stack.c (emit_swap_insn): Eliminate warnings.
10644         (subst_asm_stack_regs): Likewise.
10645
10646         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
10647         warnings.
10648
10649         * dwarf2out.c (output_call_frame_info): Declare i as int.
10650         (build_abbrev_table): Declare n_alloc as int.
10651         (dwarf2out_finish): Initialize die.
10652         * except.c: Declare sjlj_funcdef_number as unsigned.
10653         (connect_post_landing_pads): Declare j as unsigned.
10654         (convert_to_eh_region_ranges): Initialize call_site.
10655         (output_function_exception_table): Initialize tt_format_size.
10656         * expr.c (move_by_pieces_1): Initialize to1.
10657         (store_constructor): Initialize minelt and maxelt.
10658         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
10659         * function.c (instantiate_decls): Avoid signed/unsigned warning.
10660
10661         * c-decl.c (combine_parm_decls): Unused, remove.
10662         * c-tree.h: Remove prototype for combine_parm_decls.
10663
10664         * reload.c (push_reload): Fix warning.
10665         (regno_clobbered_p): Likewise.
10666         * reload1.c (replace_pseudos_in_call_usage): Likewise.
10667         (reload_combine): Likewise.
10668
10669         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
10670         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
10671         warnings.
10672         * bitmap.c (bitmap_operation): Change user.
10673         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
10674
10675 2001-07-10  Eric Christopher  <echristo@redhat.com>
10676
10677         * config/mips/mips.c (override_options): Fix typo.
10678
10679 2001-07-09  Stan Shebs  <shebs@apple.com>
10680
10681         * target.h (struct gcc_target): New fields init_builtins and
10682         expand_builtin.
10683         * target-def.h (TARGET_INIT_BUILTINS): New macro.
10684         (TARGET_EXPAND_BUILTIN): New macro.
10685         (TARGET_INITIALIZER): Add them.
10686         * builtins.c: Include target.h.
10687         (expand_builtin): Use targetm.expand_builtin.
10688         (default_init_builtins): New function.
10689         (default_expand_builtin): New function.
10690         * expr.h (default_init_builtins): Declare.
10691         (default_expand_builtin): Declare.
10692         * c-common.c (c_common_nodes_and_builtins): Use
10693         targetm.init_builtins.
10694         * defaults.h (MD_INIT_BUILTINS): Remove.
10695         * Makefile.in (builtins.o): Depend on target.h.
10696
10697         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
10698         (TARGET_EXPAND_BUILTIN): Define.
10699         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
10700         (MD_EXPAND_BUILTIN): Remove.
10701
10702         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
10703         (TARGET_EXPAND_BUILTIN): Define.
10704         (c4x_init_builtins): Make endlink arg a local.
10705         (c4x_print_operand): Fix typos in adjust_address usages.
10706         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
10707         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
10708         (MD_EXPAND_BUILTIN): Remove.
10709
10710         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
10711         (TARGET_EXPAND_BUILTIN): Define.
10712         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
10713         (ix86_init_builtins): Call new function only if TARGET_MMX.
10714         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
10715         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
10716         (MD_EXPAND_BUILTIN): Remove.
10717
10718         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
10719         (TARGET_EXPAND_BUILTIN): Define.
10720         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
10721         (MD_EXPAND_BUILTIN): Remove.
10722
10723         * doc/tm.texi: Document these changes.
10724
10725 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
10726
10727         * basic-block.h (tree_node): Forward declare if needed.
10728         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
10729         (BLOCK_HEAD_TREE): Define.
10730         (BLOCK_END_TREE): Define.
10731         (struct loops): Rename field 'tree' to 'tree_root'.
10732         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
10733         'end_tree'.
10734         (flow_loops_tree_build): Rename reference to field 'tree' to
10735         'tree_root'.
10736         (flow_loops_level_compute): Ditto.
10737         * predict.c (estimate_bb_frequencies): Ditto.
10738         * tree.h (struct tree_common): Add field 'aux'.
10739
10740 2001-07-09  Stan Shebs  <shebs@apple.com>
10741
10742         * config/darwin.c (darwin_encode_section_info): Don't mark any
10743         DECL_EXTERNAL node as defined.
10744
10745 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10746
10747         * pa.c (pa_init_machine_status, pa_mark_machine_status,
10748         pa_free_machine_status, hppa_init_pic_save): Delete.
10749         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
10750         (hppa_profile_hook): Use hppa_pic_save_rtx.
10751         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
10752         hppa_init_pic_save): Delete.
10753         (hppa_pic_save_rtx): Declare.
10754         * pa.md (call, call_value, sibcall, sibcall_value,
10755         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
10756
10757 2001-07-09  Kazu Hirata  <kazu@hxi.com>
10758
10759         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
10760         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
10761
10762 2001-07-09  Andreas Jaeger  <aj@suse.de>
10763
10764         * output.h: Add declaration of final_forward_branch_p.
10765
10766         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
10767
10768         * varray.c: Include errors.h for internal_error and trim_filename
10769         declarations.
10770
10771         * Makefile.in (varray.o): Add errors.h.
10772
10773 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
10774
10775         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
10776         * optabs.c (have_add2_insn): Check whether the add insn chosen
10777         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
10778         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
10779
10780 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
10781
10782         * Makefile.in (OBJS): Add ssa-ccp.o
10783         (ssa-ccp.o): Add dependencies.
10784         * toplev.c (DFI_ssa_ccp): New dump file enum.
10785         (dump_file): Add entry for dumping after SSA CCP.
10786         (flag_ssa_ccp): New flag variable.
10787         (f_options): Add -fssa-ccp.
10788         (rest_of_compilation): Run SSA CCP if requested.
10789         * timevar.def (TV_SSA_CCP): New timevar.
10790         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
10791         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
10792         Fix minor typo in SSA DCE documentation.
10793         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
10794         Add documentation for new dump option.  Renumber dump files
10795         appropriately.
10796
10797 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
10798
10799         * emit-rtl.c (gen_highpart_mode): New.
10800         * rtl.h (gen_highpart_mode): Declare.
10801         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
10802         operand can be VOIDmode constant.
10803
10804 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
10805
10806         * flow.c (redirect_edge_and_branch_force): New.
10807         (can_fallthru): Ensure that basic blocks are succeeding.
10808         (try_optimize_cfg): Do not delete basic block if it is the last one.
10809
10810         * flow.c (try_redirect_by_replacing_jump): Do not remove
10811         jumps with side effects, unlink chain on fallthru edge;
10812         set block for new jump instruction; avoid basic block to
10813         over by line number note.
10814
10815         * flow.c (try_simplify_condjump): Verify that the condjump
10816         is not always falling trought.
10817
10818         Re-install patch:
10819         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
10820
10821         * flow.c (forwarder_block_p): Fix for fallthru blocks.
10822         (try_redirect_by_replacing_jump): Update properly the count
10823         and frequency information.
10824
10825 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10826
10827         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
10828         address that is a LO_SUM specially.
10829         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
10830
10831         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
10832
10833         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
10834         (operand_subword): Use them.
10835         (change_address_1): Renamed from change_address; new arg VALIDATE.
10836         * expr.h: Reflect above changes; change_address now macro.
10837         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
10838         making MEM.
10839         * cselib.c (add_mem_for_addr): Likewise.
10840         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
10841         * regmove.c (try_apply_stack_adjustment): Likewise.
10842         * reload.c (push_reload, make_memloc): Likewise.
10843         * reload1.c (eliminate_regs): Likewise.
10844         * simplify-rtx.c (simplify_replace_rtx): Likewise.
10845         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
10846         adjust_addess.
10847         * combine.c (make_extraction, simplify_shift_const): Likewise.
10848         (gen_lowpart_for_combine): Likewise.
10849         * cse.c (gen_lowpart_if_possible): Likewise.
10850         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
10851         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
10852         * optabs.c (gen_move_insn): Likewise.
10853         * reload1.c (alter_reg): Likewise.
10854         * simplify-rtx.c (simplify_subreg): Likewise.
10855         * stmt.c (expand_anon_union_decl): Likewise.
10856         * recog.c (validate_replace_rtx_1): Likewise.
10857         (expr.h): Include.
10858         * Makefile.in (recog.o): Add $(EXPR_H).
10859         * explow.c (stabilize): Call replace_equiv_address.
10860         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
10861         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
10862
10863 2001-07-03  Andrew Haley  <aph@redhat.com>
10864
10865         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
10866         the mode of the memory location.
10867
10868 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
10869
10870         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
10871
10872 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
10873
10874         * final.c (output_addr_const): Use target opening and
10875         closing parentheses.
10876         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
10877         defaults, add to TARGET_ASM_OUT.
10878         * target.h (struct gcc_target): Add open_paren and close_paren.
10879         * doc/md.texi: Update.
10880         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
10881         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
10882         TARGET_ASM_CLOSE_PAREN.
10883         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
10884         Override.
10885         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
10886         Override.
10887         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
10888         * config/a29k/a29k.h: Similarly.
10889         * config/alpha/alpha.h: Similarly.
10890         * config/arc/arc.h: Similarly.
10891         * config/arm/aof.h: Similarly.
10892         * config/arm/aout.h: Similarly.
10893         * config/avr/avr.h: Similarly.
10894         * config/c4x/c4x.h: Similarly.
10895         * config/clipper/clipper.h: Similarly.
10896         * config/convex/convex.h: Similarly.
10897         * config/d30v/d30v.h: Similarly.
10898         * config/dsp16xx/dsp16xx.h: Similarly.
10899         * config/elxsi/elxsi.h: Similarly.
10900         * config/fr30/fr30.h: Similarly.
10901         * config/h8300/h8300.h: Similarly.
10902         * config/i370/i370.h: Similarly.
10903         * config/i386/i386.h: Similarly.
10904         * config/i860/i860.h: Similarly.
10905         * config/i960/i960.h: Similarly.
10906         * config/ia64/ia64.h: Similarly.
10907         * config/m32r/m32r.h: Similarly.
10908         * config/m68hc11/m68hc11.h: Similarly.
10909         * config/m68k/m68k.h: Similarly.
10910         * config/m88k/m88k.h: Similarly.
10911         * config/mcore/mcore.h: Similarly.
10912         * config/mips/mips.h: Similarly.
10913         * config/mn10200/mn10200.h: Similarly.
10914         * config/mn10300/mn10300.h: Similarly.
10915         * config/ns32k/ns32k.h: Similarly.
10916         * config/pa/pa.h: Similarly.
10917         * config/pdp11/pdp11.h: Similarly.
10918         * config/pj/pj.h: Similarly.
10919         * config/romp/romp.h: Similarly.
10920         * config/rs6000/rs6000.h: Similarly.
10921         * config/sh/sh.h: Similarly.
10922         * config/sparc/sparc.h: Similarly.
10923         * config/v850/v850.h: Similarly.
10924         * config/vax/vax.h: Similarly.
10925         * config/we32k/we32k.h: Similarly.
10926
10927 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
10928
10929         * doc/c-tree.texi: Document representation of attributes.
10930
10931 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10932
10933         * doc/tm.texi: Update some places for the rename of target to
10934         targetm.  Fix typo.
10935
10936 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10937
10938         * target.h (struct gcc_target): Add insert_attributes.
10939         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
10940         (TARGET_INITIALIZER): Update.
10941         * tree.c, tree.h (default_insert_attributes): New function.
10942         Update comments on other default functions to refer to targetm,
10943         not target.
10944         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
10945         TARGET_INSERT_ATTRIBUTES.
10946         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
10947         * c-common.c (decl_attributes): Use targetm.insert_attributes.
10948         Don't use PRAGMA_INSERT_ATTRIBUTES.
10949         * Makefile.in (c-common.o): Depend on $(TARGET_H).
10950         * c-decl.c (start_decl, start_function): Don't call
10951         SET_DEFAULT_DECL_ATTRIBUTES.
10952         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
10953         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
10954         declare.
10955         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
10956         (c4x_check_attribute): Avoid modifying attribute list itself.
10957         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
10958         Make static.
10959         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
10960         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
10961         declare.
10962         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
10963         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
10964         Make static.
10965         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
10966         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
10967         declare.
10968         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
10969         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
10970         Adjust parameters.  Make static.
10971
10972 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10973
10974         * c-common.c (decl_attributes): Only take a single attributes
10975         parameter.
10976         * c-common.h (decl_attributes): Update prototype.
10977         * c-decl.c (start_decl, start_function): Only take a single
10978         attributes parameter.  Update calls to decl_attributes.
10979         (finish_struct, finish_enum): Update calls to decl_attributes.
10980         (push_parm_decl): Expect unified list of attributes.  Update call
10981         to decl_attributes.
10982         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
10983         notype_nested_function, component_declarator,
10984         component_notype_declarator, label): Update calls to
10985         decl_attributes.
10986         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
10987         lists that are passed to push_parm_decl.
10988         * c-tree.h (start_function, start_decl): Update prototypes.
10989         * config/sh/sh-protos.h, config/sh/sh.c
10990         (sh_pragma_insert_attributes): Only take a single attributes
10991         parameter.
10992         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
10993         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
10994         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
10995         build_module_descriptor, generate_static_references,
10996         generate_strings, build_selector_translation_table,
10997         generate_descriptor_table, generate_protocols,
10998         generate_ivars_list, generate_dispatch_table,
10999         generate_protocol_list, generate_category,
11000         generate_shared_structures, really_start_method, add_objc_decls,
11001         generate_classref_translation_entry): Update calls to start_decl
11002         and start_function.
11003         (build_tmp_function_decl, start_method_def): Unify attribute lists
11004         that are passed to push_parm_decl.
11005
11006 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
11007
11008         * final.c (no_asm_to_stream): New.
11009         (final_scan_insn): Use target structures for prologue ends
11010         and epilogue starts.
11011         * output.h (no_asm_to_stream): New.
11012         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
11013         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
11014         (TARGET_ASM_OUT): Update.
11015         * target.h (struct gcc_target): New members function_end_prologue
11016         and function_begin_epilogue.
11017         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
11018         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
11019         * config/alpha/alpha.c (output_end_prologue): Rename to
11020         alpha_output_function_end_prologue.  Use in target struct
11021         and make static.
11022         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
11023         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
11024         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
11025         ia64_output_function_end_prologue.  Use in target struct
11026         and make static.
11027         (ia64_function_prologue, ia64_funciton_epilogue): Rename
11028         mistyped prototypes.
11029         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
11030         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
11031         Delete.
11032         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
11033         an use in target struct, make static.
11034         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
11035         Delete.
11036
11037 2001-07-08  Richard Henderson  <rth@redhat.com>
11038
11039         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
11040
11041 2001-07-08  Richard Henderson  <rth@redhat.com>
11042
11043         * config/i386/i386.md: Remove constraints strings from define_split
11044         and define_peephole2 patterns.
11045         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
11046         (eh_return): Use them.
11047
11048 2001-07-08  Richard Henderson  <rth@redhat.com>
11049
11050         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
11051         Document MD_FALLBACK_FRAME_STATE_FOR.
11052
11053 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11054
11055         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
11056         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
11057         elimination.
11058         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
11059
11060 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
11061
11062         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
11063         of the label inside NAME as opposed to just the end of NAME.
11064
11065 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
11066
11067         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
11068         * config/alpha/alpha.c (alpha_init_machine_status,
11069         alpha_mark_machine_status, alpha_free_machine_status): Delete.
11070         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
11071         (vms_valid_decl_attribute_p): Make static, conditionally compile.
11072         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
11073
11074 2001-07-06  Stan Shebs  <shebs@apple.com>
11075
11076         * target.h (targetm): Rename global from "target", so as not to
11077         conflict with local variables.
11078         * c-decl.c: Ditto.
11079         * c-typeck.c: Ditto.
11080         * final.c: Ditto.
11081         * tree.c: Ditto.
11082         * cp/decl.c: Ditto.
11083         * cp/decl2.c: Ditto.
11084         * cp/typeck.c: Ditto.
11085         * 1750a/1750a.c: Ditto.
11086         * a29k/a29k.c: Ditto.
11087         * arc/arc.c: Ditto.
11088         * arm/arm.c: Ditto.
11089         * avr/avr.c: Ditto.
11090         * clipper/clipper.c: Ditto.
11091         * convex/convex.c: Ditto.
11092         * d30v/d30v.c: Ditto.
11093         * dsp16xx/dsp16xx.c: Ditto.
11094         * elxsi/elxsi.c: Ditto.
11095         * fr30/fr30.c: Ditto.
11096         * h8300/h8300.c: Ditto.
11097         * i370/i370.c: Ditto.
11098         * i386/i386.c: Ditto.
11099         * i860/i860.c: Ditto.
11100         * i960/i960.c: Ditto.
11101         * ia64/ia64.c: Ditto.
11102         * m32r/m32r.c: Ditto.
11103         * m68hc11/m68hc11.c: Ditto.
11104         * m68k/m68k.c: Ditto.
11105         * m88k/m88k.c: Ditto.
11106         * mips/mips.c: Ditto.
11107         * ns32k/ns32k.c: Ditto.
11108         * pa/pa.c: Ditto.
11109         * pdp11/pdp11.c: Ditto.
11110         * romp/romp.c: Ditto.
11111         * rs6000/rs6000.c: Ditto.
11112         * sh/sh.c: Ditto.
11113         * sparc/sparc.c: Ditto.
11114         * vax/vax.c: Ditto.
11115         * we32k/we32k.c: Ditto.
11116         * doc/tm.texi: Update the manual to match.
11117
11118 2001-07-06  Richard Henderson  <rth@redhat.com>
11119
11120         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
11121         DWARF2_UNWIND_INFO not just whether it is defined.
11122
11123 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
11124
11125         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
11126         call to simplify_binary_operation returns a new pattern.
11127
11128 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
11129
11130         * glimits.h (__SHRT_MAX__): New.
11131         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
11132         (SHRT_MAX): Define in terms of __SHRT_MAX__.
11133
11134 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
11135
11136         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
11137         avoid warnings.
11138
11139 2001-07-06  Richard Henderson  <rth@redhat.com>
11140
11141         * bitmap.c (bitmap_release_memory): Move adjacent to the
11142         allocation functions.
11143         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
11144         the implementation.  Binary search for the set bit.
11145         (bitmap_union_of_diff): Allocate the temporary on the stack
11146         instead of using xmalloc.
11147
11148 2001-07-06  Richard Henderson  <rth@redhat.com>
11149
11150         * genrecog.c (validate_pattern): Warn for constraints in
11151         define_{expand,split,peephole2}.  Remove strict_low_part
11152         before looking up match_dup.
11153
11154 2001-07-06  DJ Delorie  <dj@redhat.com>
11155
11156         * doc/gcc.texi (Makefile): Rename to be a more general purpose
11157         chapter about various build hints and history.  Add section
11158         talking about the various types of native and cross builds.
11159
11160 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
11161
11162         * Makefile.in (final.o): Depend on target.h.
11163         * final.c: Include target.h.
11164         (default_function_pro_epilogue): New.
11165         (final_start_function): Use target structure for function prologues.
11166         (final_end_function): Use target structure for function epilogues.
11167         * fold-const.c (real_hex_to_f): Constify s and p.
11168         * output.h (default_function_pro_epilogue): New.
11169         * real.h (real_hex_to_f): Update prototype.
11170         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
11171         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
11172         (TARGET_INITIALIZER): Update.
11173         * target.h (gcc_target): Add struct asm_out.
11174         * doc/tm.texi: Update.
11175
11176 config:
11177         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
11178         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
11179         in cpu/cpu.c, or rename old functions consistently.  Take
11180         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
11181         redundant macros and prototypes.  Make new functions static.
11182
11183         * 1750a/1750a.c: Similarly.
11184         * 1750a/1750a.h: Similarly.
11185         * a29k/a29k-protos.h: Similarly.
11186         * a29k/a29k.c: Similarly.
11187         * a29k/a29k.h: Similarly.
11188         * arc/arc-protos.h: Similarly.
11189         * arc/arc.c: Similarly.
11190         * arc/arc.h: Similarly.
11191         * arm/arm-protos.h: Similarly.
11192         * arm/arm.c: Similarly.
11193         * arm/arm.h: Similarly.
11194         * avr/avr-protos.h: Similarly.
11195         * avr/avr.c: Similarly.
11196         * avr/avr.h: Similarly.
11197         * clipper/clipper-protos.h: Similarly.
11198         * clipper/clipper.c: Similarly.
11199         * clipper/clipper.h: Similarly.
11200         * convex/convex.c: Similarly.
11201         * convex/convex.h: Similarly.
11202         * d30v/d30v-protos.h: Similarly.
11203         * d30v/d30v.c: Similarly.
11204         * d30v/d30v.h: Similarly.
11205         * d30v/d30v.md: Similarly.
11206         * dsp16xx/dsp16xx-protos.h: Similarly.
11207         * dsp16xx/dsp16xx.c: Similarly.
11208         * dsp16xx/dsp16xx.h: Similarly.
11209         * elxsi/elxsi.c: Similarly.
11210         * elxsi/elxsi.h: Similarly.
11211         * fr30/fr30.c: Similarly.
11212         * fr30/fr30.md: Similarly.
11213         * h8300/h8300-protos.h: Similarly.
11214         * h8300/h8300.c: Similarly.
11215         * h8300/h8300.h: Similarly.
11216         * i370/i370-protos.h: Similarly.
11217         * i370/i370.c: Similarly.
11218         * i370/i370.h: Similarly.
11219         * i386/i386.c: Similarly.
11220         * i386/osf1elf.h: Similarly.
11221         * i386/osfrose.h: Similarly.
11222         * i860/i860-protos.h: Similarly.
11223         * i860/i860.c: Similarly.
11224         * i860/i860.h: Similarly.
11225         * i960/i960-protos.h: Similarly.
11226         * i960/i960.c: Similarly.
11227         * i960/i960.h: Similarly.
11228         * ia64/ia64-protos.h: Similarly.
11229         * ia64/ia64.c: Similarly.
11230         * ia64/ia64.h: Similarly.
11231         * m32r/m32r-protos.h: Similarly.
11232         * m32r/m32r.c: Similarly.
11233         * m32r/m32r.h: Similarly.
11234         * m68hc11/m68hc11-protos.h: Similarly.
11235         * m68hc11/m68hc11.c: Similarly.
11236         * m68hc11/m68hc11.h: Similarly.
11237         * m68k/crds.h: Similarly.
11238         * m68k/dpx2.h: Similarly.
11239         * m68k/m68k-protos.h: Similarly.
11240         * m68k/m68k.c: Similarly.
11241         * m68k/m68k.h: Similarly.
11242         * m68k/news.h: Similarly.
11243         * m88k/m88k-protos.h: Similarly.
11244         * m88k/m88k.c: Similarly.
11245         * m88k/m88k.h: Similarly.
11246         * mips/mips-protos.h: Similarly.
11247         * mips/mips.c: Similarly.
11248         * mips/mips.h: Similarly.
11249         * ns32k/merlin.h: Similarly.
11250         * ns32k/ns32k.c: Similarly.
11251         * ns32k/ns32k.h: Similarly.
11252         * ns32k/tek6000.h: Similarly.
11253         * pa/pa-protos.h: Similarly.
11254         * pa/pa.c: Similarly.
11255         * pa/pa.h: Similarly.
11256         * pdp11/2bsd.h: Similarly.
11257         * pdp11/pdp11-protos.h: Similarly.
11258         * pdp11/pdp11.c: Similarly.
11259         * pdp11/pdp11.h: Similarly.
11260         * romp/romp-protos.h: Similarly.
11261         * romp/romp.c: Similarly.
11262         * romp/romp.h: Similarly.
11263         * rs6000/rs6000-protos.h: Similarly.
11264         * rs6000/rs6000.c: Similarly.
11265         * rs6000/rs6000.h: Similarly.
11266         * rs6000/sysv4.h: Similarly.
11267         * sh/sh-protos.h: Similarly.
11268         * sh/sh.c: Similarly.
11269         * sh/sh.h: Similarly.
11270         * sparc/sparc-protos.h: Similarly.
11271         * sparc/sparc.c: Similarly.
11272         * sparc/sparc.h: Similarly.
11273         * vax/vax.c: Similarly.
11274         * vax/vax.h: Similarly.
11275         * vax/vms.h: Similarly.
11276         * we32k/we32k.c: Similarly.
11277         * we32k/we32k.h: Similarly.
11278
11279 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
11280
11281         * basic-block.h (first_insn_after_basic_block_note): Declare.
11282         * flow.c (first_insn_after_basic_block_note): Define.  Moved
11283         from...
11284         * ssa.c (first_insn_after_basic_block_note): Remove.
11285         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
11286         necessary.
11287         (ssa_eliminate_dead_code): Properly update the CFG and PHI
11288         nodes when we find a dead conditional branch.  Insert BARRIERs
11289         after any blocks with no successors, but which do not have
11290         any BARRIERs.
11291
11292 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
11293
11294         * varray.c (varray_check_failed): Use internal_error.
11295
11296 2001-07-05  Andrew Haley  <aph@redhat.com>
11297
11298         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
11299         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
11300         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
11301
11302 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
11303
11304         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
11305         reference if the target constant is also a SYMBOL_REF.
11306
11307 2001-07-05  Eric Christopher  <echristo@redhat.com>
11308
11309         * config/mips/mips.h (MASK_MIPS3900): Remove.
11310         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
11311         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
11312         (TARGET_MIPS3900): Change to use mips_arch.
11313         (TARGET_MIPS4000): New.
11314         (TARGET_MIPS4100): New.
11315         (TARGET_MIPS4300): New.
11316         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
11317         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
11318         for -mipsX.
11319         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
11320         (ISA_HAS_BRANCHLIKELY): To here.
11321         (CC1_CPU_SPEC):  New.
11322         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
11323         (mips_arch_string): Declare.
11324         (mips_arch): Declare.
11325         (TARGET_OPTIONS): Add -march and -mtune.
11326
11327         * config/mips/mips.c (mips_arch_string): New.
11328         (mips_arch): New.
11329         (override_options): Handle -march for codegen and -mtune
11330         for scheduling. Use mips_arch. Move tx39 target default here.
11331         (mips_parse_cpu): Move error message to override_options.
11332
11333         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
11334
11335         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
11336
11337         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
11338         (MIPS Options): Ditto.  Change mcpu entry to historical text.
11339
11340 2001-07-05  H.J. Lu  (hjl@gnu.org)
11341
11342         * config/mips/mips.c (mips_parse_cpu): New function to parse
11343         -march=*/-mcpu=*.
11344
11345 2001-07-05  Jim Wilson  <wilson@redhat.com>
11346
11347         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
11348         * config/ia64/t-ia64: Likewise.
11349         (LIB1ASMFUNCS): Update comment.
11350
11351 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
11352
11353         * doc/install.texi (Install GCC: Binaries): Fix typo.
11354
11355 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11356
11357         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
11358         reference using the stack pointer, adjust it since we push Y
11359         temporarily.
11360         ("*ashrsi3"): Likewise.
11361         ("*lshrsi3"): Likewise.
11362
11363 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11364
11365         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
11366         when -fomit-frame-pointer is used.
11367
11368 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
11369
11370         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
11371         (try_redirect_by_replacing_jump): Reverse updating properly the
11372         count and frequency information.  Reverse removing cc0 setter.
11373         (forwarder_block_p): Reverse fixing for fallthru blocks.
11374
11375 2001-07-05  DJ Delorie  <dj@redhat.com>
11376
11377         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
11378         (translate_options): If the above is defined, use it to map
11379         given options to new options.
11380         * doc/tm.texi: Document it.
11381
11382 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
11383             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11384
11385         * doc/invoke.texi (Optimize Options): Document that -fgcse may
11386         cause programs using computed gotos to run more slowly.
11387
11388 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11389
11390         * doc/install.texi (Specific): Markup, spelling and typo fixes.
11391         Fixed sorting.
11392         Consistently require binutils 2.11.2, not prereleases.
11393         (Specific, decstation-*): Canonicalize as mips-dec-*.
11394         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
11395         always necessary.
11396         (Specific, m68k-altos): Removed reference to README.altos, deleted.
11397         (Specific, mips-*): Reword MIPS C compiler requirements.
11398         (Specific, powerpc*-*-*): New, mention --with-cpu once.
11399         (Specific, sunv5): Removed, obsolete.
11400
11401 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
11402
11403         * dwarf2out.c (output_loc_list): Use an all ones mask for
11404         .text asm output and don't rely on long long
11405         literals. Reformat some long lines.
11406
11407 2001-07-05  Andreas Jaeger  <aj@suse.de>
11408
11409         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
11410         section.
11411
11412 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
11413
11414         * dwarf2out.c (dwarf2out_define): Update comment.
11415         (dwarf2out_undef): Ditto.
11416         (dwarf2out_start_source_file): Ditto.
11417         (dwarf2out_end_source_file): Ditto.
11418         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
11419         since we never call the start/end debug hook for the primary file.
11420
11421 2001-07-04  Kazu Hirata  <kazu@hxi.com>
11422
11423         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
11424         from shll.
11425
11426 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
11427
11428         * cppinit.c (remove_dup_dirs): Inform if a system include
11429         directory is being reordered.
11430         * doc/invoke.texi (Directory Options): GCC warns if you hide a
11431         system include.
11432         * doc/cpp.texi (Search Paths): Likewise.
11433         * doc/gcc.texi (Interoperation): Remove information about
11434         -I/usr/include.
11435
11436 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
11437
11438         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
11439         (VARRAY_TOP_CHAR_PTR): Likewise.
11440
11441 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11442
11443         * gcc.c (process_command): Don't assign elements of a const char*.
11444
11445 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11446
11447         * emit-rtl.c (change_address): Don't abort if invalid address while
11448         reload is in progress.
11449
11450 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
11451
11452         * c-lex.c (cb_file_change): Pass line number to
11453         debug_start_source_file.
11454         (cb_undefine): Pass correct line number to debug_undef.
11455
11456         * toplev.c (debug_start_source_file): Add line number to
11457         parameters. Pass it along to dwarf2out_start_source_file.
11458         (decode_g_option): Stop resetting debug level back to normal when
11459         we change debug formats, unless the current level is
11460         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
11461         3).
11462
11463         * toplev.h (debug_start_source_file): Add line number to
11464         parameters.
11465
11466         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
11467         parameters.
11468
11469         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
11470         parameters.
11471         Output debug_macinfo data for starting file if requested.
11472         (dwarf2out_end_source_file): Output debug_macinfo data for ending
11473         file if requested.
11474         (dwarf2out_define): Output debug_macinfo data for defining a macro
11475         if requested.
11476         (dwarf2out_undef): Output debug_macinfo data for undefining a
11477         macro if requested.
11478         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
11479         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
11480         (macinfo_section_label): New. DWARF2 macro info section label.
11481         (dwarf2out_init): If we want macro info, output the start label
11482         for the section.
11483         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
11484         attribute to the compilation unit die pointing to the macro info.
11485
11486 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
11487
11488         * dwarf2out.c (new_loc_list): Move to inside #ifdef
11489         DWARF2_DEBUGGING_INFO.
11490         (add_loc_descr_to_loc_list): Ditto.
11491         (output_loc_list): Ditto.
11492         Also, fix thinko in curr not being initialized.
11493         (gen_internal_sym): Ditto.
11494
11495 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11496
11497         * emit-rtl.c (replace_equiv_address): New function.
11498         * expr.h (replace_equiv_address): New declaration.
11499         * explow.c (validize_mem): Call it instead of change_address and
11500         also call if -fforce-addr and address is constant.
11501         * expr.c: Replace more calls to change_address with adjust_address
11502         and/or replace_equiv_address or to validize_mem.
11503         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
11504         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
11505         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
11506         * config/i370/i370.md, config/i860/i860.md: Likewise.
11507         * config/i960/i960.md, config/mips/mips.c: Likewise.
11508         * config/mips/mips.md, config/pa/pa.md: Likewise.
11509         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
11510         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
11511
11512 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11513
11514         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
11515
11516         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
11517         function.
11518
11519 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11520
11521         * doc/include: New directory.
11522         * doc/fdl.texi: Move to doc/include/fdl.texi.
11523         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
11524         * doc/include/funding.texi, doc/include/gpl.texi: New files.
11525         * doc/gcc.texi: Use funding.texi and gpl.texi.
11526         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
11527         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
11528         Update dependencies and use -I $(docdir)/include.
11529
11530 2001-07-04  Anthony Green  <green@redhat.com>
11531
11532         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
11533
11534 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11535
11536         * doc/install.texi (sparc64-*-*): Remove garbage.
11537
11538 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
11539
11540         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
11541         Fix typo in last change to use adjust_address.
11542
11543 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11544
11545         * doc/install.texi (Specific): Update information for *-*-solaris*.
11546
11547 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11548
11549         * explow.c (plus_constant_wide): Reinitialize Y for restart.
11550
11551 2001-07-03  Stan Shebs  <shebs@apple.com>
11552
11553         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
11554         case for flag_no_mach_text_sections.
11555         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
11556         * config/darwin.c (flag_no_mach_text_sections): Remove.
11557         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
11558
11559 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11560
11561         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
11562         and avoid checking for constant as first operand.
11563         * recog.c (find_constant_term_loc): No longer static.
11564         (adj_offettable_operand): Delete.
11565         * rtl.h (adj_offsettable_operand): Delete declaration.
11566         (find_constant_term): Add declaration.
11567         * caller-save.c: Replace calls to adj_offsettable_operand with calls
11568         to adjust_address.
11569         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
11570         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
11571         * config/i386/i386.c, config/i386/i386.md: Likewise.
11572         * config/i860/i860.c, config/i960/i960.c: Likewise.
11573         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
11574         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
11575         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
11576         * config/mips/mips.c, config/mips/mips.md: Likewise.
11577         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
11578         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
11579         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
11580         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
11581         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
11582         * config/ns32k/ns32k.md: Likewise.
11583
11584 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
11585
11586         * rtl.c (copy_rtx): Handle 'T' format letter.
11587         * gensupport.c (collect_insn_data): Likewise.
11588         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
11589
11590 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
11591
11592         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
11593         -B option.  Use 'dir' not 'foo' as example directory name.
11594
11595 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11596
11597         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11598         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
11599
11600 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
11601
11602         * doc/cppinternals.texi: Improve formatting and logical markup.
11603
11604 2001-07-03  Andreas Jaeger  <aj@suse.de>
11605
11606         * Makefile.in (insn-recog.o): Add dependency on reload.h.
11607
11608         * genrecog.c (write_header): Include reload.h for prototypes in
11609         insn-recog.c.
11610
11611 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
11612
11613 config:
11614         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
11615         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
11616         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
11617         i386_pe_valid_type_attribute_p): Add.
11618         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
11619         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
11620
11621 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11622
11623         * explow.c (plus_constant_wide, case LO_SUM): New case.
11624         (plus_constant_for_output_wide): Delete.
11625         * rtl.h (plus_constant_for_output): Delete.
11626         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
11627         instead of plus_constant_for_output.
11628         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
11629         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
11630         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
11631         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
11632         * config/sparc/sparc.md: Likewise.
11633         Convert some change_address calls to adjust_address.
11634
11635 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
11636
11637         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
11638         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
11639         documentation of -std and -Wwrite-strings.
11640
11641 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
11642
11643         * cse.c (canon_hash): Don't register registers in very small
11644         register classes, as extending their lifetime might cause
11645         reload to fail.
11646
11647 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
11648
11649         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
11650
11651         * flow.c (forwarder_block_p): Fix for fallthru blocks.
11652         (try_redirect_by_replacing_jump): Update properly the count
11653         and frequency information.
11654
11655 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
11656
11657         * toplev.c (dump_file_index): Move SSA dumps just after first
11658         jump dump.
11659         (dump_file): Corresponding changes.
11660         (rest_of_compilation): Move SSA path to just after the first
11661         jump pass.
11662         * doc/gcc.texi (Passes): Update due to movement of SSA path.
11663         * doc/invoke.texi: Update dump file #s as they were completely
11664         out of date with reality.
11665
11666 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
11667
11668         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
11669
11670         * expr.c (emit_move_insn_1): Deal with non-default
11671         STACK_PUSH_CODE.
11672
11673         * expr.c (emit_single_push_insn): Fix warning.
11674
11675 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
11676
11677         * expr.c (emit_move_insn_1): Avoid modifying
11678         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
11679
11680 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11681
11682         * emit-rtl.c (adjust_address): New function.
11683         * expr.h (adjust_address): Add declaration.
11684         * builtins.c: Replace some calls to change_address with calls to it
11685         or to validize_mem.
11686         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
11687         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
11688         * config/arm/arm.c, config/convex/convex.c: Likewise.
11689         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
11690         * config/i386/i386.c, config/i386/i386.md: Likewise.
11691         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
11692         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
11693         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
11694         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
11695         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
11696
11697 2001-07-02  Jim Wilson  <wilson@redhat.com>
11698
11699         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
11700
11701 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
11702
11703         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
11704         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
11705
11706 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
11707
11708         * cppinit.c (lang_defaults): New table.
11709         (set_lang): Just read from lang_defaults into the live options
11710         structure.
11711
11712 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
11713
11714         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
11715         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
11716         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
11717
11718 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11719
11720         * doc/install.texi: Various spelling and markup fixes.
11721         (Installing GCC): Component specific installation instructions are
11722         gone.
11723         Fix reference.
11724         Warn about removing old install dir in the presence of shared libs.
11725         (Configuration): Invoke with options target to match configure
11726         --help.
11727         Consistently refer to gas, gld pathnames.
11728         Invert --enable-multilib documentation.
11729         Remove references to old compiler versions.
11730
11731 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11732
11733         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
11734
11735 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11736
11737         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
11738         section.
11739         (Specific, mips*-sgi-irix5): Note IDO download.
11740         Reworded MIPS C hints.
11741         Use GNU as instead of GAS.
11742         Markup fixes.
11743         Removed SGI Freeware reference, IRIX 6 only.
11744         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
11745         Note N64 library requirement/workaround.
11746         Update O32 hints.
11747         Complete list of structure passing bug victims.
11748
11749 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11750
11751         * doc/install.texi: Remove CVS Id.
11752
11753 2001-07-02  Andreas Jaeger  <aj@suse.de>
11754
11755         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
11756         (find_inherently_necessary): Remove unused variable.
11757
11758 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
11759
11760         * c-common.h (TDI_inlined): New ast dump phase.
11761         (dump_flag_name): New function.
11762         * c-dump.c (dump_files): Add inlined phase.
11763         (dump_flag_name): Define.
11764         * doc/invoke.texi (-fdump-ast-inlined): Document.
11765
11766 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11767
11768         * stor-layout.c (layout_decl): Revert change to handling of alignment
11769         in packed types.
11770
11771 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11772
11773         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
11774         for FIELD_DECL.
11775
11776 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
11777
11778         * doc/tm.texi (FUNCTION_ARG): Document that the last call
11779         is special.
11780
11781 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
11782
11783         * tlink.c (recompile_files): Remove COMPILER_PATH and
11784         LIBRARY_PATH from the environment.
11785
11786 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
11787
11788         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
11789         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
11790         enumerators.
11791         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
11792
11793         * c-parse.in (OBJC_STRING): Kill.
11794         (objc_string): Decompose to [objc_string] '@' STRING.
11795         (reswords): Take the leading '@' off all the Objective C keywords.
11796         (objc_rid_sans_at): Kill.
11797         (init_reswords): Don't initialize it.
11798         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
11799         (_yylex): Kill reconsider label.  Look ahead one token after
11800         an '@'; if we get an identifier, check whether it's an
11801         Objective C @-keyword.  If so, return the keyword.  Otherwise,
11802         put back the token and return the '@' as a terminal.
11803
11804         * cpplib.c (lex_macro_node): Remove unnecessary check for
11805         leading '@' on identifier.  Clarify control flow and commentary.
11806
11807 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11808
11809         * cse.c (new_label_ref): Variable deleted.
11810         (insert): Remove set of new_label_ref.
11811         (check_for_label_ref): New function.
11812         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
11813
11814 See ChangeLog.5 for earlier changes.