OSDN Git Service

Improved compiler checkings for ObjC + GNU runtime when sending messages
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Mon Oct 29 21:11:40 2001  Nicola Pero  <n.pero@mi.flashnet.it>
2         
3         * objc/objc-act.c (finish_message_expr): For the GNU runtime: when
4         determining the type of the receiver, do not check that TREE_CODE
5         of receiver is CALL_EXPR before calling receiver_is_class_object
6         ().  (receiver_is_class_object): For the GNU runtime: recognize
7         the case that the receiver is self in a class method context.
8         Check that TREE_CODE of receiver is CALL_EXPR when checking that
9         the receiver is a call to objc_get_class.
10
11 2001-10-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12
13         * pa.md (floatunssisf2): Set subreg 0 of operand 2 to zero.
14
15 Mon Oct 29 07:23:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16
17         * Makefile.in (OBJS): Put all files in alphabetical order.
18
19         * dwarf2out.c (add_const_value_attribute): Fix error in last
20         change.
21
22 Mon Oct 29 12:43:06 CET 2001  Jan Hubicka  <jh@suse.cz>
23
24         * basic-block.h (purge_all_dead_edges): Add update_life_p argument.
25         * cfgcleanup.c (merge_blocks): Update the life flag after merging;
26         fix warning.
27         * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness.
28         (life_analysis): call purge_all_dead_edges after deleting noops.
29         (delete_noop_move): Do not purge CFG.
30         * toplev.c (rest_of_compilation): Update purge_all_dead_edges call.
31
32 2001-10-28  David Edelsohn  <edelsohn@gnu.org>
33
34         * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
35         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete.
36         (ASM_GLOBALIZE_LABEL): Use assemble_name.
37         (ASM_OUTPUT_COMMON): Likewise.
38         * config/rs6000/rs6000.c (print_operand): Use assemble_name.
39         (rs6000_output_function_epilogue): Likewise.
40         (output_mi_thunk): Fix typo.
41         (rs6000_output_symbol_ref): Use assemble_name.
42         (output_toc): Likewise.
43         * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete.
44         * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete;
45         assemble_name calls STRIP_NAME_ENCODING.
46         (ASM_OUTPUT_LABEL): Use assemble_name.
47         (ASM_GLOBALIZE_LABEL): Likewise.
48         (ASM_DECLARE_FUNCTION_NAME): Likewise.
49         (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op.  Use assemble_name.
50         (ASM_OUTPUT_LOCAL): Likewise.
51
52 Sun Oct 28 15:45:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
53
54         * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
55         (expand_builtin_apply, expand_builtin_return): Likewise.
56         (expand_builtin_va_arg, expand_builtin_va_copy): Likewise.
57
58 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
59
60         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
61         ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11,
62         c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc,
63         configure, configure.in, except.c, except.h, flow.c, function.c,
64         gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def,
65         predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c,
66         sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c,
67         unroll.c: Fix spelling errors.
68
69         * doc/extend.texi, doc/invoke.texi: Fix spelling.
70
71         * doc/gcc.texi: Document use of "dependent" and American spelling.
72
73 Sun Oct 28 17:05:36 CET 2001  Jan Hubicka  <jh@suse.cz>
74
75         * expr.c (emit_group_load): Support CONCATs by storing them to memory
76         and reloading.
77
78 Sun Oct 28 09:59:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
79
80         * expr.c (store_constructor_field): Only call adjust_address on MEM.
81
82 Sun Oct 28 16:48:09 CET 2001  Jan Hubicka  <jh@suse.cz>
83
84         * genrecog.c (write_switch):  Output if before switch for
85         DT_elt_zero_wide_safe.
86
87 2001-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
88
89         * Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h
90         * i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma.
91         (FUNCTION_PROFILER): Const-ify.
92         * halfpic.c: Include "expr.h", "output.h" and "halfpic.h".
93         (eliminate_constant_term, assemble_name, output_addr_const):
94         Remove declarations.
95         (ptr_half_pic_address_p, half_pic_hash): Prototype.
96         (all_refs, half_pic_prefix, half_pic_hash, half_pic_declare,
97         half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify.
98         * halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype.
99         (half_pic_declare, half_pic_external): Const-ify.
100         * toplev.c: Include "halfpic.h".
101
102 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
103
104         * config/alpha/alpha.md, config/arm/arm.c, config/arm/arm.h,
105         config/d30v/d30v.h, config/fr30/fr30.c, config/i370/x-oe,
106         config/i386/i386.c, config/i386/i386-interix.h,
107         config/i386/i386.md, config/i386/i386.h, config/i386/sco5.h,
108         config/i860/i860.h, config/i860/i860.md, config/m68k/aux-exit.c,
109         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.md,
110         config/ns32k/ns32k.h, config/pa/pa.c, config/rs6000/rs6000.c,
111         config/sparc/sparc.c, config/m68hc11/m68hc11.c,
112         config/cris/cris.c, config/cris/cris.h, config/s390/s390.c,
113         config/s390/s390.h, config/stormy16/stormy16.h, doc/tm.texi: Fix
114         spelling errors.
115
116         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
117         ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS,
118         c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c,
119         collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h,
120         haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c,
121         regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c,
122         system.h, toplev.c: Fix spelling errors.
123
124 Sat Oct 27 17:32:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
125
126         * gcse.c (insert_insn_end_bb): Don't assume PAT is a SET.
127
128         * dwarf2out.c (reg_number): Abort if pseudo.
129         (reg_loc_descriptor): Return 0 if pseudo.
130         (is_based_loc): Return 0 if pseudo.
131         (mem_loc_descriptor): Return 0 for pseudo and handle 0 return from
132         recursive calls.
133         (concat_loc_descriptor): Return 0 if either part's descriptor is 0.
134         (loc_descriptor): Return 0 if can't find location and handle 0
135         return from recursive calls.
136         (loc_descriptor_from_tree): Likewise.
137         Fix handling of indirect.
138         Also return 0 for PLACEHOLDER_EXPR.
139         Clean up COMPONENT_REF cases.
140         (add_AT_location_descriptor): Simplify, but handle 0 return from
141         loc_descriptor.
142         (add_const_value_attribute): Avoid shift count warning.
143         (add_bound_info): Remove test for PLACEHOLDER_EXPR here.
144         Set comp_unit_die as context if not in function.
145
146         * config/mips/mips-protos.h: Break up long lines.
147         Remove needless #ifdef/#endif blocks.
148         Don't declare functions declared in file made by genpreds or recog.h.
149         * config/mips/mips.c (mips_output_function_prologue): TSIZE
150         is now HOST_WIDE_INT; delete unneeded casts.
151         * config/mips/mips.h: Don't use #elif.
152         
153         * expr.c (stor_constructor_field): Always call adjust_address.
154         Copy TARGET before changing its alias set.
155         (store_field): Likewise, for TO_RTX.
156         (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find
157         replacement.
158         (safe_from_p, case ADDR_EXPR): Properly check for conflict.
159         (find_placeholder): Return 0 if can't find object.
160         (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder
161         returns 0.
162
163 Sat Oct 27 16:31:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
164
165         * ifcvt.c (if_convert): Call clear_aux_for_blocks.
166
167 Sat Oct 27 12:12:09 CEST 2001  Jan Hubicka  <jh@suse.cz>
168
169         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
170         merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
171         (merge_blocks): Properly udpate life after making edge nonfallthru.
172         * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.
173
174 2001-10-26  Kazu Hirata  <kazu@hxi.com>
175
176         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
177
178 2001-10-26  Neil Booth  <neil@daikokuya.demon.co.uk>
179
180         * c-typeck.c (convert_arguments): When comparing for enumeral
181         type equality, use TYPE_MAIN_VARIANT.
182         * gcc.dg/Wconversion.c: New tests.
183
184 2001-10-26  Kazu Hirata  <kazu@hxi.com>
185
186         * s390/s390.c: Fix comment typos.
187         * s390/s390.h: Likewise.
188         * s390/s390.md: Likewise.
189
190 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
191
192         * tree-inline.c (WALK_SUBTREE_TAIL): New macro.
193         (walk_tree): Use it for tail calls where appropriate.
194
195 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
196
197         * cse.c (check_for_label_ref): Don't require REG_LABEL notes for
198         non-local label_refs.
199
200 2001-10-26  Kazu Hirata  <kazu@hxi.com>
201
202         * config/h8300/h8300.md (4 anonymous patterns): New.
203
204 2001-10-26  Kazu Hirata  <kazu@hxi.com>
205
206         * config/h8300/h8300.c (get_shift_alg): Clean up.  Return the
207         algorithm through the shift_info structure.
208         (emit_a_shift): Update the use of get_shift_alg.
209
210 2001-10-27  Daniel Berlin  <dan@cgsoftware.com>
211
212         * sched-rgn.c: Remove bitset typedef.
213         Change bitset to sbitmap in prototypes / variable types.
214         Remove bbset_size.
215         Remove edgeset_bits.
216         Remove edgeset_size.
217         s/BITSET_ADD/SET_BIT/g
218         s/BITSET_INVERT/sbitmap_ones/g
219         s/BITSET_INTER/sbitmap_a_and_b/g
220         s/BITSET_UNION/sbitmap_a_or_b/g
221         s/BITSET_DIFFER/sbitmap_difference/g
222         s/bitset_member/TEST_BIT/g
223         (BITSET_*): Removed.
224         (bitset_member): Removed.
225         (extract_bitlst): Rewrite, now that we have sbitmaps, we can use
226         EXECUTE_IF_SET_IN_SBITMAP.
227         (split_edges): Rewrite, use sbitmap functions instead of bitset
228         operations.
229         (schedule_region): Allocate/free sbitmaps, rather than bitsets.
230
231 2001-10-26  Andreas Schwab  <schwab@suse.de>
232
233         * reload1.c (emit_input_reload_insns): Fix parens in last
234         (undocumented) change that was supposed to change only whitespace.
235
236 Fri Oct 26 07:18:08 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
237
238         * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning.
239
240         * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for
241         ASM_OPERANDS.
242
243 2001-10-26  Andreas Jaeger  <aj@suse.de>
244
245         * flow.c (clear_log_links): Remove unused variable.
246         * cfgcleanup.c (cleanup_cfg): Likewise.
247
248 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
249
250         * tree-inline.c (remap_decl): Don't copy size and size_unit here.
251         (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node.
252
253 2001-10-26  Richard Henderson  <rth@redhat.com>
254
255         * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG;
256         rename PV_REG to R27_REG.
257         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
258         (REG_CLASS_FROM_LETTER): Update.
259         (PREFERRED_RELOAD_CLASS): Don't widen a reg class.
260         * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27.
261         (udivsi3, modsi3, umodsi3): Likewise.
262         (divdi3, udivdi3, moddi3, umoddi3): Likewise.
263
264 2001-10-26  Richard Henderson  <rth@redhat.com>
265
266         * cfg.c (clear_aux_for_blocks): Split out of ...
267         (free_aux_for_blocks): here.
268         (clear_aux_for_edges): Split from ...
269         (free_aux_for_edges): here.
270         * basic-block.h: Declare them.
271         * lcm.c (compute_antinout_edge): Use them.
272         (compute_laterin, compute_available, compute_nearerout): Likewise.
273         (optimize_mode_switching): Likewise.
274
275 2001-10-26  Richard Henderson  <rth@redhat.com>
276
277         * Makefile.in (unstage*): Remove as, ld, collect-ld before
278         moving everything back to the main build directory.
279
280 2001-10-26  Christopher Faylor  <cgf@redhat.com>
281
282         * config/i386/cygwin.h: Search target specfic include directory, if
283         appropriate.
284
285 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
286
287         * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside
288         of macro guards. Fix #endif comment.
289
290         * output.h (default_exception_section, default_eh_frame_section):
291         Move prototypes outside of macro guard.
292
293         * crtstuff.c: Fix #endif comment.
294
295 Thu Oct 25 12:21:58 2001  Jeffrey A Law  (law@cygnus.com)
296
297         * doc/md.texi (movMM): Clarify semantics of storing into a
298         non-paradoxical SUBREG.
299
300 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
301
302         * langhooks.c (lang_hook_default_clear_binding_stack): New.
303         (lang_hook_default_get_alias_set): Move next to other alias
304         hooks.
305         * langhooks.h: Prototype lang_hook_default_clear_binding_stack.
306         (LANG_HOOKS_CLEAR_BINDING_STACK): New macro.
307         (LANG_HOOKS_INITIALIZER): Add it.
308         * toplev.h (struct lang_hooks): Add clear_binding_stack.
309         * toplev.c (compile_file):  Call lang_hooks.clear_binding_stack
310         instead of a loop calling poplevel.
311
312 2001-10-25  Nick Clifton  <nickc@cambridge.redhat.com>
313
314         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace
315         occurrences of #elif with #if...#endif.
316
317 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
318
319         * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning.
320
321 Thu Oct 25 08:46:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
322
323         * alias.c (can_address_p): No longer static.
324         * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
325         Return 0 if all parameters are default values.
326         (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
327         (adjust_address_1): Try harder to compute a size.
328         * expr.c (expand_assignment, store_constructor): If can't address,
329         set MEM_KEEP_ALIAS_SET_P.
330         (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
331         (store_field): Likewise.
332         (store_constructor): Simplify call to store_constructor_field.
333         * expr.h (can_address_p): New declaration.
334         * gensupport.c (gen_rtx_CONST_INT): New function.
335         * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
336         (MEM_SIZE): Get size from mode, if not set and not BLKmode.
337         (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
338
339         * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst.
340
341 2001-10-24  Christopher Faylor  <cgf@redhat.com>
342
343         * config/i386/cygwin.h: Use proper path for mingw crt files when
344         -mno-cygwin.
345
346 Wed Oct 24 18:43:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
347
348         * dwarf2out.c (file_info_cmp): Always return consistent results.
349
350 2001-10-24  Roger Sayle <roger@eyesopen.com>
351
352         * stmt.c (expand_end_case): Index jumptables from zero for
353         suitably small values of minval.
354
355 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
356
357         * stor-layout.c (place_union_field): If any field was aligned with
358         attribute aligned, set record type's TYPE_USER_ALIGN.
359         (place_field): Likewise.
360         (finalize_record_size): Don't clear TYPE_USER_ALIGN.
361         (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN.
362
363 2001-10-24  Zack Weinberg  <zack@codesourcery.com>
364
365         * c-common.h (struct c_common_identifier): Remove rid_code field.
366         (C_RID_CODE): Use ->node.rid_code instead of ->rid_code.
367
368         * c-typeck.c (constructor_designated): New local flag.
369         (struct constructor_stack): Add "designated" field to match.
370         (start_init): Clear it.
371         (really_start_incremental_init, push_init_level): Push and
372         clear it.
373         (pop_init_level): Pop it.
374         (set_designator): Set it.
375
376         (pop_init_level): Suppress "missing initializer" warnings if
377         constructor_designated is true.
378         (process_init_element): Suppress warning about union
379         initialization under traditional C, if constructor_designated
380         is true.
381
382 Wed Oct 24 15:35:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
383
384         * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last
385         change.
386
387 Wed Oct 24 13:26:12 2001  Jeffrey A Law  (law@cygnus.com)
388
389         * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition.
390
391 2001-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
392
393         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if
394         the node was already a set to a constant.
395
396 Wed Oct 24 12:41:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
397
398         * emit-rtl.c (set_mem_attributes): Fix typo in last change.
399         * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL.
400
401 2001-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
402
403         * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings.
404         (ASM_OUTPUT_ASCII): Const-ify.  Fix signed/unsigned warning.
405         (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
406         * s390.c (s390_final_chunkify): Don't use string concatenation.
407         (s390_function_prologue, s390_function_epilogue): Const-ify.
408         * s390.h (FUNCTION_PROFILER): Remove unused variable.
409
410 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
411
412         * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function
413         prototypes.
414
415 2001-10-23  Stan Shebs  <shebs@apple.com>
416
417         * config/rs6000/x-darwin: Use -no-cpp-precomp instead of
418         -traditional-cpp in first-stage compilation.
419
420 Tue Oct 23 21:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
421
422         * gensupport.c (target_flags): Add.
423
424 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
425
426         * builtins.c (expand_builtin_setjmp): Only call convert_memory_address
427         if needed.
428         (expand_builtin_longjmp, expand_builtin_alloca): Likewise.
429         * except.c (expand_builtin_frob_return_addr): Likewise.
430         (expand_builtin_eh_return): Likewise.
431         * stmt.c (expand_computed_goto): Likewise.
432         * explow.c (memory_address): Likewise.
433         (allocate_dynamic_stack_space): Clean up predicate testing.
434         (probe_stack_range): Convert SIZE to Pmode.
435         * calls.c (rtx_for_function_call): Only call convert_memory_address
436         if needed.
437         Pass function call operand as ptr_mode, not Pmode.
438         * expr.c (expand_assignment): Clean up calls to convert_memory
439         address by only doing so when needed and making offsets Pmode.
440         (store_constructor, expand_expr, expand_expr_unaligned): Likewise.
441         * function.c (assign_parms): Ensure address in MEM for RESULT_DECL
442         is in Pmode, not ptr_mode.
443
444 2001-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
445
446         * darwin-protos.h (constructor_section, destructor_section,
447         mod_init_section, mod_term_section): Prototype.
448         * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs):
449         Const-ify.
450         * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME):
451         Likewise.
452         (SECTION_FUNCTION): Prototype `FUNCTION'.  Delete
453         objc_section_init declaration.
454         (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init.
455         (objc_section_init, try_section_alias): Make static.
456         (alias_section): Make static and hide unused function.
457         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
458
459 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
460
461         * alias.c (can_address_p): Compnonents are not addressable if
462         the containing type has alias set 0.
463         (get_alias_set): Rework to use STRIP_NOPS.
464         Only call front-end routine on object, type, or object with
465         NOPs stripped, not inner values.
466         Use language hook to call front-end routine.
467         * builtins.c (get_memory_rtx): Always call set_mem_attributes.
468         (expand_builtin_apply): Call set_mem_align on MEMs we make.
469         Don't pass alignment to emit_block_move.
470         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
471         (expand_builtin_memset): Likewise, but for clear_storage.
472         * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
473         and remove C++ specific parts.
474         * c-common.h (c_common_get_alias_set): Add declaration.
475         * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
476         * calls.c (emit_call_1): Fix typo in sibcall_pop case.
477         (save_fixed_argument_area): Call set_mem_align.
478         Remove alignment in call to emit_block_move.
479         (emit_library_call_value_1, store_one_arg): Likewise.
480         (target_for_arg): Remove; disabled long ago.
481         * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
482         once and similar cleanups.
483         (offset_address): Use proper introductory comment.
484         * expr.c (emit_block_move): Use alignment from that of MEM args, not
485         from explicit operand; all callers changed.
486         (clear_storage): Likewise.
487         (expand_assignment): Don't call set_mem_alias_set on to_rtx.
488         (store_field): Remove kludge on alias set used for to_rtx.
489         (highest_pow2_factor, case *_DIV_EXPR): Never return 0.
490         (expand_expr_unaligned): Call set_mem_attributes instead of
491         set_mem_alias_set.
492         * expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
493         * function.c (assign_stack_temp_for_type): Set MEM alignment.
494         (expand_function_end): Track MEM attributes of trampolines.
495         * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
496         * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
497         attributes from original.
498         * langhooks.c (lang_hook_default_get_alias_set): New function.
499         (hook_get_alias_set_0): New function.
500         * langhooks.h (hook_get_alias_set_0): New declaration.
501         (lang_hook_default_get_alias_set): Likewise.
502         (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
503         * reload1.c (alter_reg): Use adjust_address_nv.
504         * rtl.c (get_mode_alignment): Moved to here.
505         * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
506         change default if unknown from 1 to BITS_PER_UNIT.
507         * stor-layout.c (get_mode_alignment): Remove from here.
508         * toplev.h (struct lang_hoks): Add get_alias_set field.
509         * tree.h (lang_get_alias_set): Delete declaration.
510         * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
511         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
512         (ix86_va_arg): Likewise.
513         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
514         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
515         * config/sparc/sparc.c (sparc_va_arg): Likewise.
516         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
517         (expand_block_move_mem): Remove dead code.
518
519 2001-10-22  Neil Booth  <neil@daikokuya.demon.co.uk>
520
521         * c-common.c (warn_div_by_zero): New.
522         * c-common.h (warn_div_by_zero): New.
523         * c-decl.c (c_decode_option): Take it on the command line.
524         * c-typeck.c (build_binary_op): Warn about division by zero.
525         * doc/invoke.texi: Document the new command line option, fix
526         documentation of -Wmultichar.
527         * testsuite/gcc.dg/divbyzero.c: New tests.
528         * testsuite/gcc.dg/noncompile/20010524-1.c: Update.
529
530 Tue Oct 23 15:30:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
531
532         * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op.
533
534         * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE
535         to avoid update_life_info call.
536         * basic-block.h (CLEANUP_UPATE_LIFE): Define.
537         * cfgcleanup.c (bb_flags): New enum.
538         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros.
539         (notice_new_block, update_forwarder_flag): New functions.
540         (try_simplify_condjump): Use FORWARDER_BLOCK_P.
541         (try_forward_edges): Likewise; update flags.
542         (merge_blocks): Likewise.
543         (outgoing_edges_match): Likewise.
544         (try_crossjump_to_edge): Likewise.
545         (try_optimize_cfg): Likewise; initialize and clear the flags;
546         recompute life info if needed.
547         (cleanup_cfg): No need to clear aux pointers.
548
549 2001-10-23  Alexandre Oliva  <aoliva@redhat.com>
550
551         * config/i386/i386.c (override_options): Default to minimum
552         stack alignment when optimizing for code size.
553         * doc/invoke.texi (-mpreferred-stack-boundary): Document the
554         change.
555
556         * config/i386/i386.c (override_options): Set upper limit of
557         -mpreferred-stack-boundary to 12.
558
559 2001-10-22  Zack Weinberg  <zack@codesourcery.com>
560
561         * recog.c (peephole2_optimize): Add default case to switch.
562
563 2001-10-23  Joseph S. Myers  <jsm28@cam.ac.uk>
564
565         * doc/gcc.texi (Sending Patches): Remove.
566
567 2001-10-22  Hans-Peter Nilsson  <hp@bitrange.com>
568
569         * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin
570         fields when comparing.
571
572 2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
573
574         * arm.h (HOST_INT, HOST_UINT): Delete.  Remove all uses.
575         * arm.c (HOST_INT, HOST_UINT): Likewise.
576
577 2001-10-22  Stan Shebs  <shebs@apple.com>
578
579         * config/darwin-protos.h (darwin_exception_section): Declare.
580         (darwin_eh_frame_section): Declare.
581
582 Mon Oct 22 18:21:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
583
584         * i386.md (movti_rex64): Fix mode.
585
586 2001-10-22  Stan Shebs  <shebs@apple.com>
587
588         * target.h (struct gcc_target): Add asm_out.exception_section,
589         asm_out.eh_frame_section.
590         * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro.
591         (TARGET_ASM_EH_FRAME_SECTION): New.
592         (TARGET_INITIALIZER): Update.
593         * output.h (default_exception_section): Declare.
594         (default_eh_frame_section): Declare.
595         * dwarf2out.c: Include target.h.
596         (output_call_frame_info): Call target hook for eh frames.
597         (default_eh_frame_section): New function.
598         * except.c: Include target.h.
599         (output_function_exception_table): Call target hook for exception
600         section.
601         * varasm.c (default_exception_section): Rename from
602         exception_section, remove EXCEPTION_SECTION macro.
603
604         * config/darwin.h (darwin_eh_frame_section): New function.
605         (EXCEPTION_SECTION): Remove.
606         (TARGET_ASM_EXCEPTION_SECTION): Define.
607         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove.
608         (nextstep_exception_section): New function.
609         (nextstep_eh_frame_section): New function.
610         (TARGET_ASM_EXCEPTION_SECTION): Define.
611         (TARGET_ASM_EH_FRAME_SECTION): Define.
612
613         * config/pa/som.h (EXCEPTION_SECTION): Remove.
614         (TARGET_ASM_EXCEPTION_SECTION): Define.
615         * config/rs6000/sysv4.h, config/rs6000/xcoff.h
616         (EXCEPTION_SECTION): Remove.
617         (TARGET_ASM_EXCEPTION_SECTION): Define.
618         * config/stormy16/stormy16.h: Remove comments referencing
619         EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP.
620
621         * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and
622         TARGET_ASM_EH_FRAME_SECTION.
623
624 2001-10-22  Nick Clifton  <nickc@cambridge.redhat.com>
625
626         * config/mips/mips.md (mul_acc_si): Fix precedence of conditional
627         terms.
628
629         * c-format.c: Fix spelling typo in comment.
630
631         * sched-int.h: Fix typo in GCC preamble.
632
633 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
634
635         PR debug/4252
636         * doc/invoke.texi: Remove references to -fdump-translation-unit.
637
638 2001-10-22  Richard Henderson  <rth@redhat.com>
639
640         * config/i386/i386.c (ix86_expand_clear): New.
641         * config/i386/i386-protos.h: Declare it.
642         * config/i386/i386.md (setcc peep2s): Use it.
643         (movsi_xor): Unexport.
644
645 2001-10-22  Richard Henderson  <rth@redhat.com>
646
647         * flow.c (clear_log_links): Use free_INSN_LIST_list, not
648         free_EXPR_LIST_list for LOG_LINKS.
649
650 2001-10-21  Robert Lipe  <robertlipe@usa.net>
651
652         * config/i386/i386.c (sco_asm_named_section): Delete.
653         (sco_asm_out_constructor): Delete.
654         * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h.
655         (ASM_OUTPUT_DOUBLE_INT): Likewise.
656         (TARGET_ASM_CONSTRUCTOR): Delete.  Use default.
657         (TARGET_ASM_NAMED_SECTION): Use default for ELF.
658         (EXCEPTION_SECTION): Delete EH scn renaming hack.
659
660 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
661
662         * c-format.c (maybe_read_dollar_number): Use safe-ctype macros
663         and/or fold extra calls into fewer ones.
664         * collect2.c (dump_file): Likewise.
665         * cppexp.c (parse_number): Likewise.
666         * cpplex.c (_cpp_lex_direct): Likewise.
667         * final.c (output_asm_insn, asm_fprintf): Likewise.
668         * fix-header.c (inf_scan_ident, main): Likewise.
669         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
670         Likewise.
671         * fold-const.c (real_hex_to_f): Likewise.
672         * gen-protos.c (parse_fn_proto): Likewise.
673         * genattrtab.c (check_attr_test, check_attr_value): Likewise.
674         * genrecog.c (change_state, write_action): Likewise.
675         * gensupport.c (shift_output_template): Likewise.
676         * local-alloc.c (requires_inout): Likewise.
677         * mips-tfile.c (IS_ASM_IDENT): Likewise.
678         * protoize.c (is_id_char, main): Likewise.
679         * real.c (asctoeg): Likewise.
680         * recog.c (asm_operand_ok): Likewise.
681         * reload.c (find_reloads): Likewise.
682         * scan.c (scan_identget_token): Likewise.
683         * sched-vis.c (print_value): Likewise.
684         * stringpool.c (ggc_alloc_string): Likewise.
685         * toplev.c (read_integral_parameter, decode_g_option): Likewise.
686         * tradcif.y (parse_number, yylex, parse_escape): Likewise.
687         * tradcpp.c (rescan): Likewise.
688         * tree.c (clean_symbol_name): Likewise.
689         * varasm.c (decode_reg_name): Likewise.
690
691         * alpha.h (ASM_OUTPUT_ASCII): Likewise.
692         * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise.
693         * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise.
694         * m88k.c (output_ascii): Likewise.
695         * m88k.h (OVERRIDE_OPTIONS): Likewise.
696         * mcore.h (REG_CLASS_FROM_LETTER): Likewise.
697         * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise.
698         * sh.h (REG_CLASS_FROM_LETTER): Likewise.
699
700 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
701
702         * langhooks.c (lang_hook_default_do_nothing,
703         lang_hook_default_decode_option): New defaults.
704         * langhooks.h: Make hooks unconditional and non-NULL.
705         * toplev.c (compile_file, toplev_main): Update.
706         * toplev.h: Update comments.
707         * objc/objc-act.c (lang_hooks): Update to new paradigm.
708
709 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
710
711         * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE.
712
713         * system.h (IN_RANGE): New macro.
714
715 2001-10-21  Zack Weinberg  <zack@codesourcery.com>
716
717         * aclocal.m4 (AM_WITH_NLS): Also create and substitute
718         INTLDEPS variable, which does not include $LIBICONV.
719         * Makefile.in: Use INTLDEPS in LIBDEPS.
720         * configure: Regenerate.
721
722 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
723
724         * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char.
725         * cpplex.c (lex_percent, lex_dot): Remove.
726         (get_effective_char, skip_block_comment, skip_line_comment,
727         parse_identifier_slow, parse_number, parse_string, save_comment,
728         _cpp_lex_direct): Update to do lookback freely.
729         (IF_NEXT_IS, BACKUP): New macros.
730         * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char.
731         * cppmacro.c (paste_tokens): Update.
732
733 2001-10-20  Nick Clifton  <nickc@cambridge.redhat.com>
734
735         * doc/invoke.texi (i386 and x86-64 Options): Fix typo.
736
737 2001-10-20  Hans-Peter Nilsson  <hp@axis.com>
738
739         * reload1.c (reload): Check CONSTANT_P before calling
740         LEGITIMATE_PIC_OPERAND_P.
741         * config/cris/cris.c (cris_legitimate_pic_operand): Revert
742         workaround of 2001-10-13.
743
744 Sat Oct 20 15:16:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
745
746         * i386.c (split_di): Handle splitting of DFmode.
747
748 Sat Oct 20 07:27:14 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
749
750         * emit-rtl.c (set_mem_attributes): Alignment is in bits.
751         (adjust_address_1, offset_address): Likewise.
752
753         * final.c (output_asm_operand_names): New fcn, from output_asm_insn.
754         (output_asm_insn): Call it for each line output.
755         Don't record an operand more than once.
756
757         * toplev.h (struct lang_hooks): HONOR_READONLY now bool.
758         * main.c: Include config.h and system.h, but not ansidecl.h.
759         * Makefile.in (main.o): Update accordingly.
760
761 Sat Oct 20 12:05:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
762
763         * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64.
764
765 Sat Oct 20 12:01:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
766
767         * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter.
768         * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies):
769         Break out from ...
770         (find_sub_basic_blocks): ... here;
771         (find_many_sub_basic_blocks): New.
772         * recog.c (split_all_insns): Update find_sub_basic_blocks call.
773
774         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4.
775
776         * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.:
777
778         * i386.c (split_di, split_ti): Revamp to use simplify_subreg.
779
780         * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new.
781         * flow.c (update_life_info): Measure time.
782         * c-decl.c: Include timevar.h
783         (c_expand_body): Measure time.
784         * toplev.c (rest_of_compilation): Measure time of mode switching
785         separately.
786         * Makefile.in (c-decl.o, cfgcleanup.o): Add dependency.
787
788         * toplev.c (flag_asynchronous_unwind_tables): New global variable.
789         (lang_independent_options): Add asynchronous-unwind-tables
790         (toplev_main): flag_asynchronous_unwind_tables implies
791         flag_unwind_tables.
792         * flags.h (flag_asynchronous_unwind_tables): Declare.
793         * dwarf2out.c (dwarf2out_stack_adjust): Take into account
794         flag_asynchronous_unwind_tables.
795         (output_call_frame_info): Likewise.
796         * invoke.texi (-fasynchronous-unwind-tables): Document.
797         * i386.c (optimization_options): Enable
798         flag_asynchronous_unwind_tables.
799
800         * i386.c (ix86_expand_setcc):  Always expect target to be QImode.
801         * i386.md (s* expanders): Destination is QImode.
802
803         * toplev.c (rest_of_compilation): Do not call clear_log_links.
804         * rtl.h (clear_log_links): Kill.
805         * flow.c (clear_log_links): Make static; accept blocks parameter;
806         do no clear life info.
807         (update_life_info): Call clear_log_links.
808
809         * cfganal.c (forwarder_block_p): Avoid active_insn_p calls.
810
811 2001-10-20  Neil Booth  <neil@daikokuya.demon.co.uk>
812
813         * cpplex.c (handle_newline, skip_escaped_newlines,
814         get_effective_char, skip_block_comment, skip_line_comment,
815         parse_identifier_slow, parse_number, parse_string,
816         _cpp_lex_direct): Update to do more stepping back.
817         (trigraph_ok): Similarly.  Rename trigraph_p.
818         (SAVE_STATE, RESTORE_STATE): Remove.
819         (BUFF_SIZE_UPPER_BOUND): Tweak.  Add sanity check.
820
821         * cpplib.c (destringize): Rename destringize_and_run, and
822         call run_directive directly.
823         (_cpp_do__Pragma): Simplify.
824
825 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
826
827         * pe.c (arm_pe_unique_section): Const-ify.
828         * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
829         (switch_to_section): Add static prototype.
830
831         * output.h (drectve_section): Prototype.
832
833 2001-10-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
834
835         * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*,
836         fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*,
837         parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*,
838         i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware,
839         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
840         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*,
841         i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1,
842         i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*,
843         i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*,
844         i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*,
845         i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*,
846         i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*,
847         ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf,
848         mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*,
849         powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*,
850         powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*,
851         powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*,
852         powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*,
853         powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*,
854         powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*,
855         rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*,
856         sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf,
857         v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf,
858         cris-*-none, cris-*-linux*: Update ${tmfile} list.
859         (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*,
860         i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*,
861         mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*,
862         powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*,
863         v850-*-*): Delete superflous ${cpu_type} setting.
864         * config/linux.h: Delete svr4.h include.
865         (SET_ASM_OP): Delete.
866         * config/netware.h (INT_ASM_OP): Undef before define.
867         * config/ptx4.h: Delete elfos.h include.
868         (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping.
869         * config/svr4.h: Delete elfos.h include. Update commentary.
870         * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h,
871         config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h,
872         config/mn10200/mn10300.h, config/stormy16/stormy16.h,
873         config/v850/v850.h: Delete svr4.h include.
874         * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h,
875         config/m68k/m68kv4.h, config/m88k/sysv4.h,
876         config/sparc/sysv4.h: Update includes.
877         * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h,
878         config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h,
879         config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h,
880         config/m88k/dguxbcs.h: Delete includes.
881         * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include.
882         (PREFERRED_DEBUGGING_TYPE): Undef before defining it.
883         * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining
884         it.
885         * config/m88k/dgux.h: Delete include.
886         (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):  Undef before
887         defining it.
888         * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL,
889         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it.
890         * config/sh/elf.h: Update include.
891         (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
892         DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes.
893
894 2001-10-19  Catherine Moore  <clm@redhat.com>
895
896         * config/stormy16/stormy-abi:  Updates to varargs descriptions.
897         * config/stormy16/stormy16.c (stormy16_build_va_list):  Reverse
898         base and count fields.
899         (stormy16_expand_builtin_va_start):  last_reg_count changed to
900         size_of_reg_args.  Use count + size in first comparison.
901
902 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
903
904         * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro.
905         * toplev.h (struct lang_hooks): New field HONOR_READONLY.
906         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from
907         TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly.
908         Set alignment from type if INDIRECT_REF.
909         (adjust_address_1, offset_address): Simplify alignment compuitation.
910         * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P
911         here; done by set_mem_attributes.
912
913 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
914
915         * Makefile.in (rtlanal.o): Depend on $(TM_P_H).
916         * arm-protos.h (rdata_section, zero_init_section, common_section):
917         Prototype.
918         * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify.
919         * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid
920         traditional mode stringification.
921         * function.c (thread_prologue_and_epilogue_insns): Wrap variable
922         in macros controling its use.
923         * rtlanal.c: Include tm_p.h.
924         * varasm.c (asm_output_aligned_bss): Mark parameter with
925         ATTRIBUTE_UNUSED.
926         (assemble_constant_align, assemble_start_function, assemble_align,
927         assemble_variable, assemble_trampoline_template,
928         output_constant_def_contents): Wrap potentially empty if-stmt body
929         in brackets.
930
931 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
932
933         * a29k-protos.h (literal_section): Prototype.
934         * a29k.h (ASM_FILE_START): Don't discard pointer qualifier.
935         * a29k.md: Ensure function pointers are prototyped.
936         * genattrtab.c (write_eligible_delay): Mark parameter with
937         ATTRIBUTE_UNUSED.
938
939 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
940
941         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
942         * 1750a.c (print_operand): Fix format specifier warning.
943         * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier.
944         * 1750a.md: Likewise.
945         * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC.
946         * genemit.c (output_add_clobbers): Mark parameter with
947         ATTRIBUTE_UNUSED.
948         * genrecog.c (write_subroutine): Likewise.
949         * integrate.c (expand_inline_function): Delete unused variable.
950         * varasm.c (remove_from_pending_weak_list): Wrap with
951         ASM_WEAKEN_LABEL.
952
953 2001-10-19  Jakub Jelinek  <jakub@redhat.com>
954
955         * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg
956         field is different to previous argument's neg field.
957
958         * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT.
959
960 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
961
962         * final.c (get_decl_from_op): New function.
963         (output_asm_insn): Call it; write "*" when item with decl is address.
964
965 2001-10-19  Janis Johnson  <janis187@us.ibm.com>
966
967         * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation
968         about 64-bit support from the 3.0_branch version.
969
970 2001-10-19  Zack Weinberg  <zack@codesourcery.com>
971
972         * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and
973         USE_INCLUDED_LIBINTL when appropriate.
974         * configure, config.in: Regenerate.
975         * Makefile.in (datadir): Set to @datadir@.
976         (intl.o): Also depend on $(CONFIG_H) and system.h.
977
978         * intl.c: Factor out common gettext initialization sequence.
979         (gcc_init_libintl):  New function.
980         * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL;
981         otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn
982         off NLS.  Add multiple include guard.  No need to #ifdef-guard
983         an #undef.  Prototype gcc_init_libintl here.
984
985         * collect2.c (main), cppmain.c (general_init), gcc.c (main),
986         gcov.c (main), protoize.c (main), toplev.c (toplev_main):
987         Use gcc_init_libintl.
988
989 2001-10-19  Catherine Moore  <clm@redhat.com>
990
991         * config/stormy16/stormy16.h (ASM_COMMENT_START): Define.
992
993         * config/stormy16/stormy16.c (stormy16_split_move):  Make
994         sure that REG_INC notes are present for auto_inc operands.
995
996 2001-10-19  Andreas Jaeger  <aj@suse.de>
997
998         * configure: Regenerated.
999         * configure.in: Add x86_64 to switch statements.
1000
1001 2001-10-18  Richard Henderson  <rth@redhat.com>
1002
1003         * config/alpha/alpha.md (sibcall_osf_1): Load destination
1004         address into $27 explicitly.
1005         (sibcall_value_osf_1): Likewise.
1006
1007 Thu Oct 18 16:07:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1008
1009         * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
1010         (offset_address): New function.
1011         (free_emit_status): Free regno_decl.
1012         (init_emit): Pass proper number of elements to xcalloc.
1013         Allocate regno_decl.
1014         (mark_emit_status): Mark regno_decl values.
1015         * expr.c (highest_pow2_factor): New function.
1016         (expand_assigment): Use it and offset_address.
1017         Properly handle ptr_mode vs. Pmode in offset calculation.
1018         (store_constructor, expand_expr_unaligned): Likewise.
1019         (expand_expr, case COMPONENT_EXPR): Likewise.
1020         * expr.h (offset_address): New decl.
1021         * function.h (struct emit_status): Add regno_decl.
1022         (REGNO_DECL): New macro.
1023         * final.c (output_asm_name): Move in file and don't conditionalize
1024         on flag_print_asm_name.
1025         (output_asm_insn): Only call output_asm_name if flag_print_asm_name.
1026         Output names of operands, if known.
1027         * function.c (assign_parms): Set REGNO_DECL.
1028         * integrate.c (integrate_decl_tree): Likewise.
1029         * stmt.c (expand_decl): Likewise.
1030         * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies.
1031
1032 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
1033
1034         * attribs.c (handle_noinline_attribute): New function.
1035         (handle_used_attribute): Likewise.
1036         (c_common_attribute_table): Added noinline and used.
1037         * doc/extend.texi (Function Attributes): Document them.
1038         * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
1039         Warn when merging inline with attribute noinline.
1040         (start_decl, start_function): Warn if inline and attribute
1041         noinline appear in the same declaration.
1042
1043 2001-10-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1044
1045         * config.gcc: Update c4x and i370 for C front end-specific
1046         dependencies.
1047         * config/c4x/c4x-c.c: New.
1048         * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove.
1049         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
1050         New declarations.
1051         * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h.
1052         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
1053         Make extern.
1054         (c4x_init_pragma): Remove.
1055         (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION,
1056         c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT,
1057         c4x_pr_ignored): Move to c4x-c.c.
1058         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
1059         * config/c4x/t-c4x: Update.
1060         * config/i370/i370-c.c: New.
1061         * config/i370/i370.c: Don't include c-lex.h or c-pragma.h.
1062         (i370_pr_map): Move to i370-c.c.
1063         * config/i370/t-i370: New.
1064
1065         * doc/tm.texi: Update.
1066
1067 2001-10-17  Stan Shebs  <shebs@apple.com>
1068
1069         * config/rs6000/rs6000.c: Make assorted mechanical formatting and
1070         typo fixes throughout.
1071         (machopic_output_stub): Remove some dead code.
1072
1073 2001-10-17  Richard Earnshaw <rearnsha@arm.com>
1074
1075         * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
1076         leak.
1077
1078 Wed Oct 17 05:26:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1079
1080         * Makefile.in (print-rtl.o): Depend on TREE_H.
1081         * alias.c (get_alias_set): Make two passes over objects to first
1082         see if inner object is access via restricted pointer.
1083         Defer allocating alias set for restricted pointer until here.
1084         Call find_placeholder with second arg nonzero.
1085         Minor cleanups.
1086         * c-common.c (c_apply_type_quals_to_decl): Defer getting alias
1087         set for restricted pointer types.
1088         * emit-rtl.c (set_mem_attributes): Set more attributes.
1089         (set_mem_align, change_address, adjust_address_1): New functions.
1090         (change_address_1): Now static.
1091         (adjust_address, adjust_address_nv): Deleted.
1092         (replace_equiv_address): Call change_address_1.
1093         * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
1094         (find_placeholder): Get starting point from PLIST arg.
1095         (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
1096         * expr.h (set_mem_align, change_address, adjust_address_1): New decls.
1097         (adjust_address, adjust_address_nv): New macros.
1098         * print-rtl.c (tree.h): New include.
1099         (print_rtx, case MEM): Print all memory attributes.
1100
1101 2001-10-17  Richard Henderson  <rth@redhat.com>
1102
1103         * config/alpha/alpha.c (direct_call_operand): Don't fall off end.
1104
1105 2001-10-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1106
1107         * c-tree.texi: Eliminate duplicated word.
1108         * cpp.texi: Likewise.
1109         * install.texi: Likewise.
1110         * invoke.texi: Likewise.
1111         * tm.texi: Likewise.
1112
1113 2001-10-17  Michael Collison  <collison@isisinc.net>
1114
1115         * dsp16xx.c: Fix comment formatting to match GNU standards.
1116         (dsp16xx_output_function_prologue): Change type of 'size'
1117         parameter from 'int' to HOST_WIDE_INT.
1118         (dsp16xx_output_function_epilogue): Change type of 'size'
1119         parameter from 'int' to HOST_WIDE_INT.
1120
1121 2001-10-16  Richard Henderson  <rth@redhat.com>
1122
1123         * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
1124         * configure, config.in: Rebuild.
1125
1126         * config/i386/i386.c (ix86_output_addr_vec_elt): New.
1127         (ix86_output_addr_diff_elt): New.
1128         * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
1129         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
1130         (JUMP_TABLES_IN_TEXT_SECTION): New.
1131         * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
1132         * config/i386/i386-protos.h: Update.
1133
1134         * config/i386/386bsd.h, config/i386/beos-elf.h,
1135         config/i386/freebsd-aout.h, config/i386/freebsd.h,
1136         config/i386/i386-interix.h, config/i386/i386elf.h,
1137         config/i386/linux.h, config/i386/netbsd-elf.h,
1138         config/i386/netbsd.h, config/i386/openbsd.h,
1139         config/i386/ptx4-i.h, config/i386/rtemself.h,
1140         config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
1141         (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
1142
1143 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
1144
1145         * stmt.c (expand_asm_operands): Update commentary.
1146
1147 2001-10-16  Stan Shebs  <shebs@apple.com>
1148
1149         * config/darwin.h (GCC_NAME): Remove, no longer used.
1150         (NO_MATH_LIBRARY): Ditto.
1151         (MATH_LIBRARY): Define to emptiness.
1152         (DWARF2_DEBUGGING_INFO): Define.
1153         (PREFERRED_DEBUGGING_TYPE): Define.
1154         (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section.
1155         (EXCEPTION_SECTION): Define.
1156         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1157         * config/darwin.c (darwin_encode_section_info): Handle case of
1158         DECL_INITIAL being error_mark_node.
1159
1160 2001-10-16  Richard Henderson  <rth@redhat.com>
1161
1162         * alpha.c (current_file_function_operand): Don't fail for profiling.
1163         (direct_call_operand): New.
1164         * alpha-protos.h: Declare it.
1165         * alpha.h (EXTRA_CONSTRAINT): Use it.
1166         (PREDICATE_CODES): Add it.
1167         (ASM_OUTPUT_MI_THUNK): Remove.
1168         * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove.
1169         * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative.
1170
1171 2001-10-16  Krister Walfridsson  <cato@df.lth.se>
1172
1173         * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define.
1174         (JUMP_TABLES_IN_TEXT_SECTION): Define.
1175
1176 Wed Oct 17 00:21:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
1177
1178         * cfg.c (free_edge): Break out from ....
1179         (remove_edge): ... here.
1180         (clear_edges): Use free_edge.
1181
1182         * att.h (ASM_QUAD): Add comment.
1183         * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
1184
1185 Wed Oct 17 00:01:02 CEST 2001  Jan Hubicka  <jh@suse.cz>
1186
1187         * i386.c (split_ti): New function.
1188         (ix86_split_to_parts): Support TImodes.
1189         * i386.h (VALID_INT_MODE_P): Add TImode.
1190         * i386.md (movdi splitter): Fix.
1191         (movti): Support 64bit integer registers.
1192         (movti_rex64): New function and splitter.
1193
1194         * i386.c (*_cost): Add movsx/movzx cost.
1195         * i386.h (struct processor_costs): Add movsx/movzx fields.
1196         (RTX_COSTS): Handle zero/sign extend + avoid believing that
1197         64bit operations require split on 64bit machine.
1198         (CONST_COST): Make large 64bit constants expensive on 64bit compilation.
1199
1200         * i386.c (ix86_setup_incoming_varargs): Fix mode of PLUS.
1201         (ix86_expand_move): Avoid pushes of memory if size does not match;
1202         move long constants to register.
1203         (x86_initialize_trampoline): Fix mode.
1204         * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):
1205         Use ASM_QUAD on 64bit.
1206         * i386.md (test pattern): Disallow impossible constants.
1207         (tablejump PIC expander): Fix emitting of sum.
1208         (movdicc_rex64): Rename to movdicc.
1209         * linux64.h (LINK_SPEC): Add missing '%'.
1210
1211 2001-10-16  Alexandre Oliva  <aoliva@redhat.com>
1212
1213         * tree-inline.c (inlinable_function_p): Leave it up to the
1214         front-end to turn -finline-functions into DECL_INLINE set for all
1215         functions.
1216
1217 2001-10-16  Stan Shebs  <shebs@apple.com>
1218
1219         * config/rs6000/darwin.h (ASM_COMMENT_START): Define.
1220
1221 2001-10-16  Alan Modra  <amodra@bigpond.net.au>
1222
1223         * recog.c: Formatting and comment typo fixes.
1224
1225         * configure.in (gcc_cv_as_bfd_srcdir): New.  Use it to find gas
1226         version in single tree build.
1227         * configure: Regenerate.
1228
1229 2001-10-15  David Edelsohn  <edelsohn@gnu.org>
1230
1231         * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and
1232         MODE arguments to gen_rtx and compare operand with const0_rtx.
1233
1234 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1235
1236         * system.h: Poison old unused target macros.
1237         * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
1238         * config/stormy16/stormy16.c: Update references to obsolete macros.
1239         * config/stormy16/stormy16.h: Similarly.
1240         * config/stormy16/stormy16.md: Similarly.
1241         * config/cris/cris.h: Similarly.
1242
1243 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1244
1245         * cpplib.c (struct pragma_entry): Store the name as a hashnode.
1246         (lookup_pragma_entry, insert_pragma_entry, do_pragma,
1247         cpp_register_pragma): Update accordingly.
1248
1249 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1250
1251         * c-pragma.h (cpp_register_pragma_space): Remove.
1252         * cpplib.h (cpp_register_pragma_space): Remove.
1253         * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
1254         (cpp_register_pragma_space): Remove.
1255         (cpp_register_pragma): Simplify using lookup_pragma_entry,
1256         add sanity checks.
1257         (do_pragma): Similarly.
1258         (_cpp_init_internal_pragmas): Don't register namespaces.
1259
1260         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
1261         Don't register namespaces.
1262         * cp/lex.c (init_cp_pragma): Similarly.
1263         * doc/tm.texi: Update.
1264
1265 2001-10-10  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1266
1267         PR c/4157
1268         * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES
1269
1270 2001-10-13  Michael Collison  <collison@dhcp-12-114.townisp.com>
1271
1272         * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and
1273         add scheduling support.
1274         * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code.
1275         * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code.
1276         * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes.
1277
1278
1279 2001-10-13  Hans-Peter Nilsson  <hp@axis.com>
1280
1281         * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around
1282         missing CONSTANT_P test in core GCC.
1283
1284 2001-10-12  Neil Booth  <neil@daikokuya.demon.co.uk>
1285
1286         * cppmain.c (struct printer): New member source.
1287         (scan_translation_unit): Fix spacing at start of lines.
1288         (cb_line_change): Update.
1289
1290         * gcc.dg/cpp/spacing2.c: New test.
1291
1292 2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
1293
1294         * config/cris/arit.c: Use __builtin_labs, not abs.
1295
1296         * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
1297
1298         * config/cris/cris.c (cris_target_asm_function_epilogue): Move
1299         misplaced sprintf and fprintf argument.
1300
1301 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
1302
1303         * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
1304         * configure.in, Makefile.in: Take out obsolete check-po logic.
1305         * configure, config.in: Regenerate.
1306
1307 2001-10-12  Ziemowit Laski  <zlaski@apple.com>
1308
1309         * objc/objc-act.c (finish_objc): Correct precondition for emitting
1310         symtab declarations.
1311
1312 2001-10-12  Stan Shebs  <shebs@apple.com>
1313
1314         * config/rs6000/rs6000.c: Remove uses of "register" specifier in
1315         declarations of arguments and local variables.
1316
1317 2001-10-12  Christopher Faylor  <cgf@redhat.com>
1318
1319         * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and
1320         ENDFILE_SPEC definition.
1321
1322 2001-10-12  Kazu Hirata  <kazu@hxi.com>
1323
1324         * gthr-dce.h: Fix comment formatting.
1325         * gthr-posix.h: Likewise.
1326         * gthr-single.h: Likewise.
1327         * gthr-solaris.h: Likewise.
1328         * gthr-vxworks.h: Likewise.
1329         * gthr-win32.h: Likewise.
1330
1331 2001-10-12  Jakub Jelinek  <jakub@redhat.com>
1332
1333         * final.c (output_asm_insn): Make sure assembly dialects are
1334         terminated, not nested.  Output `|' and `}' characters if they
1335         don't appear inside assembly dialect selection.
1336         * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
1337         rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
1338         rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
1339         strsetsi_rex_1): Add {} braces.
1340
1341 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
1342
1343         * toplev.c (compile_file): Ignore return value from yyparse.
1344         Always pop any nested binding levels after yyparse returns.
1345
1346 2001-10-11  Richard Henderson  <rth@redhat.com>
1347
1348         * doc/c-tree.texi (Expression trees): Add VTABLE_REF.
1349
1350 2001-10-11  Richard Henderson  <rth@redhat.com>
1351
1352         * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT,
1353         fall back to add_AT_long_long for large CONST_INT.
1354
1355 2001-10-11  Richard Henderson  <rth@redhat.com>
1356
1357         * config/i386/i386.md (setcc splitters): Add four splitters to
1358         simplify compound compares that simplify_comparison can't handle.
1359
1360 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
1361
1362         * cpplex.c (digraph_spellings, token_spellings): Make static.
1363
1364 2001-10-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1365
1366         * unroll.c (loop_iterations): Fixup last patch.
1367
1368 2001-10-11  Richard Henderson  <rth@redhat.com>
1369
1370         * rtl.h (REG_VTABLE_REF): New.
1371         * rtl.c (reg_note_name): Add it.
1372         * combine.c (distribute_notes): Handle it.
1373         * final.c (final_scan_insn): Handle it.
1374         * tree.def (VTABLE_REF): New.
1375         * expr.c (expand_expr): Handle it.
1376         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
1377         * output.h: Declare them.
1378
1379 2001-10-11  Richard Henderson  <rth@redhat.com>
1380
1381         * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look
1382         for a DECL_INITIAL.
1383
1384 2001-10-11  David Edelsohn  <edelsohn@gnu.org>
1385
1386         * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only
1387         available in 64-bit mode.
1388
1389 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
1390
1391         * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none,
1392         cris-*-linux* cases.
1393         * config/cris/cris-protos.h: New file.
1394         * config/cris/cris.c: New file.
1395         * config/cris/cris.h: New file.
1396         * config/cris/cris.md: New file.
1397         * config/cris/linux.h: New file.
1398         * config/cris/aout.h: New file.
1399         * config/cris/arit.c: New file.
1400         * config/cris/cris_abi_symbol.c: New file.
1401         * config/cris/mulsi3.asm: New file.
1402         * config/cris/t-aout: New file.
1403         * config/cris/t-cris: New file.
1404         * config/cris/t-elfmulti: New file.
1405         * config/cris/t-linux: New file.
1406         * doc/invoke.texi: Add CRIS options.
1407         * doc/install.texi (Specific): Add blurb for CRIS.
1408
1409 2001-10-10  Hartmut Schirmer <SchirmerH@Innovative-Systems.de>
1410
1411         * config/float-i128.h: Make sure __STDC__VERSION__ is defined
1412         before using it.
1413         * config/float/i32.h: Likewise.
1414         * config/float-i386.h: Likewise.
1415         * config/float-i64.h: Likewise.
1416         * config/float-m68k.h: Likewise.
1417         * config/float-sh.h: Likewise.
1418         * config/float-sparc.h: Likewise.
1419
1420 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
1421
1422         * doc/contrib.texi: Add note about CRIS port to my entry.
1423
1424 2001-10-11  Kazu Hirata  <kazu@hxi.com>
1425
1426         * basic-block.h: Fix formatting.
1427         * bitmap.h: Likewise.
1428         * cpplib.h: Likewise.
1429         * c-tree.h: Likewise.
1430         * diagnostic.h: Likewise.
1431         * flags.h: Likewise.
1432         * ggc.h: Likewise.
1433         * longlong.h: Likewise.
1434         * real.h: Likewise.
1435         * reload.h: Likewise.
1436         * rtl.h: Likewise.
1437         * tree.h: Likewise.
1438
1439 2001-10-10  Richard Henderson  <rth@redhat.com>
1440
1441         * c-parse.in (asm_operand): Allow named operands.
1442         * genconfig.c (max_recog_operands): Set to 29.
1443         * local-alloc.c (requires_inout): Skip multiple digits.
1444         * recog.c (asm_operand_ok): Likewise.
1445         (preprocess_constraints): Use strtoul for matching constraints.
1446         (constrain_operands): Likewise.
1447         * regmove.c (find_matches): Likewise.
1448         * reload.c (find_reloads): Likewise.
1449         * stmt.c (parse_output_constraint): Don't reject in-out
1450         constraint on operands > 9.  Reject '[' in constraint.
1451         (expand_asm_operands): Handle named operands.  Use strtoul
1452         for matching constraints.
1453         (check_operand_nalternatives): Split out from expand_asm_operands.
1454         (check_unique_operand_names): New.
1455         (resolve_operand_names, resolve_operand_name_1): New.
1456
1457         * doc/extend.texi (Extended Asm): Document named operands.
1458         * doc/md.texi (Simple Constraints): Document matching constraints
1459         on operands > 9.
1460
1461 2001-10-10  Richard Henderson  <rth@redhat.com>
1462
1463         * combine.c (try_combine): Handle a SEQUENCE of one insn.
1464
1465         * i386.c (test splitter): Narrow tests vs paradoxical subregs.
1466         (jcc splitters): Add two splitters to simplify compound compares
1467         that simplify_comparison can't handle.
1468
1469 2001-10-10  Richard Henderson  <rth@redhat.com>
1470
1471         * langhooks.c: Include langhooks.h.
1472         * Makefile.in (langhooks.o): Depend on it.
1473
1474 Wed Oct 10 23:49:06 EDT 2001  John Wehle  (john@feith.com)
1475
1476         * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
1477         should not be considered as a no-op.
1478         * flow.c (delete_noop_moves): Handle REG_LIBCALL notes.
1479
1480 2001-10-10  Stan Shebs  <shebs@apple.com>
1481
1482         * alias.c: Remove uses of "register" specifier in declarations
1483         of arguments and local variables.
1484         * c-common.c: Ditto.
1485         * c-convert.c: Ditto.
1486         * c-decl.c: Ditto.
1487         * c-format.c: Ditto.
1488         * c-semantics.c: Ditto.
1489         * c-typeck.c: Ditto.
1490         * caller-save.c: Ditto.
1491         * calls.c: Ditto.
1492         * cfg.c: Ditto.
1493         * cfgbuild.c: Ditto.
1494         * cfgrtl.c: Ditto.
1495         * collect2.c: Ditto.
1496         * combine.c: Ditto.
1497         * convert.c: Ditto.
1498         * cppexp.c: Ditto.
1499         * cppfiles.c: Ditto.
1500         * cse.c: Ditto.
1501         * dbxout.c: Ditto.
1502         * defaults.h: Ditto.
1503         * df.c: Ditto.
1504         * dwarf2out.c: Ditto.
1505         * dwarfout.c: Ditto.
1506         * emit-rtl.c: Ditto.
1507         * explow.c: Ditto.
1508         * expmed.c: Ditto.
1509         * expr.c: Ditto.
1510         * final.c: Ditto.
1511         * fix-header.c: Ditto.
1512         * floatlib.c: Ditto.
1513         * flow.c: Ditto.
1514         * fold-const.c: Ditto.
1515         * function.c: Ditto.
1516         * gcc.c: Ditto.
1517         * gcse.c: Ditto.
1518         * gen-protos.c: Ditto.
1519         * genattrtab.c: Ditto.
1520         * gencheck.c: Ditto.
1521         * genconfig.c: Ditto.
1522         * genemit.c: Ditto.
1523         * genextract.c: Ditto.
1524         * genflags.c: Ditto.
1525         * gengenrtl.c: Ditto.
1526         * genoutput.c: Ditto.
1527         * genpeep.c: Ditto.
1528         * genrecog.c: Ditto.
1529         * gensupport.c: Ditto.
1530         * global.c: Ditto.
1531         * gmon.c: Ditto.
1532         * graph.c: Ditto.
1533         * haifa-sched.c: Ditto.
1534         * hard-reg-set.h: Ditto.
1535         * hash.c: Ditto.
1536         * integrate.c: Ditto.
1537         * jump.c: Ditto.
1538         * lists.c: Ditto.
1539         * local-alloc.c: Ditto.
1540         * loop.c: Ditto.
1541         * mips-tdump.c: Ditto.
1542         * mips-tfile.c: Ditto.
1543         * optabs.c: Ditto.
1544         * prefix.c: Ditto.
1545         * print-rtl.c: Ditto.
1546         * read-rtl.c: Ditto.
1547         * real.c: Ditto.
1548         * recog.c: Ditto.
1549         * reg-stack.c: Ditto.
1550         * regclass.c: Ditto.
1551         * regmove.c: Ditto.
1552         * reload.c: Ditto.
1553         * reload1.c: Ditto.
1554         * reorg.c: Ditto.
1555         * resource.c: Ditto.
1556         * rtl.c: Ditto.
1557         * rtlanal.c: Ditto.
1558         * scan.c: Ditto.
1559         * sched-deps.c: Ditto.
1560         * sched-rgn.c: Ditto.
1561         * sdbout.c: Ditto.
1562         * simplify-rtx.c: Ditto.
1563         * stmt.c: Ditto.
1564         * stor-layout.c: Ditto.
1565         * toplev.c: Ditto.
1566         * tradcif.y: Ditto.
1567         * tradcpp.c: Ditto.
1568         * tree.c: Ditto.
1569         * unroll.c: Ditto.
1570         * varasm.c: Ditto.
1571         * xcoffout.c: Ditto.
1572
1573 2001-10-10  Richard Henderson  <rth@redhat.com>
1574
1575         * rtl.h (can_reverse_comparison_p): Remove.
1576
1577 2001-10-10  Christopher Faylor <cgf@redhat.com>
1578
1579         * config/i386/cygwin.h: Avoid adding include files if -nostdinc is
1580         used.
1581
1582 2001-10-10  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
1583
1584         * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define.
1585         (Thanks to Chris Faylor for suggesting macro name).
1586         (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more
1587         WIN32 defines.
1588         (STANDARD_INCLUDE_DIR): Remove i386- from directory name.
1589         (STANDARD_INCLUDE_COMPONENT): Change to MINGW.
1590         (MATH_LIBRARY): Undef before definition.
1591         (OUTPUT_QUOTED_STRING): Likewise.
1592         * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS.
1593
1594 2001-10-10  Richard Henderson  <rth@redhat.com>
1595
1596         * unwind-dw2-fde.c (fde_compare_t): Change return type to int.
1597         (fde_unencoded_compare): Likewise.  Don't use subtraction to get
1598         a tristate comparison value.
1599         (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise.
1600
1601 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1602
1603         PR c++/4512
1604         * unroll.c (loop_iterations): Ignore insns generated by loop
1605         unrolling.
1606
1607         * config.gcc (mips*-*-gnu*): Delete support.
1608         * config/mips/gnu.h: Remove.
1609
1610 2001-10-10  Kazu Hirata  <kazu@hxi.com>
1611
1612         * calls.c: Fix formatting.
1613         * c-decl.c: Likewise.
1614         * cfgcleanup.c: Likewise.
1615         * combine.c: Likewise.
1616         * cppfiles.c: Likewise.
1617         * cpplib.c: Likewise.
1618         * cppmacro.c: Likewise.
1619         * crtstuff.c: Likewise.
1620         * cse.c: Likewise.
1621         * dwarf2out.c: Likewise.
1622         * expmed.c: Likewise.
1623         * expr.c: Likewise.
1624         * fold-const.c: Likewise.
1625         * function.c: Likewise.
1626         * gcse.c: Likewise.
1627         * genattrtab.c: Likewise.
1628         * ggc-page.c: Likewise.
1629         * integrate.c: Likewise.
1630         * libgcc2.c: Likewise.
1631         * loop.c: Likewise.
1632         * optabs.c: Likewise.
1633         * profile.c: Likewise.
1634         * protoize.c: Likewise.
1635         * real.c: Likewise.
1636         * recog.c: Likewise.
1637         * reload1.c: Likewise.
1638         * reload.c: Likewise.
1639         * reorg.c: Likewise.
1640         * resource.c: Likewise.
1641         * sched-rgn.c: Likewise.
1642         * sdbout.c: Likewise.
1643         * stmt.c: Likewise.
1644         * toplev.c: Likewise.
1645         * varasm.c: Likewise.
1646
1647 2001-10-10  Janis Johnson  <janis187@us.ibm.com>, Alexandre Oliva  <aoliva@redhat.com>
1648
1649         * langhooks.c: Include rtl.h, insn-config.h and integrate.h.
1650         * Makefile.in (langhooks.o): Add dependencies.
1651
1652 Wed Oct 10 00:41:29 EDT 2001  John Wehle  (john@feith.com)
1653
1654         * rs6000.c (rs6000_emit_load_toc_table): Don't
1655         strdup the toc label.
1656         (create_TOC_reference): Likewise.
1657
1658 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
1659
1660         * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent
1661         version default.
1662
1663 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
1664
1665         * config/i386/i386.c (ix86_attribute_table): Correct
1666         min_len, max_len fields for dllimport, dllexport and shared.
1667
1668 2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
1669
1670         * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi,
1671         doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi:
1672         Consistently use "nonzero" instead of "non-zero".
1673
1674 2001-10-09  Kazu Hirata  <kazu@hxi.com>
1675
1676         * acconfig.h: Fix comment formatting.
1677         * c-dump.h: Likewise.
1678         * c-tree.h: Likewise.
1679         * conditions.h: Likewise.
1680         * expr.h: Likewise.
1681         * function.h: Likewise.
1682         * gthr.h: Likewise.
1683         * hwint.h: Likewise.
1684         * integrate.h: Likewise.
1685         * intl.h: Likewise.
1686         * loop.h: Likewise.
1687         * optabs.h: Likewise.
1688
1689 2001-10-09  Kazu Hirata  <kazu@hxi.com>
1690
1691         * c-common.h: Fix comment formatting.
1692         * c-dump.c: Likewise.
1693         * cfg.c: Likewise.
1694         * diagnostic.h: Likewise.
1695         * except.c: Likewise.
1696         * gcc.h: Likewise.
1697         * gcov-io.h: Likewise.
1698         * genattrtab.c: Likewise.
1699         * output.h: Likewise.
1700         * predict.h: Likewise.
1701         * reload1.c: Likewise.
1702         * reload.h: Likewise.
1703         * resource.h: Likewise.
1704         * scan.h: Likewise.
1705         * system.h: Likewise.
1706         * tree.h: Likewise.
1707         * tree-inline.c: Likewise.
1708         * tsystem.h: Likewise.
1709         * varasm.c: Likewise.
1710         * xcoffout.h: Likewise.
1711
1712 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
1713
1714         * doc/gcc.texi: Document preference for "nonzero" over "non-zero".
1715
1716 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
1717
1718         * config/alpha/freebsd.h, config/alpha/lib1funcs.asm,
1719         config/i386/i386elf.h, config/i386/netbsd-elf.h,
1720         config/i386/netware.h, config/mcore/gfloat.h,
1721         config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md,
1722         config/netware.h, gccbug.in: Update FSF address.
1723
1724 2001-10-09  Kazu Hirata  <kazu@hxi.com>
1725
1726         * c-common.c: Fix comment typos.
1727         * cfgrtl.c: Likewise.
1728         * collect2.c: Likewise.
1729         * cpplex.c: Likewise.
1730         * doloop.c: Likewise.
1731         * dwarf2out.c: Likewise.
1732         * dwarfout.c: Likewise.
1733         * expr.c: Likewise.
1734         * fold-const.c: Likewise.
1735         * gcc.c: Likewise.
1736         * gcov.c: Likewise.
1737         * gcse.c: Likewise.
1738         * global.c: Likewise.
1739         * ifcvt.c: Likewise.
1740         * loop.c: Likewise.
1741         * optabs.c: Likewise.
1742         * protoize.c: Likewise.
1743         * regclass.c: Likewise.
1744         * reorg.c: Likewise.
1745         * rtl.h: Likewise.
1746         * stmt.c: Likewise.
1747         * tree.h: Likewise.
1748         * doc/cpp.texi: Likewise.
1749         * doc/c-tree.texi: Likewise.
1750         * doc/extend.texi: Likewise.
1751         * doc/invoke.texi: Likewise.
1752         * doc/objc.texi: Likewise.
1753         * doc/tm.texi: Likewise.
1754
1755 2001-10-08  Richard Henderson  <rth@redhat.com>
1756
1757         * varasm.c (set_named_section_flags): Initialize "declared".
1758
1759 2001-10-08  Robert Lipe  <robertlipe@usa.net>
1760
1761         * varasm.c (struct in_named_entry): Add declared.
1762         (named_section_first_declaration): New function.
1763         (default_elf_asm_named_section): Use it.
1764         * output.h (named_section_first_declaration): New.
1765
1766 2001-10-08  Richard Henderson  <rth@redhat.com>
1767
1768         * i386.md (movsi_xor): Export.
1769         (setcc peep2): Use it when available; add an alternative to
1770         match zero_extendhisi2_and.
1771
1772 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1773
1774         * romp-protos.h (romp_initialize_trampoline): New function.
1775         * romp.c (romp_initialize_trampoline): Likewise.
1776         * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of
1777         romp_initialize_trampoline.
1778
1779 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1780
1781         * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'.
1782         * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
1783         * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
1784         * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
1785
1786 2001-10-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1787
1788         * unroll.c (loop_iterations): Extend check for multiple back edges.
1789
1790 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
1791
1792         * langhooks.h: New file.
1793         * Makefile.in (OBJS): Added langhooks.o.
1794         (c-lang.o): Depend on langhooks.h.
1795         (c-common.o): Don't depend on tree-inline.h.
1796         (tree-inline.o): Depend on toplev.h.
1797         (langhooks.o): New rule.
1798         * c-common.c: Don't include tree-inline.h.
1799         (c_mark_lang_decl): Mark argument c as unused.
1800         (c_common_lang_init): Don't initialize hooks here.
1801         * c-lang.c: Include langhooks.h, then override some macros.
1802         (lang_hooks): Initialize with macros in langhooks.h.
1803         (c_init): Don't initialize hooks here.
1804         * toplev.c (struct lang_hooks_for_tree_inlining): New struct.
1805         (struct lang_hooks): Add tree_inlining.  Refer to langhooks.h.
1806         * tree-inline.c: Include toplev.h.  Don't define hook variables.
1807         * tree-inline.h: Don't define hook types nor declare hook
1808         variables.  Move macros to...
1809         * langhooks.c: ... new file, as functions.  Adjust all callers.
1810
1811 2001-10-08  Jeffrey A Law  <law@cygnus.com>
1812
1813         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call
1814         purge_mem_unchanging_flag on all instructions, not just on those
1815         before NOTE_INSN_FUNCTION_BEG.
1816
1817 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1818
1819         * cppmacro.c (_cpp_create_definition): Leave comments off.
1820
1821         * doc/cpp.texi: Update.
1822
1823 2001-10-08  DJ Delorie  <dj@redhat.com>
1824
1825         * c-decl.c (grokfield): Make sure the only unnamed fields
1826         we're allowing are either structs or unions.
1827         * doc/extend.texi: Add documentation for the unnamed field
1828         extension.
1829
1830 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
1831
1832         * aclocal.m4 (gcc_AC_PROG_GNAT): New.
1833         * configure.in: Use it.
1834         * configure: Regenerated.
1835         * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
1836         config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.
1837
1838 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1839
1840         * cppfiles.c (open_file): Don't mark zero-length files
1841         never-reread here.  Don't output diagnostics here either.
1842         (stack_include_file): Mark them never-reread here.
1843         (_cpp_read_file): Update.
1844
1845 2001-10-08  Richard Henderson  <rth@redhat.com>
1846
1847         * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
1848
1849 2001-10-08  Richard Henderson  <rth@redhat.com>
1850
1851         * expr.c (store_expr): When converting a CONST_INT for storage
1852         in a SUBREG, convert it to both SUBREG modes before stripping
1853         the SUBREG.
1854
1855 2001-10-08  Richard Henderson  <rth@redhat.com>
1856
1857         * varasm.c (restore_varasm_status): New.
1858         * function.h: Declare it.
1859         * function.c (pop_function_context_from): Call it.
1860
1861 2001-10-08  Richard Henderson  <rth@redhat.com>
1862
1863         * c-common.h (struct c_lang_decl): Add declared_inline.
1864         * c-tree.h (DECL_DECLARED_INLINE_P): New.
1865         * c-lang.c (c_disregard_inline_limits): Use it.
1866         * c-decl.c (duplicate_decls): Likewise.
1867         (pushdecl, redeclaration_error_message): Likewise.
1868         (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
1869         (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
1870         Set DECL_INLINE if -finline-functions.
1871         (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
1872
1873 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1874
1875         * cppmacro.c (funlike_invocation_p): Move some logic to caller
1876         in enter_macro_context.  Create a padding token in its own context
1877         if necessary when the search for '(' fails.
1878         (enter_macro_context): Update.
1879
1880 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1881
1882         * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
1883         genmultilib, toplev.c: Fix spelling errors of "separate" as
1884         "seperate", and corresponding spelling errors of related words.
1885
1886 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1887
1888         * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
1889         * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
1890         Likewise.
1891         * c-dump.c (dump_option_value_info): Likewise.
1892         * c-format.c (format_length_info, format_char_info,
1893         format_flag_spec, format_flag_pair, format_kind_info): Likewise.
1894         * collect2.c (names): Likewise.
1895         * cppdefault.h (default_include): Likewise.
1896         * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
1897         * flow.c (life_analysis): Likewise.
1898         * gcc.c (dir_separator_str, modify_target, option_map,
1899         target_option_translations, spec_list_1, extra_specs_1,
1900         init_spec): Likewise.
1901         * gcov.c (gcov_version_string): Likewise.
1902         * genattr.c (write_units): Likewise.
1903         * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
1904         * gengenrtl.c (rtx_definition, defs): Likewise.
1905         * genrecog.c (pred_table): Likewise.
1906         * global.c (global_alloc): Likewise.
1907         * lcm.c (optimize_mode_switching): Likewise.
1908         * local-alloc.c (find_free_reg): Likewise.
1909         * params.h (param_info): Likewise.
1910         * predict.c (predictor_info): Likewise.
1911         * protoize.c (unexpansion_struct): Likewise.
1912         * real.c (bmask): Likewise.
1913         * recog.h (insn_operand_data, insn_data): Likewise.
1914         * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
1915         * stmt.c (expand_nl_goto_receiver): Likewise.
1916         * toplev.c (da, debug_args, lang_opt, documented_lang_options,
1917         target_switches, target_options): Likewise.
1918         * tradcif.y (token, tokentab2, yylex): Likewise.
1919         * tree.h (attribute_spec): Likewise.
1920
1921         * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
1922         Likewise.
1923         * arc.c (arc_output_function_epilogue): Likewise.
1924         * arm.c (processors, all_cores, all_architectures,
1925         arm_override_options, isr_attribute_arg, isr_attribute_args,
1926         arm_isr_value): Likewise.
1927         * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
1928         Likewise.
1929         * c4x.c (c4x_int_reglist): Likewise.
1930         * d30v.c (override_options): Likewise.
1931         * h8300.c (shift_insn): Likewise.
1932         * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
1933         pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
1934         ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
1935         builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
1936         ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
1937         * i386.h (processor_costs, ix86_cost): Likewise.
1938         * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
1939         * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
1940         * m68k.c (codes_68881, codes_FPA): Likewise.
1941         * m88k.c (mode_from_align, max_from_align, all_from_align,
1942         best_from_align, m_options): Likewise.
1943         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
1944         * mcore.c (mode_from_align): Likewise.
1945         * mips/elf64.h (UNIQUE_SECTION): Likewise.
1946         * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
1947         * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
1948         * mips.h (mips_regno_to_class): Likewise.
1949         * ns32k.c (scales): Likewise.
1950         * pa.c (import_string, magic_milli): Likewise.
1951         * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
1952         * sparc.c (leaf_reg_remap, sparc_override_options,
1953         reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
1954         Likewise.
1955         * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
1956
1957 2001-10-07  Dale Johannesen  <dalej@apple.com>
1958
1959         * reload1.c (reload_reg_free_p): Teach register interference
1960         checking that multiple output reloads are emitted in
1961         reverse order.
1962         reload1.c (reload_reg_reaches_end_p):  Ditto.
1963         reload1.c (reloads_conflict):  Ditto.
1964
1965 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1966
1967         * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and
1968         NULL_TREE inside @code.
1969
1970 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1971
1972         * doc/gcc.texi: Document consistent style of "32-bit",
1973         "Objective-C", and "@code{NULL}".
1974
1975 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
1976
1977         * cpplex.c (enum spell_type): Add SPELL_NUMBER.
1978         (cpp_token_len, cpp_spell_token, cpp_output_token,
1979         _cpp_equiv_tokens): Handle it.
1980         * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and
1981         CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF.
1982         * cppexp.c (_cpp_parse_expr): Use the correct operator code in
1983         error messages.
1984
1985 Sat Oct  6 07:42:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1986
1987         * gcc.c (default_compilers): Remove .ada.
1988
1989 2001-10-06  Neil Booth  <neil@daikokuya.demon.co.uk>
1990
1991         * doc/cppinternals.texi: Update.
1992
1993 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
1994
1995         * gcc.c (main): Set this_file_error if the appropriate
1996         compiler for a language has not been installed.
1997
1998 2001-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
1999
2000         * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set.
2001
2002 2001-10-05  Joseph S. Myers  <jsm28@cam.ac.uk>
2003
2004         * gccbug.in (CATEGORIES): Add ada.
2005
2006 2001-10-05  Catherine Moore  <clm@redhat.com>
2007
2008         * config/stormy16/stormy-abi:  Document abi changes.
2009         * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine.
2010         (ICALL_REGS): New register class.
2011         (NUM_ARGUMENT_REGISTERS): Now 6.
2012         (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs
2013         in registers.
2014         (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS.
2015         * config/stormy16.md (call_internal, call_value_internal,
2016         indirect_jump): Use new 'z' constraint.
2017
2018 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2019
2020         * doc/cppinternals.texi: Update.
2021
2022 2001-10-05  Richard Henderson  <rth@redhat.com>
2023
2024         * dwarf2out.c (FRAME_BEGIN_LABEL): New.
2025         (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and
2026         the gas section-name-as-label feature.
2027
2028 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2029
2030         * doc/cppinternals.texi: Update.
2031
2032 Fri Oct  5 08:17:46 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2033
2034         * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
2035         to ensure valid SImode constants.
2036
2037 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
2038
2039         * Makefile.in (c-decl.o): Depend on tree-inline.h.
2040         (c-lang.o): Likewise, as well as insn-config.h and integrate.h.
2041         * c-decl.c: Include tree-inline.h.
2042         (c_expand_body): Call optimize_inline_calls. Determine whether
2043         a function is inlinable upfront, and only clear
2044         DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
2045         * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
2046         (c_disregard_inline_limits): New function.
2047         (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
2048         (c_post_options): Enable tree inlining if inlining is enabled.
2049         Don't inline trees when instrumenting functions.
2050         (c_init): Initialize lang_disregard_inline_limits and
2051         lang_cannot_inline_tree_fn.
2052         * tree-inline.c (initialize_inlined_parameters): Handle calls
2053         with fewer arguments than declared parameters, and fewer
2054         parameters than passed arguments.  Don't assume value is a
2055         DECL.
2056         (declare_return_variable): Convert return value back to the
2057         original type, if it was promoted.
2058         (tree_inlinable_function_p): New function.
2059         (inlinable_function_p): Don't look at DECL_INLINE if we're
2060         inlining all functions.  Make it work with a NULL id.
2061         Re-check DECL_UNINLINABLE after language-specific checks.
2062         * tree-inline.h (tree_inlinable_function_p): Declare it.
2063         * integrate.c (save_for_inline): Don't bother to prepare argvec
2064         when not inlining.
2065         * cse.c (check_for_label_ref): Don't check deleted labels.
2066
2067         * Makefile.in (tree-inline.o): Depend on newly-included headers.
2068         * tree-inline.c: Include headers needed for the functions moved in.
2069         (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
2070         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
2071         (copy_body, initialize_inlined_parameters): Likewise.
2072         (declare_return_variable, inlinable_function_p): Likewise.
2073         (expand_call_inline, expand_calls_inline): Likewise.
2074         (optimize_inline_calls, clone_body): Likewise.
2075         (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
2076         (copy_tree_r, remap_save_expr): Likewise.
2077
2078 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
2079
2080         * Makefile.in (OBJS): Added tree-inline.o.
2081         (c-common.o): Depend on tree-inline.h.
2082         (tree-inline.o): New target.
2083         * c-common.c: Include tree-inline.h.
2084         (c_mark_lang_decl): Don't mark saved_tree.
2085         (c_common_lang_init): Set lang_anon_aggr_type_p.
2086         * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
2087         (struct c_lang_decl): Moved saved_tree to tree_decl.
2088         * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
2089         * integrate.h (function_attribute_inlinable_p): Declare it.
2090         * integrate.c (function_attribute_inlinable_p): Export it.
2091         * tree-inline.c: New file.  Define variables declared in...
2092         * tree-inline.h: New file.  Declare functions to be moved to
2093         tree-inline.c.  Define macros and declare types and hooks for
2094         language-specific tree inlining.
2095         (flag_inline_trees): Moved definition from cp/decl2.c.
2096         * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
2097         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
2098         (struct tree_decl): Moved saved_tree from c_lang_decl and
2099         inlined_fns from C++'s lang_decl.
2100
2101 2001-10-04  Loren J. Rittle  <ljrittle@acm.org>
2102
2103         * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which
2104         propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS.
2105
2106 2001-10-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2107
2108         * doc/cppinternals.texi: Update.
2109
2110 2001-10-04  Eric Christopher  <echristo@redhat.com>
2111
2112         * config/mips/mips.c (init_cumulative_args): Remember to set
2113         cum->prototype.
2114         * config.gcc: Redo linux configuration. Add target_cpu_default
2115         of soft-float to all mipsisa32 combinations and tx39.
2116         * config/mips/linux.h: Remove include of mips.h.
2117
2118 2001-10-03  Loren J. Rittle  <ljrittle@acm.org>
2119
2120         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS,
2121         HOST_LDFLAGS and HOST_CPPFLAGS.
2122
2123 2001-10-03  Ziemowit Laski  <zlaski@apple.com>
2124
2125         * c-parse.in (objc_inherit_code, objc_pq_context,
2126         objc_public_flag): Make static.
2127         (objc_interface_context, objc_implementation_context,
2128         objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
2129         global tree array in objc/objc-act.[ch].
2130         (methoddef): Remove unnecessary code.
2131
2132         * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
2133         Hoist struct definitions to objc-act.h.
2134         (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
2135         cat_count): Place declaration in objc-act.h.
2136         (objc_tree_index): Move enumeration to objc-act.h.
2137         (objc_global_trees): Place declaration and macro accessors in
2138         objc-act.h.
2139         (implementation_context): Remove duplicate; use
2140         objc_implementation_context instead:
2141         (method_context): Remove duplicate; use objc_method_context
2142         instead.
2143         (objc_ellipsis_node, objc_method_prototype_template,
2144         implemented_classes, function_type): Move global vars to
2145         objc_global_trees.
2146         (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
2147         (build_message_expr): Move actual construction of ObjC message
2148         send nodes to finish_message_expr.
2149         (finish_message_expr): New routine, contains code formerly in
2150         build_message_expr.
2151         * objc/objc-act.h (finish_message_expr): New prototype.
2152         (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
2153         declarations; these vars are now part of objc_global_trees.
2154         (objc_tree_index, objc_global_trees): Move definitions from
2155         objc-act.c.
2156         * objc/objc-tree.def: Update copyright info.
2157
2158 Wed Oct  3 12:22:11 EDT 2001  John Wehle  (john@feith.com)
2159
2160         * dwarf2asm.c (unaligned_integer_asm_op): Abort if
2161         op is NULL.
2162         * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use
2163         only if TARGET_ARCH64.
2164
2165 2001-10-02  Bernd Schmidt  <bernds@redhat.com>
2166
2167         * doc/extend.texi: Fix some problems with previous checkin.
2168         * doc/invoke.texi: Likewise.
2169
2170 2001-10-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2171
2172         * cpphash.h: Update comments.
2173         (cpp_context): Update.
2174         (spec_nodes): Remove n__Pragma.
2175         * cppinit.c (cpp_create_reader): Update.
2176         (builtin_array): Add _Pragma.
2177         * cpplib.h: Update comments.
2178         (NODE_DISABLED, BT_PRAGMA): New.
2179         (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes.
2180         * cppmacro.c (struct cpp_macro): Remove disabled.
2181         (builtin_macro): Return int, handle _Pragma, push the new token
2182         on the context stack.
2183         (funlike_invocation_p): Unconstify, update.
2184         (enter_macro_context): Handle builtins here.
2185         (replace_args, push_token_context, push_ptoken_context):
2186         Update for prototype changes.
2187         (_cpp_pop_context): Update.
2188         (cpp_get_token): Don't handle buitins, nor _Pragma here.
2189         (cpp_sys_macro_p): Update.
2190         (_cpp_free_definition): Clear disabled flag.
2191         (_cpp_create_definition): Upate.
2192         * cppmain.c: Update comments.
2193
2194 Tue Oct  2 12:46:01 CEST 2001  Bo Thorsen     <bo@suse.co.uk>,
2195                                 Andreas Jaeger <aj@suse.de>,
2196                                 Jan Hubicka    <jh@suse.cz>
2197
2198         * doc/invoke.texi (i386 Options): Document x86-64 options.
2199         (i386 and x86-64 Options): Rename i386 options section.
2200
2201         * config/i386/i386.h (TARGET_UNWIND_INFO): New.
2202         (TARGET_SWITCHES): Add -munwind-info.
2203         (MASK_NO_UNWIND_INFO): New.
2204         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
2205         biarch compilation.
2206         (ASM_OUTPUT_DOUBLE_INT): New.
2207
2208         * config/i386/linux64.h: New spec file for Linux x86-64 support.
2209         * config.gcc: Fix tm_file settings for x86-64.
2210         * config/i386/x86-64.h: New file with OS independent x86-64
2211         definitions.
2212         * config/i386/biarch64.h: New file used to configure compiler
2213         to biarch/64bit compilation.
2214
2215         * config/i386/i386.c: (override_options): Set flags default
2216         for 64bit compilation.
2217
2218 Tue Oct  2 12:46:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
2219
2220         * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
2221         (ix86_expand_int_movcc): Optimize DImode conditional moves with
2222         constants on x86_64.
2223         (ix86_attr_length_immediate_default): Support MODE_DI.
2224         * i386.md (fixdi splitter): Add missing "&& 1" in splitter
2225         condition.
2226         (indirect_jump, tablejump): Turn into expander.
2227
2228 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2229
2230         * c-common.c (c_format_attribute_table): Make format and
2231         format_arg attributes apply to function types rather than to
2232         decls.
2233         (is_valid_printf_arglist): Construct an attribute list and pass
2234         that to check_function_format rather than a name.
2235         * c-common.h (check_function_format): Adjust prototype.
2236         * c-decl.c (duplicate_decls): Preserve attributes from type of
2237         built-in decl when allowing for harmless conflict in types.
2238         * c-format.c (record_function_format,
2239         record_international_format, function_format_list,
2240         international_format_info, international_format_list): Remove.
2241         (function_format_info): Remove next, name and assembler_name.
2242         Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
2243         (decode_format_attr): New.
2244         (handle_format_attribute): Handle receiving a type rather than a
2245         decl.  Call decode_format_attr.  Store format information in a
2246         function_format_info.
2247         (handle_format_arg_attribute): Correct comment.  Handle receiving
2248         a type rather than a decl.  Use unsigned HOST_WIDE_INT for
2249         arg_num.
2250         (check_format_info_recurse, check_format_info_main): Take argument
2251         numbers as unsigned HOST_WIDE_INT.
2252         (check_function_format): Take a list of attributes from the
2253         function type rather than a name or assembler name.  Check for
2254         format attributes in that list and the attributes on the type of
2255         the current function rather than looking through
2256         function_format_list.
2257         (check_format_info): Use unsigned HOST_WIDE_INT for argument
2258         numbers.
2259         (check_format_info_recurse): Take format_arg attributes from the
2260         type of the function calls rather than using
2261         international_format_list.  Allow for multiple format_arg
2262         attributes.
2263         * c-typeck.c (build_function_call): Pass type attributes to
2264         check_function_format rather than name or assembler name.  Don't
2265         require there to be a name or assembler name to check formats.
2266
2267 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2268
2269         * attribs.c (decl_attributes): Possibly call
2270         insert_default_attributes to insert default attributes on
2271         functions in a lazy manner.
2272         * builtin-attrs.def: New file; define the default format and
2273         format_arg attributes.
2274         * c-common.c (c_format_attribute_table): Move to earlier in the
2275         file.
2276         (c_common_nodes_and_builtins): Initialize format_attribute_table.
2277         (enum built_in_attribute, built_in_attributes,
2278         c_attrs_initialized, c_init_attributes,
2279         c_common_insert_default_attributes): New.
2280         (c_common_lang_init): Don't initialize format_attribute_table.  Do
2281         call c_init_attributes.
2282         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
2283         * c-common.h (init_function_format_info): Don't declare.
2284         (c_common_insert_default_attributes): Declare.
2285         * c-decl.c (implicitly_declare, builtin_function): Call
2286         decl_attributes.
2287         (init_decl_processing): Don't call init_function_format_info.
2288         (insert_default_attributes): New.
2289         * c-format.c (handle_format_attribute,
2290         handle_format_arg_attribute): Be quiet about inappropriate
2291         declaration when applying default attributes.
2292         (init_function_format_info): Remove.
2293         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
2294         (insert_default_attributes): Declare.
2295
2296 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2297
2298         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
2299
2300 2001-10-01  Jim Wilson  <wilson@redhat.com>
2301
2302         * sched-deps.c (add_dependence): When elide conditional dependence,
2303         check that insn doesn't modify cond2.
2304
2305 2001-10-01  Dale Johannesen  <dalej@apple.com>
2306
2307         * config/rs6000/rs6000.h (enum processor_type): Add support
2308         for 7400 (G4) and 7450.
2309         (RTX_COSTS): Ditto.
2310         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
2311         (rs6000_issue_rate): Ditto.
2312         (rs6000_adjust_cost): Fix cycle counts for compares.
2313         (debug_stack_info):  Fix an obvious typo.
2314         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
2315         * doc/invoke.texi: Document.
2316         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
2317         for Darwin.
2318         (PROCESSOR_DEFAULT): Ditto.
2319
2320 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
2321
2322         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
2323         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
2324         later recursive make invocation.
2325
2326 2001-10-01  Hans Boehm  <boehm@acm.org>
2327
2328         * optabs.c (emit_libcall_block): When using non-call exceptions,
2329         don't add REG_LIBCALL reg notes to trapping calls.
2330
2331 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
2332
2333         * flow.c (propagate_block_delete_libcall): Remove unused first arg
2334         (propagate_one_insn):  Update for above change
2335
2336 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
2337
2338         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
2339         _Unwind_GetTextRelBase): Argument is unused.
2340
2341 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2342
2343         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
2344         Loop through NOPs, placeholders, and components.
2345         Don't go through NOPs if change mode.
2346         (record_alias_subset): Do nothing if SUBSET and SET are the same.
2347         * emit-rtl.c (set_mem_alias_set): Enable check.
2348         * expr.c (find_placeholder): New function.
2349         (expand_expr, case PLACEHOLDER_EXPR): Use it.
2350         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
2351         to modify it and avoid unneeded copies.
2352         * expr.h (expand_expr): Always define.
2353         (find_placeholder): New declaration.
2354
2355 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2356
2357         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
2358         operand 2 is the stack pointer.
2359         ("addr-peephole"): Fix address computation peephole when operand 2
2360         is the stack pointer.
2361
2362 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2363
2364         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
2365         (ix86_setup_incoming_varargs): Likewise.
2366
2367 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
2368
2369         * stor-layout.c (layout_type): Don't complain about too-large
2370         array here.
2371
2372 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2373
2374         * function.c (keep_stack_depressed): Don't use delete_insn.
2375
2376         * expr.h (set_mem_alias_set): Move decl to here.
2377         * rtl.h (mem_attrs): New typedef and struct.
2378         (union rtunion_def): Add field for mem_attrs.
2379         (X0MEMATTR, MEM_ATTRS): New macros.
2380         (MEM_ALIAS_SET): Use MEM_ATTRS.
2381         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
2382         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
2383         (set_mem_alias_set): Delete decl from here.
2384
2385         * alias.c (set_mem_alias_set): Delete from here.
2386         * emit-rtl.c (mem_attrs_htab): New variable.
2387         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
2388         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
2389         (mem_attrs_mark, get_mem_attrs): Likewise.
2390         (gen_rtx_MEM): Clear MEM_ATTRS.
2391         (set_mem_attributes): Move to here.
2392         (set_mem_alias_set): Likewise, and call get_mem_attrs.
2393         (init_emit_once): const_int_htab now deletable htab.
2394         Initialize mem_attrs_htab.
2395         * explow.c (set_mem_attributes): Delete from here.
2396         * function.c (put_var_into_stack): Clear MEM_ATTRS.
2397         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
2398         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
2399         * reload1.c (reload): Rework changing REG to MEM.
2400
2401 2001-09-30  H.J. Lu <hjl@gnu.org>
2402
2403         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
2404         * config.in: Rebuild.
2405
2406 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2407
2408         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
2409         ("tsthi_1"): Avoid allocation in register y.
2410         ("*movqi_68hc12"): Reorganize and fix constraints.
2411         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
2412         ("addqi3"): Likewise.
2413         ("addhi3"): Fix constraints.
2414         ("*logicalhi3_zexthi"): Disparage soft registers.
2415
2416 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2417
2418         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
2419         to tmp reg.
2420
2421 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2422
2423         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
2424         that we use setjmp/longjmp exceptions.
2425
2426 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
2427
2428         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
2429         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
2430         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
2431         _cpp_pool_alloc, _cpp_next_chunk): Remove.
2432         (_cpp_extend_buff, BUFF_ROOM): Update.
2433         (_cpp_append_extend_buff): New.
2434         (struct cpp_reader): Remove macro_pool, add a_buff.
2435         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
2436         macro_pool.
2437         (cpp_destroy): Free a_buff instead of macro_pool.
2438         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
2439         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
2440         _cpp_pool_alloc, ): Remove.
2441         (parse_number, parse_string): Update use of _cpp_extend_buff.
2442         (_cpp_extend_buff): Update.
2443         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
2444         * cpplib.c (glue_header_name, parse_answer):
2445         Update use of _cpp_extend_buff.
2446         (cpp_register_pragma, cpp_register_pragma_space): Use
2447         _cpp_aligned_alloc.
2448         (do_assert, do_unassert): Check for EOL, update.
2449         * cppmacro.c (stringify_arg, collect_args): Update to use
2450         _cpp_extend_buff and _cpp_append_extend_buff.
2451         (save_parameter, parse_params, alloc_expansion_token,
2452         _cpp_create_definition): Rework memory management.
2453
2454 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
2455
2456         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
2457         update md_exec_prefix.
2458         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
2459         to string constant.
2460
2461 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2462
2463         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
2464         (SELECT_CC_MODE): Use s390_select_ccmode.
2465         * config/s390/s390-protos.h (s390_select_ccmode): Add.
2466         * config/s390/s390.c (s390_select_ccmode): New.
2467         (s390_match_ccmode): Add CCLmode.
2468         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
2469         (output_branch_condition, output_inverse_branch_condition): Removed.
2470         (print_operand): Use s390_branch_condition_mnemonic.
2471         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
2472         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
2473         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
2474
2475         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
2476         when converting conditional branches to far branches.
2477         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
2478         cmpint_di): Use CCSmode instead of CCUmode.
2479
2480         * config/s390/s390.c (legitimate_la_operand_p): New.
2481         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
2482         * config/s390/s390.md (movsi): Convert load address patterns to
2483         arithmetic operations when necessary.
2484         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
2485         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
2486         (*do_la_reg_0): Don't use before reload.
2487
2488         * config/s390/s390.c (legitimize_address): Make more efficient
2489         use of two-register addressing mode.
2490
2491         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
2492         with -mno-backchain in some corner cases.
2493
2494         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
2495
2496 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
2497
2498         * reload.c (find_reloads): Mark new USE insns with QImode.
2499         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
2500         find_reloads_subreg_address): Likewise.
2501         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
2502         encountered.
2503         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
2504         CLOBBERs.
2505         (reload): Make sure there are no USEs with mode other than
2506         VOIDmode.  At the end, remove those marked with QImode.
2507
2508 2001-09-29  Per Bothner  <per@bothner.com>
2509
2510         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
2511         * Makefile.in (includedir):  Rename to local_includedir.
2512         (includedir):  Define as $(prefix)/include.
2513         * config.in (PREFIX_INCLUDE_DIR):  New variable.
2514         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
2515
2516 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
2517
2518         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
2519         storehps builtins.
2520         * doc/extend.texi (Vector Extensions): New node.
2521         * doc/invoke.texi (Machine Dependent Options): Add documentation for
2522         i386 -mmmx, -msse, -m3dnow.
2523
2524 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
2525
2526         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
2527
2528 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
2529
2530         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
2531
2532         * doc/invoke.texi (Optimize Options): Delete spurious @table.
2533
2534 2001-09-28  Richard Henderson  <rth@redhat.com>
2535
2536         * varasm.c (assemble_integer): Bound alignment check by
2537         BIGGEST_ALIGNMENT.
2538
2539         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
2540
2541 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2542
2543         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
2544
2545 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
2546
2547         Mostly from Graham Stott  <grahams@redhat.com>
2548         * c-common.c (type_for_mode): Add support for V2SFmode.
2549         * tree.c (build_common_tree_nodes_2): Likewise.
2550         * tree.h (enum tree_index, global_trees): Likewise.
2551         * config/i386/i386.c (x86_3dnow_a): New variable.
2552         (override_options): Support 3Dnow extensions.
2553         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
2554         Athlon's version of 3Dnow.
2555         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
2556         (ix86_expand_builtin): Handle them.
2557         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
2558         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
2559         TARGET_3DNOW_A): New macros.
2560         (TARGET_SWITCHES): Add 3Dnow switches.
2561         (VALID_MMX_REG_MODE_3DNOW): New macro.
2562         (VECTOR_MODE_SUPPORTED_P): Use it.
2563         (enum ix86_builtins): Add entries for 3Dnow builtins.
2564         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
2565         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
2566         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
2567         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
2568         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
2569         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
2570         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
2571         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
2572         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
2573         sfence_insn, prefetch): Make these available if TARGET_SSE or
2574         TARGET_3DNOW_A.
2575
2576 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
2577
2578         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
2579         ix86_va_start, ix86_build_va_list): Declare.
2580         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
2581         ix86_va_start, ix86_build_va_list): New global functions.
2582         * i386.md (sse_prologue_save_insn): New insn.
2583         (sse_prologue_save): New expander.
2584         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
2585         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
2586
2587 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2588
2589         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
2590         Use size_t everywhere, make definitions consistent with
2591         prototypes.
2592
2593 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
2594
2595         * gcse.c (replace_store_insn): Use delete_insn.
2596         * loop.c (move_movables): Likewise; avoid delete_insn
2597         from clobbering notes moved elsewhere.
2598         (check_dbra_loop): Use delete_insn.
2599         * ssa.c (convert_from_ssa): Likewise.
2600         * cse.c (cse_insn): Use delete_insn.
2601
2602 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2603
2604         * cpphash.h (struct cpp_buff): Make unsigned.
2605         (_cpp_get_buff): Take length of size_t.
2606         (_cpp_unaligned_alloc): New.
2607         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
2608         (struct cpp_reader): Remove ident_pool.  Add u_buff.
2609         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
2610         (cpp_destroy): Destroy u_buff, not ident_pool.
2611         * cpplex.c (parse_number, parse_string, save_comment,
2612         cpp_token_as_text): Update to use the unaligned buffer.
2613         (new_buff): Make unsigned.
2614         (_cpp_unaligned_alloc): New.
2615         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
2616         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
2617         Similarly.
2618         (collect_args): Make unsigned.
2619
2620 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
2621
2622         * cpplex.c (cpp_output_token): Use a putc loop for
2623         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
2624
2625         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
2626         * configure, config.in: Regenerate.
2627         * system.h: Replace fwrite and fprintf with their unlocked
2628         variants if available.
2629
2630 2001-09-27  Richard Henderson  <rth@redhat.com>
2631
2632         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
2633         in favour of .eh_frame.
2634
2635 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
2636
2637         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
2638         to macros.
2639         (LIBCALL_VALUE): Likewise.
2640
2641 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2642
2643         * cpphash.h: Update comment.
2644         * cpplex.c: Update comments.
2645         (_cpp_can_paste): Remove.
2646         * cpplib.h (_cpp_can_paste): Remove.
2647         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
2648         lexer rather than _cpp_can_paste.
2649
2650 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2651
2652         * doc/cppinternals.texi: Update.
2653
2654 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2655
2656         * cpphash.h (struct cpp_pool): Remove locks and locked.
2657         (struct cpp_context): Add member buff.
2658         (struct cpp_reader): Remove member argument_pool.
2659         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
2660         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
2661         * cpplex.c (chunk_suitable): Remove pool argument.
2662         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
2663         (new_buff, _cpp_extend_buff): Update.
2664         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
2665         which buffer is returned.
2666         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
2667         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
2668         * cppmacro.c (lock_pools, unlock_pools): Remove.
2669         (push_ptoken_context): Take a _cpp_buff.
2670         (enter_macro_context): Pool locking removed.
2671         (replace_args): Use a _cpp_buff for the replacement list with
2672         arguments replaced.
2673         (push_token_context): Clear buff.
2674         (expand_arg): Use _cpp_pop_context.
2675         (_cpp_pop_context): Free a context's buffer, if any.
2676
2677 2001-09-26  DJ Delorie  <dj@redhat.com>
2678
2679         * c-typeck.c (digest_init): Check for sizeless arrays.
2680
2681 2001-09-26  Richard Henderson  <rth@redhat.com>
2682
2683         * optabs.c (init_one_libfunc): Create a dummy function type
2684         instead of using error_mark_node.
2685
2686 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2687
2688         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
2689         _cpp_extend_buff, _cpp_free_buff): New.
2690         (struct cpp_reader): New member free_buffs.
2691         * cppinit.c (cpp_destroy): Free buffers.
2692         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
2693         _cpp_extend_buff, _cpp_free_buff): New.
2694         * cpplib.h (struct cpp_options): Remove unused member.
2695         * cppmacro.c (collect_args): New.  Combines the old parse_arg
2696         and parse_args.  Use _cpp_buff for memory allocation.
2697         (funlike_invocation_p, replace_args): Update.
2698
2699 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
2700
2701         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
2702
2703 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
2704
2705         * except.c (sjlj_mark_call_sites): Change address inside sequence.
2706
2707 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
2708
2709         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
2710         glibc.
2711
2712 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
2713             Jim Wilson  <wilson@redhat.com>
2714
2715         * doc/install.texi (Specific, ia64-*-linux): Document.
2716
2717 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
2718
2719         * Makefile.in (cfgrtl.o): Add.
2720         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
2721         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
2722         free_aux_for_edge): Declare.
2723         * cfg.c
2724         (HAVE_return): Undefine.
2725         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
2726         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
2727         free_aux_for_edge): New global functions.
2728         (first_delete_block): New static variable.
2729         (init_flow): Clear first_delete_block.
2730         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
2731          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
2732          try_redirect_by_replacing_jump, last_loop_beg_note,
2733          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
2734          delete_insn, delete_insn_chain, create_basic_block_structure,
2735          create_basic_block, flow_delete_block, compute_bb_for_insn,
2736          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
2737          set_block_for_new_insns, split_block, merge_blocks_nomove,
2738          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
2739          redirect_edge_and_branch, force_nonfallthru_and_redirect,
2740          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
2741          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
2742          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
2743          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
2744          purge_all_dead_edges): Move to ....
2745         * cfgrtl.c: New file; .... Here.
2746
2747         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
2748         (reroder_basic_block): Use alloc_aux_for_blocks.
2749         * predict.c (estimate_bb_frequencies): Likewise; use
2750         alloc_aux_for_edges.
2751         * profile.c (compute_branch_probabilities): Likewise.
2752         (branch_prob): Likewise.
2753         * reg-stack.c (reg_to_stack): Likewise.
2754
2755         * emit-rtl.c (emit_insns_after): Never return NULL.
2756
2757         * basic-block.h (set_block_for_new_insns): Delete.
2758         * cfgrtl.c (set_block_for_new_insns): Delete.
2759
2760         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
2761         calls when crossjumping.
2762
2763         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
2764         * unroll.c (copy_loop_body): Use delete_insn.
2765
2766         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
2767         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
2768         keep_stack_depressed): Likewise.
2769         * gcse.c (cprop_cc0_jump): Likewise.
2770         * local-alloc.c (update_equiv_regs): Likewise.
2771         * loop.c (scan_loop, loop_delete_insns): Likewise.
2772         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
2773         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
2774         delete_output_reload, delete_address_reloads_1,
2775         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
2776         Likewise.
2777         * sibcall.c (replace_call_placeholder): Likewise.
2778         * cse.c (cse_insn): Likewise.
2779
2780 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
2781
2782         From Graham Stott  <grahams@redhat.com>
2783         (def_builtin): Only define builtins appropriate for target_flags.  All
2784         callers changed.
2785         (builtin_decsription): Add new field mask which is used to determine
2786         when to define the builtin via the macro def_builtin.
2787
2788         (bdesc_comi): Initialise new mask fields.
2789         (bdesc_2srg): Likewise.
2790         (bdesc_1arg): Likewise.
2791
2792         * config/i386/i386.c (ix86_init_builtins): Correct return type
2793         building v4hi_ftype_v4hi_int_int tree node.
2794         (ix86_expand_sse_comi): Fix typo swapping operands.
2795         Don't swap comparision condition, it is already swapped.
2796         (ix86_expand_sse_compare): Before swapping operands
2797         move operand 1 into new rtx and not the target rtx.
2798         Don't swap comparison condition, it is already swapped.
2799         Always check whether we need to create a new TARGET.
2800
2801         * config/i386/i386.md: (sse_comi) Fix typos.
2802         (sse_ucomi): Likewise.
2803         (cvtss2si): Fix operand 0 contraint.
2804         (cvttss2si): Likewise.
2805         (sse_unpckhps): Fix mode for operand 2.
2806         (sse_unpcklps): Likewise.
2807
2808 2001-09-25  Graham Stott  <grahams@redhat.com>
2809
2810         * sibcall.c (skip_copy_to_return_value): Tighten return value
2811         copy check.
2812
2813 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
2814
2815         * rs6000.c (lwa_operand): Address must be word aligned.
2816
2817 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2818
2819         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
2820         number has been set.
2821         (type_hash_mark): Mark type itself.
2822
2823 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2824
2825         * c-lex.c (cb_def_pragma): Update.
2826         (c_lex): Update, and skip padding.
2827         * cppexp.c (lex, parse_defined): Update, remove unused variable.
2828         * cpphash.h (struct toklist): Delete.
2829         (union utoken): New.
2830         (struct cpp_context): Update.
2831         (struct cpp_reader): New members eof, avoid_paste.
2832         (_cpp_temp_token): New.
2833         * cppinit.c (cpp_create_reader): Update.
2834         * cpplex.c (_cpp_temp_token): New.
2835         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
2836         (cpp_output_token): Don't print leading whitespace.
2837         (cpp_output_line): Update.
2838         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
2839         do_include_common, do_line, do_ident, do_pragma,
2840         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
2841         parse_assertion): Update.
2842         (get_token_no_padding): New.
2843         * cpplib.h (CPP_PADDING): New.
2844         (AVOID_LPASTE): Delete.
2845         (struct cpp_token): New union member source.
2846         (cpp_get_token): Update.
2847         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
2848         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
2849         replace_args, quote_string, stringify_arg, parse_arg, next_context,
2850         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
2851         _cpp_backup_tokens, _cpp_create_definition): Update.
2852         (push_arg_context): Delete.
2853         (padding_token, push_token_context, push_ptoken_context): New.
2854         (make_string_token, make_number_token): Update, rename.
2855         (cpp_get_token): Update to handle tokens as pointers to const,
2856         and insert padding appropriately.
2857         * cppmain.c (struct printer): New member prev.
2858         (check_multiline_token): Constify.
2859         (do_preprocessing, cb_line_change): Update.
2860         (scan_translation_unit): Update to handle spacing.
2861         * scan-decls.c (get_a_token): New.
2862         (skip_to_closing_brace, scan_decls): Update.
2863         * fix-header.c (read_scan_file): Update.
2864
2865         * doc/cpp.texi: Update.
2866
2867 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2868
2869         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
2870         leak by passing malloc'ed pointer to reconcat, not concat.
2871
2872 2001-09-24  DJ Delorie  <dj@redhat.com>
2873
2874         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
2875
2876 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
2877
2878         * flow.c (delete_dead_jumptables): Delete jumptable if the only
2879         reference is from the literal pool.
2880
2881 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
2882
2883         * doc/install.texi (Final install): Request additional information
2884         in mail about successful builds.
2885
2886 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2887
2888         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
2889         initial value of return pointer register instead of value in frame-20.
2890         Revise comments.
2891
2892 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2893
2894         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
2895         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
2896         the libcall if there isn't a referenced identifier for the symbol.
2897
2898 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2899
2900         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
2901         non 64-bit machines.  Use these as a plabel for the trampoline.
2902         (TRAMPOLINE_SIZE): Adjust size for new words.
2903         (INITIALIZE_TRAMPOLINE): Initialize new words.
2904         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
2905         pointer to the plabel in the trampoline.
2906
2907 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2908
2909         * pa.c (function_arg): Pass floating arguments in both general and
2910         floating registers in indirect (dynamic) calls when generating code
2911         for the 32 bit ABI and the HP assembler.
2912
2913 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2914
2915         * doc/install.texi: Markup fixes.
2916         Use Solaris 2, SunOS 4 as appropriate.
2917         (Specific, *-*-solaris2*): Explain this.
2918         Unconditionally warn against /usr/ucb tools.
2919         Remove Sun as warning, obsolete.
2920         Move X11 header bug workaround here, update patches.
2921         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
2922         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
2923
2924 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
2925
2926         * errors.h (warning, error, fatal, internal_error): Don't mark
2927         with ATTRIBUTE_PRINTF_n.
2928         * toplev.h (internal_error, fatal_io_error, warning, error,
2929         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
2930         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
2931         Likewise.
2932
2933 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2934
2935         * function.c (pop_function_context_from): var_refs_queue
2936         and temp slots now in GC memory.
2937         (mark_function_status, free_after_compilation): Likewise;
2938         also struct function now in GC memory.
2939         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
2940         (combine_temp_slots): Likewise.
2941         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
2942         (prepare_function_start): Use GC memory for struct function.
2943         (mark_temp_slot): Deleted.
2944         (gcc_mark_struct_function): struct function now in GC memory.
2945
2946         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
2947         code for division, not modulus.
2948
2949         * rtl.def (MEM): Remove obsolete part of comment.
2950
2951 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
2952
2953         * c-format.c (init_function_format_info): Check __builtin_printf
2954         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
2955         in gnu89 mode.
2956
2957 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2958
2959         * c-common.c (format_attribute_table): Remove decl.
2960         * tree.h (format_attribute_table, lang_attribute_table): New decls.
2961         (lang_attribute_common): Likewise.
2962
2963         * function.c (fix_lexical_address): Use set_mem_alias_set.
2964         (expand_function_start): Likewise.
2965         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
2966
2967         * varasm.c (output_constant): Fix unused variable warning.
2968
2969         * attribs.c: New file, from c-common.c.
2970         (attribute_tables): Now four elements.
2971         (format_attribute_table, lang_attribute_common): New variables.
2972         (init_attributes): Reflect above changes.
2973         (handle_mode_attribute): Delete check for wider than uintmax.
2974         * c-common.c: Delete parts moved to attribs.c.
2975         (enum attrs): Deleted; unused.
2976         (c_format_attribute_table): New variable.
2977         (c_common_lang_init): Initialize format_attribute_table with it.
2978         * c-common.h (decl_attributes): Remove decl.
2979         * tree.h (decl_attribute): Move it to here.
2980         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
2981         (attribs.o): New rule.
2982
2983 2001-09-22  Andreas Jaeger  <aj@suse.de>
2984
2985         * builtins.c (c_getstr): Remove unused variable.
2986
2987 2001-09-21  Richard Henderson  <rth@redhat.com>
2988
2989         * reload1.c (reload): Use delete_insn instead of splatting
2990         NOTE_INSN_DELETED.
2991
2992 2001-09-21  Richard Henderson  <rth@redhat.com>
2993
2994         * reload.c (push_secondary_reload): Don't check for "=" in output
2995         constraint after ""->ALL_REGS check.
2996
2997 2001-09-21  Richard Henderson  <rth@redhat.com>
2998
2999         * predict.c (expected_value_to_br_prob): Use pc_set.
3000
3001         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
3002         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
3003
3004 2001-09-21  Richard Henderson  <rth@redhat.com>
3005
3006         * rtl.h (LCT_RETURNS_TWICE): New.
3007         * calls.c (emit_call_1): Set current_function_calls_setjmp for
3008         ECF_RETURNS_TWICE.
3009         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
3010         to ECF_RETURNS_TWICE.
3011         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
3012         call to setjmp.
3013
3014         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
3015
3016         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
3017         (JMP_BUF_SIZE): New.
3018
3019 2001-09-21  Richard Henderson  <rth@redhat.com>
3020
3021         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
3022         to R8_REGS.
3023
3024 2001-09-21  Richard Henderson  <rth@redhat.com>
3025
3026         * tree.def (FDESC_EXPR): New.
3027         * expr.c (expand_expr): Handle it.
3028         * varasm.c (initializer_constant_valid_p): Likewise.
3029         (output_constant): Likewise.
3030         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
3031         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
3032         (ASM_OUTPUT_FDESC): New.
3033         * doc/tm.texi: Document the new macros.
3034
3035 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
3036
3037         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
3038         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
3039         once merging is complete.
3040
3041 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3042
3043         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
3044
3045 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
3046
3047         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
3048         that would be invalid after a merge.
3049
3050 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
3051
3052         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
3053         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
3054         remove some labels.
3055         (flow_delete_insn): This one.
3056         (delete_insn_chain): Rename from ...; do not care labels.
3057         (flow_delete_insn_chain): ... this one.
3058         (flow_delete_block): Remove the insns one BB has been expunged.
3059         (merge_blocks_nomove): Likewise.
3060         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
3061         updating BB boundaries.
3062         (tidy_fallthru_edge): Likewise.
3063         (commit_one_edge_insertion): Likewise.
3064         * cfgbuild.c (find_basic_block): Likewise.
3065         (find_basic_blocks_1): Likewise.
3066         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
3067         (try_crossjump_to_edge): Likewise.
3068         (try_optimize_cfg): Likewise.
3069         * cse.c (delete_trivially_dead_insns): Likewise.
3070         * df.c (df_insn_delete): Likewise.
3071         * doloop.c (doloop_modify): Use delete_related_insns.
3072         * emit-rtl.c (try_split): Likewise.
3073         (remove_insn): Update BB boundaries.
3074         * expect.c (connect_post_landing_pads): Use delete_related_insns.
3075         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
3076         updating BB boundaries.
3077         (propagate_block_delete_insn): Likewise.
3078         (propagate_block_delete_libcall): Likewise.
3079         * function.c (delete_handlers): Use delete_related_insns.
3080         (thread_prologue_and_epilogue_insns): Likewise.
3081         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
3082         * genpeep.c (gen_peephole): Use delete_related_insns.
3083         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
3084         BB boundaries.
3085         (find_cond_trap): Likewise.
3086         * integrate.c (save_for_inline): Use delete_related_insns.
3087         (copy_insn_list): Likewise.
3088         * jump.c (pruge_linie_number_notes): Likewise.
3089         (duplicate_loop_exit_test): Likewise.
3090         (delete_computation): Likewise.
3091         (delete_related_insn): Rename from ...; use delete_insn
3092         (delete_insn): ... this one.
3093         (redirect_jump): Use delete_related_insns.
3094         * loop.c (scan_loop): Likewise.
3095         (move_movables): Likewise.
3096         (find_and_verify_loops): Likewise.
3097         (check_dbra_loop): Likewise.
3098         * recog.c (peephole2_optimize): Likewise.
3099         * reg-stack.c (delete_insn_for_stacker): Remove.
3100         (move_for_stack_reg): Use delete_insn.
3101         * regmove.c (combine_stack_adjustments_for_block): Likewise.
3102         * reload1.c (delete_address_reloads): Use delete_related_insns.
3103         (fixup_abnormal_edges): Use delete_insn.
3104         * recog.c (emit_delay_sequence): Use delete_related_insns.
3105         (delete_from-delay_slot): Likewise.
3106         (delete_scheduled_jump): likewise.
3107         (optimize_skip): Likewise.
3108         (try_merge_delay_insns): Likewise.
3109         (full_simple_delay_slots): Likewise.
3110         (fill_slots_from_thread): Likewise.
3111         (relax_delay_slots): Likewise.
3112         (make_return_insns): Likewise.
3113         (dbr_schedule): Likewise.
3114         * rtl.h (delete_insn): Rename to delete_related_insns.
3115         (delete_insn, delete_insn_chain): New prototypes.
3116         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
3117         by df_insn_delete already.
3118         * ssa-dce.c (delete_insn_bb): Use delete_insn.
3119         * ssa.c (convert_from_ssa): Use delete_related_insns.
3120         * unroll.c (unroll_loop): Likewise.
3121         (calculate_giv_inc): Likewise.
3122         (copy_loop_body): Likewise.
3123
3124         * i386-protos.h (ix86_libcall_value, ix86_function_value,
3125         ix86_function_arg_regno_p, ix86_function_arg_boundary,
3126         ix86_return_in_memory, ix86_function_value): Declare.
3127         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
3128         new static valurables.
3129         (x86_64_reg_class): New enum
3130         (x86_64_reg_class_name): New array.
3131         (classify_argument, examine_argument, construct_container,
3132          merge_classes): New static functions.
3133         (optimization_options): Enable flag_omit_frame_pointer and disable
3134         flag_pcc_struct_return on 64bit.
3135         (ix86_libcall_value, ix86_function_value,
3136         ix86_function_arg_regno_p, ix86_function_arg_boundary,
3137         ix86_return_in_memory, ix86_function_value): New global functions.
3138         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
3139         (function_arg_advance): Handle x86_64 passing conventions.
3140         (function_arg): Likewise.
3141         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
3142         (RETURN_IN_MEMORY): Move offline.
3143         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
3144         (FUNCTION_VALUE_REGNO_P): New macro.
3145         (FUNCTION_ARG_REGNO_P): Move offline.
3146         (struct ix86_args): Add maybe_vaarg.
3147         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
3148         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
3149
3150 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
3151
3152         * s390.md: Changed attributes for scheduling.
3153         * s390.c: (s390_adjust_cost, s390_adjust_priority)
3154         Changed scheduling
3155
3156 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3157
3158         Table-driven attributes.
3159         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
3160         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
3161         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
3162         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
3163         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
3164         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
3165         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
3166         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
3167         * tree.h (struct tree_decl): Change machine_attributes to
3168         attributes.
3169         * doc/c-tree.texi: Document that all attributes are now attached
3170         to decls and types.
3171         * c-common.c (add_attribute, attrtab, attrtab_idx,
3172         default_valid_lang_attribute, valid_lang_attribute): Remove.
3173         (attribute_tables, attributes_initialized,
3174         c_common_attribute_table, default_lang_attribute_table): New
3175         variables.
3176         (handle_packed_attribute, handle_nocommon_attribute,
3177         handle_common_attribute, handle_noreturn_attribute,
3178         handle_unused_attribute, handle_const_attribute,
3179         handle_transparent_union_attribute, handle_constructor_attribute,
3180         handle_destructor_attribute, handle_mode_attribute,
3181         handle_section_attribute, handle_aligned_attribute,
3182         handle_weak_attribute, handle_alias_attribute,
3183         handle_no_instrument_function_attribute,
3184         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
3185         handle_no_limit_stack_attribute, handle_pure_attribute): New
3186         functions.
3187         (init_attributes, decl_attributes): Rewrite to implement
3188         table-driven attributes.
3189         * c-common.h (enum attribute_flags): Move to tree.h.
3190         * c-format.c (decl_handle_format_attribute,
3191         decl_handle_format_arg_attribute): Rename to
3192         handle_format_attribute and handle_format_arg_attribute.  Update
3193         for table-driven attributes.
3194         * c-common.h (decl_handle_format_attribute,
3195         decl_handle_format_arg_attribute): Remove prototypes.
3196         (handle_format_attribute, handle_format_arg_attribute): Add
3197         prototypes.
3198         * c-decl.c (grokdeclarator): Handle attributes nested inside
3199         declarators.
3200         * c-parse.in (setattrs, maybe_setattrs): Remove.
3201         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
3202         Update to handle nested attributes properly.
3203         (maybe_resetattrs, after_type_declarator,
3204         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
3205         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
3206         properly.
3207         (make_pointer_declarator): Update to handle nested attributes
3208         properly.
3209         * doc/extend.texi: Update documentation of limits of attributes
3210         syntax.  Warn about problems with attribute semantics in C++.
3211         * target.h (struct target): Remove valid_decl_attribute and
3212         valid_type_attribute.  Add attribute_table and
3213         function_attribute_inlinable_p.
3214         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
3215         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
3216         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
3217         Add.
3218         (TARGET_INITIALIZER): Update.
3219         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
3220         definition.
3221         (function_attribute_inlinable_p): New function.  Check for the
3222         presence of any machine attributes before using
3223         targetm.function_attribute_inlinable_p.
3224         (function_cannot_inline_p): Update.
3225         * Makefile.in (integrate.o): Update dependencies.
3226         * doc/tm.texi: Update documentation of target attributes and
3227         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
3228         * tree.c (default_valid_attribute_p, valid_machine_attribute):
3229         Remove.
3230         (default_target_attribute_table,
3231         default_function_attribute_inlinable_p): New.
3232         (lookup_attribute): Update comment to clarify handling of multiple
3233         attributes with the same name.
3234         (merge_attributes, attribute_list_contained): Allow multiple
3235         attributes with the same name but different arguments to appear in
3236         the same attribute list.
3237         * tree.h (default_valid_attribute_p): Remove prototype.
3238         (struct attribute_spec): New.
3239         (default_target_attribute_table): Declare.
3240         (enum attribute_flags): Move from c-common.h.  Add
3241         ATTR_FLAG_TYPE_IN_PLACE.
3242         (default_function_attribute_inlinable_p): Declare.
3243         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
3244         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3245         (TARGET_ATTRIBUTE_TABLE): Define.
3246         (vms_attribute_table): New.
3247         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
3248         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3249         (TARGET_ATTRIBUTE_TABLE): Define.
3250         (arc_attribute_table, arc_handle_interrupt_attribute): New.
3251         * config/arm/arm.c (arm_valid_type_attribute_p,
3252         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
3253         Remove.
3254         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
3255         define.
3256         (TARGET_ATTRIBUTE_TABLE): Define.
3257         (arm_attribute_table, arm_handle_fndecl_attribute,
3258         arm_handle_isr_attribute): New.
3259         * config/avr/avr.c (avr_valid_type_attribute,
3260         avr_valid_decl_attribute): Remove.
3261         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
3262         define.
3263         (TARGET_ATTRIBUTE_TABLE): Define.
3264         (avr_attribute_table, avr_handle_progmem_attribute,
3265         avr_handle_fndecl_attribute): New.
3266         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
3267         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3268         (TARGET_ATTRIBUTE_TABLE): Define.
3269         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
3270         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
3271         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3272         (TARGET_ATTRIBUTE_TABLE): Define.
3273         (h8300_attribute_table, h8300_handle_fndecl_attribute,
3274         h8300_handle_eightbit_data_attribute,
3275         h8300_handle_tiny_data_attribute): New.
3276         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
3277         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
3278         Remove prototypes.
3279         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
3280         declarations.
3281         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
3282         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
3283         define.
3284         (TARGET_ATTRIBUTE_TABLE): Define.
3285         (ix86_attribute_table, ix86_handle_cdecl_attribute,
3286         ix86_handle_regparm_attribute): New.
3287         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
3288         i386_pe_valid_type_attribute_p): Remove.
3289         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
3290         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
3291         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3292         (TARGET_ATTRIBUTE_TABLE): Define.
3293         (ia64_attribute_table): New.
3294         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
3295         interrupt_ident2, model_ident1, model_ident2): Remove.
3296         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3297         (TARGET_ATTRIBUTE_TABLE): Define.
3298         (init_idents): Update.
3299         (m32r_attribute_table, m32r_handle_model_attribute): New.
3300         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
3301         Remove.
3302         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3303         (TARGET_ATTRIBUTE_TABLE): Define.
3304         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
3305         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
3306         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3307         (TARGET_ATTRIBUTE_TABLE): Define.
3308         (mcore_attribute_table, mcore_handle_naked_attribute): New.
3309         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
3310         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3311         (TARGET_ATTRIBUTE_TABLE): Define.
3312         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
3313         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
3314         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
3315         (TARGET_ATTRIBUTE_TABLE): Define.
3316         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
3317         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
3318         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3319         (TARGET_ATTRIBUTE_TABLE): Define.
3320         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
3321         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3322         New.
3323         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
3324         Remove.
3325         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
3326         (TARGET_ATTRIBUTE_TABLE): Define.
3327         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
3328         New.
3329         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
3330         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
3331         (TARGET_ATTRIBUTE_TABLE): Define.
3332         (v850_attribute_table, v850_handle_interrupt_attribute,
3333         v850_handle_data_area_attribute): New.
3334         * config/v850/v850-c.c (mark_current_function_as_interrupt):
3335         Return void.  Call decl_attributes instead of
3336         valid_machine_attribute.
3337
3338 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
3339
3340         * sh-protos.h (sh_pr_n_sets): Declare.
3341         * sh.c (calc_live_regs): If the initial value for PR has been copied,
3342         look at the copy to determine if PR needs to be saved.
3343         sh_pr_n_sets: New function.
3344         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
3345         (ALLOCATE_INITIAL_VALUE): Define.
3346
3347         * sh.c (initial_elimination_offset):
3348         Fix RETURN_ADDRESS_POINTER_REGNUM case.
3349
3350 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
3351
3352         * integrate.c (allocate_initial_values): New function.
3353         * integrate.h (allocate_initial_values): Declare.
3354         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
3355         here...
3356         * reload1.c (reload): And initialization of reg_equiv_memory_loc
3357         from here...
3358         * toplev.c (rest_of_compilation): To here.
3359         Call allocate_initial_values.
3360         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
3361
3362 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3363
3364         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
3365
3366 2001-09-20  DJ Delorie  <dj@redhat.com>
3367
3368         * c-typeck.c (really_start_incremental_init): Discriminate
3369         between zero-length arrays and flexible arrays.
3370         (push_init_level): Detect zero-length arrays and handle them
3371         like fixed-sized arrays.
3372         * expr.c (store_constructor): Handle zero-length arrays and
3373         flexible arrays correctly.
3374         * doc/extend.texi: Update zero-length array notes.
3375
3376 2001-09-20  Jim Wilson  <wilson@redhat.com>
3377
3378         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
3379         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
3380         for issue port conflicts.
3381         (cycle_end_fill_slots): TYPE_L instructions take two slots.
3382
3383 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
3384
3385         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
3386         on ia64.
3387
3388 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3389
3390         * fold-const.c (hashtab.h): Include.
3391         (int_const_binop): Remove FORSIZE arg and compute from type; all
3392         callers changed.
3393         Call size_int_type_wide for all single-word constants.
3394         (size_htab_hash, size_htab_eq): New functions.
3395         (size_int_type_wide): Rework to use hash table.
3396         * ggc-common.c (hashtab.h): Include.
3397         (struct d_htab_root): New struct.
3398         (d_htab_roots): New variable.
3399         (ggc_add_deletable_htab, ggc_htab_delete): New functions
3400         (ggc_mark_roots): Handle deletable htabs.
3401         * ggc-page.c (ggc_marked_p): New function.
3402         * ggc-simple.c (ggc_marked_p): Likewise.
3403         * ggc.h: Reformatting throughout.
3404         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
3405         * tree.c (init_obstacks): Make type_hash_table a deletable root.
3406         (type_hash_add): Allocate struct type_hash from GC memory.
3407         (mark_hash_entry, mark_type_hash): Deleted.
3408         (type_hash_marked_p, type_hash_mark): New functions.
3409         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
3410
3411 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
3412
3413         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
3414         than SImode.
3415
3416 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3417
3418         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
3419         array-too-large test for signed sizetype.
3420
3421 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
3422
3423         * i386.md (indirect_jump): Allow Pmode operand.
3424         (tablejump): LIkewise; perform expansion to 64bit mode.
3425         * i386.c (symbolic_operand): Allow 64bit PIC references.
3426         (pic_symbolic_operand): Likewise.
3427         (ix86_find_base_term): Strip the 64bit PIC references.
3428         (legitimate_pic_address_disp_p): Handle 64bit PIC.
3429         (legitimize_pic_address): Likewise.
3430         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
3431         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
3432
3433 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
3434
3435         * stringpool.c (get_identifier_with_length): New function.
3436         * tree.h (get_identifier_with_length): New prototype.
3437
3438 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
3439             David Edelsohn  <edelsohn@gnu.org>
3440
3441         Revert:
3442         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
3443         already sign-extended.
3444
3445         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
3446         * config/rs6000/rs6000.c (logical_operand): Always compare op as
3447         HOST_WIDE_INT.
3448         (rs6000_emit_set_long_const): Avoid unnecessary shift.
3449         (output_profile_hook): Declare label_name const.
3450         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
3451         to match constraints.
3452
3453 2001-09-19  Stan Shebs  <shebs@apple.com>
3454
3455         * alias.c: Fix typos in comments.
3456         * sched-rgn.c (init_ready_list): Ditto.
3457         * unwind-dw2.c (uw_frame_state_for): Ditto.
3458         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
3459         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
3460         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
3461
3462 2001-09-19  Richard Henderson  <rth@redhat.com>
3463
3464         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
3465         to the exit block.
3466         * Makefile.in (cfg.o): Depend on TM_P_H.
3467
3468 2001-09-19  Richard Henderson  <rth@redhat.com>
3469
3470         * config/alpha/alpha.c (local_symbol_p): Split out from ...
3471         (local_symbolic_operand): ... here.
3472         (small_symbolic_operand): Check mode.
3473         (global_symbolic_operand): New.
3474         (input_operand): Reject symbolics if explicit relocs.
3475         (call_operand): Tidy.
3476         (alpha_legitimize_address): Use movdi_er_high_g.
3477         (alpha_expand_mov): Likewise.
3478         * config/alpha/alpha-protos.h: Update.
3479         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3480         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
3481         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
3482         (UNSPECV_LDGP2): Remove.
3483         (all call patterns): Use 's' not 'i' for symbolic constraint.
3484         (call_osf call_value_osf): Use call_operand.
3485         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
3486         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
3487         (prologue_ldgp_1_er): Remove.
3488         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
3489         (builtin_setjmp_receiver_er patterns): Use them.
3490         (exception_receiver_er): Likewise.
3491
3492 2001-09-19  Richard Henderson  <rth@redhat.com>
3493
3494         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
3495
3496         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
3497         and NON_LOCAL_GOTO notes.
3498         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
3499         copy over CALL_INSN_FUNCTION_USAGE.
3500
3501 2001-09-18  Catherine Moore  <clm@redhat.com>
3502
3503         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
3504         Define as 0.
3505
3506 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
3507
3508         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
3509         new-style tm_file specification.  Specify correct tm_p_file,
3510         md_file, and out_file for s390x.
3511
3512         * config/s390/linux.h, linux64.h:  Don't include other target
3513         macro header files.  Now handled via tm_file.
3514
3515         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
3516         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
3517         are defined before use.
3518
3519 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
3520
3521         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
3522         code generation only for Gnu assembler.
3523
3524 2001-09-18  Catherine Moore  <clm@redhat.com>
3525
3526         * config/stormy16 (LIB_SPEC): Remove -lnosys.
3527
3528 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
3529
3530         * config/mips/mips.c (mips_frame_set): New.
3531         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
3532         a parallel frame-related expression with a set for each register.
3533
3534 2001-09-18  Philip Blundell  <philb@gnu.org>
3535
3536         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
3537         header files.
3538
3539 2001-09-17  Dale Johannesen  <dalej@apple.com>
3540
3541         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
3542         * config/rs6000/aix.h (FIXED_R2): Define.
3543         * config/rs6000/darwin.h (FIXED_R2): Define.
3544         * config/rs6000/sysv4.h (FIXED_R2): Define.
3545
3546 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
3547
3548         * except.c (dw2_build_landing_pads): New local
3549         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
3550         barrier after clobbers.  Fixes c++/4012.
3551
3552 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3553
3554         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
3555
3556 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3557
3558         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
3559         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
3560
3561 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3562
3563         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
3564         alloca/strcpy.
3565
3566 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3567
3568         * cpphash.h (_cpp_lex_direct): New.
3569         * cpplex.c (_cpp_lex_token): Update.
3570         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
3571         and increment that pointer.
3572         * cppmacro.c (alloc_expansion_token): New.
3573         (lex_expansion_token): Lex macro expansion directly into
3574         macro storage.
3575
3576 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
3577
3578         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
3579
3580 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
3581
3582         * basic-block.h (free_bb_for_insn): Declare.
3583         * bb-reorder.c (label_for_bb): Use block_label.
3584         (emit_jump_to_block_after): Remove.
3585         (insert_intra_1): Do not update block_for_insn.
3586         (insert_inter_bb_scope_notes): Likewise; update bb->end
3587         * cfg.c (free_bb_for_insn): New.
3588         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
3589         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
3590         (commit_one_edge_insertion): Likewise.
3591         (commit_one_edge_insertion): Do not update BB boundary.
3592         (commit_edge_insertions): Do not call compute_bb_for_insn.
3593         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
3594         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
3595         (merge_blocks_move_successor_nojumps): Likewise.
3596         (try_crossjump_to_edge): Do not update block_for_insn.
3597         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
3598         * df.c (df_pattern_emit_later): Do not update BB boundary.
3599         (df_jump_pattern_emit_after): Likewise.
3600         (df_insn_move_before): Use emit_insn_before.
3601         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
3602          properly.
3603         (add_insn_after, add_insn_before, emit_insns_after): Update BB
3604         boundaries and basic_block_for_insn.
3605         (reorder_insns_nobb): Rename from reorder_insns.
3606         (reorder_insns): New.
3607         (emit_block_insn_before, emit_block_insn_after): Kill.
3608         * flow.c (check_function_return_warnings): Do not call
3609         compute_bb_for_insn; Do not free basic_block_for_insn.
3610         (attempt_auto_inc): Do not update basic_block_for_insn.
3611         * function.c (emit_return_into_block): Likewise;
3612         do not update BB boundaries.
3613         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
3614         (insert_insn_end_bb): Use emit_insn_before; Likewise.
3615         (pre_insert_copy_insn): Likewise.
3616         (update_ld_motion_notes): Likewise.
3617         (insert_insn_start_bb): Likewise.
3618         (replace_store_insn): Likewise.
3619         * ifcvt.c (noce_process_if_block): Likewise.
3620         (if_convert): Do not call compute_bb_for_insn.
3621         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
3622         Use emit_insn_before and emit_insn_after.
3623         * recog.c (split_all_insns): Do not update BB boundaries;
3624         Do not call compute_bb_for_insn.
3625         (peephole2_optimize): Do not update BB boundaries.
3626         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
3627         emit_insn_before.
3628         (emit_swap_insn): Likewise.
3629         (convert_regs_1): Likewise.
3630         * reload1.c (reload): Call compute_bb_for_insn.
3631         * rtl.h (reorder_insns_nobb): Declare.
3632         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
3633         * toplev.c (rest_of_compilation): Call free_bb_for_insn
3634         at places CFG is invalidated; do not call compute_bb_for_insn.
3635
3636         * cfg.c (expunge_block): Invalidate BB structure.
3637
3638         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
3639         array.
3640
3641         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
3642
3643 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3644
3645         * cpphash.h (_cpp_lex_token): Update prototype.
3646         * cpplex.c (_cpp_lex_token): New prototype.
3647         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
3648         lex_macro_node, read_flag, do_pragma_poison): Update.
3649         * cppmacro.c (cpp_get_token, parse_params,
3650         lex_expansion_token): Update.
3651
3652 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3653
3654         * cppmain.c (scan_translation_unit): Don't worry about
3655         putting a space after hashes.
3656         * cpplib.c (directive_diagnostics): New.
3657         (_cpp_handle_directive): Update to use directive_diagnostics.
3658         (run_directive): Don't toggle prevent_expansion.
3659         (do_line): Backup in case of the line extension.
3660         * cpplib.h (cpp_lexer_pos): Remove.
3661         * cppmacro.c (_cpp_create_definition): Precede a leading #
3662         with whitespace.
3663
3664 2001-09-15  Richard Henderson  <rth@redhat.com>
3665
3666         * c-typeck.c (comptypes): Handle zero-length arrays properly.
3667
3668 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3669
3670         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
3671
3672 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3673
3674         PR preprocessor/3571
3675         * tradcpp.c (handle_directive): Skip non-vertical space.
3676
3677 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3678
3679         * cppmain.c (setup_callbacks): Set line callback only
3680         if outputting preprocessed source.
3681
3682 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3683
3684         * collect2.c (main): Const-ification.
3685         * gcc.c (translate_options, process_command): Use xstrdup in
3686         lieu of xmalloc/strcpy.
3687         (main): Use concat in lieu of xmalloc/strcpy/strcat.
3688
3689 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3690
3691         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
3692         example.
3693
3694 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3695
3696         * scan-decls.c (scan_decls): Fix typo.
3697
3698 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
3699
3700         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
3701         Split mlstring_pos into mls_line and mls_col.
3702         * cppinit.c (cpp_create_reader): Initialize line to 1.
3703         (cpp_destroy): Free tokenruns.
3704         (push_include): Don't update lexer_pos.
3705         * cpplex.c (unterminated, parse_string): Update.
3706         (lex_token): Don't update lexer_pos, update.
3707         * cpplib.c (if_stack): Save line instead of line + col.
3708         (start_directive, _cpp_do__Pragma, do_else, do_elif,
3709         push_conditional, _cpp_pop_buffer): Update.
3710         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
3711         (_cpp_create_definition): Update.
3712
3713 2001-09-15  Eric Christopher  <echristo@redhat.com>
3714
3715         * config/mips/abi64.h: Add support for MEABI.
3716
3717 2001-09-15  Eric Christopher  <echristo@redhat.com>
3718
3719         * config/mips/mips.md: Add unspec #2.
3720         (reload_indi): Use.
3721         (reload_outdi): Ditto.
3722         (reload_outsi): Ditto.
3723         (HILO_delay): New.
3724
3725 2001-09-15  Eric Christopher  <echristo@redhat.com>
3726             Jason Eckhardt  <jle@redhat.com>
3727
3728         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
3729         * config/mips/isa32-linux.h: New file.
3730         * config/mips/isa3264.h: Ditto.
3731         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
3732         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
3733         (output_block_mode): Support MEABI.
3734         (function_arg): Ditto. Fix floating point arg passing.
3735         (mips_va_start): Ditto.
3736         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
3737         processors.
3738         (mips_asm_file_start): Add new section to pass abi to gdb.
3739         (function_arg_pass_by_reference): Support MEABI.
3740         (mips_parse_cpu): Support mips32 and mips64 processors.
3741         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
3742         TARGET_MIPS5KC.  Support isa32 and isa64.
3743         (processor_type): Add r4kc, r5kc, r20kc.
3744         (GENERATE_MULT3_SI): New.
3745         (GENERATE_MULT3_DI): Ditto.
3746         (GENERATE_MULT3): Remove.
3747         (ISA_HAS_64BIT_REGS): Add isa == 64.
3748         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
3749         (ISA_HAS_MADD_MSUB): New.
3750         (ISA_HAS_CLZ_CLO): Ditto.
3751         (ISA_HAS_DCLZ_DCLO): Ditto.
3752         (ABI_GAS_ASM_SPEC): New.
3753         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
3754         (ASM_SPEC): Ditto.
3755         (LINK_SPEC): Ditto.
3756         (SUBTARGET_CC1_SPEC): Ditto.
3757         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
3758         (PAD_VARARGS_DOWN): Support MEABI.
3759         (HARD_REGNO_NREGS): Move to mips.c.
3760         (ASM_OUTPUT_IDENT): Add #undef.
3761         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
3762         (mulsi3): Use GENERATE_MULT3_SI.
3763         (mulsi3_mult3): Ditto.  Support mips32, mips64.
3764         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
3765         (mul_sub_si): New pattern.
3766         (unnamed splitters): New.
3767         (muldi3): Use GENERATE_MULT3_DI.
3768         (muldi3_internal2): Ditto.
3769         (movdicc): Support mips32.
3770         * config/mips/t-isa3264: New file.
3771
3772 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
3773
3774         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
3775         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
3776         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
3777
3778         * reorg.c (fill_slots_from_thread): After call to
3779         steal_delay_list_from_target, update own_thread as new_thread may
3780         have branched.
3781
3782 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3783
3784         * cpperror.c (print_location): Take line and column, for
3785         default positioning use the previously lexed token.
3786         (_cpp_begin_message): Take line and column.
3787         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
3788         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
3789         * cpphash.h (_cpp_begin_message): Update prototype.
3790         * cppinit.c (push_include): Don't set output line.
3791         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
3792         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
3793         (do_pragma): Kludge for front ends.  Don't expand macros at all.
3794         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
3795         (struct cpp_token): Remove output_line.
3796         (struct cpp_callbacks): New member line_change.
3797         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
3798         cpp_get_token): Preserve BOL flag.
3799         (cpp_get_line): Remove.
3800         (_cpp_backup_tokens): Remove useless abort().
3801         * cppmain.c (cb_line_change): New.
3802         (scan_translation_unit): Don't worry about starting new lines here.
3803         * scan-decls.c (scan_decls): Update.
3804         * c-lex.c (c_lex, init_c_lex): Update.
3805         (cb_line_change, src_lineno): New.
3806
3807 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
3808
3809         * tree.c (append_random_chars): Generate the random
3810         characters in a reproducable fashion.
3811
3812 2001-09-14  Richard Henderson  <rth@redhat.com>
3813
3814         * config/i386/i386.c (internal_label_prefix): New.
3815         (internal_label_prefix_len): New.
3816         (override_options): Set them.
3817         (local_symbolic_operand): New.
3818         (legitimate_pic_address_disp_p): Use it.
3819         (legitimize_pic_address): Likewise.
3820
3821 2001-09-14  Marc Espie <espie@openbsd.org>
3822
3823         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
3824         correctly.
3825
3826 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3827
3828         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
3829         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
3830
3831 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
3832
3833         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
3834         invocation of SUBREG_REGNO_OFFSET.
3835
3836         * haifa-sched.c: Fix typo in FSF copyright statement.
3837         * sched-deps.c: Fix typo in FSF copyright statement.
3838         * sched-ebb.c: Fix typo in FSF copyright statement.
3839         * sched-rgn.c: Fix typo in FSF copyright statement.
3840         * sched-vis.c: Fix typo in FSF copyright statement.
3841
3842         * config.gcc: Move inclusion of arm elf specific header files
3843         from the files themselves into the tm_file variable.  Make
3844         sure that elfos.h is included before target specific elf
3845         headers.
3846         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
3847         already defined.
3848         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
3849         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
3850         ASM_OUTPUT_CASE_LABEL): Protect definition.
3851         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
3852         not already defined.
3853         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
3854         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
3855         Remove duplicate definition.
3856         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
3857         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
3858         (RDATA_SECTION_FUNCTION): Remove redundant definition.
3859         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
3860         Remove inclusion of arm/elf.h.
3861         * config/arm/unknown-elf.h: as for conix-elf.h.
3862         (STARTFILE_SPEC): Include crti.o and crtn.o.
3863         * config/arm/linux-elf.h: as for conix-elf.h.
3864         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
3865         * config/arm/strongarm-elf.h: Remove inclusion of
3866         unknown-elf.h.
3867         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
3868         * config/arm/unknown-elf-oabi.h: Remove inclusion of
3869         unknown-elf.h and elf.h.
3870         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
3871         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
3872         ASM_WEAKEN_LABEL): Remove redundant definition.
3873         * config/arm/elf.h: Test for inclusion of elfos.h
3874         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
3875         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
3876         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
3877         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
3878         redundant definition.
3879         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
3880         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
3881         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
3882         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
3883         Add rules to build crti.o and crtn.o
3884         * crti.asm: New file.
3885         * crtn.asm: New file.
3886
3887 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3888
3889         * c-parse.in (_yylex): Use _cpp_backup_tokens.
3890         * cpphash.h (struct tokenrun): Add prev.
3891         (struct lexer_state): Remove bol.
3892         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
3893         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
3894         : Remove.
3895         * cppinit.c (cpp_create_reader): Don't set bol.
3896         (cpp_destroy): Don't free lookaheads.
3897         * cpplex.c (lex_directive): Remove.
3898         (next_tokenrun): Update.
3899         (_cpp_lex_token): Clean up logic.
3900         (lex_token): Update to return a pointer to lexed token, since it
3901         can move to the start of the buffer.  Simpify newline handling.
3902         * cpplib.c (SEEN_EOL): Update.
3903         (skip_rest_of_line): Remove lookahead stuff.
3904         (end_directive): Line numbers are already incremented.  Revert
3905         to start of lexed token buffer if we can.
3906         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
3907         parse_answer): Use _cpp_backup_tokens.
3908         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
3909         instead.  Don't check for EOL.
3910         (do_include_common, do_line, do_pragma_system_header): Use
3911         skip_rest_of_line.
3912         * cpplib.h (BOL, _cpp_backup_tokens): New.
3913         * cppmacro.c (save_lookahead_token, take_lookahead_token,
3914         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
3915         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
3916         (builtin_macro): Don't use cpp_get_line.
3917         (cpp_get_line): Short term kludge.
3918         (parse_arg): Handle directives in arguments here.  Back up when
3919         appropriate.  Store EOF at end of argument list.
3920         (funlike_invocation_p): Use _cpp_backup_tokens.
3921         (push_arg_context): Account for EOF at end of list.
3922         (cpp_get_token): Remove lookahead stuff.  Update.
3923
3924 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3925
3926         * c-parse.in (yyerror): Const-ification and/or static-ization.
3927         * c-typeck.c (push_member_name): Likewise.
3928         * collect2.c (main): Likewise.
3929         * dbxout.c (dbxout_parms): Likewise.
3930         * diagnostic.c (format_with_decl): Likewise.
3931         * dwarf2out.c (output_ranges): Likewise.
3932         * dwarfout.c (fundamental_type_code): Likewise.
3933         * except.c (dw2_output_call_site_table): Likewise.
3934         * gcc.c (do_spec_1): Likewise.
3935         * genopinit.c (optabs): Likewise.
3936         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
3937         gen_declaration_1, handle_impent): Likewise.
3938         * protoize.c (default_include, in_system_include_dir, abspath):
3939         Likewise.
3940         * sched-vis.c (visualize_stall_cycles): Likewise.
3941         * sdbout.c (plain_type_1, sdbout_end_function,
3942         sdbout_end_epilogue): Likewise.
3943         * varasm.c (decode_reg_name): Likewise.
3944
3945         * 1750a.c (mod_regno_adjust): Likewise.
3946         * alpha.c (alpha_write_one_linkage,
3947         unicosmk_output_default_externs): Likewise.
3948         * arm.c (arm_condition_codes): Likewise.
3949         * arm.h (arm_condition_codes): Likewise.
3950         * avr.c (output_movsisf, encode_section_info): Likewise.
3951         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
3952         Likewise.
3953         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
3954         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
3955         * m88k.c (output_function_profiler): Likewise.
3956         * mips.c (mips_output_conditional_branch): Likewise.
3957         * ns32k.c (ns32k_out_reg_names): Likewise.
3958         * ns32k.h (ns32k_out_reg_names): Likewise.
3959         * pj.c (pj_output_rval): Likewise.
3960         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
3961         * sparc.c (sparc_flat_function_prologue,
3962         sparc_flat_function_epilogue): Likewise.
3963
3964 2001-09-13  Markus Werle <numerical.simulation@web.de>
3965             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3966
3967         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
3968         Aachen University of Technology".
3969
3970 2001-09-13  Andreas Schwab  <schwab@suse.de>
3971
3972         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
3973         C99.
3974
3975 2001-09-13  Richard Henderson  <rth@redhat.com>
3976
3977         * config/alpha/alpha.c (small_symbolic_operand): New.
3978         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
3979         (some_operand, input_operand): Don't handle HIGH.
3980         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
3981         (alpha_expand_mov): Likewise.
3982         (print_operand) [H]: Just print HIGH symbol.
3983         (print_operand_address): Handle small data.
3984         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
3985         (TARGET_SWITCHES): Add -msmall-data/large-data.
3986         (PIC_OFFSET_TABLE_REGNUM): New.
3987         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
3988         (PREDICATE_COES): Update.
3989         * config/alpha/alpha.md (adddi_er_high): New.
3990         (adddi_er_low): Handle small data.
3991         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
3992         prefer .sdata to .rodata.
3993         (SELECT_RTX_SECTION): Likewise.
3994
3995 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
3996
3997         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
3998         defining __size_t and leaving size_t undefined.
3999
4000 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
4001
4002         * basic-block.h (expunge_block): Declare.
4003         * cfg.c (expunge_block): Remove static declaration.
4004
4005 2001-09-12  Richard Henderson  <rth@redhat.com>
4006
4007         * integrate.c (copy_insn_list): Copy label name from
4008         NOTE_INSN_DELETED_LABEL.
4009
4010 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4011
4012         * c-common.c (c_tree_code_name): Const-ification.
4013         * c-decl.c (c_decode_option): Likewise.
4014         * c-typeck.c (warn_for_assignment): Likewise.
4015         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
4016         Likewise.
4017         * cppinit.c (output_deps): Likewise.
4018         * dependence.c (dependence_string, direction_string): Likewise.
4019         * dwarf2out.c (output_ranges): Likewise.
4020         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
4021         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
4022         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
4023         standard_startfile_prefix, standard_startfile_prefix_1,
4024         standard_startfile_prefix_2, tooldir_base_prefix,
4025         standard_bindir_prefix, find_a_file): Likewise.
4026         * genattrtab.c (make_length_attrs): Likewise.
4027         * gencheck.c (tree_codes): Likewise.
4028         * genemit.c (gen_split): Likewise.
4029         * genrecog.c (special_mode_pred_table): Likewise.
4030         * graph.c (graph_ext): Likewise.
4031         * protoize (default_include): Likewise.
4032         * reload.c (reload_when_needed_name): Likewise.
4033         * sched-vis.c (visualize_stall_cycles): Likewise.
4034         * tlink.c (recompile_files): Likewise.
4035         * toplev.c (decode_g_option): Likewise.
4036         * tradcpp.c (output_deps): Likewise.
4037         * varasm.c (decode_reg_name): Likewise.
4038
4039         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
4040         Const-ification.
4041         * arm.md: Likewise.
4042         * avr.c (avr_regnames, encode_section_info): Likewise.
4043         * c4x.c (float_reg_names): Likewise.
4044         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
4045         * elfos.h (const_section): Likewise.
4046         * i386.c (ix86_comp_type_attributes): Likewise.
4047         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
4048         * ia64/aix.h (UNIQUE_SECTION): Likewise.
4049         * ia64.c (type_names): Likewise.
4050         * m68hc11.c (reg_class_names): Likewise.
4051         * m88k.c (m_options): Likewise.
4052         * mips.c (mips_output_conditional_branch, mips_unique_section):
4053         Likewise.
4054         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4055         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
4056         ultra_code_names): Likewise.
4057         * sparc.h (OVERRIDE_OPTIONS): Likewise.
4058
4059 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
4060
4061         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
4062         Use --fatal-warnings option for gas.
4063         * configure: Rebuilt.
4064
4065 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4066
4067         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
4068
4069 2001-09-11  Jim Wilson  <wilson@redhat.com>
4070
4071         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
4072
4073 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4074
4075         * builtins.c (c_strlen): Treat an offset too large for a
4076         HOST_WIDE_INT as out of range.
4077
4078 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
4079
4080         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
4081         (EDGE_CRITICAL_P): New predicate.
4082         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
4083         handling.
4084         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
4085         (dump_edge_info): Remove "crit".
4086         * cfganal.c (mark_critical_edges): Kill.
4087         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
4088         * cfgcleanup.c (cleanup_cfg): Likewise.
4089         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
4090         (find_spanning_tree): Likewise.
4091         * reg-stack.c (convert_regs_1): Likewise.
4092         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
4093
4094         * basic-block.h (create_basic_block_structure): New.
4095         (create_basic_block): Update prototype.
4096         (force_nonfallthru): New.
4097         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
4098         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
4099         handle updating of block_for_insn, creating of empty BBs and BBs at
4100         the end of INSN chain.
4101         (create_basic_block): New function.
4102         (split_block): Use create_basic_block.
4103         (force_nonfallthru_and_redirect): Break out from ...; cleanup
4104         (redirect_edge_and_branch_force): ... here.
4105         (force_nonfallthru): New.
4106         (split_edge): Rewrite to use force_nonfallthru and create_block.
4107         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
4108         (find_basic_blocks): Free basic_block_for_insn.
4109         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
4110
4111         * cfg.c: Fix formating.
4112         * cfgcleanup.c: Fix formating.
4113         (merge_blocks, tail_recursion_label_p): Return bool.
4114         (merge_blocks_move_predecessor_nojumps,
4115          merge_blocks_move_successor_nojumps): Return void.
4116
4117 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
4118
4119         * configure.in: Check whether assembler supports section merging.
4120         * config.in: Rebuilt.
4121         * configure: Rebuilt.
4122         * varasm.c (variable_section, output_constant_pool): Pass alignment
4123         to SELECT_SECTION and SELECT_RTX_SECTION.
4124         (mergeable_string_section): New.
4125         (mergeable_constant_section): New.
4126         (default_elf_asm_named_section): Output SECTION_MERGE and
4127         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
4128         * output.h (mergeable_string_section): New.
4129         (mergeable_constant_section): New.
4130         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
4131         * toplev.c (flag_merge_constants): New.
4132         (f_options): Add -fmerge-constants and -fmerge-all-constants
4133         options.
4134         (toplev_main): Default to -fno-merge-constants if not optimizing.
4135         * flags.h (flag_merge_constants): Add extern.
4136         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
4137         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
4138         argument.
4139         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
4140         Define if assembler has working .subsection -1 support.
4141         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
4142         Put constant into special SHF_MERGE sections if the linker should
4143         attempt to merge duplicates.
4144         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
4145         macro argument.
4146         Put constant into special SHF_MERGE sections if the linker should
4147         attempt to merge duplicates.
4148         * config/alpha/elf.h: Likewise.
4149         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
4150         has working .subsection -1 support.
4151         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
4152         SELECT_SECTION.
4153         * config/svr3.h: Likewise.
4154         * config/darwin.h: Likewise.
4155         * config/arm/aof.h: Likewise.
4156         * config/arm/linux-elf.h: Likewise.
4157         * config/avr/avr.h: Likewise.
4158         * config/c4x/c4x.h: Likewise.
4159         * config/d30v/d30v.h: Likewise.
4160         * config/i386/dgux.h: Likewise.
4161         * config/i386/osfrose.h: Likewise.
4162         * config/i386/sco5.h: Likewise.
4163         * config/i386/svr3gas.h: Likewise.
4164         * config/ia64/aix.h: Likewise.
4165         * config/m32r/m32r.h: Likewise.
4166         * config/m68k/m68k.h: Likewise.
4167         * config/m88k/dgux.h: Likewise.
4168         * config/m88k/m88k.h: Likewise.
4169         * config/mcore/mcore-pe.h: Likewise.
4170         * config/mips/mips.h: Likewise.
4171         * config/pa/pa.h: Likewise.
4172         * config/pa/pa-linux.h: Likewise.
4173         * config/romp/romp.h: Likewise.
4174         * config/rs6000/sysv4.h: Likewise.
4175         * config/rs6000/xcoff.h: Likewise.
4176         * config/s390/linux.h: Likewise.
4177         * config/sparc/sparc.h: Likewise.
4178         * config/sparc/sysv4.h: Likewise.
4179         * config/stormy16/stormy16.h: Likewise.
4180         * config/v850/v850.h: Likewise.
4181         * config/vax/vms.h: Likewise.
4182         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
4183         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
4184         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
4185         default_elf_asm_named_section for SHF_MERGE sections.
4186
4187 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
4188
4189         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
4190         is OK.
4191
4192 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
4193
4194         * c-common.c (split_specs_attrs): Allow for empty attributes with
4195         empty TREE_PURPOSE.  Fixes PR c/4294.
4196
4197 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
4198
4199         * basic-block.h (cached_make_edge, make_single_succ): New.
4200         (make_edge): Remove first parameter.
4201         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
4202         * cfg.c (cached_make_edge): Rename from make_edge; return newly
4203         created edge; use obstack allocation.
4204         (make_edge, make_single_succ_edge): New.
4205         (first_removed_edge): New static variable.
4206         (init_flow): Initialize first_removed_edge and n_edges.
4207         (clear_edges): Use remove_edge.
4208         (flow_delete_block): Likewise.
4209         (remove_edge): Add removed edges to the removed edges list.
4210         (split_block, redirect_edge_and_branch_force, split_edge):
4211         Use make_edge.
4212         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
4213         (add_noreturn_fake_exit_edges): Likewise.
4214         (connect_infinite_loops_to_exit): Liekwise.
4215         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
4216         Use cached_make_edge.
4217         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
4218         * profile.c (branch_prob): Update make_edge call.
4219         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
4220
4221 2001-09-11  Richard Henderson  <rth@redhat.com>
4222
4223         * config/alpha/alpha.c: Tidy formatting.
4224         (local_symbolic_operand): Verify mode.
4225         (alpha_sa_mask): Ignore unicos for eh_return.
4226         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
4227         * config/alpha/alpha.md (umk divsi patterns): Remove.
4228         (extendsfdf2): Remove unicos check.
4229         (tablejump): Merge vms and unicos code; always use direct set
4230         plus label_ref use.
4231
4232 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4233
4234         * config.gcc (alpha*-*-unicosmk*): New target.
4235
4236         * config/alpha/alpha-protos.h (symbolic_operand,
4237         unicosmk_add_call_info_word, unicosmk_add_extern,
4238         unicosmk_defer_case_vector, unicosmk_unique_section,
4239         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
4240         unicosmk_asm_file_start, unicosmk_asm_file_end,
4241         unicosmk_output_common): Declare.
4242
4243         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
4244         direct_return, function_arg, alpha_va_start, alpha_va_arg,
4245         alpha_does_function_need_gp, alpha_end_function): Support Cray
4246         Unicos/Mk.
4247         (alpha_init_machine_status, alpha_mark_machine_status,
4248         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
4249         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
4250         unicosmk_asm_named_section, unicosmk_insert_attributes,
4251         unicosmk_section_type_flags, symbolic_operand,
4252         unicosmk_output_module_name, unicosmk_output_default_externs,
4253         unicosmk_output_dex, unicosmk_output_externs,
4254         unicosmk_output_addr_vec, unicosmk_ssib_name,
4255         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
4256         unicosmk_asm_file_end, unicosmk_output_common,
4257         unicosmk_section_type_flags, unicosmk_unique_section,
4258         unicosmk_add_call_info_word, unicosmk_text_section,
4259         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
4260         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
4261         unicosmk_dex_count, unicosmk_special_name): New.
4262         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
4263         TARGET_ABI_UNICOSMK.
4264         (get_aligned_mem, alpha_expand_unaligned_load,
4265         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
4266         alpha_expand_unaligned_store_words): Support big-endian mode.
4267         (print_operand): Likewise. New format specifier 't'. Use
4268         TARGET_AS_SLASH_BEFORE_SUFFIX.
4269         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
4270         (alpha_pv_save_size): Update with above change.
4271         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
4272         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
4273         Unicos/Mk.
4274
4275         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
4276         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
4277         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
4278         (EXTRA_CONSTRAINT): New constraint 'U'.
4279         (PREDICATE_CODES): Add symbolic_operand.
4280
4281         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
4282         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
4283         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
4284         (integer division and modulus patterns): Split in default and
4285         Unicos/Mk versions.
4286         (*divmodsi_internal, *divmoddi_internal): Disable for
4287         TARGET_ABI_UNICOSMK.
4288         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
4289         little-endian and big-endian versions.
4290         (ext, ins, msk): Likewise.
4291         (extv, extzv, insv): Support big-endian mode.
4292         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
4293         (call_umk, call_value_umk, *call_umk, tablejump_umk,
4294         *tablejump_umk_internal, *call_value_umk): New.
4295         (*movdi_nofix): Add pattern for loading an address into a register on
4296         TARGET_ABI_UNICOSMK.
4297         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
4298         (umk_mismatch_args, arg_home_umk): New.
4299         (various insns): Don't use mov, fmov, nop, fnop and unop.
4300         (realign): Support TARGET_ABI_UNICOSMK.
4301
4302         * config/alpha/unicosmk.h: New file.
4303         * config/alpha/t-unicosmk: New file.
4304
4305         * fixinc/inclhack.def (unicosmk_restrict): New.
4306         * fixinc/fixincl.x: Regenerate.
4307
4308         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
4309         (wchar_t): Check for and define __WCHAR_T__.
4310
4311 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
4312
4313         * combine.c (simplify_shift_const): Treat shifts by the mode
4314         size as undefined.
4315
4316 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
4317
4318         * cpphash.h (struct tokenrun): New.
4319         (struct cpp_context): New member bol.
4320         (struct cpp_reader): New members.
4321         (_cpp_init_tokenrun): New.
4322         * cppinit.c (cpp_create_reader): Set up the token runs.
4323         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
4324         (lex_token): New internalised version of _cpp_lex_token.  Don't
4325         handle directives or the multiple include opimisation here any
4326         more.  Simply lex a token.
4327         * cpplib.c (run_directive): Clear bol.
4328         (_cpp_pop_buffer): Set bol.
4329         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
4330         arguments.
4331
4332 2001-09-11  Michael Meissner  <meissner@redhat.com>
4333
4334         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
4335         give an error if the user uses -mfp32.
4336         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
4337         default options.
4338         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
4339         floating point register size.
4340         (EXTRA_SPECS): Add CPP_FPR_SPEC.
4341
4342         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
4343         HOST_WIDE_INT_PRINT_DEC to properly print the result of
4344         int_size_in_bytes.
4345         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
4346         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
4347
4348 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
4349
4350         * dbxout.c (dbxout_parms): Fix typo in comment.
4351         * unroll.c (loop_find_equiv_value): Ditto.
4352         * toplev.c (rest_of_compilation): Ditto.
4353         * loop.c (scan_loop): Ditto.
4354         * dwarf2out.c (struct dw_fde_struct): Ditto.
4355
4356 2001-09-10  Zack Weinberg  <zackw@panix.com>
4357
4358         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
4359         copying identifier when we're just going to throw it away.
4360         (parse_identifier_slow): New routine to handle abnormal cases.
4361         (_cpp_lex_token): Update call site.
4362
4363         * hashtable.c (ht_lookup): Don't assume that the string we've
4364         been given is NUL-terminated.
4365         * system.h: #define __builtin_expect(a, b) to (a) if not
4366         GCC >=3.0.
4367
4368 2001-09-10  Michael Meissner  <meissner@redhat.com>
4369
4370         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
4371         binutils, gdb.
4372
4373 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
4374
4375         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
4376
4377 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4378
4379         * builtins.c (c_getstr): Correct thinko in last change and further
4380         cleanup.
4381
4382 2001-09-10  Tim Freeman <tim@fungibole.com>
4383
4384         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
4385         into varray's and register them as roots with the garbage
4386         collector so they are not collected too soon.
4387
4388 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
4389
4390         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
4391         New.
4392         * basic-block.h (flow_obstack, label_value_list,
4393         tail_recursion_label_list): Declare
4394         (tidy_fallthru_edges): Declare.
4395         (expunge_block, last_loop_beg_note): Delete.
4396         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
4397         * cfg.c: New file
4398         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
4399         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
4400         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
4401         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
4402         expunge_block, flow_delete_block, compute_bb_for_insn,
4403         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
4404         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
4405         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
4406         try_redirect_by_replacing_jump, last_loop_beg_note,
4407         redirect_edge_and_branch, redirect_edge_and_branch_force,
4408         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
4409         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
4410         commit_edge_insertions, dump_flow_info, debug_flow_info,
4411         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
4412         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
4413         Move here from flow.c
4414         * cfganal.c: New file.
4415         (forwarder_block_p, can_fallthru, mark_critical_edges,
4416          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
4417          find_unreachable_blocks, create_edge_list, free_edge_list,
4418          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
4419          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
4420          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
4421          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
4422          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
4423          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
4424         Move here from flow.c
4425         * cfgbuild.c: New file
4426         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
4427          make_edges, find_basic_blocks_1, find_basic_blocks,
4428          find_sub_basic_blocks): Move here from flow.c
4429         * cfgcleanup.c: New file.
4430         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
4431          merge_blocks_move_predecessor_nojumps,
4432          merge_blocks_move_successor_nojumps, merge_blocks,
4433          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
4434          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
4435         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
4436         if succeeded.
4437         * cfgloop.c: New file
4438         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
4439          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
4440          flow_loop_exit_edges_find, flow_loop_nodes_find,
4441          flow_loop_pre_header_scan, flow_loop_pre_header_find,
4442          flow_loop_tree_node_add, flow_loops_tree_build,
4443          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
4444          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
4445         Move here from flow.c
4446         * flow.c: Remove everything moved elsewhere
4447         * output.h (cleanup_cfg): Return bool.
4448
4449         * bb-reorder.c (reorder_block_def): Remove 'index'.
4450         (insert_intra_1): Add argument BB, set block for new note.
4451         (make_reorder_chain): Do not depdent on BB indexes.
4452         (make_reorder_chain_1): Do not use BB indexes.
4453         (label_for_bb): Likewise; set BB for new insn.
4454         (emit_jump_to_block_after): Likewise.
4455         (fixup_reoder_chain): Sanity check that all basic blocks
4456         are chained; verify newly created insn chain; remove
4457         undocnitional jump simplifying; Do not use BB indexes;
4458         properly initialize count and frequency information;
4459         dump reordered sequence.
4460         (insert_intra_bb_scope_notes): update call of insert_intra_1.
4461         (insert_inter_bb_scope_notes): Set block for new insn.
4462         (reorder_basic_blocks): Dump flow info before reoredering.
4463
4464 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4465
4466         * alias.c (clear_reg_alias_info): Use K&R format definition.
4467         Avoid unsigned warning.
4468         * builtins.c: Use "unsigned int", not "unsigned".
4469         (target_char_cast): Use host_integerp and tree_low_cst.
4470         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
4471         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
4472         (c_getstr): Likewise.
4473         (std_expand_builtin_va_arg): Use int_size_in_bytes.
4474         (builtin_memcpy_read_str): Avoid unsigned warning.
4475         (expand_builtin_memcpy): Alignments are unsigned.
4476         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
4477         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
4478         * predict.c (expensive_function_p): LIMIT now unsigned.
4479         * resource.c (mark_target_live_regs): Make some vars unsigned.
4480         * sdbout.c: Use "unsigned int", not "unsigned".
4481         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
4482         (sdbout_source_line): Likewise.
4483         (sdbout_record_type_name): Remove "const" for NAME declaration.
4484         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
4485
4486 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
4487
4488         * calls.c (store_one_arg): Expand comment.
4489
4490 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4491
4492         * calls.c (store_one_arg): Make sure that the entire argument is
4493         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
4494
4495 2001-09-09  Richard Henderson  <rth@redhat.com>
4496
4497         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
4498
4499 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
4500
4501         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
4502
4503 2001-09-09  Richard Henderson  <rth@redhat.com>
4504
4505         * config/alpha/alpha.c (alpha_next_sequence_number): New.
4506         (alpha_this_literal_sequence_number): New.
4507         (alpha_this_gpdisp_sequence_number): New.
4508         (some_operand, input_operand): Add HIGH.
4509         (local_symbolic_operand): New.
4510         (alpha_encode_section_info): New.
4511         (alpha_legitimate_address_p): Allow LO_SUM.
4512         (alpha_legitimize_address): Generate HIGH+LO_SUM.
4513         (alpha_expand_mov): Likewise.
4514         (secondary_reload_class): Check memory_operand not general_operand
4515         for FP_REGS test.
4516         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
4517         (alpha_expand_unaligned_store): Likewise.
4518         (alpha_expand_unaligned_load_words): Likewise.
4519         (alpha_expand_unaligned_store_words): Likewise.
4520         (alpha_expand_block_clear): Likewise.
4521         (print_operand): Handle %#, %*, %H.
4522         (print_operand_address): Handle LO_SUM.
4523         (find_lo_sum): New.
4524         (alpha_does_function_need_gp): Use it.
4525         (alpha_expand_block_move): Fix signed compare warnings.
4526         (alpha_sa_mask, alpha_align_insns): Likewise.
4527         * config/alpha/alpha-protos.h: Update.
4528         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
4529         (MASK_EXPLICIT_RELOCS): New.
4530         (TARGET_SWITCHES): Add -mexplicit-relocs.
4531         (EXTRA_CONSTRAINT): Add 'T'.
4532         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
4533         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
4534         (ENCODE_SECTION_INFO): Out line.
4535         (REDO_SECTION_INFO_P): New.
4536         (STRIP_NAME_ENCODING): New.
4537         (ASM_OUTPUT_LABELREF): New.
4538         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
4539         (PREDICATE_CODES): Update.
4540         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
4541         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
4542         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
4543         builtin_setjmp_receiver_er, exception_receiver_1_er,
4544         call_value_osf_1_er): New patterns.
4545         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
4546         (movqi, movhi, movsi): Add explicit $31 base register to lda.
4547         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
4548         (FINAL_PRESCAN_INSN): New.
4549
4550 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
4551
4552         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
4553
4554 2001-09-08  Andreas Jaeger  <aj@suse.de>
4555
4556         * i386.h (TARGET_SWITCHES): Fix description.
4557
4558 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
4559
4560         * rs6000.c (num_insns_constant): Compute number of instructions
4561         more accurately.
4562
4563         * doc/install.texi: Explain AIX exception handling work-around.
4564         Update URL for AIX fixes.
4565
4566 2001-09-07  Jim Wilson  <wilson@redhat.com>
4567
4568         * alias.c (clear_reg_alias_info): New.
4569         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
4570         * rtl.h (clear_reg_alias_info): Declare.
4571
4572 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4573
4574         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
4575         available.
4576         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
4577         (m16m,edivm,emulm): Change declaration to match definition.
4578
4579 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
4580
4581         * reload.c (push_reload): Check for subreg_lowpart_p instead of
4582         SUBREG_BYTE being 0 when determining if the inner part of a subreg
4583         can be reloaded.
4584
4585 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4586
4587         * c-common.c (signed_or_unsigned_type): Handle machine mode types
4588         which have no corresponding C type.
4589         * fold_const.c (target_isinf,target_isnan,target_negative): Update
4590         the representation of 64-bit doubles to work with 64-bit ints.
4591
4592 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
4593
4594         * config/mips/mips.c (override_options): Do not override ISA when ABI
4595         specified if MIPS_CPU_STRING_DEFAULT was specified.
4596
4597 2001-09-07  Richard Henderson  <rth@redhat.com>
4598
4599         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
4600         (express_from_1): Wrap lines.
4601         * rtlanal.c (commutative_operand_precedence): Rename from
4602         operand_preference; export.
4603         * rtl.h: Declare it.
4604         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
4605         (simplify_binary_operation): Invoke simplify_plus_minus on
4606         (CONST (PLUS ...)) as well.
4607         (struct simplify_plus_minus_op_data): New.
4608         (simplify_plus_minus_op_data_cmp): New.
4609         (simplify_plus_minus): Use them.  Avoid infinite recursion with
4610         simplify_binary_operation wrt CONST.
4611
4612 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
4613
4614         * h8300-protos.h (general_operand_dst_push): Remove.
4615         * h8300.c (general_operand_dst_push): Likewise.
4616         * h8300.h (OK_FOR_T): Likewise.
4617         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
4618         * h8300.md (pushqi_h8300): New.
4619         (pushqi_h8300hs): Likewise.
4620         (pushqi): Likewise.
4621         (pushhi_h8300): Likewise.
4622         (pushhi_h8300hs): Likewise.
4623         (pushhi): Likewise.
4624
4625 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4626
4627         * genattrtab.c (attr_printf): First arg is unsigned.
4628         Clean up formatting of callers.
4629
4630 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
4631
4632         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
4633         registers.
4634
4635 2001-09-07  Andreas Jaeger  <aj@suse.de>
4636
4637         * i386.h (TARGET_SWITCHES): Fix descriptions.
4638
4639 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4640
4641         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
4642
4643 2001-09-06  Ira Ruben  <ira@apple.com>
4644
4645         Remove OP_IDENTIFIER.
4646         * tree.def (OP_IDENTIFIER): Remove.
4647         * tree.c (tree_node_kind enum): Remove op_id_kind.
4648         (tree_node_kind_names): Remove "op_identifiers".
4649         (make_node): Remove OP_IDENTIFIER test.
4650         (build_op_identifier): Removed because it isn't being used.
4651         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
4652         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
4653
4654 2001-09-06  Richard Henderson  <rth@redhat.com>
4655
4656         * simplify-rtx.c (simplify_binary_operation): Revert last change.
4657
4658 2001-09-06  Richard Henderson  <rth@redhat.com>
4659
4660         * simplify-rtx.c (simplify_binary_operation): Simplify contents
4661         of CONST.
4662
4663 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4664
4665         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
4666         number used for CR register.
4667
4668 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
4669                           Joern Rennecke (amylaar@cygnus.com)
4670
4671         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
4672         * h8300.c (initial_offset): Handle offset between RP and FP.
4673         (h8300_return_addr_rtx): New function.
4674         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
4675         return register.
4676         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
4677         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
4678         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
4679         (CAN_ELIMINATE, REGISTER_NAMES):
4680         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
4681
4682 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
4683
4684         Remove TYPE_NONCOPIED_PARTS.
4685         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
4686         (struct tree_type): Remove noncopied_parts.
4687         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
4688         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
4689         (fixed_type_p): Remove.
4690         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
4691         (expand_expr, MODIFY_EXPR): Likewise.
4692         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
4693         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
4694
4695 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
4696
4697         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
4698         compiler warnings.
4699         (mask64_operand): Likewise.
4700         (includes_rldic_lshift_p): Likewise.
4701         (includes_rldicr_lshift_p): Likewise.
4702
4703 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
4704
4705         * objc/objc-act.c (build_message_expr): If a class method cannot
4706         be found, do not issue a warning if a corresponding instance
4707         method exists in the root class.
4708
4709 2001-09-05  Richard Henderson  <rth@redhat.com>
4710
4711         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
4712
4713 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
4714
4715         * function.c (ggc_mark_struct_function): Mark f->outer.
4716         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
4717         * integrate.c (output_inline_function): ... not here.
4718
4719 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
4720
4721         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
4722
4723         * i386.c (size_cost): New static variable.
4724         (override_function): Use size_cost when -Os is specified.
4725
4726         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
4727         properly;  Use current_function_calls_eh_return.
4728         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
4729         use leave to avoid depdendancy chain.
4730
4731         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
4732         get BB loop_depth instead of computing it from LOOP notes.
4733
4734         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
4735
4736 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4737
4738         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4739         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4740         UNALIGNED_DOUBLE_INT_ASM_OP): Define
4741
4742 2001-09-05  Jeffrey A Law  (law@cygnus.com)
4743             Jason Merrill (jason@redhat.com)
4744
4745         * stor-layout.c (layout_type): Complain if an array's size can
4746         not be represented in a size_t.
4747
4748         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
4749
4750 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
4751
4752         * gcc.c: (process_command) Add parentheses around assignment
4753         used as truth value.
4754
4755 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
4756
4757         * config/mips/mips.c (save_restore_insns): Don't mark any register
4758         save slots as unchanging if current_function_calls_eh_return.
4759
4760 2001-09-05  Richard Henderson  <rth@redhat.com>
4761
4762         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
4763         * config/alpha/alpha-protos.h: Declare it.
4764         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
4765         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
4766         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
4767         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
4768         (REG_OK_FOR_BASE_P): Select one of the above.
4769
4770 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
4771
4772         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
4773         (crti.o): Prefix name of object file with $(T).
4774         (crtn.o): Likewise.
4775
4776 2001-09-05  David S. Miller  <davem@redhat.com>
4777
4778         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
4779         * config/sparc/linux64.h: Likewise.
4780
4781 2001-09-05  Andreas Jaeger  <aj@suse.de>
4782
4783         * doc/invoke.texi (i386 Options): -mwide-multiply is not
4784         available anymore, remove the documentation.
4785         (i386 Options): Fix typo, cleanup index entries.
4786
4787         * prefix.c (concat): Remove, we can use the version from liberty.
4788
4789 2001-09-05  Richard Henderson  <rth@redhat.com>
4790
4791         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
4792         New functions split out of md file expanders.
4793         * config/alpha/alpha-protos.h: Declare them.
4794         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
4795
4796 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4797
4798         * cppmacro.c (funlike_invocation_p): No need to restore context.
4799
4800 2001-09-04  Richard Henderson  <rth@redhat.com>
4801
4802         * reload.c (push_reload): Export.
4803         * reload.h (push_reload): Declare it.
4804
4805         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
4806         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
4807         * config/alpha/alpha.c (alpha_legitimize_address): New.
4808         (alpha_legitimize_reload_address): Likewise.
4809         * config/alpha/alpha-protos.h: Declare them.
4810
4811 2001-09-04  Stan Shebs  <shebs@apple.com>
4812
4813         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
4814         * config/darwin.c (machopic_stub_name): Account for internally
4815         generated lib calls such as memcpy.
4816
4817 2001-09-04  Richard Henderson  <rth@redhat.com>
4818
4819         * unwind.h (_UA_END_OF_STACK): New flag.
4820         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
4821
4822 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
4823
4824         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
4825
4826 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
4827
4828         * config/mips/mips.c (save_restore_insns): Change base_offset to
4829         fp_offset in second call to mips_emit_frame_related_store.
4830
4831 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
4832
4833         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
4834         sometimes be represented as a NOTE of type
4835         NOTE_INSN_DELETED_LABEL.
4836         (Insns): Document NOTE_INSN_DELETED_LABEL.
4837
4838 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
4839
4840         * c-common.h (tree_dump_index): Add more comments.
4841         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
4842         (dump_option_value_info): New struct.
4843         (dump_options): New array.
4844         (dump_switch_p): Parse switch options symbolically.
4845         * doc/invoke.texi (-fdump-ast): Rename to ...
4846         (-fdump-tree): ... here. Document that options are symbolic, and
4847         not all are applicable.
4848
4849 2001-09-04  David S. Miller  <davem@redhat.com>
4850
4851         * config/sparc/sparc.md (define_splits): Kill constraints.
4852
4853         Cleanup redundant and unused insn attributes.
4854         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
4855         binary, and move.  Mark ialu as default.
4856         (commented out define_function_unit "alu"): Kill.
4857         (define_attr "use_clobbered"): Kill.
4858         (whole file): Kill address insn type references.  Replace
4859         all unary/binary/move references with ialu.
4860         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
4861         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
4862         TYPE_IALU.
4863
4864         Simplify length insn attribute and make more judicious use
4865         of insn attribute defaulting.
4866         * config/sparc/sparc.md (all insns with length > one): Mark as
4867         insn type multi if real instructions, else use default if
4868         it is a forced splitter.
4869         (all insns with length == one): Use default insn length.
4870         (all insns of type ialu): Use default insn type.
4871
4872         Fix erroneous insn attribute settings.
4873         (addx): Set insn type to misc.
4874         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
4875         const_umulsidi3_sp64): Set insn type to imul.
4876
4877         Track SFmode vs DFmode insns according to UltraSPARC
4878         scheduling rules.
4879         * config/sparc/sparc.md ("fptype"): New attribute, default
4880         to "single".
4881         (all DFmode single insns): Mark as fptype "double".
4882
4883 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
4884
4885         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
4886
4887 2001-09-03  Richard Henderson  <rth@redhat.com>
4888
4889         * function.h (struct function): Add arg_pointer_save_area_init.
4890         * function.c (expand_function_end): Init arg_pointer_save_area.
4891         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
4892         when called from a nested function.
4893
4894 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
4895
4896         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
4897         is enabled.
4898
4899 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
4900
4901         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
4902
4903 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
4904
4905         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
4906         (emit_push_insn): Use specified padding direction when
4907         STACK_PUSH_CODE is POST_INC.
4908
4909         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
4910
4911 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4912
4913         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
4914
4915 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
4916
4917         * cppinit.c (cpp_start_read): Free the imacros list as we
4918         traverse it.  Don't free the chains before returning.
4919         (_cpp_push_next_buffer): Only try pushing buffers if we've
4920         completed -imacros handling.
4921
4922 2001-08-31  Eric Christopher  <echristo@redhat.com>
4923
4924         * gcc.c (handle_braces): Add explaination for abort.
4925
4926 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
4927
4928         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
4929         move adjustment of bitpos instead.
4930
4931 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
4932
4933         * function.c: Remove all_functions.  Make outer_function_chain
4934         static.
4935         (init_function_start): Don't add new function structure to
4936         all_functions.
4937         (find_function_data, push_function_context_to,
4938         pop_function_context_from, put_var_into_stack,
4939         trampoline_address): Update for changed structure element names.
4940         (push_function_context_to): Disentangle.
4941         (free_after_compilation): Also free F.
4942         (expand_dummy_function_end): Don't free cfun here.
4943         (put_var_into_stack): Comment why we can't use find_function_data here.
4944         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
4945         (mark_function_chain): Split into maybe_mark_struct_function and
4946         ggc_mark_struct_function.  Export the latter.
4947         (init_function_once): Mark from cfun and outer_function_chain;
4948         not all_functions.
4949
4950         * function.h (struct function): Kill next_global.  Rename next
4951         to outer.  All users updated to match.
4952         (all_functions, outer_function_chain): Don't declare.
4953
4954         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
4955         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
4956         don't touch f->inlinable, after calling rest_of_compilation.
4957
4958         * tree.h: Forward-declare struct function.  Prototype
4959         ggc_mark_struct_function.
4960
4961 2001-08-31  Kazu Hirata  <kazu@hxi.com>
4962
4963         * config/h8300/h8300.md (*andorhi3): Fix typos.
4964
4965 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4966
4967         * calls.c (emit_library_call_value): Don't use a fixed
4968         argument after VA_CLOSE, i.e. out of scope in traditional C.
4969
4970         * emit-rtl.c (gen_rtvec): Likewise.
4971
4972 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4973
4974         * Makefile.in (c-pragma.o): Depend on output.h.
4975         (reorg.o): Depend on except.h.
4976
4977         * c-pragma.c: Include output.h.
4978
4979         * reorg.c: Include except.h.
4980
4981         * unwind-dw2.c: Call __builtin_alloca, not alloca.
4982
4983 2001-08-31  Richard Henderson  <rth@redhat.com>
4984
4985         * sched-deps.c (add_dependence): Don't elide dependency if the
4986         conditional used by insn is modified in elem.
4987
4988 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
4989
4990         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
4991
4992 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
4993
4994         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
4995         dump_switch_p.
4996
4997 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
4998
4999         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
5000         function.
5001         (stormy16_asm_out_constructor): New function.
5002         (TARGET_ASM_CONSTRUCTOR): Define.
5003         (TARGET_ASM_DESTRUCTOR): Define.
5004
5005 2001-08-31  Andreas Jaeger  <aj@suse.de>
5006
5007         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
5008         * loop.c (add_label_notes): Likewise.
5009         * reload.c (find_reloads): Likewise.
5010         * config/sh/sh.c (machine_dependent_reorg): Likewise.
5011
5012 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
5013
5014         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
5015         code here.  Take _Unwind_{W,Sw}ord*.
5016         (read_encoded_value_with_base): Use them.
5017         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
5018         words.
5019         (extract_cie_info): Simplify read_?leb128 handling.
5020         (execute_stack_op, execute_cfa_program): Likewise.
5021         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
5022
5023 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
5024
5025         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
5026         the frame pointer to pop the stack if convenient.
5027
5028         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
5029         Don't use post-increment before combine.
5030         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
5031         a call-saved register.
5032
5033 2001-08-31  Andreas Jaeger  <aj@suse.de>
5034
5035         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
5036         code was correct.
5037
5038 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
5039
5040         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
5041         not DIV/MOD, of course.
5042
5043 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
5044
5045         * rtl.def: Undo my patch commited 2001-08-27.
5046
5047         * genattrtab.c: Ditto.
5048
5049         * rtl.h: Ditto.
5050
5051         * sched-int.h: Ditto.
5052
5053         * target-def.h: Ditto.
5054
5055         * target.h: Ditto.
5056
5057         * haifa-sched.c: Ditto.
5058
5059         * sched-rgn.c: Ditto.
5060
5061         * sched-vis.c: Ditto.
5062
5063         * Makefile.in: Ditto.
5064
5065         * doc/md.texi: Ditto.
5066
5067         * doc/tm.texi: Ditto.
5068
5069         * doc/contrib.texi: Ditto.
5070
5071         * doc/gcc.texi: Ditto.
5072
5073         * genattrtab.h: Remove it.
5074
5075         * genautomata.c: Remove it.
5076
5077         * genattr.c: Undo my patch and Richard Henderson's patch commited
5078         2001-08-27.
5079
5080 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
5081
5082         * config.gcc (h8300-*-elf*): New case.
5083         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
5084         (SUBTARGET_CPP_SPEC): Define.
5085         (EXTRA_SPECS): Define.
5086         (SUBTARGET_EXTRA_SPECS): Define.
5087         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
5088         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
5089
5090 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
5091
5092         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
5093         (LIB2FUNCS_EXTRA): Define.
5094         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
5095         config/h8300/fixunssfsi.c: New file.
5096
5097 2001-08-30  Kazu Hirata  <kazu@hxi.com>
5098
5099         * config/h8300/h8300.md (zero_extendqihi2): Changes to
5100         define_expand to accommodate target-specific attributes.
5101         (anonymous zero_extendqihi2 patterns): New.
5102
5103 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
5104
5105         * h8300.md (*andorhi3): New pattern.
5106
5107 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
5108
5109         * h8300.c (dosize): Fix test for "sub".
5110
5111 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
5112
5113         * c-typeck.c (pointer_diff): Try to eliminate common term before
5114         doing conversions.
5115
5116 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
5117
5118         * config/arm/arm.c (arm_compute_initial_elimination_offset):
5119         Account for the saves of the FP registers.
5120
5121         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
5122         (TEXT_SECTION_ASM_OP): Define.
5123         (INIT_SECTION_ASM_OP): Define.
5124         (FINI_SECTION_ASM_OP): Define.
5125         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
5126         (RDATA_SECTION_FUNCITON): Provide prototype.
5127
5128 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
5129
5130         * reload1.c (move2add_note_store): Correct typo checking for
5131         argument pushes.
5132
5133 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
5134
5135         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
5136         note should not be considered outside the libcall block.
5137
5138 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5139
5140         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
5141
5142 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5143
5144         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
5145
5146 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5147
5148         * config/h8300/h8300-protos.h: Add a prototype for
5149         emit_logical_op.
5150         * config/h8300/h8300.c (emit_logical_op): New.
5151         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
5152         (andsi3): Likewise.
5153         (iorhi3): Likewise.
5154         (iorsi3): Likewise.
5155         (xorhi3): Likewise.
5156         (xorsi3): Likewise.
5157
5158 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5159
5160         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
5161         comparison with rtx INTVAL.
5162         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
5163         expression.
5164         * pa.h (FUNCTION_ARG_SIZE): Likewise.
5165
5166 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5167
5168         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
5169         comment typos.
5170
5171 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5172
5173         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
5174         (reg n) to (mem (pre_dec (reg n))
5175         (anonymous movsi pattern): Likewise.
5176
5177 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5178
5179         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
5180
5181 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5182
5183         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
5184         several special constants.
5185
5186 2001-08-29  Kazu Hirata  <kazu@hxi.com>
5187
5188         * config/h8300/lib1funcs.asm: Fix comment typos.
5189
5190 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5191
5192         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
5193         Fix format specifier warnings.
5194
5195         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
5196         inet_makeaddr, semctl): Prototype.
5197
5198         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
5199         (save_restore_insns): Use base_offset, not gp_offset.
5200
5201         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
5202         (ASM_OUTPUT_BYTE): Fix format specifier warning.
5203
5204 2001-08-29  Richard Henderson  <rth@redhat.com>
5205
5206         * bb-reorder.c (function_tail_eff_head): New.
5207         (record_effective_endpoints): Set it.
5208         (fixup_reorder_chain): Use it.
5209
5210 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5211
5212         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
5213
5214 2001-08-28  Dale Johannesen  <dalej@apple.com>
5215
5216         * config/darwin.c (machopic_function_base_name): Add const
5217         qualifier to a string.
5218         (darwin_encode_section_info): Ditto.
5219
5220 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5221
5222         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
5223         function definition.
5224
5225 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
5226
5227         * df.h (struct df): Add rts_order variable.
5228
5229         * df.c (df_visit_next_rts): New function.
5230         (df_visit_next): Renamed to df_visit_next_rc
5231         (df_analyse_1): Allocate/compute/free rts_order as well.
5232         (df_rd_global_compute): Use df_visit_next_rc instead of
5233         df_visit_next.
5234         (df_ru_global_compute): Use df_visit_next_rts instead of
5235         df_visit_next.
5236
5237         * flow.c (flow_reverse_top_sort_order_compute): New function.
5238
5239         * basic-block.h: Add prototype.
5240
5241 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
5242
5243         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
5244         blocks, the BB_REACHABLE is now set, rather than aux being
5245         non-NULL. Update the test to reflect this.
5246
5247 2001-08-28  Eric Christopher  <echristo@redhat.com>
5248
5249         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
5250         config/mips/crti.asm: Ditto.
5251
5252 2001-08-28  Eric Christopher <echristo@redhat.com>
5253             Richard Henderson <rth@redhat.com>
5254
5255         * c-pragma.h (add_weak): Move prototype from here...
5256         * output.h (add_weak): ... to here.
5257         * varasm.c (add_weak): Fix typo.
5258         * config/mips/crti.asm: New file.
5259         * config/mips/crtn.asm: Ditto.
5260         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
5261         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
5262         (INVOKE__main): Ditto.
5263         (INIT_SECTION_ASM_OP): New.
5264         (FINI_SECTION_ASM_OP): Ditto.
5265         (STARTFILE_SPEC): Add crti.
5266         (ENDFILE_SPEC): Add crtn.
5267         * config/mips/elf64.h: Same.
5268         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
5269         Remove.
5270         * config/mips/vxworks.h: Ditto.
5271         * config/mips/t-elf: Support crti and crtn.
5272
5273 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
5274
5275         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
5276         INSN_LIST.
5277
5278 2001-08-28  Richard Henderson  <rth@redhat.com>
5279
5280         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
5281         (one_cmplbi2 splitter): Remove redundant test.
5282
5283 2001-08-28  Dale Johannesen  <dalej@apple.com>
5284
5285         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
5286
5287 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
5288
5289         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
5290
5291 2001-08-28  Stan Shebs  <shebs@apple.com>
5292
5293         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
5294         (UNALIGNED_SHORT_ASM_OP): Define.
5295         (UNALIGNED_INT_ASM_OP): Define.
5296
5297 2001-08-28  Will Cohen  <wcohen@redhat.com>
5298
5299         * config/rs6000/rs6000.md (store_multiple): Correct RTL
5300         generation for first set.
5301
5302 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
5303
5304         * flow.c (redirect_edge_succ_nodup): Return new edge.
5305         (try_simplify_condjump): Use new edge.
5306         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
5307
5308         * cse.c (cse_basic_block): Skip note instructions.
5309
5310 2001-08-27  Richard Henderson  <rth@redhat.com>
5311
5312         * combine.c (combine_simplify_rtx): Don't reverse condition
5313         if there is no reverse for the condition.
5314         (simplify_comparison): Don't simplify subregs from INT to FP.
5315
5316         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
5317         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
5318         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
5319         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
5320         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
5321         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
5322
5323 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
5324
5325         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
5326         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
5327         (pushqi1): New.
5328         (adddi_dilshr32, adddi_dishl32): Only data register can be
5329         source for mem destination.
5330
5331         * expmed.c (store_bit_field): Ignore adjustment to bitpos
5332         and use bitnum to decide about register move.
5333
5334 2001-08-27  Richard Henderson  <rth@redhat.com>
5335
5336         * genattr.c (main): Emit state_t even when not doing scheduling.
5337
5338 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
5339             Richard Henderson  <rth@redhat.com>
5340
5341         * gcse.c (reg_first_set, reg_last_set): Replace with ...
5342         (reg_avail_info, current_bb): ... these.
5343         (oprs_unchanged_p, record_last_reg_set_info): Use them.
5344         (compute_hash_table): Likewise.
5345
5346 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
5347
5348         * flow.c (verify_flow_info): Use checksums to verify edges.
5349
5350 2001-08-27  Richard Henderson  <rth@redhat.com>
5351
5352         * genautomata.c (expand_automata): Always create a description.
5353
5354 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
5355
5356         * optabs.c (expand_binop): Correctly handle the carry in multiword
5357         add/subtract operations.
5358
5359 2001-08-27  Fred Fish  <fnf@be.com>
5360
5361         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
5362         __SIZE_TYPE__.
5363
5364 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
5365
5366         * reload.c (find_reloads_toplev): Back out this change:
5367
5368         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
5369
5370         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
5371         mem if the address is a mode_dependent_address_p.
5372
5373 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
5374
5375         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
5376         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
5377         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
5378         RTL constructions.
5379
5380         * genattr.c (main): New variable num_insn_reservations.  Increase
5381         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
5382         pipeline hazard recognizer interface.
5383
5384         * genattrtab.h: New file.
5385
5386         * genattrtab.c: Include genattrtab.h.
5387         (attr_printf, check_attr_test, make_internal_attr,
5388         make_numeric_value): Move protypes into genattrtab.h.  Define them
5389         as external.
5390         (num_dfa_decls): New global variable.
5391         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
5392         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
5393         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
5394         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
5395
5396         * genautomata.c: New file.
5397
5398         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
5399
5400         * sched-int.h: (curr_state): Add the external definition for
5401         automaton pipeline interface.
5402         (haifa_insn_data): Add comments for members blockage and units.
5403
5404         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
5405         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
5406         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
5407         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
5408         TARGET_SCHED_DFA_POST_CYCLE_INSN,
5409         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
5410         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
5411         macros.
5412         (TARGET_SCHED): Use the new macros.
5413
5414         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
5415         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
5416         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
5417         dfa_bubble): New members in gcc_target.sched.
5418
5419         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
5420         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
5421         (insn_queue): Redefine it as pointer to array.
5422         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
5423         INSN_QUEUE_SIZE.
5424         (max_insn_queue_index_macro_value): New variable.
5425         (curr_state, dfa_state_size, ready_try): New varaibles for
5426         automaton interface.
5427         (ready_element, ready_remove, max_issue): New function prototypes
5428         for automaton interface.
5429         (choose_ready): New function prototype.
5430         (insn_unit, blockage_range): Add comments.
5431         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
5432         FUNCTION_UNITS_SIZE == 0.
5433         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
5434         actual_hazard, potential_hazard): Add comments.
5435         (insn_cost): Use cost -1 as undefined value.  Remove
5436         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
5437         pipeline interface.
5438         (ready_element, ready_remove): New functions for automaton
5439         interface.
5440         (schedule_insn): Add new code for automaton pipeline interface.
5441         (queue_to_ready): Add new code for automaton pipeline interface.
5442         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
5443         (debug_ready_list): Print newline when the queue is empty.
5444         (max_issue): New function for automaton pipeline interface.
5445         (choose_ready): New function.
5446         (schedule_block): Add new code for automaton pipeline interface.
5447         Print ready list before scheduling each insn.
5448         (sched_init): Add new code for automaton pipeline interface.
5449         Initiate insn cost by -1.
5450         (sched_finish): Free the current automaton state and finalize
5451         automaton pipeline interface.
5452
5453         * sched-rgn.c: Include target.h.
5454         (init_ready_list, new_ready, debug_dependencies): Add new code for
5455         automaton pipeline interface.
5456
5457         * sched-vis.c: Include target.h.
5458         (get_visual_tbl_length): Add code for automaton interface.
5459         (target_units, print_block_visualization):  Add comments.
5460
5461         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
5462         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
5463         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
5464         (getruntime.o, genautomata.o): New entries.
5465         (genattrtab.o): Add new dependency file genattrtab.h.
5466         (genattrtab): Add new dependencies.  Link it with `libm.a'.
5467         (getruntime.o, hashtab.o): New entries for canadian cross.
5468
5469         * doc/md.texi: Description of automaton based model.
5470
5471         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
5472         Add comments.
5473         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
5474         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
5475         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
5476         TARGET_SCHED_DFA_POST_CYCLE_INSN,
5477         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
5478         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
5479         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
5480         hook descriptions.
5481         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
5482         MAX_DFA_ISSUE_RATE): New macro descriptions.
5483
5484         * doc/contrib.texi: Add dfa based scheduler contribution.
5485
5486         * doc/gcc.texi: Add more information about genattrtab.
5487
5488 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
5489
5490         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
5491         an RTL basic block.
5492
5493 2001-08-27  Richard Henderson  <rth@redhat.com>
5494
5495         * function.c (expand_function_end): Don't init arg_pointer_save_area.
5496         (get_arg_pointer_save_area): New.  Create an init it here.
5497         (fix_lexical_addr): Use it.
5498         * function.h: Declare it.
5499         * builtins.c (expand_builtin_setjmp_receiver): Use it.
5500         * stmt.c (expand_nl_goto_receiver): Use it.
5501
5502 2001-08-27  Richard Henderson  <rth@redhat.com>
5503
5504         * final.c (final_scan_insn): Don't enter APP_ON mode for
5505         empty asm strings.
5506
5507         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
5508         alignment for assemble_integer for DW_EH_PE_aligned.
5509         * except.c (output_function_exception_table): Likewise.
5510
5511 2001-08-26  Andreas Jaeger  <aj@suse.de>
5512
5513         * c-tree.h: Add prototyp for c_sizeof_nowarn.
5514
5515 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
5516
5517         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
5518
5519 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
5520
5521         * config/rs6000/rs6000.c (mask_operand): Rewrite without
5522         bit-shifting loop.
5523         (mask64_operand): Likewise.
5524         (rldic_operand): Delete.
5525         (includes_lshift64_p): Delete.
5526         (includes_rldic_lshift_p): New function.
5527         (includes_rldicr_lshift_p): New function.
5528         (print_operand): Don't call rldic_operand in case 'W'.
5529         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
5530         (includes_lshift64_p): Remove.
5531         (includes_rldic_lshift_p): Declare.
5532         (includes_rldicr_lshift_p): Declare.
5533         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
5534         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
5535         Replace match_operand rldic_operand predicate with
5536         const_int_operand.  Replace includes_lshift64_p condition with
5537         includes_rldic_lshift_p.
5538         <ashldi3_internal 64 bit rldicr patterns>: New.
5539
5540 2001-08-27  Andreas Jaeger  <aj@suse.de>
5541
5542         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
5543         * errors.c: Likewise.
5544         * final.c: Likewise.
5545         * dwarf2asm.c: Likewise.
5546         * doprint.c (checkit): Likewise.
5547         * diagnostic.c: Likewise.
5548         * collect2.c: Likewise.
5549         * calls.c: Likewise.
5550         * c-semantics.c (build_stmt): Likewise.
5551         * c-format.c (status_warning): Likewise.
5552         * c-errors.c (pedwarn_c99): Likewise.
5553         * builtins.c (validate_arglist): Likewise.
5554         * config/pj/pj.c (pj_printf): Likewise.
5555         * fix-header.c: Likewise.
5556         * gcc.c: Likewise.
5557         * gcov.c (fnotice): Likewise.
5558         * gensupport.c (message_with_line): Likewise.
5559         * mips-tfile.c: Likewise.
5560         * protoize.c (notice): Likewise.
5561         * read-rtl.c (fatal_with_file_and_line): Likewise.
5562         * rtl-error.c: Likewise.
5563         * tradcpp.c: Likewise.
5564         * tree.c: Likewise.
5565         * cp/tree.c (build_min_nt): Likewise.
5566         (build_min): Likewise.
5567         * cp/lex.c: Likewise.
5568         * cp/errfn.c: Likewise.
5569         * cp/rtti.c (create_pseudo_type_info): Likewise.
5570
5571 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
5572
5573         * df.c (df_uses_record): Return after recording all uses
5574         in ASM_OPERANDS.
5575
5576 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
5577
5578         * df.c (df_insn_modify): Realloc the INSN table here, if
5579         necessary, here, too.
5580
5581 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
5582
5583         * config/mips/mips.c (mips_function_value): Handle complex return
5584         values.
5585
5586 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
5587
5588         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
5589         unshared.
5590         * reload.c (make_memloc): Copy result if it is still
5591         reg_equiv_memory_loc[regno] on return.
5592         (subst_reloads) [ENABLE_CHECKING]: Check that none of
5593         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
5594         reg_equiv_mem are modified by the substitutions.
5595
5596 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
5597
5598         * predict.c (expensive_function_p): New.
5599         * rtl.h (expensive_function_p): Declare.
5600         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
5601         (use_fast_prologue_epilogue): New static variable.
5602         (expand_prologue): Set it; emit short prologues if unset.
5603         (expand_epilogue): Likewise.
5604
5605 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
5606
5607         * config.gcc: Add stormy16-*-elf case.
5608         * config/stormy16/stormy-abi: New file.
5609         * config/stormy16/stormy16-lib2.c: New file.
5610         * config/stormy16/stormy16-protos.h: New file.
5611         * config/stormy16/stormy16.c: New file.
5612         * config/stormy16/stormy16.h: New file.
5613         * config/stormy16/stormy16.md: New file.
5614         * config/stormy16/t-stormy16: New file.
5615
5616 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
5617
5618         * i386.h (no-accumulate-outgoing-args): Use proper mask.
5619
5620 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
5621
5622         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
5623         descriptor members are pointer size, not constant 4.
5624         * config/rs6000/rs6000.md (define_splits): Remove more unused
5625         constraints.
5626
5627 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5628
5629         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
5630
5631 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
5632
5633         * cp/rtti.c (VPARAMS): Fix parameter.
5634
5635 2001-08-24  Zack Weinberg  <zackw@panix.com>
5636
5637         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
5638         to zero.
5639         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
5640         to switch.
5641         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
5642         in if controlling use of insv.
5643         (extract_bit_field): Likewise, for extv and extzv.
5644
5645 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
5646
5647         * i386.md (movcc peep2): Fix load of 0.
5648
5649 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5650
5651         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
5652         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
5653
5654 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
5655
5656         * c-pragma.h: Move weak_syms and weak_decls...
5657         * varasm.c: ...here.  Now static.
5658         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
5659         depend on HANDLE_PRAGMA_WEAK.
5660
5661         * c-common.c (c_alignof, c_alignof_expr): Move here...
5662         * c-typeck.c: ...from here.
5663         * c-tree.h, c-common.h: Adjust.
5664
5665 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
5666
5667         * config/ia64/ia64.c (rws_update): If !pred, set write_count
5668         instead of incrementing it.
5669
5670         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
5671         asm ready, don't try to move them all into the same array element.
5672
5673 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
5674
5675         * function.c (thread_prologue_and_epilogue_insns): Avoid
5676         fallthru flag on edge to exit.
5677
5678         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
5679
5680         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
5681         dead edges.
5682
5683 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
5684
5685         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
5686         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
5687         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
5688         Remove prototype.
5689
5690 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
5691
5692         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
5693         replace "GNU CC" with "GCC".
5694
5695 2001-08-23  Richard Henderson  <rth@redhat.com>
5696
5697         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
5698         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
5699         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
5700         Need GR between FR and not GR_AND_FR.
5701         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
5702         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
5703         AR regs before GR regs.
5704         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
5705         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
5706         (REGISTER_MOVE_COST): Update.
5707         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
5708
5709 2001-08-23  Richard Henderson  <rth@redhat.com>
5710
5711         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
5712         a register class.
5713
5714 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
5715
5716         * reload1.c (emit_reload_insns): Don't look for notes
5717         on a NULL store_insn.
5718
5719 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5720
5721         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
5722         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
5723         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
5724         format specifier warnings.
5725         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
5726
5727 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
5728
5729         * config/i386/i386-protos.h: Correct declaration of
5730         i386_pe_asm_named_section.
5731
5732 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5733
5734         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
5735         variable i.
5736         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
5737
5738 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5739
5740         * cpperror.c (print_location): Don't show _Pragma.
5741         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
5742         and file change callback generation here.
5743         (stack_include_file): Update use of cpp_push_buffer.
5744         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
5745         (struct cpp_buffer): Remove type, pfile members.
5746         * cppinit.c (cpp_handle_option): Use free_chain.
5747         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
5748         (skip_escaped_newlines, get_effective_char, lex_percent): Take
5749         a cpp_reader rather than a cpp_buffer.
5750         (skip_escaped_newlines, get_effective_char, skip_block_comment,
5751         skip_line_comment, parse_string, lex_percent, lex_dot,
5752         _cpp_lex_token): Update accordingly.
5753         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
5754         generation here.
5755         (cpp_push_buffer): Update prototype.
5756         (run_directive): Update use of cpp_push_buffer.
5757         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
5758         handle_assertion): Update use of run_directive.
5759         * cpplib.h (enum cpp_buffer_type): Remove.
5760         (cpp_push_buffer): Update prototype.
5761         * fix-header.c (read_scan_file): Update.
5762
5763 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5764
5765         * gcc.c (struct prefix_list): Change prefix to const char *.
5766
5767 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5768
5769         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
5770
5771 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
5772
5773         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
5774         from a new MEM.
5775
5776         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
5777         a squeezable note.
5778         * rtl.h: Adjust.
5779         * ifcvt.c (dead_or_predicable): Adjust.
5780         * loop.c (find_and_verify_loops): Adjust.
5781         * stmt.c (expand_end_case): Adjust.
5782         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
5783         head and end insn pointers in the basic block, not just local copies.
5784         (merge_blocks_move_predecessor_nojumps): Likewise.
5785
5786 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
5787
5788         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
5789         bitmap.h, builtin-types.def, builtins.c, builtins.def,
5790         c-aux-info.c, c-common.c, c-common.def, c-common.h,
5791         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
5792         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
5793         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
5794         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
5795         conditions.h, config.gcc, configure.frag, configure.in,
5796         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
5797         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
5798         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
5799         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
5800         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
5801         emit-rtl.c, errors.c, errors.h, except.c, except.h,
5802         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
5803         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
5804         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
5805         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
5806         gencheck.c, gencodes.c, genconfig.c, genemit.c,
5807         genextract.c, genflags.c, gengenrtl.c, genmultilib,
5808         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
5809         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
5810         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
5811         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
5812         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
5813         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
5814         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
5815         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
5816         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
5817         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
5818         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
5819         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
5820         params.h, predict.c, predict.def, predict.h, prefix.c,
5821         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
5822         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
5823         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
5824         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
5825         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
5826         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
5827         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
5828         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
5829         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
5830         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
5831         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
5832         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
5833         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
5834         xcoffout.h: replace "GNU CC" with "GCC".
5835
5836 2001-08-21  Richard Henderson  <rth@redhat.com>
5837
5838         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
5839         (final_scan_insn): Consider jump tables data even if we have no
5840         independent text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
5841         ADDR_VEC_ALIGN.
5842         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
5843         (ASM_OUTPUT_CASE_END): Remove.
5844         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
5845         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
5846         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
5847
5848 2001-08-21  Richard Henderson  <rth@redhat.com>
5849
5850         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
5851         at barrier insns.  Emit stop bits before barriers.
5852
5853         * flow.c (flow_find_cross_jump): Don't consider unconditional
5854         return insns for commoning.
5855
5856         * final.c (compute_alignments): Fix typo.
5857
5858         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
5859         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
5860         (store_bit_field): Use mode_for_extraction more places.
5861         (extract_bit_field): Likewise.
5862
5863 2001-08-21  Zack Weinberg  <zackw@panix.com>
5864
5865         * caller-save.c: Don't include insn-codes.h.
5866         (reg_save_code, reg_restore_code): Make arrays of int.
5867         All uses updated to match.
5868         (insert_save, insert_restore): No need to initialize "code"
5869         variable upon declaration.
5870         * Makefile.in: update dependencies; fix typo in clean rule.
5871
5872 2001-08-21  Richard Henderson  <rth@redhat.com>
5873
5874         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
5875         (merge_if_block): Handle fallout from same.
5876
5877 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5878
5879         * builtins.c (type_to_class): Fix typo in last change.
5880
5881 2001-08-21  Richard Henderson  <rth@redhat.com>
5882
5883         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
5884         ia64_asm_output_label.
5885
5886         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
5887         copy of gp while the real gp register contains garbage.
5888
5889 2001-08-21  Zack Weinberg  <zackw@panix.com>
5890
5891         * expmed.c (mode_for_extraction): New function.
5892         (store_bit_field, extract_bit_field): Use it.
5893         * expr.h: Prototype it and provide an enum for its first argument.
5894
5895         * combine.c, function.c, recog.c: Don't include insn-codes.h.
5896         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
5897         and digging through the insn_data tables.
5898         * Makefile.in: Update dependencies.
5899
5900 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5901
5902         * cppfiles.c (stack_include_file): line-map.c now handles include
5903         depth.
5904         (handle_missing_handler): Similarly.
5905         (_cpp_execute_include): Similarly.
5906         (_cpp_pop_file_buffer): Similarly.
5907         * cpphash.h (struct cpp_reader): Remove system_include_depth,
5908         buffer_stack_depth and include_depth.
5909         * cpplib.c (do_include_common): line-map.c now handles include depth.
5910         (cpp_push_buffer): Similarly.
5911         (_cpp_pop_buffer): Similarly.
5912         * cppmacro.c (builtin_macro): Update.
5913         * line-map.c (init_line_maps): Set depth.
5914         (add_line_map): Increment "used" earlier.  Update and use the
5915         include depth.
5916         (trace_include): Use the include depth.
5917         * line-map.h (struct line_maps): New member depth.
5918
5919 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5920
5921         * cppfiles.c (stack_include_file): Don't handle -H here.
5922         * cppinit.c (cpp_start_read): Set include tracing after
5923         cpp_post_options and after stacking the main file.
5924         * line-map.c (trace_include): New.
5925         (init_line_maps, add_line_map): Update.
5926         * line-map.h (struct line_maps): New member trace_includes.
5927
5928 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5929
5930         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
5931         * cppfiles.c (stack_include_file): Only stack a file if there
5932         is something to do.  Return a boolean indicating whether a
5933         buffer was stacked or not.
5934         (_cpp_execute_include): Similarly.
5935         (_cpp_read_file): Similarly.
5936         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
5937
5938 2001-08-21  Sam Steingold  <sds@gnu.org>
5939
5940         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
5941         (RECACHE): keep obufp_before_macroname up to date
5942
5943 2001-08-21  Zack Weinberg  <zackw@panix.com>
5944
5945         * stmt.c: Don't include insn-codes.h.
5946         (expand_end_case): Machine specific logic moved to expr.c.
5947         No need to worry about __builtin_classify_type.
5948         (check_for_full_enumeration_handling, emit_case_nodes):
5949         Kill #if 0 blocks.
5950
5951         * builtins.o (expand_builtin_classify_type): Split up so code
5952         can be shared with fold_builtin_classify_type.
5953         (type_to_class, fold_builtin_classify_type): New functions.
5954         (fold_builtins): Handle __builtin_classify_type.
5955
5956         * expr.c (do_tablejump): Now static.
5957         (case_values_threshold, try_casesi, try_tablejump): New;
5958         code mostly from stmt.c (expand_end_case).
5959         (expr.h): Update prototypes.
5960
5961         * Makefile.in (stmt.o): Update dependencies.
5962
5963 2001-08-21  Will Cohen  <wcohen@redhat.com>
5964
5965         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
5966         declaration of variable i.
5967         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
5968         declaration of variable i.
5969
5970 2001-08-21  Richard Henderson  <rth@redhat.com>
5971
5972         * crtstuff.c: Fix thinko last change.  Move list tails to start
5973         of CRT_END section.  Tidy ifdefs.
5974         (__EH_FRAME_BEGIN__): Always static for ELF.
5975         (__do_global_ctors_1): Rename from __frame_dummy.
5976         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
5977         name change; don't hide __EH_FRAME_BEGIN__.
5978
5979 2001-08-21  Richard Henderson  <rth@redhat.com>
5980
5981         * gdbinit.in: Move break on exit after break on fancy_abort.
5982
5983         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
5984         sized types.
5985
5986 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5987
5988         * cpphash.h (_cpp_push_next_buffer): New.
5989         * cppinit.c (do_includes): Remove.
5990         (push_include, free_chain, _cpp_push_next_buffer): New.
5991         (cpp_start_read): Use them to rework command line option handling.
5992         (cpp_handle_option): Combine handling of -include and -imacros.
5993         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
5994         appropriate.  Always insert missing \n at EOF.
5995         * cpplib.c (start_directive): Get the directive position right.
5996         * cppmain.c (cb_file_change): Always print the first line, unless
5997         preprocessed.
5998
5999 2001-08-20  Andreas Jaeger  <aj@suse.de>
6000
6001         * profile.c (compute_branch_probabilities): Remove extra new-line
6002         in error message.
6003         * flow.c (verify_flow_info): Likewise.
6004
6005 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
6006
6007         * basic-block.h (basic_block): Add new field 'flags'.
6008         (BB_REACHABLE): Define.
6009         (expunge_block): Declare.
6010         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
6011         (EXIT_BLOCK_PTR): Ditto.
6012         (expunge_block): Remove static declaration.
6013         (cleanup_cfg): Clear bb->aux on every basic block.
6014         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
6015         computing reachability.
6016         (delete_unreachable_blocks): Delete block b if b->flags has
6017         BB_REACHABLE unset.
6018
6019 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
6020
6021         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
6022
6023 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6024
6025         * sparc.c (sparc_variable_issue): Fix typo in last change.
6026
6027 2001-08-20  Richard Henderson  <rth@redhat.com>
6028
6029         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
6030
6031 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6032
6033         * pa.h (RETURN_IN_MEMORY): Improve comment.
6034
6035 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
6036
6037         * doc/invoke.texi (Profiling options): Clarify the interactions
6038         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
6039
6040 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
6041
6042         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
6043         command.
6044
6045 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6046
6047         * gcc.c (make_relative_prefix): Allocate a sufficiently large
6048         buffer.
6049
6050 2001-08-20  Richard Henderson  <rth@redhat.com>
6051
6052         * final.c (end_final): Fix typo last change.
6053
6054 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
6055
6056         * cppinit.c (init_standard_includes): The returned buffer
6057         is already malloc-ed.
6058         * gcc.c (add_prefix): Similarly.
6059         * prefix.c (translate_name): Update to support clear buffer
6060         ownership rules.
6061         (update_path): Similarly.  Be sure to free any newly allocated
6062         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
6063         (tr): New function.
6064         * prefix.h (update_path): Update prototype and document.
6065         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
6066         up and update to new buffer ownership rules.
6067         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
6068
6069 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
6070
6071         * final.c (compute_alignments): New function.
6072         (init_insn_lengths): Do not care label_align.
6073         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
6074         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
6075         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
6076         (shorted_branches): Realloc label_align array; do
6077         not call init_insn_lengths; Do not care about loop alignments.
6078         * output.h (compute_alignments): Declare.
6079         * toplev.c (rest_of_compilation): Call compute_alignments.
6080         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
6081
6082         * predict.c (block_info_def): Add npredecesors, remove nvisited;
6083         change visited to tovisit.
6084         (propagate_freq): Use faster traversing algorithm.
6085         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
6086         to tovisit; reverse meaning.
6087
6088         * predict.c (struct block_info_def): Remove nvisited.
6089         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
6090         (estimate_bb_frequencies): Call mark_dfs_back_edges.
6091
6092 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
6093
6094         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
6095         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
6096         (TARGET_FUSED_MADD): New.
6097         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
6098         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
6099         the multiply-add instructions.
6100
6101 2001-08-19  Richard Henderson  <rth@redhat.com>
6102
6103         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
6104         is aligned to pointer size.
6105
6106 2001-08-19  Richard Henderson  <rth@redhat.com>
6107
6108         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
6109         display markers during final schedule.
6110
6111 2001-08-19  Richard Henderson  <rth@redhat.com>
6112
6113         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
6114
6115 2001-08-19  Richard Henderson  <rth@redhat.com>
6116
6117         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
6118         in the same string.
6119         (ASM_NAME_TO_STRING): Remove.
6120         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
6121         in the same string.  Remove support for expressions.
6122
6123 2001-08-19  Richard Henderson  <rth@redhat.com>
6124
6125         * config/i386/i386.md (tablejump): Make an expander; handle
6126         pic relative addressing here.
6127         (tablejump_1): Rename from tablejump_pic.
6128         (casesi): Remove.
6129
6130 2001-08-19  Richard Henderson  <rth@redhat.com>
6131
6132         * regclass.c (fix_register): Fix typo.
6133
6134 2001-08-18  Richard Henderson  <rth@redhat.com>
6135
6136         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
6137         (struct _Unwind_Context): Expand br_loc to hold it.
6138         (uw_frame_state_for): Handle leaf functions better.
6139         (uw_update_reg_address): Update for br_loc change.
6140
6141 2001-08-18  Richard Henderson  <rth@redhat.com>
6142
6143         * crtstuff.c: Move list heads before code that uses them.
6144         (__JCR_LIST__): Remove initial null.
6145         (frame_dummy, __frame_dummy): Do java registration here ...
6146         (__do_global_ctors_aux): ... not here.
6147
6148         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
6149         (__do_global_dtors_aux): Update to match.
6150         (__JCR_LIST__, __do_jv_register_classes): New.
6151         (.init): Call it.
6152         * config/ia64/crtend.asm (__JCR_END__): New.
6153         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
6154         instead of an indirect LTOFF22 reloc.
6155
6156 2001-08-18  Richard Henderson  <rth@redhat.com>
6157
6158         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
6159         * regclass.c (init_reg_sets_1): Fix typo.
6160         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
6161         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
6162         (ia64_compute_frame_size): Make ar.unat live when in use.
6163         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
6164         for ar.pfs; remove ar.unat handling.
6165         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
6166         call-saved.
6167         (PREDICATE_CODES): Add ar_pfs_reg_operand.
6168         * config/ia64/ia64-protos.h: Update decls.
6169         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
6170         (sibcall_pic): Likewise.
6171
6172 2001-08-18  Richard Henderson  <rth@redhat.com>
6173
6174         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
6175         pred_rel_mutex when searching for insn_group_barrier.
6176         * config/ia64/ia64.md (cycle_display): Combine the expander
6177         and insn patterns.
6178
6179         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
6180         bit before asm as needed.
6181
6182 2001-08-18  Richard Henderson  <rth@redhat.com>
6183
6184         * timevar.def (TV_MACH_DEP): New.
6185         * toplev.c (rest_of_compilation): Use it.
6186         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
6187
6188 2001-08-18  Zack Weinberg  <zackw@panix.com>
6189
6190         * unwind-dw2.c (execute_stack_op): Add default aborts to
6191         the inner switches to prevent warnings.
6192
6193 2001-08-18  Richard Henderson  <rth@redhat.com>
6194
6195         * timevar.h (struct timevar_time_def): Change element type to float.
6196         (ticks_to_msec, clocks_to_msec): Likewise.
6197         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
6198         (get_time): Likewise.
6199         (timevar_print): Adjust zero check and printing to match.
6200
6201 2001-08-18  Zack Weinberg  <zackw@panix.com>
6202
6203         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
6204         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
6205         Eliminate overfull or underfull hboxes.
6206
6207 2001-08-18  Zack Weinberg  <zackw@panix.com>
6208
6209         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
6210
6211 2001-08-18  Zack Weinberg  <zackw@panix.com>
6212
6213         * haifa-sched.c: Convert to target hooks.  Macros replaced
6214         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
6215         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
6216         MD_SCHED_FINISH, and HAVE_cycle_display.
6217         * target-def.h (TARGET_SCHED_ADJUST_COST,
6218         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
6219         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
6220         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
6221         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
6222         New hook #defines to be overridden.
6223         (TARGET_SCHED): Bring them all together.
6224         (TARGET_INITIALIZER): Update.
6225         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
6226         instead of 'struct rtx_def *' throughout.
6227         (struct sched): New set of hooks for the scheduler.
6228         * Makefile.in (haifa-sched.o): Depend on target.h.
6229         * doc/tm.texi: Document the new scheduler hooks, together in
6230         their own section, instead of scattered around.
6231         Fix a bunch of underfull/overfull hboxes.
6232
6233         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
6234         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
6235         sparc.h: Don't define any of the old scheduler macros.
6236
6237         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
6238         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
6239         sparc.c: Create hook functions from code extracted from
6240         corresponding target header, or make existing hooks static, as
6241         appropriate.  Set the appropriate entries in targetm.
6242
6243         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
6244         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
6245         rs6000-protos.h, s390-protos.h, sparc-protos.h:
6246         Remove prototypes for functions which are now static.
6247
6248         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
6249         related gunk; the Haifa scheduler is now the only choice.
6250
6251 2001-08-18  Zack Weinberg  <zackw@panix.com>
6252
6253         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
6254         * genopinit.c: Put floating point divide insns in sdiv_optab.
6255         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
6256         * config/gofast.h, config/c4x/c4x.h,
6257         config/ia64/hpux_longdouble.h, config/mips/mips.h,
6258         config/pa/long_double.h, config/rs6000/sysv4.h,
6259         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
6260         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
6261         (init_optabs): Use init_optabv for overflow-trapping optabs.
6262         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
6263         cmp_optab RTX codes so have_insn_for can find them.
6264
6265         * optabs.c (expand_simple_binop, expand_simple_unop,
6266         have_insn_for, gen_sub3_insn): New interfaces.
6267         * expr.h: Prototype new functions.
6268         (enum optab_methods): Move here from optabs.h.
6269
6270         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
6271         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
6272         Use new functions instead of working directly with optabs.
6273         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
6274         unroll.c: Don't include optabs.h.
6275         * caller-save.c, combine.c, function.c, stmt.c: Just include
6276         insn-codes.h, not optabs.h.
6277         * Makefile.in: Update dependencies.
6278
6279         * combine.c (make_compound_operation, simplify_comparison):
6280         Fix typos testing for this or that instruction.
6281
6282 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
6283
6284         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
6285         generating libgcc.a.
6286
6287 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6288
6289         * except.c (TYPE_HASH): Delete.
6290
6291         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
6292         HOST_WIDE_INT.
6293
6294         * tree.c (TYPE_HASH): Delete.
6295
6296         * tree.h (TYPE_HASH): Define.
6297
6298 2001-08-18  Graham Stott  <grahams@redhat.com>
6299
6300         * config/mips/mips.md (adddi3_internal_2+1): Remove constraints from
6301         define_split.
6302         (adddi3_internal_2+2): Likewise.
6303         (eh_set_lr_di+1): Likewise.
6304
6305 2001-08-17  Richard Henderson  <rth@redhat.com>
6306
6307         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
6308         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
6309         * dwarf2asm.c: ... here.
6310         * dwarfout.c: Remove them.
6311
6312         * varasm.c (assemble_integer): Add align parameter.
6313         (assemble_real, output_constant, output_constructor): Likewise.
6314         * output.h: Update decls.
6315         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
6316         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
6317         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
6318         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
6319         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
6320         Update all callers.
6321
6322         * final.c (end_final): Abort profile block generation if we
6323         havn't layed it out properly.
6324         * output.h (assemble_eh_integer): Remove stale decl.
6325         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
6326         (min_align): New.
6327         (assemble_integer): Handle unaligned data.
6328         (assemble_real): Abort on unaligned data.
6329         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
6330         anything useful.
6331         (default_dtor_section_asm_out_destructor): Use assemble_align.
6332         (default_named_section_asm_out_constructor): Likewise.
6333         (default_ctor_section_asm_out_constructor): Likewise.
6334         * config/darwin.c (machopic_asm_out_constructor): Likewise.
6335         (machopic_asm_out_destructor): Likewise.
6336         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
6337         (nextstep_asm_out_destructor): Likewise.
6338         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
6339         (vms_asm_out_destructor): Likewise.
6340
6341 2001-08-17  Richard Henderson  <rth@redhat.com>
6342
6343         * config/mips/iris6.h (TARGET_IRIX6): New.
6344         (current_section_name, current_section_flags): New.
6345         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
6346         (MAX_OFILE_ALIGNMENT): New.
6347         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
6348         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
6349         (copy_file_data): Split out from
6350         (mips_asm_file_end): ... here.
6351         (mips_asm_file_start): Remove extra .section directive.  Use
6352         tmpfile instead of mips_make_temp_file.
6353         (mips_unique_section): Use const char * as needed for warnings.
6354         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
6355         re-add align parameter.
6356         (iris6_asm_named_section): New.
6357         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
6358         (iris6_asm_output_align, iris6_section_align_1): New.
6359         (iris6_asm_file_start, iris6_asm_file_end): New.
6360         * config/mips/mips-protos.h: Update decls.
6361
6362 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
6363
6364         * doc/install.texi (Install GCC): Add links to build status pages.
6365         (Specific): Ditto.
6366         (Final install): Ditto; request updates for specific info
6367
6368 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
6369
6370         * cpperror.c (print_location):  Don't take a file name; use the
6371         line map instead.
6372         (_cpp_begin_message): Similarly.
6373         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
6374         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
6375         (cpp_pedwarn_with_file_and_line): Remove.
6376         * cppfiles.c (stack_include_file): Update; set filename to stdin
6377         here when appropriate.
6378         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
6379         (_cpp_begin_message): Don't take a file name.
6380         * cppinit.c: Add comment.
6381         * cpplex.c: Fix end-of-directive indicator.
6382         * cpplib.c: Don't include intl.h.
6383         (run_directive, do_diagnostic): Update.
6384         (do_line): Update to not use nominal_fname.
6385         (cpp_push_buffer): Don't take a filename.
6386         * cpplib.h (struct ht): Remove.
6387         (cpp_push_buffer): Don't take a filename.
6388         (cpp_pedwarn_with_file_and_line): Remove.
6389         * cppmacro.c (struct cpp_macro): Remove file.
6390         (builtin_macro): Update.
6391         (_cpp_create_definition): Update.
6392         * cppmain.c: Correct comment.
6393         * fix-header.c (read_scan_file): Update.
6394
6395 2001-08-17  Kazu Hirata  <kazu@hxi.com>
6396
6397         * sbitmap.c: Fix comment formatting.
6398         * sched-deps.c: Likewise.
6399         * sibcall.c: Likewise.
6400         * simplify-rtx.c: Likewise.
6401         * ssa.c: Likewise.
6402         * ssa-ccp.c: Likewise.
6403         * stor-layout.c: Likewise.
6404         * timevar.c: Likewise.
6405         * toplev.c: Likewise.
6406         * unwind-dw2.c: Likewise.
6407         * unwind-dw2-fde.c: Likewise.
6408         * varasm.c: Likewise.
6409
6410 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6411
6412         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
6413         or larger than an integer in memory.
6414
6415 2001-08-17  Zack Weinberg  <zackw@panix.com>
6416
6417         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
6418         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
6419         * rtl.h: Don't forward-declare union tree_node here.  Don't
6420         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
6421         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
6422         and tree respectively.
6423         * tree.h: Don't forward-declare struct rtx_def here.  Don't
6424         typedef tree here.  Change all uses of struct rtx_def *,
6425         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
6426         and tree respectively.
6427
6428 2001-08-17  Richard Henderson  <rth@redhat.com>
6429
6430         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
6431         config/mips/openbsd.h: Fix typos last change.
6432
6433 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6434
6435         * doc/invoke.texi (Optimize Options): The default for
6436         -finline-limit is 600.
6437
6438 2001-08-17  Richard Henderson  <rth@redhat.com>
6439
6440         * varasm.c (text_section): Allow TEXT_SECTION to override the
6441         printing of TEXT_SECTION_ASM_OP.
6442         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
6443         (DATA_SECTION, BSS_SECTION): Remove.
6444         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
6445         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
6446         Rename from s/_NAME//.
6447         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
6448         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
6449         (TEXT_SECTION): ... here.  New.
6450         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
6451         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
6452         * config/mips/openbsd.h: Likewise.
6453         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
6454         (mips_asm_file_end): Likewise test.
6455         (mips_output_function_epilogue): Likewise.  Switch back to data
6456         section after emitting the function.
6457
6458         * doc/tm.texi (Sections): Document TEXT_SECTION.
6459
6460 2001-08-17  Richard Henderson  <rth@redhat.com>
6461
6462         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
6463         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
6464
6465 2001-08-17  Richard Henderson  <rth@redhat.com>
6466
6467         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
6468         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
6469         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
6470         Add aligned attribute.
6471
6472 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
6473
6474         * config/sh/sh.md: Add modes to unspecs in first insn to match
6475         those in the second.
6476
6477         * Makefile.in: Fix collect2 copy for Cygwin.
6478
6479 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
6480
6481         Install the proper patch.
6482         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
6483         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
6484         (expand_function_start): Likewise.
6485         * stmt.c (expand_decl): Likewise.
6486         * varasm.c (make_decl_rtx): Likewise.
6487
6488 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
6489
6490         * final.c: Undo my previous accidental checkin.
6491         * output.h: Likewise.
6492         * tm.texi: Likewise.
6493
6494 2001-08-16  Richard Henderson  <rth@redhat.com>
6495
6496         * varasm.c (named_section_flags): Remove align parameter.
6497         * varasm.c, dwarf2out.c: Update all callers.
6498         * output.h: Update prototypes.
6499
6500         * target.h (target.asm_out.named_section): Remove align parameter.
6501         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
6502         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
6503         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
6504         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
6505         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
6506
6507         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
6508         (get_named_section_flags, set_named_section_flags): New.
6509         (named_section_flags): Use them.
6510         (named_section): Do decl vs section flags check here...
6511         (default_section_type_flags): ... not here.
6512         (init_varasm_once): Create in_named_htab.
6513         (resolve_unique_section): Mark reloc unused.
6514
6515 2001-08-16  Richard Henderson  <rth@redhat.com>
6516
6517         * varasm.c (force_const_mem): Keep pool alignment in bits.
6518         (output_constant_pool): Use assemble_align.
6519
6520 2001-08-16  Zack Weinberg  <zackw@panix.com>
6521
6522         * doc/tm.texi: Remove extra @table command.
6523
6524 2001-08-16  Zack Weinberg  <zackw@panix.com>
6525
6526         * final.c (shorten_branches): Clear the end of the label_align
6527         array only if we made it larger.  Break up messy expressions
6528         for clarity.
6529
6530         * diagnostic.c (internal_error): Check for error recursion
6531         before doing ICE suppression.
6532
6533         * timevar.c: Timing variables now count in milliseconds.
6534         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
6535         (get_time): Not here.
6536         (timevar_print): Don't print any timer whose user, cpu, and
6537         wall times are all zero as displayed.
6538         * timevar.h: Update comment aboout units.  Make timevar
6539         counters unsigned.
6540
6541 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
6542
6543         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
6544         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
6545         (expand_function_start): Likewise.
6546         * stmt.c (expand_decl): Likewise.
6547         * varasm.c (make_decl_rtx): Likewise.
6548
6549 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
6550
6551         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
6552         (finalize_record_size): Don't set TYPE_USER_ALIGN.
6553
6554 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6555
6556         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
6557         variables.
6558
6559 2001-08-16  Andreas Jaeger  <aj@suse.de>
6560
6561         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
6562         prototype.
6563
6564 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
6565
6566         * rtl.h (only_sets_cc0_p): New prototype.
6567         * jump.c (sets_cc0_p): Handle INSN.
6568         (only_sets_cc0_p): New function.
6569         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
6570         (tidy_fallthru_edge): Likewise.
6571         * integrate.c (copy_insn_list): Likewise.
6572         * unroll.c (unroll_loop): Likewise.
6573         (copy_loop_body): Likewise.
6574
6575 2001-08-15  Jason Eckhardt  <jle@redhat.com>
6576
6577         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
6578
6579 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
6580
6581         * predict.c (struct block_info_def): Remove nvisited.
6582         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
6583         (estimate_bb_frequencies): Call mark_dfs_back_edges.
6584
6585         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
6586         (ix86_adjust_cost): Teach scheduler that latency to load operand can
6587         be masked.
6588
6589 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
6590
6591         * predict.def: Update hitrates.
6592
6593 2001-08-15  Richard Henderson  <rth@redhat.com>
6594
6595         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
6596
6597 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
6598
6599         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
6600         note from its associated jump.
6601
6602 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
6603
6604         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
6605         also on 64-bit s390x targets.
6606
6607 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
6608
6609         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
6610         function.
6611         (arm_expand_prologue): Handled nested functions which take a
6612         variable argument list.
6613         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
6614         macro with an invocation of
6615         arm_compute_initial_elimination_offset.
6616         * config/arm/arm-protos.h: Prototype
6617         arm_compute_initial_elimination_offset.
6618
6619 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6620
6621         * doc/install.texi (Specific, avr): Fix markup.
6622         (Specific, c4x): Ditto.
6623
6624 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6625
6626         * predict.c (dump_prediction): Change `bool' parameter to `int'.
6627
6628 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
6629
6630         * Makefile.in (OBJS): Add rtl-error.o
6631         (rtl-error.o): New rule.
6632         (diagnostic.o): Adjust dependency.
6633         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
6634         error_for_asm, _fatal_insn, _fatal_insn_not_found,
6635         warning_for_asm): Move to...
6636         rtl-error.c: ...here.  New file.
6637
6638 2001-08-14  Richard Henderson  <rth@redhat.com>
6639
6640         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
6641         if USING_SJLJ_EXCEPTIONS.
6642
6643 2001-08-14  Steve Ellcey <sje@cup.hp.com>
6644
6645         * tlink.c (scan_linker_output): Check string for unsatisfied in
6646         addition to undefined and unresolved.
6647
6648 2001-08-14  Graham Stott  <grahams@redhat.com>
6649
6650         * libgcc2.c (*): Replace EH_FRAME_SECTION with
6651         EH_FRAME_SECTION_NAME.
6652
6653 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
6654
6655         * genattrtab.c (simplify_test_exp_in_temp): New function.
6656         (simplify_test_exp): Avoid explicit use of temporary obstack.
6657         (simplify_cond, insert_right_side, evaluate_eq_attr,
6658         simplify_and_tree, simplify_or_tree, eliminate_known_true):
6659         Use simplify_test_exp_in_temp.
6660         (optimize_attrs): Iterate until expression stabilizes.
6661
6662 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
6663
6664         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
6665         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
6666
6667 2001-08-13  Richard Henderson  <rth@redhat.com>
6668
6669         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
6670         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
6671         * config/arm/conix-elf.h: Likewise.
6672
6673 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
6674
6675         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
6676         in gcc.c.
6677         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
6678
6679         * gcse.c (hash_scan_set): Expressions that are set as part of
6680         jump instructions are not available.
6681
6682 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
6683
6684         * config/s390/s390.c (print_operand, s390_function_prologue,
6685         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
6686
6687 2001-08-13  Richard Henderson  <rth@redhat.com>
6688
6689         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
6690         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
6691         * doc/tm.texi (Exception Region Output): Document it.
6692
6693 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
6694
6695         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
6696         DWARF2 instead of stabs by default.
6697
6698 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
6699
6700         * config/rs6000/rs6000.c: Include optabs.h.
6701
6702 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
6703
6704         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
6705         save/restore routines.
6706         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
6707
6708 2001-08-13  Andreas Jaeger  <aj@suse.de>
6709
6710         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
6711         the english is correct.
6712
6713 2001-08-13  Zack Weinberg  <zackw@panix.com>
6714
6715         * expr.h: Split out optab- and libfunc-related code to...
6716         * optabs.h, libfuncs.h: ... these new headers.
6717
6718         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
6719         (OPTABS_H): New.
6720         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
6721         dependencies.
6722         * mkconfig.sh: Don't include insn-codes.h from config.h.
6723
6724         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
6725         enum insn_code is available.  Move reload_in_optab and
6726         reload_out_optab array declarations to optabs.h.
6727         * regmove.c (gen_add3_insn): Move to optabs.c, export from
6728         there, prototype in expr.h.
6729         * gencodes.c: Cleanup: zap global variables, don't use
6730         printf where puts will do, don't bother defining MAX_INSN_CODE
6731         which nothing uses, let CODE_FOR_nothing get its value implicitly.
6732
6733         * genemit.c, genopinit.c: Include optabs.h in generated file.
6734         * genoutput.c: Include insn-codes.h in generated file.
6735         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
6736         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
6737         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
6738         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
6739         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
6740         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
6741         Include optabs.h.
6742         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
6743         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
6744         config/m88k/m88k.c, config/sparc/sparc.c:
6745         Include libfuncs.h.
6746         * reload.c: Include expr.h and optabs.h before reload.h.
6747         * config/alpha/alpha.c: Include tree.h before reload.h.
6748         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
6749         and reload.h in that order.
6750         * config/sparc/sparc.c: Include debug.h.
6751         * recog.c: Include insn-codes.h.
6752
6753 2001-08-13  Andreas Jaeger  <aj@suse.de>
6754
6755         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
6756         s390*linux.
6757
6758 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
6759
6760         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
6761         * gcc.c (init_spec): Fix typo in comment.
6762         * varasm.c (data_section): Fix typo in comment.
6763
6764 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
6765
6766         * predict.c (dump_prediction): New argument "USED".
6767         (combine_predictions_for_insn): Determine the used heuristics,
6768         output the case no heuristic applied.
6769         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
6770
6771 2001-08-13  Andreas Jaeger  <aj@suse.de>
6772
6773         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
6774         register %rip.
6775
6776 2001-08-13  Kazu Hirata  <kazu@hxi.com>
6777
6778         * jump.c: Fix formatting.
6779
6780 2001-08-13  Kazu Hirata  <kazu@hxi.com>
6781
6782         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
6783         length.
6784
6785 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
6786
6787         * loop.c (check_dbra_loop): Use condjump_label to compute
6788         jump_label.
6789
6790         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
6791         to better document the files they're in.
6792
6793 2001-08-12  Zack Weinberg  <zackw@panix.com>
6794
6795         * recog.h (struct insn_operand_data): Shrink 'mode' field
6796         to 16 bits.
6797
6798 2001-08-12  Kazu Hirata  <kazu@hxi.com>
6799
6800         * gcc.c: Fix comment formatting.
6801         * gccspec.c: Likewise.
6802         * gcov.c: Likewise.
6803         * gcse.c: Likewise.
6804         * genemit.c: Likewise.
6805         * gengenrtl.c: Likewise.
6806         * genrecog.c: Likewise.
6807         * gensupport.c: Likewise.
6808         * ggc-page.c: Likewise.
6809         * global.c: Likewise.
6810         * graph.c: Likewise.
6811         * ifcvt.c: Likewise.
6812         * integrate.c: Likewise.
6813         * lcm.c: Likewise.
6814         * libgcc2.c: Likewise.
6815         * loop.c: Likewise.
6816         * mbchar.c: Likewise.
6817         * optabs.c: Likewise.
6818         * predict.c: Likewise.
6819         * prefix.c: Likewise.
6820         * profile.c: Likewise.
6821         * protoize.c: Likewise.
6822         * real.c: Likewise.
6823         * recog.c: Likewise.
6824         * regclass.c: Likewise.
6825         * regmove.c: Likewise.
6826         * reg-stack.c: Likewise.
6827         * reload1.c: Likewise.
6828         * resource.c: Likewise.
6829         * rtlanal.c: Likewise.
6830         * rtl.c: Likewise.
6831
6832 2001-08-12  Kazu Hirata  <kazu@hxi.com>
6833
6834         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
6835         a tree representing a constant is passed to the macro.
6836
6837 2001-08-12  Richard Henderson  <rth@redhat.com>
6838
6839         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
6840         (rs6000_elf_asm_out_destructor): New.
6841         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
6842         (DTORS_SECTION_ASM_OP): Remove.
6843         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
6844         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
6845
6846 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
6847
6848         Revert:
6849         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6850         * gcc.c (set_collect_gcc_options): New function, split out from
6851         main.
6852         Ignore elided switches.
6853         (do_spec_1): Invoke before executing command.
6854         (set_input): Export.
6855         Move declaration ...
6856         * gcc.h (set_input): ... here.
6857         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
6858         file.
6859
6860 2001-08-12  Richard Henderson  <rth@redhat.com>
6861
6862         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
6863         thinko wrt TARGET_RELOCATABLE.
6864
6865 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
6866
6867         * fix-header.c (cb_file_change): Update prototype.
6868
6869 2001-08-11  Zack Weinberg  <zackw@panix.com>
6870
6871         * toplev.c (set_float_handler): Make static.
6872         * toplev.h: Don't prototype set_float_handler.
6873
6874         * simplify-rtx.c: Don't include setjmp.h.
6875         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
6876         New functions.
6877         (simplify_unary_operation, simplify_binary_operation): Use them,
6878         via do_float_handler.
6879
6880         * fold-const.c: Don't include setjmp.h.
6881         (exact_real_inverse_1): New function.
6882         (exact_real_inverse): Use it, via do_float_handler.
6883
6884         * varasm.c: Don't include setjmp.h.
6885         (assemble_real_1): New function.
6886         (assemble_real): Use it, via do_float_handler.
6887         Call internal_error if we get a trap here.
6888
6889         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
6890         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
6891
6892 2001-08-11  Zack Weinberg  <zackw@panix.com>
6893
6894         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
6895         STACK_BOUNDARY if not already defined.
6896
6897         * calls.c, function.c, reload1.c, explow.c: Don't default
6898         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
6899         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
6900
6901         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
6902         to run-time test.
6903
6904         * doc/tm.texi: Document that STACK_BOUNDARY is required;
6905         clarify difference between it and PREFERRED_STACK_BOUNDARY.
6906
6907 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6908
6909         * cppmacro.c (enter_macro_context): Push macro expansions even
6910         if empty.
6911
6912 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6913
6914         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
6915         (rs6000_elf_section_type_flags): Actually return a value.
6916
6917 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
6918
6919         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
6920         Clean up code: add missing comments and prototypes, fix warnings,
6921         remove obsolete code, fix spacing to conform to coding style.
6922
6923 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
6924
6925         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
6926         and TARGET_ASM_CLOSE_PAREN.
6927         (regclass_map): CC register belongs to class NO_REGS.
6928         (legitimize_pic_address): Don't generate unnecessary moves
6929         (to avoid confusing loop optimization).
6930         (check_and_change_labels): Replace jump_long by indirect_jump.
6931         (s390_final_chunkify): Don't start a new literal pool on section
6932         switch in 64-bit code.
6933         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
6934
6935         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
6936         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
6937         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
6938         modes correctly.
6939         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
6940         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
6941         (CONST_COSTS): Fixed incorrect costs.
6942
6943         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
6944         Use emit_jump instead of emit_jump_insn (gen_jump).
6945         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
6946         (to avoid confusing flow analysis).
6947         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
6948         (casesi, casesi_jump): New.
6949         (jump_long): Removed.  Functionality merged into indirect_jump.
6950         (indirect_jump): Accept address_operand, not just register_operand.
6951         (cjump_long, icjump_long): Use same logic as indirect_jump.
6952         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
6953         Fixed broken setjmp/longjmp handling.
6954         (do_builtin_setjmp_setup): Removed.
6955
6956         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
6957         broken GNU as versions that don't accept .quad with large
6958         negative values.  Use hexadecimal output instead.
6959         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
6960         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
6961         FUNCTION_EPILOGUE): Removed.  Now in targetm.
6962
6963         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
6964
6965         * config/s390/fixdfdi.h: Add missing copyright statement.
6966         Fix type conflicts on 64-bit.  Add missing SFmode routines.
6967
6968         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
6969         email address.
6970
6971 2001-08-11  Richard Henderson  <rth@redhat.com>
6972
6973         * rtl.h (REG_EH_RETHROW): Remove.
6974         * rtl.c (reg_note_name): Update.
6975         * combine.c (distribute_notes): Don't check for it.
6976
6977 2001-08-11  Richard Henderson  <rth@redhat.com>
6978
6979         * combine.c (distribute_notes): Place REG_SETJMP.
6980
6981 2001-08-11  Richard Henderson  <rth@redhat.com>
6982
6983         * doc/extend.texi (Arrays and pointers implementation): Discourage
6984         relying on sign-extension of pointers.
6985
6986 2001-08-11  H.J. Lu <hjl@gnu.org>
6987
6988         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
6989         in_dtors.
6990         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
6991         RDATA_SECTION_ASM_OP.
6992
6993 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6994
6995         * doc/install.texi (Specific, c4x): Fix cross-reference to the
6996         main manual to work both for info and HTML versions.
6997
6998 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6999             Matt Kraai <kraai@alumni.carnegiemellon.edu>
7000
7001         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
7002         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
7003         (struct cpp_pool): New member first.
7004         * cppinit.c (append_include_chain): Plug memory leaks.
7005         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
7006         Allocate pragma structures from the (aligned) macro pool to
7007         avoid leaking memory.
7008         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
7009         so we don't leak memory.
7010         * hashtable.c (ht_destroy): New.
7011         * hashtable.h (ht_destroy): New.
7012
7013 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
7014             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7015
7016         * c-lex.c (map): Make const.
7017         (cb_file_change): Update for callback passing a line map.
7018         Don't assume we have a previous map.  Remove sanity check
7019         about popping too many files.
7020         * cpperror.c (print_location): Make map const.
7021         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
7022         (cpp_make_system_header): Similarly.
7023         (search_from): Similarly.
7024         (_cpp_execute_include): Don't remember where we came from.
7025         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
7026         (struct cpp_reader): Make map const.
7027         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
7028         * cpplib.c (do_line): Update; line maps now hold sysp.
7029         (cpp_push_buffer): Similarly.
7030         (_cpp_do_file_change): Similarly; callback with map instead.
7031         (cpp_get_line_maps): Constify return value.
7032         (_cpp_pop_buffer): Update.
7033         * cpplib.h (struct cpp_file_change): Remove.
7034         (struct cpp_callbacks): Update.
7035         (cpp_get_line_maps): Constify return value.
7036         * cppmacro.c (_cpp_create_definition): Update.
7037         * cppmain.c (struct printer): Constify map.
7038         (maybe_print_line): Similarly.
7039         (print_line): Similarly.  Deduce flags 1 and 2 here.
7040         (cb_file_change): Update.
7041         * line-map.c (free_line_maps): Warn regardless.
7042         (add_line_map): Return pointer to const.  When passed NULL to_file
7043         with LC_LEAVE, use the obvious values for the return point so the
7044         caller doesn't have to figure them out.
7045         (lookup_line): Return pointer to const.
7046         (print_containing_files): Take pointer to const.
7047         * line-map.h (struct line_map): New members reason, sysp.
7048         (add_line_map): Return pointer to const.
7049         (lookup_line): Similarly.
7050         (print_containing_files): Take pointer to const.
7051
7052 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
7053             Richard Henderson  <rth@redhat.com>
7054
7055         * regmove.c (regmove_optimize): Avoid setting a register twice in
7056         a parallel set.
7057
7058 2001-08-10  Richard Henderson  <rth@redhat.com>
7059
7060         * doc/extend.texi (Arrays and pointers implementation): Document
7061         behavior of pointer/integer conversion.
7062
7063 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
7064
7065         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
7066
7067 2001-08-10  Richard Henderson  <rth@redhat.com>
7068
7069         * doc/extend.texi (C Implementation): New chapter.
7070         * doc/gcc.texi (Top): Link it in.
7071
7072 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
7073
7074         * doc/install.texi (Specific): Fix CVS merge botch.
7075
7076 2001-08-10  Richard Henderson  <rth@redhat.com>
7077
7078         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
7079         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
7080
7081 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
7082
7083         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
7084         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
7085         this macro is now required.
7086
7087         * cselib.c (cselib_process_insn), flow.c (propagate_block),
7088         loop.c (find_and_verify_loops), reload.c (reload): Check
7089         for rtx code of CALL_INSN, not CALL, when deciding if we
7090         need to check for REG_SETJMP note.
7091
7092         * gcse.c (compute_hash_table, compute_store_table): Update
7093         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
7094         logic.
7095
7096         * config/avr/avr.c: Fix typo.
7097         * config/convex/convex.c (expand_movstr): Use adjust_address.
7098         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
7099         variable.
7100         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
7101         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
7102         Fix typo.
7103         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
7104         Do define STACK_BOUNDARY.
7105         * config/i370/i370.c: Include expr.h.
7106         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
7107         config/pa/som.h, config/v850/v850.h: Take in_ctors and
7108         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
7109         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
7110         * config/m88k/m88k.c: Include c-tree.h after expr.h.
7111         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
7112         * config/romp/romp.c: Include expr.h after tree.h.
7113         Include toplev.h.
7114         (output_fpop): Use xmalloc, not oballoc.
7115         * config/we32k/we32k.c: Include expr.h.
7116
7117 2001-08-10  Kazu Hirata  <kazu@hxi.com>
7118
7119         * config/h8300/h8300.h: Fix formatting.
7120
7121 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
7122
7123         * c-common.h (RETURN_NULLIFIED_P): Lose.
7124         * c-semantics.c (genrtl_return_stmt): Don't check it.
7125
7126 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
7127
7128         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
7129         (mips_annotate_frame_insn): New function.
7130         (mips_emit_frame_related_store): New function.
7131         (save_restore_insns): Don't mark instructions that set up the base
7132         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
7133         the store instructions instead.
7134         (mips_expand_prologue): If the stack size is moved into a temporary
7135         register, do not mark that move as frame-related.  Add a
7136         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
7137
7138 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
7139
7140         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
7141         stack slot as unchanging if current_function_calls_eh_return.
7142
7143 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
7144
7145         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
7146         access the second half of the TFmode scratch operand.
7147
7148 2001-08-10  Anthony Green  <green@redhat.com>
7149
7150         * java/class.c (emit_register_classes): Conditionalize code on
7151         JCR_SECTION_NAME.
7152
7153 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7154
7155         * doc/install.texi (Specific, avr): Fix cross-reference to the
7156         main manual to work both for info and HTML versions.
7157
7158 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7159
7160         * stmt.c (expand_null_return_1): Remove code to generate simple returns
7161         and "use_goto" argument.
7162         (expand_null_return, expand_value_return): Update all callers.
7163         * function.c (expand_function_end): Remove code to generate simple
7164         return.
7165         * config/vax/vax.md (epilogue): New expander for function return.
7166         * doc/md.texi (epilogue): Remove "if defined".
7167
7168 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
7169
7170         * Makefile.in: Partially revert my previous change:
7171         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
7172         of the hashtab.o and safe-ctype.o rules.
7173
7174 2001-08-09  Richard Henderson  <rth@redhat.com>
7175
7176         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
7177         (USE_COLLECT2): Remove duplicate definition.
7178         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
7179         (use_collect2): Remove dead code.
7180         * configure.in (use_collect2): Remove will_use_collect2 and
7181         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
7182         * configure: Rebuild.
7183
7184         * target.h (targetm.asm_out.constructor): New.
7185         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
7186         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
7187         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
7188         * varasm.c (in_ctors, in_dtors): New.
7189         (assemble_constructor, assemble_destructor): Remove.
7190         (default_stabs_asm_out_destructor): New.
7191         (default_named_section_asm_out_destructor): New.
7192         (dtors_section, default_dtor_section_asm_out_destructor): New.
7193         (default_stabs_asm_out_constructor): New.
7194         (default_named_section_asm_out_constructor): New.
7195         (ctors_section, default_ctor_section_asm_out_constructor): New.
7196         * output.h: Update declarations.
7197         * c-decl.c (c_expand_body): Use target hooks instead of
7198         assemble_constructor and assemble_destructor.
7199         * profile.c (output_func_start_profiler): Likewise.
7200         * objc/objc-act.c (finish_objc): Likewise.
7201         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
7202         for the constructor.
7203         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
7204
7205         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
7206         (DTORS_SECTION_ASM_OP): Likewise.
7207         (__CTOR_LIST__): Use attribute section when possible.
7208         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
7209
7210         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
7211         ASM_OUTPUT_CONSTRUCTOR.
7212
7213         * config/darwin.c (machopic_asm_out_constructor): New.
7214         (machopic_asm_out_destructor): New.
7215         * config/darwin-protos.h: Update declarations.
7216         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7217         (ASM_OUTPUT_DESTRUCTOR): Remove.
7218         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7219         * config/nextstep.c (nextstep_asm_out_constructor): New.
7220         (nextstep_asm_out_destructor): New.
7221         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7222         (ASM_OUTPUT_DESTRUCTOR): Remove.
7223         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7224         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
7225         ASM_OUTPUT_*STRUCTOR.
7226         * config/i386/aix386ng.h: Likewise.
7227
7228         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
7229         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
7230         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
7231         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7232         * config/lynx.h: Likewise.
7233         * config/netware.h: Likewise.
7234         * config/psos.h: Likewise.
7235         * config/alpha/alpha-interix.h: Likewise.
7236         * config/alpha/elf.h: Likewise.
7237         * config/arc/arc.h: Likewise.
7238         * config/arm/aof.h: Likewise.
7239         * config/arm/coff.h: Likewise.
7240         * config/arm/elf.h: Likewise.
7241         * config/c4x/c4x.h: Likewise.
7242         * config/h8300/h8300.h: Likewise.
7243         * config/i386/cygwin.h: Likewise.
7244         * config/i386/djgpp.h: Likewise.
7245         * config/i386/i386-coff.h: Likewise.
7246         * config/i386/i386-interix.h: Likewise.
7247         * config/i386/sco5.h: Likewise.
7248         * config/i386/vsta.h: Likewise.
7249         * config/i386/win32.h: Likewise.
7250         * config/i960/i960-coff.h: Likewise.
7251         * config/ia64/sysv4.h: Likewise.
7252         * config/m68hc11/m68hc11.h: Likewise.
7253         * config/m68k/coff.h: Likewise.
7254         * config/m68k/mot3300.h: Likewise.
7255         * config/m88k/m88k.h: Likewise.
7256         * config/mcore/mcore-pe.h: Likewise.
7257         * config/mcore/mcore.h: Likewise.
7258         * config/mips/elf.h: Likewise.
7259         * config/mips/elf64.h: Likewise.
7260         * config/mips/iris6.h: Likewise.
7261         * config/pa/pa64-hpux.h: Likewise.
7262         * config/rs6000/sysv4.h: Likewise.
7263         * config/sh/sh.h: Likewise.
7264         * config/sparc/litecoff.h: Likewise.
7265
7266         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
7267         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
7268         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7269         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7270         (ASM_OUTPUT_DESTRUCTOR): Remove.
7271         * config/a29k/a29k.c: Move include of tree.h.
7272         * config/a29k/udi.h: Delete file.
7273         * config/alpha/alpha.c (vms_asm_out_constructor): New.
7274         (vms_asm_out_destructor): New.
7275         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
7276         (EXTRA_SECTION_FUNCTIONS): Likewise.
7277         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7278         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7279         * config/c4x/c4x.c: Move include of tree.h.
7280         * config/clipper/clipper.c (clix_asm_out_constructor): New.
7281         (clix_asm_out_destructor): New.
7282         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7283         (ASM_OUTPUT_DESTRUCTOR): Remove.
7284         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7285         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7286         (TARGET_ASM_CONSTRUCTOR): New.
7287         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
7288         (sco_asm_out_constructor): New.
7289         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
7290         * config/i386/svr3gas.h: Remove stack grows up code.
7291         Remove code duplicated from i386/sysv3.h.
7292         (TARGET_ASM_CONSTRUCTOR): New.
7293         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
7294         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
7295         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7296         (TARGET_ASM_CONSTRUCTOR): New.
7297         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
7298         (m68hc11_asm_out_destructor): New.
7299         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
7300         (TARGET_ASM_DESTRUCTOR): New.
7301         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
7302         * config/m68k/dpx2.h: Properly undef all the bits inherited from
7303         config/svr3.h pertaining to section manipulation.
7304         * config/m68k/dpx2g.h: Remove #if 0 code.
7305         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
7306         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
7307         (ASM_OUTPUT_CONSTRUCTOR): Remove.
7308         (TARGET_ASM_CONSTRUCTOR): New.
7309         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
7310         (m88k_svr3_asm_out_constructor): New.
7311         (m88k_svr3_asm_out_destructor): New.
7312         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7313         (ASM_OUTPUT_DESTRUCTOR): Remove.
7314         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7315         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
7316         * config/rs6000/aix.h: Likewise.
7317         * config/mips/rtems64.h: Don't undef removed constructor related bits.
7318         * config/mips/vxworks.h: Likewise.
7319         * config/rs6000/lynx.h: Likewise.
7320         * config/sh/elf.h: Likewise.
7321         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
7322         (DTORS_SECTION_ASM_OP): New.
7323         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7324         (ASM_OUTPUT_DESTRUCTOR): Remove.
7325         * config/sparc/sol2-sld-64.h: Likewise.
7326         * config/vax/vax.c (vms_asm_out_constructor): New.
7327         (vms_asm_out_destructor): New.
7328         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
7329         (ASM_OUTPUT_DESTRUCTOR): Remove.
7330         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
7331
7332         * doc/tm.texi (@node Initialization): Update.
7333
7334 2001-08-09  Richard Henderson  <rth@redhat.com>
7335
7336         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
7337         (__do_global_dtors_aux): Use gp-relative static data to avoid
7338         one dynamic relocation.
7339         (__do_frame_setup): Register Java classes.
7340         * config/alpha/crtend.asm (__JCR_END__): New.
7341
7342 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
7343
7344         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
7345         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
7346         (GEN, STAGESTUFF): Add new files.
7347         (insn-constants.h, s-constants, tm-preds.h, s-preds,
7348         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
7349         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
7350         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
7351         as well as insn-codes.h and insn-flags.h in config.h; and no
7352         extra headers in tconfig.h and hconfig.h.
7353
7354         * gencodes.c: Eliminate code to generate predicate declarations
7355         or #defines for md-file constants.
7356         * genconstants.c, genpreds.c: New files.
7357
7358         * i386.md: Re-order guard expressions such that TARGET_64BIT
7359         comes first, when this permits better optimization.  Add
7360         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
7361         why this is desirable.
7362
7363 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
7364
7365         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
7366         (find_fde_for_dso): Remove.
7367         (_Unwind_IteratePhdrCallback): New.
7368         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
7369         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
7370
7371 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7372
7373         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
7374         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
7375
7376 2001-08-09  Graham Stott  <grahams@redhat.com>
7377
7378         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
7379         (vis_no_unit): Use it.
7380         (visualize_no_unit): Add the insn only if room exists.
7381
7382 2001-08-09  Graham Stott  <grahams@redhat.com>
7383
7384         * predict.c (estimate_probability): Replace magic numbers with
7385         appropriate enumeration.
7386
7387 2001-08-09  Graham Stott  <grahams@redhat.com>
7388
7389         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
7390         parameter.
7391         (EXTRACT_FLAGS): Likewise.
7392
7393 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
7394
7395         * config/mips/mips.c    (mips_legitimate_address_p): Check for
7396         CONST_INT in last patch.
7397
7398 2001-08-08  Anthony Green  <green@redhat.com>
7399
7400         * java/class.c (emit_register_classes): Use assemble_jcr if
7401         possible.  Keep the original mechanism as a fallback.
7402         * defaults.h (JCR_SECTION_NAME): Define if we have named section
7403         and weak symbol support.
7404         * crtstuff.c (__JCR_LIST__): Define.
7405         (__JCR_END__): Define.
7406         (_Jv_RegiserClasses): Define weak symbol if possible.
7407         (__do_global_ctors_aux): Register classes for ELF targets with
7408         weak symbol support.
7409
7410 2001-08-08  Kazu Hirata  <kazu@hxi.com>
7411
7412         * dbxout.c: Fix comment formatting.
7413         * dependence.c: Likewise.
7414         * df.c: Likewise.
7415         * diagnostic.c: Likewise.
7416         * dominance.c: Likewise.
7417         * doprint.c: Likewise.
7418         * dwarf2out.c: Likewise.
7419         * dwarfout.c: Likewise.
7420         * emit-rtl.c: Likewise.
7421         * except.c: Likewise.
7422         * explow.c: Likewise.
7423         * expmed.c: Likewise.
7424         * expr.c: Likewise.
7425         * flow.c: Likewise.
7426         * fold-const.c: Likewise.
7427         * function.c: Likewise.
7428
7429 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7430
7431         * global.c (retry_global_alloc): Avoid shadowing allocno.
7432
7433 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
7434
7435         * except.c (remove_fixup_regions): Fix typo.
7436
7437 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
7438
7439         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
7440         unsigned HOST_WIDE_INT to avoid warning.
7441         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
7442         * flow.c (set_block_for_new_insns): Likewise.
7443
7444 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
7445
7446         * sibcall.c (return_value_pseudo): New static variable.
7447         (skip_copy_to_return_value): Handle return_value_pseudo.
7448         (call_ends_block_p): Ensure that return_value_pseudo is set.
7449         (optimize_sibling_and_tail_recursive_call): Discover the
7450         load of pseudo return value in alternate exit block.
7451
7452 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
7453
7454         * calls.c (ECF_ALWAYS_RETURN): New constant.
7455         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
7456         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
7457         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
7458         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
7459         * rtl.c (reg_note_name): New name.
7460         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
7461
7462 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
7463
7464         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
7465
7466 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
7467
7468         * alias.c (get_alias_set): Return a previously calculated
7469         alias set for a VAR_DECL.
7470         * function.c (gen_mem_addressof): Calculate the alias set before
7471         touching the RTL.
7472
7473 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
7474
7475         * predict.def: Set hitrates according our experimental run.
7476
7477 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
7478
7479         * i386.h (HARD_REGNO_RENAME_OK): New macro.
7480
7481 2001-08-08  H.J. Lu <hjl@gnu.org>
7482
7483         * config/mips/mips.c (mips_unique_section): New. Copied from
7484         config/mips/elf.h.
7485
7486         * config/mips/mips-protos.h (mips_unique_section): New
7487         prototype.
7488
7489         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
7490
7491         * config/mips/little.h: New. Generic little endian mips
7492         targets. Only mips*-*-linux* is converted to use it so far.
7493
7494         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
7495         (WCHAR_TYPE): Defined
7496         (WCHAR_TYPE_SIZE): Likewise.
7497         (INIT_SUBTARGET_OPTABS): Likewise.
7498         (BSS_SECTION_ASM_OP): Likewise.
7499         (SBSS_SECTION_ASM_OP): Likewise.
7500         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7501         (ASM_DECLARE_OBJECT_NAME): Likewise.
7502         (UNIQUE_SECTION): Likewise.
7503         (EXTRA_SECTIONS): Likewise.
7504         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
7505         (ASM_OUTPUT_DESTRUCTOR): Likewise.
7506         (ASM_OUTPUT_DEF): Likewise.
7507         (HANDLE_SYSV_PRAGMA): Removed.
7508         (NO_IMPLICIT_EXTERN_C): Likewise.
7509         (TARGET_MEM_FUNCTIONS): Likewise.
7510         (STARTFILE_SPEC): Likewise.
7511         (ENDFILE_SPEC): Likewise.
7512         (LIB_SPEC): Likewise.
7513         (INVOKE__main): Likewise.
7514         (CTOR_LIST_BEGIN): Likewise.
7515         (CTOR_LIST_END): Likewise.
7516         (DTOR_LIST_BEGIN): Likewise.
7517         (DTOR_LIST_END): Likewise.
7518         (SET_ASM_OP): Likewise.
7519         (ASM_OUTPUT_SOURCE_LINE): Likewise.
7520         (ASM_OUTPUT_DEF): Likewise.
7521         (ASM_OUTPUT_IDENT): Likewise.
7522
7523         * config/mips/mips.h (ASM_SPEC): Undefine before define.
7524         (CPLUSPLUS_CPP_SPEC): Likewise.
7525         (ASM_APP_ON) Redefine only if not defined.
7526         (ASM_APP_OFF): Likewise.
7527         (ASM_OUTPUT_SOURCE_LINE): Likewise.
7528         (ASM_OUTPUT_IDENT): Likewise.
7529
7530         * config.gcc: Update tm_file for Linux/mips.
7531
7532 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
7533
7534         * cselib.c (cselib_record_sets): If insn is predicated, turn
7535         sources into IF_THEN_ELSEs.
7536
7537         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
7538         Turn into define_insn_and_split.
7539
7540         * sched-deps.c: Include "cselib.h".
7541         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
7542         Use cselib to turn memory addresses into VALUEs.
7543         (sched_analyze): Call cselib_init/cselib_finish if necessary.
7544         * sched-int.h (struct sched_info): New member USE_CSELIB.
7545         * sched-ebb.c (ebb_sched_info): Initialize it.
7546         * sched-rgn.c (rgn_sched_info): Likewise.
7547         * Makefile.in (sched-deps.o): Update dependencies.
7548
7549         * cselib.h (cselib_subst_to_values): Declare.
7550         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
7551         that have no value and autoincs to be handled by generating a new
7552         dummy value.
7553
7554 2001-08-08  Graham Stott  <grahams@redhat.com>
7555
7556         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
7557         within fixed length SEQUENCE.
7558
7559 2001-08-08  Graham Stott  <grahams@redhat.com>
7560
7561         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
7562         (diagnostic_prefixing_rule): Likewise.
7563         (diagnostic_line_cutoff): Likewise.
7564         (diagnostic_kind_count): Likewise.
7565
7566 2001-08-08  Graham Stott  <grahams@redhat.com>
7567
7568         * alias.c (find_base_decl): Delete redundent assignment.
7569
7570 2001-08-08  Graham Stott  <grahams@redhat.com>
7571
7572         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
7573         (abs): Uppercase and paranthesize macro parameter.
7574         (MEM_DEPENDENCY): Add whitespace.
7575
7576 2001-08-08  Graham Stott  <grahams@redhat.com>
7577
7578         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
7579         failure check for CONST_INT
7580
7581 2001-08-08  Graham Stott  <grahams@redhat.com>
7582
7583         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
7584         (libcall_dead_p): Likewise.
7585
7586         (mark_used_regs): Constify fmt.
7587         (find_use_as_address): Likewise.
7588
7589 2001-08-08  Graham Stott  <grahams@redhat.com>
7590
7591         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
7592          parameter.
7593
7594 2001-08-08  Graham Stott  <grahams@redhat.com>
7595
7596         * combine.c (combine_simplify_rtx): Update comment and
7597         remove erroneous test.
7598
7599 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7600
7601         * cppinit.c (cpp_finish): Pop the final buffer without comment.
7602         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
7603         take care to avoid multiple no-newline at EOF warnings in that
7604         case.
7605
7606 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
7607
7608         * calls.c (expand_call): Do not emit INSN_SETJMP note.
7609         (emit_library_call_value_1): Likewise.
7610         (emit_call_1): Emit REG_SETJMP note.
7611         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
7612         of INSN_SETJMP
7613         * cselib.c (cselib_process_insn): Likewise.
7614         * flow.c (propagate_block): Likewise.
7615         * loop.c (find_and_verify_loops): Likewise.
7616         * reload.c (find_equiv_regs): Likewise.
7617         * reload1.c (reload): Likewise.
7618         * resource.c (mark_referenced_resources,
7619         mark_set_resources): Likewise.
7620         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
7621         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
7622         * haifa-sched.c (unlink_other_notes): Likewise.
7623         (reemit_notes): Likewise.
7624         * sched-ebb.c (sched_ebb): Likewise.
7625         * sched-rgc.c (sched_region): Likewise.
7626         * rtl.c (note_insn_name): Likewise.
7627         (reg_note_name): Add REG_SETJMP
7628         * rtl.h (reg_note): Add REG_SETJMP.
7629         (insn_note): Remove NOTE_INSN_SETJMP.
7630
7631         * profile.c (branch_prob): Add fake edges for setjmp.
7632
7633 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
7634
7635         * config.gcc: Quote target_cpu_default2 correctly for
7636         powerpc*-*-* targets.
7637
7638 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7639
7640         * cpplib.h, line-map.h: Update comments.
7641         * cppmain.c (printer_init): Move inline.
7642         (maybe_print_line, print_line): Take a map pointer.
7643         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
7644         (cb_file_change): Don't use prior value of print.map.
7645
7646 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
7647
7648         * doc/install.texi: Document fine-grained multilib configuration.
7649
7650 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
7651
7652         * rtlanal.c (find_first_parameter_load): Call note_stores
7653         only on the instructions.
7654
7655 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
7656
7657         * alias.c (nonlocal_mentioned_p):
7658         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
7659         * calls.c (emit_call_1): Likewise.
7660         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
7661         * cselib.c (cselib_process_insn): Likewise.
7662         * df.c (df_insns_modify): Likewise.
7663         * flow.c (need_fake_edge_p): Likewise.
7664         (propagate_one_insn): Likewise.
7665         * haifa-sched.c (reemit_notes): Likewise.
7666         * integrate.c (copy_insn_list): Likewise.
7667         * jump.c (delete_prior_computation): Likewise.
7668         * local-alloc.c (validate_equiv_mem): Likewise.
7669         * loop.c (scan_loop): Likewise.
7670         * predict.c (estimate_probability): Likewise.
7671         * reload.c (reload): Likewise.
7672         * sched-deps (sched_analyze): Likewise.
7673         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
7674         * gcse.c (compute_hash_table): Likewise.
7675         (mark_call): Likewise.
7676         (store_killed_in_insn): Likewise.
7677
7678 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
7679
7680         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
7681
7682 2001-08-06  Richard Henderson  <rth@redhat.com>
7683
7684         * varasm.c (assemble_gc_entry): Remove.
7685         * output.h: Likewise.
7686
7687 2001-08-06  Richard Henderson  <rth@redhat.com>
7688
7689         * varasm.c (assemble_constructor): Take a symbol_ref and a
7690         priority instead of a bare string.  Move priority handling
7691         here from cp/decl2.c.
7692         * output.h: Update decls.
7693
7694         * c-decl.c (c_expand_body): Update calls to assemble_constructor
7695         and assemble_destructor.
7696         * profile.c (output_func_start_profiler): Likewise.
7697         * objc/objc-act.c (finish_objc): Likewise.
7698         (build_module_descriptor): Return the symbol not the symbol name.
7699
7700 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
7701
7702         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
7703         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
7704         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
7705         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
7706         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
7707         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
7708
7709 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7710
7711         * cpperror.c (print_containing_files): Moved to line-map.c.
7712         (print_location): line-map.c handles re-listing or otherwise.
7713         * cpphash.h (struct lexer_state): Remove next_bol.
7714         (struct cpp_buffer): Remove include_stack_listed.
7715         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
7716         Remove faked buffer handling.
7717         (_cpp_do_file_change): Tweak.
7718         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
7719         * cppmain.c (struct printer): Remove filename.
7720         (print_line, cb_file_change): Update accordingly.
7721         * line-map.c: Include intl.h.
7722         (init_line_maps): Initialize last_listed.
7723         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
7724         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
7725         (print_containing_files): New.
7726         * line-map.h (struct line_maps): New member last_listed.
7727         (print_containing_files, INCLUDED_FROM): New.
7728         * Makefile.in: Update.
7729         * po/POTFILES.in: Add line-map.c.
7730
7731 2001-08-06  Richard Henderson  <rth@redhat.com>
7732
7733         * except.c (convert_from_eh_region_ranges_1): Never mark
7734         USE or CLOBBER insns as throwing.
7735
7736         * expr.c (store_constructor): Don't clobber memory targets.
7737
7738 2001-08-06  Andreas Jaeger  <aj@suse.de>
7739
7740         * profile.c (branch_prob): Remove unused variable insn.
7741
7742         * Makefile.in (local-alloc.o): Add dependency on except.h.
7743
7744         * local-alloc.c: Include except.h for can_throw_internal prototype.
7745
7746 2001-08-06  Richard Henderson  <rth@redhat.com>
7747
7748         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
7749         * function.c (expand_main_function): Implement it.
7750         * doc/tm.texi: Document it.
7751
7752 2001-08-06  Stan Shebs  <shebs@apple.com>
7753
7754         * doc/install.texi: Document powerpc-*-darwin* details.
7755
7756 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
7757
7758         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
7759         (ASM_CPU_SPEC): Move back to rs6000.h
7760         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
7761
7762         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
7763
7764         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
7765         readded.
7766
7767         * config/rs6000/linux64.h: Ditto.
7768
7769         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
7770         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
7771         nothing.
7772
7773         Remove accidently readded definitions of FUNCTION_PROLOGUE,
7774         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
7775
7776         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
7777         to rs6000.h
7778
7779 2001-08-05  Richard Henderson  <rth@redhat.com>
7780
7781         * local-alloc.c (update_equiv_regs): Do not move insns that
7782         can throw.
7783
7784 2001-08-05  Jan Hubicka  <jh@suse.cz>
7785
7786         * Makefile.in (reload1.o): Add dedendancy on except.h
7787         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
7788         prototypes.
7789         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
7790         indicating wehther edges has been cleaned up.
7791         * reload1.c: Inlucde except.h
7792         (fixup_abnormal_edges): Accept deleted insns.
7793         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
7794         after combine.
7795
7796 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7797
7798         * cpplib.c (do_line): Correct line number after pop_buffer.
7799
7800 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7801
7802         PR preprocessor/3824
7803         * line-map.c: Update comments.
7804         * line-map.h: Update comments.
7805         * tradcif.y: Don't consider large numbers unsigned.
7806
7807 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7808
7809         PR preprocessor/3081
7810         * c-lex.c (map): New.
7811         (cb_file_change): Update map and use it.
7812         (cb_def_pragma, cb_define, cb_undef): Use map and line.
7813         (c_lex): Update to use map.
7814         * cpperror.c (print_location): Move to using logical line numbers.
7815         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
7816         (cpp_make_system_header): Similarly.
7817         (_cpp_execute_include): Stop line numbering hacks.  Store the
7818         line we will return to.
7819         * cpphash.h (CPP_BUF_LINE): Remove.
7820         (struct cpp_buffer): Remove lineno and pseudo_newlines.
7821         Add map and return_to_line.
7822         (_cpp_do_file_change): Update.
7823         * cppinit.c (cpp_start_read): Update line kludge.
7824         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
7825         (trigraph_ok): Use logical line numbers for diagnostics.
7826         (skip_block_comment): Likewise.
7827         (skip_whitespace): Likewise.
7828         (skip_line_comment): Use pfile->line instead.
7829         (_cpp_lex_token): Update to use logical line numbering exclusively.
7830         Handle BOL locally.  Accept new lines in directives, but keep
7831         pfile->line decremented.  Diagnostics use logical lines.  Update
7832         directive handling.
7833         * cpplib.c (SEEN_EOL): New.
7834         (skip_rest_of_line, check_eol): Use it.
7835         (end_directive): Increase line number when accepting the newline
7836         at the end of a directive.
7837         (run_directive): Simplify.
7838         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
7839         (_cpp_do_file_change): Update to take buffer line number as an
7840         argument, and store the current map in the cpp_reader.  Remove
7841         line number kludges.
7842         (_cpp_do__Pragma): Restore output position after a _Pragma.
7843         (cpp_push_buffer): Don't set output line or lineno.
7844         (_cpp_pop_buffer): Transfer more info from a faked buffer.
7845         Remove line kludge.  Set output_line.
7846         * cppmacro.c (builtin_macro): Update handling of __LINE__.
7847         (parse_arg): Use logical lines.
7848         (save_lookahead_token): Save EOFs too now.
7849         * cppmain.c (struct printer): Fix comments.
7850         (printer_init): Simplify, let caller do errors.
7851         (scan_translation_unit, check_multiline_token, dump_macro): Update.
7852         (maybe_print_line): Simplify.
7853         (print_line): Don't print a linemarker if -P.
7854         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
7855         (cb_file_change): Simplify.
7856         * line-map.h (LAST_SOURCE_LINE): Fix.
7857         (CURRENT_LINE_MAP): New.
7858
7859 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
7860
7861         * doloop.c (doloop_modify_runtime): Properly compute number of
7862         iterations if loop was unrolled.
7863
7864         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
7865         if their CSELIB_VAL_PTRs are.
7866
7867         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
7868         (setup_spill_pointers): Initialize it.
7869         (spill_restore_mem): Set it.
7870         (do_spill, do_restore): Use it to add REG_INC note.
7871         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
7872
7873         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
7874         asms if other insns are available.
7875
7876         * config/ia64/ia64.c (condop_operator): New predicate.
7877         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
7878         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
7879         patterns.
7880
7881         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
7882         temporary register than directly using a MEM.
7883
7884 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
7885
7886         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
7887         parameter in last change.
7888
7889 2001-08-04  Zack Weinberg  <zackw@panix.com>
7890
7891         * sparc.md: Don't use #if inside C test expression.
7892
7893 2001-08-04  Richard Henderson  <rth@redhat.com>
7894
7895         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
7896
7897 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7898
7899         * cpphash.h (struct cpp_reader): New member directive_line.
7900         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
7901         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
7902         do_pragma): Pass line to callbacks.
7903         (start_directive): Record line of directive.
7904         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
7905         cb_include): Similarly.
7906         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
7907         Similarly.
7908
7909 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
7910
7911         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
7912         comment.
7913
7914 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
7915
7916         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
7917
7918         * reload1.c (fixup_abnormal_edges): New static function.
7919         (reload): Use it.
7920
7921         * flow.c (need_fake_edge_p): New function.
7922         (flow_call_edges_add): Fix handling of noreturn and sibbling calls;
7923         avoid call insn to be very last insn in the insn stream.
7924
7925         * profile.c (branch_prob): Call flow_call_edges_add instead of
7926         doing that by hand; cleanup cfg to re-merge basic blocks once
7927         we are done.
7928
7929 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7930
7931         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
7932         are also on line-map.h.
7933         * cppfiles.c (stack_include_file): Update.
7934         * cpphash.h (struct cpp_buffer): New member return_at_eof.
7935         (_cpp_pop_buffer): New.
7936         * cppinit.c (cpp_destroy, cpp_finish): Update.
7937         (do_includes): Mark each buffer to return at EOF.
7938         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
7939         return as requested.
7940         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
7941         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
7942         * cpplib.h (cpp_pop_buffer): Remove.
7943         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
7944         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
7945         buffers.
7946         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
7947         to pop buffers.
7948         (do_preprocessing): Update.
7949         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
7950         * c-parse.in (_yylex): Similarly.
7951         * scan-decls.c (scan_decls): Similarly.
7952         * line-map.h: Update comments.
7953
7954         * objc/Make-lang.in (objc-act.o): Update dependencies.
7955
7956 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7957
7958         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
7959         and soft register for operand 0.
7960         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
7961
7962 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7963
7964         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
7965         register for operand 0.
7966         ("bitcmpqi_z_used"): Allow memory for operand 0.
7967         (split "bitcmpqi"): New split to handle address reg as operand 1.
7968
7969 2001-08-04  Andreas Jaeger  <aj@suse.de>
7970
7971         * gcse.c: Revert Daniel's last patch.
7972
7973 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
7974
7975         * sparc-protos.h: Add prototypes for fp_zero_operand and
7976         reg_or_0_operand.
7977         * sh-protos.h: Add prototype for fpul_operand.
7978
7979 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
7980
7981         * doc/extend.texi (Other Builtins): Fix typo in last change.
7982
7983 2001-08-03  Richard Henderson  <rth@redhat.com>
7984
7985         * target.h (gcc_target): Add asm_out.named_section,
7986         section_type_flags, have_named_sections.
7987         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
7988         (TARGET_HAVE_NAMED_SECTIONS): New.
7989         (TARGET_SECTION_TYPE_FLAGS): New.
7990
7991         * Makefile.in (toplev.o): Depend on TARGET_H.
7992         (varasm.o, dbxout.o): Likewise.
7993         * c-common.c (decl_attributes): Check targetm.have_named_sections
7994         instead of ifdef ASM_OUTPUT_SECTION_NAME.
7995         * dbxout.c (dbxout_function_decl): Likewise.
7996         (dbxout_function_end): Likewise.
7997         * toplev.c (compile_file): Likewise.
7998         * varasm.c (exception_section): Likewise.
7999         * cp/decl2.c (finish_objects): Likewise.
8000
8001         * defaults.h (EH_FRAME_SECTION): Remove.
8002         (EH_FRAME_SECTION_ASM_OP): Remove.
8003         (EH_FRAME_SECTION_NAME): New.
8004         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
8005         (UNIQUE_SECTION_P): Remove.
8006         * dwarf2out.c (SECTION_FORMAT): Remove.
8007         (ASM_OUTPUT_SECTION): Remove.
8008         (output_call_frame_info): Use named_section_flags.
8009         (output_comp_unit, dwarf2out_start_source_file): Likewise.
8010         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
8011         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
8012         * varasm.c (in_eh_frame, eh_frame_section): Remove.
8013         (named_section_flags): New.
8014         (named_section): Use it and targetm.section_type_flags.
8015         (resolve_unique_section): New.
8016         (assemble_start_function): Use it.
8017         (asm_emit_uninitialised, assemble_variable): Likewise.
8018         (default_section_type_flags): New.
8019         (default_no_named_section, default_elf_asm_named_section): New.
8020         (default_coff_asm_named_section, default_pe_asm_named_section): New.
8021         * output.h: Update varasm.c decls.
8022         (SECTION_*): New flags.
8023
8024         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
8025         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
8026
8027         * config/elfos.h (UNIQUE_SECTION_P): Remove.
8028         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
8029         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
8030         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
8031         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
8032         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
8033         * config/mips/elf.h, config/mips/elf64.h: Likewise.
8034         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
8035         * config/pa/pa64-hpux.h,
8036
8037         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
8038         (TARGET_ASM_NAMED_SECTION): New.
8039         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
8040         * config/alpha/vms.h, config/arm/coff.h: Likewise.
8041         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
8042         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
8043         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
8044         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
8045         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
8046         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
8047         * config/i386/sco5.h, config/i386/win32.h: Likewise.
8048         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
8049         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
8050         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
8051         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
8052         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
8053         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
8054         * config/sparc/sysv4.h: Likewise.
8055
8056         * config/nextstep.h: Error until named sections implemented.
8057
8058         * config/a29k/a29k.c (a29k_asm_named_section): New.
8059         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
8060         (vms_section_type_flags, vms_asm_named_section): New.
8061         * config/arm/arm.c (arm_elf_asm_named_section): New.
8062         * config/avr/avr.c (asm_output_section_name): Remove.
8063         * config/avr/avr-protos.h: Update.
8064         * config/c4x/c4x.c (c4x_asm_named_section): New.
8065         * config/h8300/h8300.c (h8300_asm_named_section): New.
8066         * config/i386/i386.c (sco_asm_named_section): New.
8067         * config/i386/winnt.c (SECTION_PE_SHARED): New.
8068         (i386_pe_section_type_flags): New.
8069         (i386_pe_asm_named_section): New.
8070         * config/i386/i386-protos.h: Update.
8071         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
8072         * config/mcore/mcore.c (mcore_asm_named_section): New.
8073         * config/mips/mips.c (iris6_asm_named_section): New.
8074         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
8075         instead of UNIQUE_SECTION_P.
8076         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
8077         (xcoff_asm_named_section): New.
8078         * config/sh/sh.c (sh_asm_named_section): New.
8079         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
8080
8081         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
8082         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
8083         (EH_FRAME_SECTION_NAME): New.
8084         (EXCEPTION_SECTION): New.
8085         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
8086         (DEBUG_*_SECTION): Remove.
8087         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
8088         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
8089         (EH_FRAME_SECTION_ASM_OP): Remove.
8090
8091         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
8092         (ASM_OUTPUT_SECTION_NAME): Remove.
8093         (TARGET_ASM_NAMED_SECTION): New.
8094         (TARGET_HAVE_NAMED_SECTIONS): New.
8095         (TARGET_SECTION_TYPE_FLAGS): New.
8096         (EH_FRAME_SECTION_ASM_OP): Remove.
8097         (EH_FRAME_SECTION_NAME): New.
8098
8099 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
8100
8101         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
8102         for complex expressions when cfun == 0.
8103         * doc/extend.texi: Document that __builtin_constant_p can be
8104         used in data initializers as well as functions.
8105
8106 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
8107
8108         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
8109         variable I locally, instead of expecting a declaration in the
8110         calling context.
8111
8112 2001-08-03  Richard Henderson  <rth@redhat.com>
8113
8114         * except.c (collect_one_action_chain): Add an explicit cleanup
8115         action if regions surrounding a catch were encoded entirely
8116         within the call-site entry.
8117
8118 2001-08-03  Richard Henderson  <rth@redhat.com>
8119
8120         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
8121         don't take REGNO of a non-register.
8122
8123 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8124
8125         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
8126         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
8127         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
8128         (__gthread_mutex_init_function): New function for mutex initialization.
8129
8130 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
8131
8132         * Makefile.in: Revert screwed up commit.
8133
8134 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8135
8136         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
8137         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
8138         merged by linker script to get a final _exit().
8139         (__do_global_dtors): New for destructor handling in specific exit
8140         section.
8141         (__do_global_ctors): New for constructors in specific install section.
8142         (__map_data_section): Map data sections before running constructors.
8143         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
8144         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
8145         (DTORS_SECTION_ASM_OP): Likewise.
8146         (CTORS_SECTION_FUNCTION): Define to force a reference to
8147         __do_global_ctors.
8148         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
8149
8150 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
8151
8152         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
8153
8154         * Makefile.in: Add df.h to gcse.c dependencies.
8155
8156 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8157
8158         * varasm.c (output_constant_def_contents): Use for the length of a
8159         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
8160         depending on which is larger.
8161
8162 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
8163
8164         * gcse.c: Include df.h for use as a dataflow analyzer.
8165         Remove regvec.
8166         Declaration of reg_set_info: gone.
8167         New df_analyzer variable used by store motion.
8168         (reg_set_info): Deleted.
8169         (mark_mem_regs): New function, analyze regs used by a mem.
8170         (store_ops_ok): Use dataflow analyzer results to determine if
8171         necessary regs are changed in the block.
8172         (find_moveable_store): Remove check for symbol ref, we can handle
8173         much more complex expressions now.
8174         (compute_store_table): Remove most of the code, it's unnecessary
8175         now that the dataflow analyzer records the info for us.
8176         (store_killed_after): Add parameter to say whether to do the
8177         store_ops_okay test, used to speed up testing when we already know
8178         the answer, and just want to know if the store itself was killed.
8179         (build_store_vector): Largely rewritten to calculate the various
8180         vectors properly, and somewhat optimized.
8181         (store_motion): Init the df_analyzer, get REG_DEF chains.
8182         Also handle trapping expressions (since mems almost always trap)
8183         (simple_mem): Redefine what a simple mem is.
8184
8185 2001-08-03  DJ Delorie  <dj@redhat.com>
8186
8187         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
8188         set from a constant part of the condition.
8189
8190 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
8191
8192         * mkdeps.c (deps_add_default_target): Make local variable
8193         ``start'' a const char pointer.
8194         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
8195
8196 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8197
8198         * doc/install.texi (Configuration): Fix markup.
8199         (Specific, i?86-*-udk): Likewise.
8200         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
8201         --with-gnu-ld.
8202         Document --enable-threads and --enable-libgcj status.
8203         (Specific, mips-sgi-irix*): Canonicalize triples.
8204         (Specific, mips-sgi-irix5): Warn about problems with this config.
8205         Mention required GNU as patch.
8206         Native assembler problems are fixed.
8207         (Specific, mips-sgi-irix6): Update O32 ABI support status.
8208         Document --enable-threads and --enable-libgcj status.
8209
8210 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
8211
8212         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
8213         of mkinstalldirs.
8214
8215 2001-08-03  Richard Henderson  <rth@redhat.com>
8216
8217         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
8218         constant data.
8219
8220 2001-08-03  Richard Henderson  <rth@redhat.com>
8221
8222         * rtlanal.c (find_first_parameter_load): Stop if we
8223         reach a CODE_LABEL at BOUNDARY.
8224
8225 2001-08-03  Richard Henderson  <rth@redhat.com>
8226
8227         * config/alpha/alpha.md (force_movdi): New insn.
8228         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
8229         Tweek FRP marking of VMS prologue insns.
8230         * config/alpha/vms.h (EPILOGUE_USES): New.
8231
8232 2001-08-02  Richard Henderson  <rth@redhat.com>
8233
8234         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
8235
8236 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
8237
8238         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
8239         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
8240         config/convex/convex.h, config/d30v/d30v.c,
8241         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
8242         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
8243         config/mips/mips.h, config/mn10200/mn10200.h,
8244         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
8245         config/v850/v850.h, config/vax/openbsd.h,
8246         config/vax/openbsd1.h, config/vax/ultrix.h,
8247         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
8248         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
8249         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
8250         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
8251         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
8252         in comments and documentation.
8253
8254 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8255
8256         * line-map.c: New.
8257         * line-map.h: New.
8258         * Makefile.in (line-map.o): New.
8259         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
8260         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
8261         * cpperror.c (print_containing_files): Similarly.
8262         (print_location): Update.  Don't output a space before _Pragma.
8263         * cppfiles.c (stack_include_file): Set to line 1 immediately.
8264         (stack_include_filee, cpp_make_system_header): Update.
8265         (_cpp_execute_include): Get logical line number right for calling
8266         as-yet-unterminated #include.
8267         * cpphash.h (struct cpp_reader): Add line_maps.
8268         (_cpp_do_file_change): Update.
8269         * cppinit.c (cpp_create_reader): Initialize line maps.
8270         (cpp_destroy): Destroy line maps.
8271         (cpp_start_read): Get logical line number right.
8272         * cpplex.c (parse_string): Only warn once for multi-line strings.
8273         Use boolean variable for null warning.
8274         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
8275         already.
8276         (do_include_common): End the directive early.
8277         (do_line): Don't warn about out-of-range lines in preprocessed
8278         source.  Update.  Remove unused variables.
8279         (_cpp_do_file_change): Update for new line mapping.
8280         (pragma_cb): New typedef.
8281         (cpp_register_pragma): Stop looking ahead before calling the
8282         handler.  Clean up.
8283         (do_pragma_system_header): End directive early.
8284         (cpp_get_line_maps): New.
8285         (cpp_pop_buffer): Fudge logical line.  Update.
8286         * cpplib.h: Include line-map.h
8287         (enum cpp_fc_reason): Remove.
8288         (struct cpp_file_change): Update.
8289         (cpp_get_line_maps): New.
8290         * cppmain.c (struct_printer): New member map.
8291         (cb_file_change): Update for new mappings.
8292         * fix-header.c (cb_file_change): Similarly.
8293
8294 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
8295
8296         * Makefile.in (libgcc.mk): Define mkinstalldirs.
8297         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
8298
8299 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
8300
8301         * config/vax/vax.c: include expr.h.
8302
8303 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
8304
8305         * Makefile.in ($(srcdir)/configure): Only rebuild in
8306         maintainer mode.
8307         ($(srcdir)/config.in): Only define in maintainer mode.
8308         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
8309
8310 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
8311
8312         * doc/install.texi (Install GCC: Binaries): Update Bull info.
8313
8314 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8315
8316         * gcc.c (set_collect_gcc_options): New function, split out from
8317         main.
8318         Ignore elided switches.
8319         (do_spec_1): Invoke before executing command.
8320         (set_input): Export.
8321         Move declaration ...
8322         * gcc.h (set_input): ... here.
8323         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
8324         file.
8325
8326 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
8327
8328         Kill -fhonor-std.
8329         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
8330         interaction.
8331         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
8332
8333 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
8334
8335         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
8336         for the unnamed instructions it expands to.
8337
8338 2001-08-02  Richard Henderson  <rth@redhat.com>
8339
8340         * regclass.c (call_really_used_regs): Conditionally define.
8341         (init_reg_sets_1): Don't use it if not defined.
8342         (fix_register): Similarly, don't set it.
8343
8344 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8345
8346         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
8347         Correct comment that had been missed in the previous change.
8348
8349 2001-08-01  Stan Shebs  <shebs@apple.com>
8350
8351         * config/darwin.c (machopic_stub_name): Try matching by name.
8352         (update_stubs): New function.
8353         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
8354         unconditionally.
8355
8356 2001-08-01  Richard Henderson  <rth@redhat.com>
8357
8358         * except.c (output_function_exception_table): Use assemble_align.
8359         * varasm.c (assemble_eh_label): Remove.
8360         (assemble_eh_align, assemble_eh_integer): Remove.
8361
8362 2001-08-01  Robert Lipe  <robertl@caldera.com>
8363
8364         * dwarfout.c: Remove reference to README.DWARF.
8365
8366 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
8367
8368         * regclass.c (call_really_used_regs): New array for registers which
8369         are actually used by a call.
8370         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
8371         new array.
8372         (fix_register): Set call_really_used too.
8373         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
8374         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
8375
8376 2001-08-01  Richard Henderson  <rth@redhat.com>
8377
8378         * read-rtl.c (read_name): Consider \r whitespace.
8379
8380 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
8381
8382         * config.gcc: Recognize powerpc-*-netbsd*.
8383
8384         * doc/install.texi (Host/target specific installation notes for
8385         GCC): Mention powerpc-*-netbsd*.
8386
8387         * config/rs6000/netbsd.h: New file.
8388         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
8389         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
8390         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
8391         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
8392         (TARGET_VERSION): Redefine.
8393
8394         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
8395         mcall-netbsd as a match for mcall-sysv.
8396         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
8397         (ncrti.S, ncrtn.S): New targets.
8398         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
8399
8400         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
8401         "netbsd' as a V4 ABI.
8402         (ASM_SPEC): Check for -mcall-netbsd.
8403         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
8404         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
8405         (LIB_SPEC, ENDFILE_SPEC): Ditto.
8406         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
8407         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
8408         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
8409         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
8410
8411         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
8412         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
8413
8414 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
8415
8416         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
8417         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
8418         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
8419         including "unwind-pe.h".
8420
8421 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
8422
8423         * rs6000.md (define_splits): Kill unused constraints.
8424
8425 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
8426                               Jan Hubicka  <jh@suse.cz>
8427
8428         * function.c (thread_prologue_and_epilogue_insns): Kill code
8429         dealing with non-existent CFG.
8430
8431 2001-08-01  Kazu Hirata  <kazu@hxi.com>
8432
8433         * alias.c: Fix comment formatting.
8434         * bitmap.c: Likewise.
8435         * builtins.c: Likewise.
8436         * calls.c: Likewise.
8437         * c-common.c: Likewise.
8438         * c-decl.c: Likewise.
8439         * c-dump.c: Likewise.
8440         * c-lex.c: Likewise.
8441         * collect2.c: Likewise.
8442         * combine.c: Likewise.
8443         * conflict.c: Likewise.
8444         * cppfiles.c: Likewise.
8445         * cppinit.c: Likewise.
8446         * cpplex.c: Likewise.
8447         * cpplib.c: Likewise.
8448         * cppmacro.c: Likewise.
8449         * cppspec.c: Likewise.
8450         * c-pragma.c: Likewise.
8451         * crtstuff.c: Likewise.
8452         * cse.c: Likewise.
8453         * cselib.c: Likewise.
8454         * c-semantics.c: Likewise.
8455         * c-typeck.c: Likewise.
8456
8457 2001-08-01  H.J. Lu <hjl@gnu.org>
8458
8459         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
8460
8461 2001-08-01  H.J. Lu <hjl@gnu.org>
8462
8463         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
8464
8465 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
8466
8467         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
8468         contextualizing Objective-C class name lookup by the lexer.
8469         (typespec_reserved_nonattr): Disable ObjC class name lookup after
8470         seeing a TYPESPEC.
8471         (protocoldef): Add support for forward @protocol declarations.
8472         (yylexname): Suppress ObjC class name lookup in certain contexts;
8473         re-enable after lookup is complete.
8474         (_yylex): Re-enable ObjC class name lookup when certain
8475         punctuation marks are seen.
8476
8477         * objc/objc-act.c (check_protocol_recursively): New function used
8478         for finding circular dependencies in protocols.
8479         (objc_declare_protocols): New function for handling forward
8480         @protocol declarations.
8481         (receiver_is_class_object): Detect the case when 'self' is used
8482         inside of a class method.
8483         (build_message_expr): Issue a warning if class method is desired
8484         but instance method is found instead.
8485         (conforms_to_protocol): Streamline.
8486         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
8487         protocol Foo, even if 'Bar foo' does not.
8488         (check_protocols): Streamline.
8489         (start_protocol): Add checks for circular and duplicate protocol
8490         definitions.
8491         (encode_aggregate_within): For typedefs of structs, encode the
8492         underlying struct.
8493         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
8494         (objc_declare_protocols): New prototype.
8495
8496 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8497
8498         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
8499         * cpplex.c (handle_newline): Update prototype.  Maintain logical
8500         line number.
8501         (skip_escaped_newlines, skip_block_comment, parse_string):
8502         Update accordingly.
8503         (_cpp_lex_token): Update, and store token position within the token.
8504         * cpplib.h (struct cpp_token): Add line and column entries.
8505         * cppmacro.c (replace_args): Position stringified tokens correctly.
8506
8507 2001-08-01  Andreas Jaeger  <aj@suse.de>
8508
8509         * basic-block.h: Add prototype for last_loop_beg_note.
8510
8511 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
8512
8513         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
8514         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
8515         comment.
8516         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
8517         while handling WITH_CLEANUP_EXPR node. Use second operand calling
8518         expand_decl_cleanup.
8519         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
8520         the first RTX.
8521         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
8522         operand while calling simple_cst_equal.
8523         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
8524         operand is the cleanup expression, the third is the RTL_EXPR.
8525         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
8526
8527 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
8528
8529         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
8530
8531 2001-07-31  matthew green  <mrg@eterna.com.au>
8532
8533         * config.gcc (i386-*-netbsdelf): New description.
8534         * config/i386/netbsd-elf.h: New file.
8535
8536 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
8537
8538         * loop.c (check_dbra_loop): Use single_set to compute
8539         jump_label.
8540
8541 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
8542
8543         PowerPC reorg and support for powerpc64-*-linux*.
8544
8545         Also fixes emitting of constants on 32 bit and 64 bit
8546         platforms.
8547
8548         * config.gcc: powerpc64-*-linux* is a new target.
8549         Things that needed aix.h now also include xcoff.h
8550
8551         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
8552         xcoff.h.
8553         Move AIX specific stuff into aix.h.
8554         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
8555         with more than just XCOFF now.
8556         (SET_ASM_OP): Remove, now defined where needed.
8557         (FUNCTION_PROLOGUE): New macro definition.
8558         (FUNCTION_EPILOGUE): New macro definition.
8559         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
8560
8561         * config/rs6000/xcoff.h: New file.
8562
8563         * config/rs6000/linux64.h: New file.
8564
8565         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
8566
8567 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
8568
8569         * rs6000.c (print_operand_address): Handle ELF syntax.
8570         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
8571         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
8572         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
8573
8574 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
8575
8576         * rs6000.c (rs6000_override_options): Only disable
8577         flag_function_sections for XCOFF.
8578         (exact_log2_cint_operand): New predicate.
8579         (reg_or_{add,sub}_cint64_operand): New predicates.
8580         (add_operand): Compare CONST_INT with fewer function calls.
8581         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
8582         (print_operand, case 'p'): Ensure positive operand.
8583         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
8584         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
8585         (PREDICATE_CODES): Add new predicates.
8586         * rs6000.md (addsi3): Split 32-bit constants more correctly.
8587         (divsi3, modsi3): Ensure positive power-of-2.
8588         (adddi3): Use new predicate.  Split 32-bit constants more
8589         correctly.  Re-arrange splitter to handle any constant.
8590         (subdi3): Use new predicate.
8591         (divdi3, moddi3): Ensure positive power-of-2.
8592         (movdi): Use rs6000_emit_set_const.
8593         (load_toc_v4_pic_di): Delete.
8594
8595 2001-07-31  Graham Stott <grahams@redhat.com>
8596
8597         * function.c (pad_below): Revert 2001-07-26 patch.
8598
8599 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
8600
8601         * reg-stack (convert_regs_1): Fix best edge condition.
8602
8603 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
8604
8605         * jump.c (duplicate_loop_exit_test): Better test for jumps
8606         entering the loop; create loop pre_header.
8607
8608 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
8609
8610         * doc/install.texi: Add s390 and s390x as new targets.
8611         * doc/invoke.texi: Add documentation of S/390 and zSeries
8612         target options.
8613         * doc/md.texi: Add documentation of S/390 and zSeries constraints.
8614
8615 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
8616
8617         * config/m68k/m68k.md: Replace all general_operand with
8618         nonimmediate_operand for all destinations.
8619         * config/m68k/m68k.c (not_sp_operand): Likewise.
8620
8621 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
8622
8623         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
8624
8625 2001-07-30  Richard Henderson  <rth@redhat.com>
8626
8627         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
8628         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
8629
8630 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
8631
8632         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
8633         Add missing doc strings
8634         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
8635         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
8636
8637 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
8638
8639         * i386.c (ix86_output_main_function_alignment_hack): New function.
8640         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
8641
8642         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
8643         edges by EDGE_DFS_BACK flag.
8644         (dump_edge_info): Add dfs_back flag.
8645         * basic-block.h (EDGE_DFS_BACK): New constant.
8646         (mark_dfs_back_edges): Declare.
8647         * alias.c (loop_p): Remove.
8648         (mark_constant_function): Use mark_dfs_back_edges.
8649
8650         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
8651         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
8652         (compensate_edge): Break out from ...
8653         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
8654         (convert_regs_2): Set block_done once block is really done;
8655         Do updating of the predecesors counts.
8656
8657         * toplev.c (rest_of_compilation): Recompute block_for_insn
8658         before post-reload cfg_cleanup.
8659         * function.c (thread_prologue_epilogue_insns):
8660         Call set_block_for_new_insns when emitting prologue directly.
8661
8662 2001-07-30  Andreas Jaeger  <aj@suse.de>
8663
8664         * jump.c: Add prototype for mark_modified_reg.
8665
8666         * cse.c (set_live_p): Add unused attribute.
8667
8668         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
8669         overflow.
8670         (scan_for_source_files): Use long for count to avoid overflow.
8671         (output_data): Likewise.
8672         (output_data): Don't use string concatatenation to silence gcc
8673         -traditional.
8674
8675         * predict.c: Fix typos and grammar.
8676
8677         * gcse.c (insert_insn_end_bb): Remove unused variables.
8678
8679 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
8680
8681         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
8682         (attempt_auto_inc): LIkewise.
8683         (mark_used_reg): Likewise.
8684         (try_pre_increment_1): Likewise.
8685         * regclass.c (regclass): Likewise.
8686         * global.c (allocno_compare): Update comment; change scaling factor.
8687         * local-alloc.c (QTY_CMP_PRI): Likewise.
8688         * regs.h (REG_FREQ_FROM_BB): New.
8689         (REG_FREQ_MAX): Likewise.
8690
8691 2001-07-30  H.J. Lu <hjl@gnu.org>
8692
8693         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
8694         -D_GNU_SOURCE.
8695
8696 2001-07-30  H.J. Lu  (hjl@gnu.org)
8697
8698         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
8699         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
8700         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
8701
8702 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
8703
8704         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
8705         as -mthumb-interwork when -mcpu=arm7 is specified.
8706
8707 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
8708
8709         * predict.def (noreturn, loop branch, loop exit): Mark as first
8710         match heuristics.
8711
8712 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
8713
8714         * combine.c (try_combine): Avoid barrier after noop jumps.
8715
8716 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8717
8718         * cpphash.h (struct cpp_reader): Remove import_warning.
8719         * cpplib.c (skip_rest_of_line): Don't bother turning off
8720         macro expansion.
8721         (parse_include): Move include handling to...
8722         (do_include_common): ... here.  Move import warning from...
8723         (do_import): ... here.
8724         (do_pragma_poison): Don't do a callback for poison identifiers.
8725         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
8726         * cppmain.c (setup_callbacks): Similarly.
8727
8728 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
8729
8730         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
8731         handle multiple sets.
8732         * except.c (sjlj_mark_call_sites): .... here.
8733         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
8734
8735 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
8736
8737         Suggested by Richard Henderson and Richard Kenner:
8738         * combine.c (recog_for_combine): Use the fake recog
8739         only if instruction does not match.
8740         * rtl.h (NOOP_MOVE_INSN_CODE): New.
8741         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
8742
8743         * combine.c (try_combine): Discover noop jump as direct jump.
8744
8745 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
8746
8747         * df.c (df_rd_global_compute): Add successors to worklist, not
8748         current item.
8749         (df_ru_global_compute): Ditto.
8750
8751 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
8752
8753         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
8754         increment REG_N_SETS.
8755
8756 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
8757
8758         * sbitmap.h: New prototype for sbitmap_a_xor_b.
8759
8760         * sbitmap.c (sbitmap_a_xor_b): New function.
8761         ifdef the basic block stuff on IN_GCC.
8762
8763 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
8764
8765         * cppexp.c (parse_defined): Always record the macro name.
8766         (lex): Don't worry about identifiers, or special-case
8767         CPP_NOT here.
8768         (_cpp_parse_expr): Figure out at the end of the routine
8769         whether we saw a valid !defined() expression.
8770         * cppfiles.c (stack_include_file): Update for mi_valid.
8771         (_cpp_pop_file_buffer): Similarly.
8772         * cpplex.c (_cpp_lex_token): Similarly.
8773         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
8774         mi_if_not_defined, mi_lexed): Remove.
8775         (mi_valid): New.
8776         * cpplib.c (do_if): Simplify.
8777         (do_endif, push_conditional, _cpp_handle_directive): Update
8778         for renaming of mi_state to mi_valid.
8779 doc:
8780         * cpp.texi: Add index entries for digraphs, and add comment
8781         that C++ refers to them as alternative tokens.
8782
8783 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
8784
8785         * basic-block.h (CLEANUP_PRE_LOOP): New.
8786         * except.c (finish_eh_generation): Update call of cleanup_cfg.
8787         * sibcall.c (optimize_sibling_calls): Likewise.
8788         * toplev.c (rest_of_compilation): Likewise.
8789         * flow.c (try_forward_edges): Take argument MODE;
8790         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
8791         (try_optimize_cfg): Update call of try_forward_edges.
8792
8793 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
8794                                 Jan Hubicka  <jh@suse.cz>
8795
8796         * (validate_replace_rtx_1): Fix simplification of MINUS.
8797
8798 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8799
8800         PR preprocessor/3669
8801         * cppinit.c (init_dependency_output): Turn off dump requests
8802         if sending dependencies to stdout.
8803
8804 2001-07-28  Richard Henderson  <rth@redhat.com>
8805
8806         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
8807         not optimizing.
8808
8809 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
8810
8811         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
8812
8813 2001-07-28  Kazu Hirata  <kazu@hxi.com>
8814
8815         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
8816         is VAR_DECL first to prevent an ICE.
8817
8818 2001-07-28  Richard Henderson  <rth@redhat.com>
8819
8820         * varasm.c (immed_real_const_1): Don't elide special cases for
8821         nested functions.
8822         (clear_const_double_mem): Clear const_tiny_rtx too.
8823
8824 2001-07-28  Richard Henderson  <rth@redhat.com>
8825
8826         * dwarf2out.c (dw_val_class_offset): New.
8827         (struct dw_ranges_struct, dw_ranges_ref): New.
8828         (ranges_table, ranges_table_allocated): New.
8829         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
8830         (add_AT_offset, add_ranges, output_ranges): New.
8831         (print_die, output_die): Handle dw_val_class_offset.
8832         (attr_checksum, size_of_die, value_format): Likewise.
8833         (gen_lexical_block_die): Handle non-contiguous blocks.
8834         (gen_block_die): Likewise.
8835         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
8836         if needed.  Dump the ranges table.
8837         * final.c (final_start_function): Remove unnecessary notes and
8838         rebuild the block tree before numbering the blocks.
8839         * function.c (reorder_blocks_0): Walk the existing block tree
8840         to unmark all blocks.
8841         (reorder_blocks_1): Create block fragments when duplicate block
8842         notes are seen.
8843         (reorder_fix_fragments): New.
8844         (reorder_blocks): Call it.
8845         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
8846
8847 2001-07-28  Richard Henderson  <rth@redhat.com>
8848
8849         * emit-rtl.c (adjust_address): Make a copy of the memory address.
8850
8851 2001-07-28  Richard Henderson  <rth@redhat.com>
8852
8853         * flow.c (add_to_mem_set_list): New function.
8854         (init_propagate_block_info): Use it.
8855         (mark_set_1): Likewise.
8856         (insn_dead_p): Canonicalize memory address for dead store
8857         comparison.  Allow wider mode stores to kill narrower mode stores.
8858         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
8859         (invalidate_mems_from_set): Don't handle MEMs.
8860
8861 2001-07-28  Kazu Hirata  <kazu@hxi.com>
8862
8863         * config/h8300/h8300.h: Fix formatting.
8864
8865 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
8866
8867         * basic-block.h (EDGE_FREQUENCY): New macro.
8868         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
8869         for new BB/edges.
8870         * flow.c (find_sub_basic_blocks): Likewise.
8871         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
8872         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
8873
8874         * predict.c (DEF_PREDICTOR): New argument FLAGS.
8875         (HITRATE): New macro.
8876         (PRED_FLAG_FIRST_MATCH): New constant.
8877         (predictor_info): New field flgags.
8878         (combine_predictions_for_insn): Use DS theory to combine
8879         probabilities; set the edge probabilities when finished.
8880         (estimate_probability): Avoid duplicated matches
8881         of LOOP_BRANCH heuristics for nested loops; update comment.
8882         * predict.def: Add flags for each prediction, set probabilities
8883         according to B&L paper.
8884         * predict.h (DEF_PREDICTOR): New argument FLAGS.
8885
8886         * profile.c (compute_branch_probabilities):  Cleanup way the edge
8887         probabilities are computed and REG_BR_PROB notes are dropped; if
8888         values does not match, emit error.
8889         (init_branch_prob): Do error instead of warning when profile driven
8890         feedback is missing or corrupt.
8891
8892 2001-07-27  DJ Delorie  <dj@redhat.com>
8893
8894         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
8895         against a constant, try to adjust the compare to have the desired
8896         constant in it so that min/max optimizations happen more often.
8897
8898 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
8899
8900         * flow.c (last_loop_beg_note): New function.
8901         (redirect_edge_and_branch): Use it.
8902         (split_edge): Likewise.
8903
8904         * alias.c (loop_p): Avoid uninitialized memory access.
8905
8906         * flow.c (try_forward_edges): Avoid accessing freed memory.
8907
8908         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
8909         variable access.
8910
8911 2001-07-26  Andrew Haley  <aph@redhat.com>
8912         Joern Rennecke <amylaar@redhat.com>
8913
8914         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
8915         (SUBTARGET_CPP_ENDIAN_SPEC): New.
8916         (SUBTARGET_CPP_SPEC): New.
8917         (CPP_SPEC): Remove.
8918         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
8919         (SUBTARGET_CPP_PTR_SPEC): New.
8920         (CPP_DEFAULT_CPU_SPEC): New.
8921         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
8922         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
8923         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
8924         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
8925         (SUBTARGET_CPP_SPEC): Define as an empty string.
8926
8927 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8928
8929         * doc/install.texi (Configuration): Properly link the host
8930         specific instructions also when generating HTML.
8931
8932 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
8933
8934         * flow.c (redirect_edge_and_branch_force): Test
8935         target->global_live_at_start.
8936
8937 2001-07-26  Richard Henderson  <rth@redhat.com>
8938
8939         * simplify-rtx.c (avoid_constant_pool_reference): Export.
8940         * rtl.h (avoid_constant_pool_reference): Declare it.
8941         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
8942         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
8943
8944 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
8945
8946         * rtl.h (cleanup_barriers): Declare.
8947         * jump.c (cleanup_barriers): New function.
8948         * toplev.c (rest_of_compilation): Call cleanup_barriers
8949         before loop optimizer and after bb_reorder.
8950
8951         * flow.c (back_edge_of_syntactic_loop_p): New.
8952         (split_edge): Use it.
8953
8954 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8955
8956         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
8957
8958 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
8959
8960         * cse.c (cse_process_notes): Replace any registers if the address
8961         remains valid.
8962
8963 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
8964
8965         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
8966         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
8967         (propagate_block): Update prototype.
8968         * flow.c (update_life_info): Simplify the CFG and
8969         recalculate the global regs which are alive when
8970         removing dead code during a global update.
8971         (propagate_block): Return non-zero if an INSN is
8972         deleted.
8973
8974 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8975
8976         * Makefile.in (LIBICONV): Define.
8977
8978 2001-07-26  Catherine Moore  <clm@redhat.com>
8979
8980         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
8981         of conditional to avoid tree checking errors.
8982
8983 2001-07-26  Kazu Hirata  <kazu@hxi.com>
8984
8985         * regmove.c (regmove_optimize): Don't replace a reg with
8986         another reg of a different mode.
8987
8988 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
8989
8990         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
8991         limit length of dependency flush list.
8992         * params.h (MAX_PENDING_LIST_LENGTH): Define.
8993         * sched-int.h  (struct deps): Add pending_flush_length field.
8994         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
8995         has 1 element in it.
8996         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
8997         (sched_analyze): After a jump, if the pending memory flush list is too
8998         large, flush the pending lists.
8999         (init_deps): Initialize pending_flush_length to 0.
9000         * doc/invoke.texi (max_pending_list_length): Document parameter.
9001
9002 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
9003
9004         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
9005         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
9006         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
9007
9008 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9009
9010         * cpphash.h (struct_lexer_state): Delete was_skipping.
9011         Move skipping here from struct cpp_reader.
9012         * cpplex.c (parse_identifier): Update.
9013         (_cpp_lex_token): Don't skip tokens in a directive.
9014         * cpplib.c (struct if_stack): Update.
9015         (start_directive, end_directive): Don't change skipping state.
9016         (_cpp_handle_directive): Update.
9017         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
9018         (do_else, do_endif): Update; only check for excess tokens if not
9019         in a skipped conditional block.
9020         (push_conditional): Update for new struct if_stack.
9021
9022 2001-07-26  Graham Stott  <grahams@redhat.com>
9023
9024         * function.c (locate_and_pad_parm): Also pad initial offset
9025         so that the total argument size also includes the padding.
9026
9027 2001-07-26  Graham Stott <grahams@redhat.com>
9028
9029         * gensupport.c (alter_output_for_insn): Correct enable checking failure
9030         change XSTR to XTMPL.
9031
9032         (process_one_cond_exec): Likewise
9033
9034 2001-07-25  Richard Henderson  <rth@redhat.com>
9035
9036         * varasm.c (assemble_variable): Create DECL_RTL before setting
9037         TREE_ASM_WRITTEN.
9038
9039 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
9040
9041         * predict.c (estimate_probability): Avoid duplicated predictions.
9042
9043         * loop.c (find_and_verify_loops): Grok multiple barriers.
9044
9045 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9046
9047         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
9048
9049         * dbxout.c: Consistently use putc instead of fputc.
9050         (print_wide_int): New function; call instead of direct fprintf.
9051         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
9052         (dbxout_type_fields, dbxout_type_method_1): Likewise.
9053         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
9054         (print_int_cst_octal): Likewise.
9055         (print_octal): Show we wrote characters.
9056         (dbxout_type): Set have_used_extensions in more places.
9057
9058 2001-07-25  Catherine Moore  <clm@redhat.com>
9059
9060         * config/v850/v850.c (v850_va_arg):  Use addr
9061         instead of valist to build incr.
9062
9063 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
9064
9065         * flow.c (delete_dead_jumptables): New function.
9066         (life_analyzis): Call it.
9067         * bb-reorder.c (skip_insns_after_block): Handle contradictory
9068         sequences.
9069
9070 2001-07-25  Richard Henderson  <rth@redhat.com>
9071
9072         * except.c (reachable_handlers): Handle a region being removed
9073         out from under a RESX.
9074
9075 2001-07-25  Richard Henderson  <rth@redhat.com>
9076
9077         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
9078         swap GE/GT if it is an fp comparison.
9079
9080 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
9081
9082         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
9083         operands.
9084
9085 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
9086
9087         * ssa.c (rename_insn_1): Do not wrap an assignment to a
9088         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
9089         glitch.
9090
9091         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
9092         throw an exception.
9093         (visit_expression): When attempting to simplify an expression,
9094         retrieve any modes for arguments before they are simplified
9095         to constants.
9096
9097 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
9098             Janis Johnson  <janis@us.ibm.com>
9099
9100         * stmt.c (expand_goto): A nonlocal goto can be a call too.
9101         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
9102         pointer parameters to match documented usage of nonlocal_goto.
9103         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
9104         parameters to their correct order.
9105         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
9106         parameters to their correct order.
9107
9108 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
9109
9110         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
9111
9112 2001-07-25  Jan Hubicka  <jh@suse.cz>
9113             Richard Henderson  <rth@redhat.com>
9114
9115         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
9116         the sequence.
9117         (make_edges): New argument update_p; populate the edge cache if set.
9118         (find_basic_blocks): Update make_edges invocation.
9119
9120 2001-07-24  Joel Sherrill <joel@OARcorp.com>
9121
9122         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
9123
9124 2001-07-24  Joel Sherrill <joel@OARcorp.com>
9125
9126         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
9127         -Acpu and -Amachine.h.
9128         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
9129         Corrected header to say ELF not a.out.
9130         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
9131         when given -msoft-float.
9132
9133 2001-07-24  Joel Sherrill <joel@OARcorp.com>
9134
9135         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
9136         extra multilib parts like arm-elf.
9137         (i960-*-coff*, i960-*-rtems): Should not use collect2.
9138         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
9139         crtfini.o as extra multilib parts.
9140
9141 2001-07-24  Joel Sherrill <joel@OARcorp.com>
9142
9143         * configure.in: Add rtems as a supported thread model.
9144         * gthr-rtems.h: Add missing entry point __gthread_active_p.
9145         * configure: Rebuilt.
9146
9147 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
9148
9149         * stor-layout.c (get_mode_alignment): make it work when
9150         BITS_PER_UNIT is not a power of two.
9151         * builtins.c (get_pointer_alignment): Likewise.
9152
9153 2001-07-24  Richard Henderson  <rth@redhat.com>
9154
9155         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
9156         the retrieved constant into the expected mode.
9157
9158 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
9159
9160         * flow.c (try_simplify_condjump): Avoid duplicated edges.
9161         (verify_flow_info): Check for duplicated edges; clarify
9162         error reporting.
9163
9164         * flow.c (block_label): Update basic_block_for_insn.
9165         (commit_edge_insertions): Call compute_bb_for_insn.
9166
9167         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
9168         returns too.
9169
9170         * flow.c (redirect_edge_and_branch,
9171         try_optimize_cfg): Use redirect_edge_succ_nodup
9172         (redirect_edge_succ_nodup): New.
9173         * basic_block.h (redirect_edge_succ_nodup): Declare.
9174
9175         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
9176         after gcse.
9177
9178 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
9179
9180         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
9181         (try_crossjump_to_edge): Update commetns.
9182         (try_crossjump_bb): Likewise.
9183
9184 2001-07-24  Richard Henderson  <rth@redhat.com>
9185
9186         * combine.c (distribute_notes): Move set of need_refresh
9187         for noop_move_p down to catch all cases.
9188
9189 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
9190
9191         * recog.c (split_all_insns_noflow): New.
9192         * rtl.h (split_all_insns_noflow): Declare.
9193         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
9194         * m68hc11.c (m68hc11_reorg): Likewise.
9195         * sh.c (machine_dependent_reorg): Likewise.
9196         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
9197         call.
9198
9199 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
9200
9201         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
9202         (ashlsi3_n splitter): Likewise.
9203         (lshrsi3_n splitter): Likewise.
9204
9205         (GOTaddr2picreg): Make const SImode.
9206         (sym_label2reg): Likewise.
9207         (symGOT2reg): Likewise.
9208         (symGOTOFF2reg) Likewise.
9209
9210         (casesi_worker_0): Make unspec SImode.
9211
9212 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
9213
9214         * config/sh/sh.c (barrier_align): Check that an operand really is
9215         an insn before extracting its INSN_CODE.
9216
9217 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
9218
9219         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
9220         dangling else.
9221
9222         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
9223         for SImode to prevent overflow.
9224
9225 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9226
9227         * config/mips/irix6-libc-compat.c: New file.
9228         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
9229         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
9230         passing workaround.
9231
9232 2001-07-24  lars brinkhoff  <lars@nocrew.org>
9233
9234         * rtl.texi (REG_POINTER): Document.
9235         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
9236         QFmode, HFmode, TQFmode, QCmode, and HCmode.
9237
9238 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
9239
9240         * flow.c (delete_noop_moves): Do not confuse libcall regions.
9241
9242 2001-07-23  Richard Henderson  <rth@redhat.com>
9243
9244         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
9245
9246 2001-07-23  Kazu Hirata  <kazu@hxi.com>
9247
9248         * config/h8300/h8300-protos.h: Add a prototype for
9249         general_operand_dst_push.
9250         * config/h8300/h8300.c (general_operand_dst_push): New.
9251         * config/h8300/h8300.h (OK_FOR_T): New.
9252         (EXTRA_CONSTRAINT): Use it.
9253         * config/h8300/h8300.md (movqi_push): Remove and integrate into
9254         the existing movqi pattern.
9255         (movhi_push): Likewise.
9256
9257         * reload.c: Fix comment typos.
9258
9259 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
9260
9261         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
9262
9263 2001-07-23  H.J. Lu  (hjl@gnu.org)
9264
9265         * doc/extend.texi: Update __builtin_return_address and
9266         __builtin_frame_address.
9267
9268 2001-07-23  Richard Henderson  <rth@redhat.com>
9269
9270         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
9271         before CSE.
9272         * config/i386/i386.md: New setcc+movzbl peephole2.
9273
9274 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9275
9276         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
9277         * objc/objc-act.c: Include debug.h.
9278         (synth_module_prologue): Save and restore debug hooks too.
9279
9280 2001-07-23  lars brinkhoff  <lars@nocrew.org>
9281
9282         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
9283         and C4X_FLOAT_FORMAT.
9284         (BOOL_TYPE_SIZE): Document.
9285
9286 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
9287
9288         * unroll.c (loop_iterations): Fix miscalculation of initial
9289         giv offset.
9290
9291 2001-07-13  Andrew Haley  <aph@redhat.com>
9292
9293         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
9294         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
9295         * config/sh/sh.c (sh_can_redirect_branch): New function.
9296         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
9297         * reorg.c (steal_delay_list_from_target): Use
9298         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
9299
9300 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
9301
9302         * flow.c (try_simplify_condjump): Unlink insn chain on
9303         fallthru edge; use can_fallthru.
9304
9305 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
9306
9307         * basic-block.h (find_sub_basic_block): Declare.
9308         * flow.c (make_edges): New arguments MIN and MAX;
9309         (find_sub_basic_blocks): Revamp to use make_edges
9310         and purge_dead_edges.
9311         (find_basic_blocks): Update call of find_sub_basic_block.
9312
9313         * recog.c (split_all_insns): Always expect CFG to be consistent;
9314         call find_sub_basic_blocks in case something has changed.
9315         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
9316         has been built.
9317
9318         * basic-block.h (delete_noop_moves): Declare.
9319         * combine.c (combine_instructions): Call it.
9320         (recog_for_combine): Tolerate noop moves
9321         (distribute_notes): Force refresh when register dies at noop move.
9322         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
9323         too.
9324         (life_analysis): Update delete_noop_moves call.
9325         (set_noop_p): Move too ...
9326         * rtlanal.c (noop_move_p): ... here.
9327         * rtl.h (noop_move_p): Declare.
9328
9329         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
9330         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
9331         after combine.
9332         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
9333         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
9334
9335 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
9336
9337         * reload.c (push_reload): Fix typo in comment.
9338         (find_reloads_address): Ditto.
9339         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
9340
9341 2001-07-22  Richard Henderson  <rth@redhat.com>
9342
9343         * flow.c: Grammar check and clarify a lot of comments.
9344         (try_simplify_condjump): Rename variables to be clearer.
9345         (try_forward_edges): Skip complex and fallthru edges.
9346         Rearrange tests to avoid duplicate checks.
9347         (flow_find_cross_jump): Likewise.
9348         (outgoing_edges_match): Allow match if neither branch has
9349         probability data.  Loosen probability match to 5%.
9350         (try_crossjump_to_edge): Hoist repeated indirection into
9351         local variables.
9352         (try_crossjump_bb): Don't check complex edges.  Eliminate
9353         redundant crossjump tests.
9354         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
9355         checks before more expensive checks.
9356
9357 2001-07-22  Richard Henderson  <rth@redhat.com>
9358
9359         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
9360         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
9361         arguments.
9362
9363 2001-07-22  Richard Henderson  <rth@redhat.com>
9364
9365         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
9366         (const_sint32_operand): Likewise.
9367         * m68k.md (anon mulsi pattern): Use const_int_operand not
9368         const_sint32_operand.
9369         (umulsi3_highpart): Zero extend a constant input.
9370         (smulsi3_highpart): Don't bother checking SImode constant.
9371         (const_umulsi3_highpart): Give op3 DImode.
9372         (const_smulsi3_highpart): Likewise.
9373
9374 2001-07-22  Richard Henderson  <rth@redhat.com>
9375
9376         * flow.c (split_block): Make sure bb_note is included in the
9377         new block when splitting before a label.
9378
9379 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
9380
9381         * basic-block.h (redirect_edge_and_branch_force,
9382         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
9383         * flow.c (redirect_edge_and_branch_force,
9384         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
9385         (redirect_edge_and_branch_force): Fix copying of lifeness information.
9386         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
9387         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
9388         instead of label; update CFG after transformation.
9389         (find_if_case_1): Update call, use redirect_edge_and_branch_force
9390         for finishing the transformation; handle even case where ELSE
9391         does not follow THEN.
9392         (find_if_case_2): Update call of dead_or_predictable; simplify
9393         CFG update.
9394
9395         * emit-rtl.c (split_branch_probability): New global variable.
9396         (try_split): Take care to set split_branch_probability and
9397         create REG_BR_PROB note for new jump insns.
9398         * md.texi (define_split): Document new feature.
9399
9400         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
9401
9402 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
9403
9404         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
9405         (asm_out_file): Remove redundant declaration.
9406         (assemble_asm): Remove old #if 0 block.
9407         (assemble_variable): Remove end of function; debug output is
9408         now handled with global_decl.  Remove old #if 0 block.  Update.
9409         Remove saved_in_section and associated no-op code.
9410         * Makefile.in (varasm.o): Correct dependencies.
9411
9412 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
9413
9414         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9415         the definition in defaults.h.
9416
9417 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
9418
9419         * jump.c: Update comments.
9420         (delete_barrier_successors, delete_unreferenced_labels,
9421         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
9422         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
9423         jump_optimize, jump_optimize_minimal): Kill.
9424         (rebuild_jump_labels): Move code from jump_optimize_1.
9425         (purge_line_number_notes): Likewise.
9426         (copy_loop_headers): Likewise.
9427         * reg-stack.c: Update comment.
9428         * stmt.c: Likewise.
9429         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
9430         JUMP_AFTER_REGSCAN): Kill.
9431         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
9432         purge_line_number_notes and copy_loop_headers.
9433
9434 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
9435            Richard Henderson  <rth@redhat.com>
9436
9437         * dbxout.c (dbxout_global_decl): New.
9438         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
9439         * sdbout.c (sdbout_finish): New.
9440         (sdbout_debug_hooks): Use it, add comments.
9441         (sdbout_global_decl): Defer initialised public vars to
9442         sdbout_finish.
9443         * varasm.c (assemble_variable): Don't output debug information
9444         for file-scope variables.
9445
9446 2001-07-22  Richard Henderson  <rth@redhat.com>
9447
9448         * config/alpha/alpha.c (get_trap_mode_suffix): New.
9449         (get_round_mode_suffix): New.
9450         (print_operand): Use them for [/].  Remove support for [&'`()+].
9451         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
9452         * config/alpha/alpha.md (attr round_suffix): New.
9453         (attr trap_suffix): New.
9454         (all insns): Set them appropriately.  Use %/ instead of the
9455         myriad punctuators.
9456
9457 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9458
9459         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
9460
9461 2001-07-22  Richard Henderson  <rth@redhat.com>
9462
9463         * regrename.c (regrename_optimize): Compute nregs for each
9464         potential target register.
9465
9466 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
9467            Richard Henderson  <rth@redhat.com>
9468
9469         * dbxout.c (dbxout_global_decl): New.
9470         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
9471         * sdbout.c (sdbout_finish): New.
9472         (sdbout_debug_hooks): Use it, add comments.
9473         (sdbout_global_decl): Defer initialised public vars to
9474         sdbout_finish.
9475         * varasm.c (assemble_variable): Don't output debug information
9476         for file-scope variables.
9477
9478 2001-07-21  H.J. Lu  (hjl@gnu.org)
9479
9480         * config/mips/mips.c (mips_cpu): Moved into ...
9481         (override_options): Here.
9482
9483         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
9484         mips_tune.
9485         (mips_cpu): Removed.
9486
9487 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9488
9489         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
9490         ("iorqi3"): Likewise.
9491         ("xorqi3"): Likewise.
9492         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
9493         ("*subhi3_sp): Likewise.
9494         ("*subhi3"): Likewise.
9495         ("extendhisi2"): Accept D, X and Y as source operand to avoid
9496         reload problems.
9497
9498 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
9499
9500         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
9501         * config/freebsd.h: Likewise.
9502         * config/linux.h: Likewise.
9503         * config/openbsd.h: Likewise.
9504         * config/alpha/linux-elf.h: Likewise.
9505         * config/arm/linux-elf.h: Likewise.
9506         * config/d30v/d30v.h: Likewise.
9507         * config/fr30/fr30.h: Likewise.
9508         * config/ia64/aix.h: Likewise.
9509         * config/ia64/ia64.h: Likewise.
9510         * config/mips/linux.h: Likewise.
9511         * config/pj/pj.h: Likewise.
9512         * config/rs6000/linux.h: Likewise.
9513         * config/sparc/linux.h: Likewise.
9514         * config/sparc/linux64.h: Likewise.
9515
9516 2001-07-20  Bruce Korb  <bkorb@gnu.org>
9517
9518         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
9519         because getc() and char* may disagree on signedness.
9520
9521 2001-07-20  Richard Henderson  <rth@redhat.com>
9522
9523         * doc/rtl.texi (REG_DEAD): Update for current semantics.
9524
9525         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
9526         insns to delete in the presence of cc0 in a jump insn.
9527
9528 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
9529                                 Jan Hubicka  <jh@suse.cz>
9530
9531         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
9532         of doing the change by hand.
9533
9534 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
9535
9536         * rtlanal.c (set_noop_p): Return true for noop jumps.
9537
9538         * expr.c (emit_single_push_insn): Add call to push expander.
9539         * expr.h (optab_index): Add OTI_push
9540         (push_optab): New constant.
9541         * genopinit.c (optabs): Add push_optab.
9542         * optabs.c (init_optab): Init push optab.
9543         * md.texi (push??1): Document
9544
9545 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9546
9547         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
9548         expand to emit the pattern; put a REG_INC note for push/pop
9549         instructions.
9550         ("movdf", "movdf_internal"): Likewise.
9551         ("movsi", "movsi_internal"): Likewise.
9552         ("movsf", "movsf_internal"): Likewise.
9553         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
9554
9555 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9556
9557         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
9558         gen_highpart.
9559
9560 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
9561
9562         * params.def: Change default max inline insns to 100.
9563
9564 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
9565
9566         * combine.c (combine_simplify_rtx): Generate a new shift operation
9567         when simplifying the first operand of a (neg (ashift)) expression.
9568
9569 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
9570
9571         * regclass.c (N_REG_INTS): Use only 32 bits per element.
9572
9573 2001-07-20  Kelley Cook  <kelley.cook@home.com>
9574
9575         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
9576         information.   Move rest into ...
9577         (*-*-solaris): ... here.  Eliminate redundant information and
9578         reword necessary packages section.  Delete 4.x assembler bug info.
9579         (sparc-sun-*): Merge into ...
9580         (sparc-sun-sunos*): here.
9581
9582 2001-07-20  Catherine Moore  <clm@redhat.com>
9583
9584         * config/v850/v850.md (casesi): Generate LABEL_REF
9585         with Pmode.
9586
9587 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
9588
9589         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
9590         * i386.c (ix86_zero_extend_to_Pmode): Make global.
9591         * i386.md (strclrsi expander): Use it.
9592
9593 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
9594
9595         * integrate.c (copy_insn_list): handle
9596         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
9597         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
9598         identically as to CODE_LABEL.
9599
9600         * fold-const (fold): Convert A/B/C to A/(B*C) and
9601         A/(B/C) to (A/B)*C
9602
9603         * except.c (connect_post_landing_pads): Delete the RESX insns.
9604
9605 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
9606
9607         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
9608
9609         * config/mips/mips.md (nmadd/nmsub): Use macro.
9610
9611 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
9612
9613         * cppinit.c (remove_dup_dir): Make static.
9614         (remove_dup_dirs): Make static. Only warn about preempting a
9615         system directory with a non-system directory.
9616
9617 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
9618
9619         * ifcvt.c (noce_try_store_flag_constants): Correct order
9620         of parameters to trunc_int_for_mode.
9621
9622 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
9623
9624         * reorg.c (fill_simple_delay_slots): If an instruction might throw
9625         an exception that will be caught within this function, do not fill
9626         its delay slot with any subsequent instruction.
9627
9628 2001-07-19  Steve Ellcey <sje@cup.hp.com>
9629
9630         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
9631         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
9632         pointer extension instruction.
9633         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
9634         * simplify-rtx.c (simplify_unary_operation) Likewise.
9635         * explow.c (convert_memory_address) Check value of
9636         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
9637         less than zero.
9638         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
9639         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
9640         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
9641         Add Multilib Support.
9642         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
9643         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
9644         Add Multilib Support.
9645         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
9646         support.
9647         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
9648         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
9649         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
9650
9651 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
9652
9653         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
9654         old and new operands in `<', `3' and `b'.
9655
9656 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9657
9658         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
9659         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
9660         (toplev.o): Don't depend on xcoffout.h.
9661         * c-decl.c: Include debug.h
9662         (duplicate_decls): Use debug hook.
9663         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
9664         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9665         (dbxout_types): Remove.
9666         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
9667         * debug.c (do_nothing_debug_hooks): Update.
9668         (debug_true_tree, debug_nothing_rtx): New.
9669         * debug.h (struct rtx_def): New.
9670         (struct gcc_debug_hooks): New hooks ignore_block,
9671         outlining_inline_function and label.
9672         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
9673         dwarf2out_frame_finish): New.
9674         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
9675         Make static, update prototype.
9676         (dwarf2_debug_hooks): Update.
9677         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
9678         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
9679         * dwarfout.c (dwarf_debug_hooks): Update.
9680         * emit-rtl.c: Include debug.h.
9681         (remove_unnecessary_notes): Use debug hook.
9682         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
9683         (final_scan_insn): Use debug hook.
9684         * integrate.c (output_inline_function): Use debug hook.
9685         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
9686         (sdb_debug_hooks): Update.
9687         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
9688         * toplev.c: Don't include xcoffout.h.
9689         (note_outlining_of_inline_function, debug_ignore_block): Remove.
9690         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
9691         Remove.
9692         * tree.h (dwarf2out_do_frame): Remove.
9693
9694 2001-07-19  Catherine Moore  <clm@cygnus.com>
9695
9696         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
9697
9698 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
9699
9700         * reload1.c (eliminate_regs_in_insn): When updating a set
9701         to the frame pointer to the hardware frame pointer, perform
9702         the update always not just when REPLACE is set.
9703
9704         * reload1.c (choose_reload_regs): Don't inherit a reload
9705         that crosses multiple registers if registers past the first
9706         don't fit in the desired class.
9707
9708         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
9709         when negating constants.
9710
9711 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
9712
9713         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
9714         * doc/tree.texi: Ditto.
9715
9716 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
9717             Jakub Jelinek  <jakub@redhat.com>
9718
9719         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
9720         (extract_cie_info): Handle "eh" augmentation properly,
9721         remember eh_ptr.
9722         (struct frame_state, __frame_state_for): New.
9723
9724 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9725
9726         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
9727         HANDLE_SYSV_PRAGMA): Define.
9728         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
9729         previous args.
9730         (copy_object): Caller changed.
9731
9732 2001-07-19  Andreas Schwab  <schwab@suse.de>
9733
9734         * configure.in (assembler dwarf2 debug_line support): Define nop
9735         insn for m68k.
9736         * configure: Regenerated.
9737
9738 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9739
9740         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
9741         dwarfout.h.
9742         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
9743         to conditionally compiled block.
9744         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9745         * dbxout.h (dbxout_function): Remove.
9746         * debug.c (do_nothing_debug_hooks): Update.
9747         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
9748         global_decl, deferred_inline_function.
9749         * dwarf2out.c (dwarf2_debug_hooks): Update.
9750         (dwarf2out_global_decl): New.
9751         * dwarfout.c: Don't include dwarfout.h.
9752         (dwarfout_global_decl, dwarfout_function_decl,
9753         dwarfout_deferred_inline_function): New.
9754         (dwarf_debug_hooks): Update.
9755         * dwarfout.h: Remove.
9756         * final.c: Don't include dwarfout.h.
9757         * sdbout.c (sdbout_global_decl): New.
9758         (sdbout_debug_hooks): Update.
9759         * toplev.c: Don't include dwarfout.h.
9760         (check_global_declarations, rest_of_compilation): Use new debug hooks.
9761         (note_deferral_of_defined_inline_function): Remove.
9762         * toplev.h (note_deferral_of_defined_inline_function): Remove.
9763         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
9764         * ch/lex.c: Don't include dwarfout.h.
9765         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
9766         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
9767         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
9768         * cp/optimize.c: Include debug.h.
9769         (maybe_clone_body): Use debug hook.
9770         * cp/semantics.c: Include debug.h.
9771         (expand_body): Use debug hook.
9772         * po/POTFILES.in: Remove dwarfout.h.
9773
9774 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9775
9776         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
9777         * c-parse.in (yyerror, _yylex): Similarly.
9778         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
9779         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
9780         Update comments.
9781         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
9782         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
9783
9784 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
9785
9786         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
9787         in-class declaration at -g1.  Fixes c++/2814.
9788
9789 2001-07-18  Richard Henderson  <rth@redhat.com>
9790
9791         * doc/md.texi (reload_in/out): Document restrictions in predicates
9792         and constraints for these patterns.  Document empty string matching
9793         ALL_REGS.
9794
9795 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9796
9797         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
9798
9799 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
9800
9801         * cse.c: Undo my previous patch.
9802
9803 2001-07-18  Tom Tromey  <tromey@redhat.com>
9804
9805         For PR java/2812:
9806         * configure: Rebuilt.
9807         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
9808         instead.
9809         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
9810
9811 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
9812                                 Jan Hubicka  <jh@suse.cz>
9813
9814         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
9815         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
9816         * jump.c (mark_jump_label): Do not forward branches.
9817
9818 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
9819
9820         * cse.c (delete_trivially_dead_insns): Delete the libcall block
9821         when return value is unused.
9822
9823 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
9824
9825         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
9826
9827 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
9828
9829         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
9830         on error.  We can't blindly return the result of
9831         pthread_mutex_trylock because it returns a positive number on
9832         error, while we must return -1 on error.
9833         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
9834         fixes.
9835         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
9836
9837 2001-07-18  Andreas Jaeger  <aj@suse.de>
9838
9839         * integrate.c (output_inline_function): Correct type of debug_hooks.
9840
9841 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
9842
9843         * combine.c (combine_simplify_rtx): DIV can be treated
9844         associatively for floats if unsafe math optimisations are enabled.
9845
9846 2001-07-17  Richard Henderson  <rth@redhat.com>
9847
9848         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
9849
9850 2001-07-17  Richard Henderson  <rth@redhat.com>
9851
9852         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
9853         don't force the function address into a register.
9854         (expand_call, emit_library_call_value_1): Update callers.
9855         * builtins.c (expand_builtin_apply): Likewise.
9856         * expr.h (prepare_call_address): Update decl.
9857
9858 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
9859
9860         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
9861         config directory.
9862         * config/i386/chorus.h: Move up.
9863         * config/sparc/chorus.h: Likewise.
9864         * config/rs6000/chorus.h: Likewise.
9865         * config/chorus.h: Moved here.
9866
9867 2001-07-17  Andreas Schwab  <schwab@suse.de>
9868
9869         * configure.in  (assembler eh_frame optimization): Handle big
9870         endian.
9871         * configure: Regenerated.
9872
9873 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
9874
9875         * expr.c (epxand_expr): Convert divisions into multiplications by
9876         reciprocals if -ffast-math.
9877
9878 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
9879
9880         * dbxout.c (dbxout_really_begin_function): Rename to
9881         dbxout_begin_function.
9882         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9883         (dbxout_begin_function): Remove.
9884         (dbxout_function): Update.
9885         (dbxout_source_line): Update prototype.
9886         * dbxout.h (dbxout_begin_function): Remove.
9887         * debug.c (do_nothing_debug_hooks): Update.
9888         (debug_nothing_tree): Update.
9889         (debug_nothing_charstar_rtx): Remove.
9890         * debug.h (union tree_node): Declare.
9891         (struct rtx_def): Remove.
9892         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
9893         begin_function.  Change source_line prototype.
9894         (debug_nothing_tree): New.
9895         (debug_nothing_charstar_rtx): Delete.
9896         (dwarf2out_begin_prologue): Moved from ...
9897         * tree.h: ... here.
9898         * dwarf2out.c (dwarf2_debug_hooks): Update.
9899         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
9900         debug info, call dwarf2out_source_line.
9901         (dwarf2out_souce_line): Update prototype.
9902         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
9903         Change prototype, make static.
9904         (dwarfout_source_line): Update prototype.
9905         (dwarf_debug_hooks): Update.
9906         * dwarfout.h (dwarfout_begin_function): Remove.
9907         * final.c (final_start_function, final_scan_insn): Use appropriate
9908         debug hooks, update to use notice_source_line.
9909         (output_source_line): Rename notice_source_line.  Don't call the
9910         source_line debug hook.
9911         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
9912         make static, update prototype.
9913         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
9914         prototype.
9915         (sdbout_end_prologue): New.
9916         (sdbout_source_line): Update prototype.
9917         (sdbout_debug_hooks): Update.
9918         (sdbout_symbol): Remove unused var.
9919         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
9920         Delete.
9921         * varasm.c: Include debug.h.
9922         (assemble_start_function): Use begin_function debug_hook.
9923         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
9924         update with prototype.
9925         (xcoffout_source_line): Update prototype.
9926         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
9927         update prototype.
9928         (xcoffout_source_line): Update prototype.
9929
9930 2001-07-17  Richard Henderson  <rth@redhat.com>
9931
9932         * c-typeck.c (build_binary_op): Do not shorten unsigned
9933         right shift after sign extension.
9934
9935 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
9936
9937         * combine.c (combine_simplify_rtx): Attempt to simplify
9938         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
9939
9940         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
9941         (simplify_binary_operation, simplify_unary_operation,
9942          simplify_relational_operation): Use it.
9943
9944         * combine.c (combine_simplify_rtx): Don't do associative law
9945         on divisions; allow associative law on floats.
9946
9947 2001-07-17  H.J. Lu <hjl@gnu.org>
9948             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9949
9950         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
9951         ASM_OUTPUT_WEAK_ALIAS are defined.
9952         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
9953         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
9954         Moved ...
9955         * config/mips/iris5.h: ... here.
9956         (HANDLE_SYSV_PRAGMA): Defined as 1.
9957         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
9958         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
9959         symbol.
9960
9961 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
9962
9963         * c-parse.in (all_prefix_attributes): New variable.
9964         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
9965         (maybe_resetattrs): New production.
9966         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
9967         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
9968         notype_initdcl, nested_function, notype_nested_function,
9969         component_decl, components, components_notype,
9970         component_declarator, component_notype_declarator,
9971         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
9972         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
9973         after a comma being applied to more than one declarator.
9974         * doc/extend.texi (Attribute Syntax): Update.  Remove
9975         documentation of bugs that are no longer present.
9976
9977 2001-07-13  Eric Christopher  <echristo@redhat.com>
9978
9979         * config/mips/mips.h: Change TUNE_MIPS* options to use
9980         mips_tune.
9981         (EXTRA_SPECS): Add cc1_cpu_spec.
9982         * config/mips/mips.md (muldf3): Fix typo.
9983
9984 2001-07-16  Richard Henderson  <rth@redhat.com>
9985
9986         * config/m68k/m68k.c: Include expr.h and reload.h.
9987         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
9988         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
9989
9990 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
9991             Richard Henderson  <rth@redhat.com>
9992
9993         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
9994         (insn_live_p): Fix fall off end of function.
9995         (dead_libcall_p): Remove COUNTS argument; update callers.
9996         (delete_trivially_dead_insns): Remove unused variables.
9997
9998 2001-07-17  Andreas Jaeger  <aj@suse.de>
9999
10000         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
10001         x86-64 pic support.
10002
10003         * lcm.c (optimize_mode_switching): Avoid warning for unused
10004         variable if !NORMAL_MODE.
10005
10006         * flow.c (try_crossjump_to_edge): Remove unused variable.
10007
10008 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10009
10010         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
10011         atexit declaration in stdlib.h.
10012
10013 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
10014
10015         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
10016
10017 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
10018
10019         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
10020         * except.c (finish_eh_generation): Update call of cleanup_cfg;
10021         do rebuild_jump_labels instead of jump_optimize
10022         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
10023         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
10024         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
10025
10026         * flow.c: Include timevar.h
10027         (find_basic_block): Push/pop timevar;
10028         (cleanup_cfg): Likewise.
10029         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
10030         * Makefile: Add dependencies on timevar.h
10031
10032         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
10033         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
10034
10035         * rtl.h (delete_trivially_dead_insns): Add new parameter.
10036         * toplev.c (rest_of_compilation): Update calls.
10037         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
10038         (delete_trivially_dead_insns): ... here; accept new argument
10039         preserve_basic_blocks; preserve basic blocks if set.
10040
10041         * reg-stack.c (stack_regs_mentioned): Return 0 if
10042         stack_regs_mentioned_data is not initialized.
10043         (reg_to_stack): Make stack_regs_mentioned survive after the
10044         reg-stack is completted; do not call cleanup_cfg.
10045         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
10046         make cleanup_cfg after bb-reorder to output to debug file.
10047
10048 2001-07-16  Richard Henderson  <rth@redhat.com>
10049
10050         * regclass.c (init_reg_sets): Use only 32 bits per initializer
10051         from int_reg_class_contents.
10052
10053 2001-07-16  Richard Henderson  <rth@redhat.com>
10054
10055         * hard-reg-set.h (regs_invalidated_by_call): Declare.
10056         * regclass.c (regs_invalidated_by_call): Move from cse.c.
10057         (init_reg_sets_1): Move initialization from cse_main.
10058         * cse.c (regs_invalidated_by_call): Move to regclass.c.
10059         (cse_main): Move its initialization also.
10060         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
10061         * flow.c (propagate_one_insn): Likewise.
10062         * gcse.c (compute_hash_table): Likewise.
10063         (compute_kill_rd, compute_store_table): Likewise.
10064         * sched-deps.c (sched_analyze_1): Likewise.
10065
10066 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
10067
10068         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
10069         gen_rtx_SET.
10070
10071 2001-07-16  Steve Ellcey <sje@cup.hp.com>
10072
10073         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
10074         in if statement so we don't access undefined memory.
10075
10076 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
10077
10078         * gcse.c: Update comment at top.
10079         Update comment on mem handling.
10080         mem_last_set, mem_first_set, mem_set_in_block: gone.
10081         Declaration of reg_set_info: gone.
10082         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
10083         pointless with load_killed_in_block_p (they are *more*
10084         conservative then it, not less, and less accurate).
10085         (oprs_not_set_p): Ditto.
10086         (alloc_gcse_mem): Don't allocate mem_set_in_block
10087         (free_gcse_mem): Don't free it, either.
10088         (record_last_mem_set_info): Update comment in front, remove
10089         mem_*set_* stuff. Note the reason we don't handle stores directly
10090         here.
10091         (compute_hash_table): Update comments to reflect reality. Remove
10092         mem_*set_* references.
10093         (reset_opr_set_tables): Remove mem_*set_* references.
10094         (mark_call): Ditto.
10095         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
10096         (mark_clobber): Ditto (on both parts, we double set here too).
10097         (expr_killed_p): Remove mem_set_in_block test.
10098         (compute_transp): Remove mem_set_in_block test.
10099
10100         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
10101         of edge, and removal of phi alternative to dump file.
10102         (ssa_ccp_substitute_constants): Add note about register now being
10103         constant, and which uses were replaced in what insns to dump file.
10104
10105 2001-07-16  Andreas Jaeger  <aj@suse.de>
10106
10107         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
10108         variables of type HOST_WIDEST_INT.
10109
10110         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
10111         (__bb_exit_func): Correct type of count_max to avoid overflow.
10112         (num_digits): Handle long long argument.
10113
10114         * combine.c (gen_lowpart_for_combine): Remove unused variable.
10115
10116 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10117
10118         * output.h (sdb_begin_function_line): Restore as an extern
10119         variable.
10120         * sdbout.c (sdb_begin_function_line): Make extern.
10121
10122 2001-07-15  Richard Henderson  <rth@redhat.com>
10123
10124         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
10125         * genrecog.c (maybe_both_true_mode): New.
10126         (maybe_both_true_2): Use it.
10127         (write_switch): Don't put Pmode in a switch.
10128         * rtl.c (mode arrays): Don't explicitly size them.
10129
10130 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
10131
10132         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
10133         handling; move unconditional splitting before mode switching.
10134
10135         * i386.md (type): Add fistp type.
10136         (i387, length_attr, scheduling definitions): Handle this type.
10137         (fix_trunc?f?i2): Revamp to use mode switching.
10138         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
10139         * i386.h (fp_cw_mode): New enum
10140         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
10141         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
10142
10143 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10144
10145         * Makefile.in (integrate.o): Add debug.h.
10146         * integrate.c (debug.h): Add.
10147         (output_inline_function): Save, reset, and restore debug_hooks.
10148
10149 2001-07-15  Richard Henderson  <rth@redhat.com>
10150
10151         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
10152         instead of COMPARE for the EQUIV expression.
10153
10154 2001-07-15  Richard Henderson  <rth@redhat.com>
10155
10156         * flow.c (redirect_edge_and_branch_force): Initialize
10157         global_live_at_start and global_live_at_end.
10158         (allocate_bb_life_data): Export.
10159         * basic-block.h (allocate_bb_life_data): Declare.
10160         * toplev.c (rest_of_compilation): Call it.
10161
10162 2001-07-15  Richard Henderson  <rth@redhat.com>
10163
10164         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
10165         (alpha_tablejump_best_label): New.
10166         * config/alpha/alpha-protos.h: Declare them.
10167         * config/alpha/alpha.md: Use braced strings for code blocks.
10168         (tablejump_osf): Break out add with r29.
10169         (tablejump_osf_internal): Remove.
10170         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
10171         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
10172
10173 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
10174
10175         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
10176         of the movable.
10177
10178         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
10179
10180         * i386-protos.h (ix86_split_fp_branch): Update prototype.
10181         (ix86_fp_jump_nontrivial_p): New.
10182         * i386.md (fp_jcc_?): Update call of split_fp_branch;
10183         use ix86_fp_jump_nontrivial_p.
10184         * i386.c (ix86_fp_jump_nontrivial_p): New.
10185         (ix86_split_fp_branch): Accept code instead of rtx.
10186         (ix86_expand_compare): Expand comparison early in case
10187         doing so is resonably cheap.
10188
10189 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
10190
10191         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
10192         not 'machine'.
10193         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
10194         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
10195
10196 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
10197
10198         * dbxout.c (dbxout_source_line): Make static, update prototype.
10199         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
10200         (dbxout_init, dbxout_finish, dbxout_source_line,
10201         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
10202         * dbxout.h (dbxout_source_line): Delete.
10203         * debug.c (debug_nothing_file, debug_nothing_file_int,
10204         debug_nothing_file_charstar_rtx): New.
10205         (do_nothing_debug_hooks): Update.
10206         (debug_nothing_void, debug_nothing_charstar_rtx,
10207         dwarf2out_end_epilogue): New.
10208         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
10209         * debug.h (struct rtx_def): Declare.
10210         (gcc_debug_hooks): New hooks source_line, end_epilogue
10211         and end_function.
10212         (debug_nothing_void, debug_nothing_charstar_rtx,
10213         dwarf2out_end_epilogue): New.
10214         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
10215         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
10216         (dwarf2_debug_hooks): Update.
10217         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
10218         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
10219         * dwarf2out.h (dwarf2out_source_line): Remove.
10220         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
10221         Make static, update prototype.
10222         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
10223         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
10224         (dwarf_debug_hooks): Update.
10225         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
10226         dwarfout_end_function): Remove.
10227         * final.c (profile_function): Use debug hooks for ending functions
10228         and epilogues.
10229         (output_source_line, final_end_function): Update prototype,
10230         use debug hooks.
10231         (final_start_function, final_scan_insn): Update.
10232         * output.h (sdb_begin_function_line): Remove.
10233         (final_end_function): Update prototype.
10234         * sdbout.c (sdb_begin_function_line): Make static.
10235         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
10236         (sdbout_source_line): New.
10237         (sdbout_end_epilogue, sdbout_end_function): Make static, update
10238         prototypes.
10239         (sdb_debug_hooks): Update.
10240         (sdbout_init, sdbout_source_line,
10241         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
10242         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
10243         * toplev.c (compile_file, rest_of_compilation): Update.
10244         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
10245         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
10246         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
10247         Update for prototype changes.
10248         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
10249         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
10250
10251 2001-07-15  Richard Henderson  <rth@redhat.com>
10252
10253         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
10254         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
10255         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
10256         * config/alpha/alpha.c: Likewise.
10257         * config/alpha/alpha.md: Likewise.
10258         * config/alpha/alpha32.h: Likewise.
10259         * config/alpha/vms.h: Likewise.
10260         (OPEN_VMS): Remove.
10261
10262 2001-07-14  Richard Henderson  <rth@redhat.com>
10263
10264         * config/alpha/alpha.md: Use define_constants for unspec values.
10265         Substitute throughout.
10266
10267 2001-07-14  Tim Josling  <tej@melbpc.org.au>
10268
10269         * tree.def (EXPON_EXPR) remove. Never supported anyway.
10270
10271 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10272
10273         * pa.md: Remove unused constraints from define_split's.
10274
10275 2001-04-14  Richard Henderson  <rth@redhat.com>
10276
10277         * ifcvt.c (find_cond_trap): Test for exit block.
10278
10279 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
10280
10281         Re-install recently reverted patch.
10282         * emit-rtl.c (try_split): Update mark_jump_label call.
10283         * flow.c (find_sub_basic_blocks): Likewise.
10284         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
10285         jump_back_p): Kill.
10286         (mark_all_labels): Kill second parameter.
10287         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
10288         (rebuild_jump_labels, jump_optimize_minimal): Update call
10289         of jump_optimize_1.
10290         (jump_optimize_1): Kill crossjumping code.
10291         (mark_jump_label): Kill cross_jump parameter.
10292         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
10293         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
10294         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
10295          splitting.
10296         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
10297         DFI_bpro.
10298         (dump_file_info): Likewise.
10299         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
10300         reorganize passes to do reg-stack first, bb-reorder second.
10301         * invoke.texi (-d letters doc): Remove the jump2 pass.
10302
10303 2001-07-14  Richard Henderson  <rth@redhat.com>
10304
10305         * ifcvt.c (find_cond_trap): New.
10306         (find_if_header): Call it.
10307         (merge_if_block): Relax existing jump sanity check.
10308         * jump.c (jump_optimize_1): Remove conditional trap handling.
10309
10310 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
10311
10312         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
10313         millicode.
10314         (insn_refs_are_delayed): Correct comment.
10315         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
10316         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
10317         instead of r31.  Make associated insn !TARGET_64BIT, and
10318         provide an additional 64-bit insn that clobbers r2.
10319         (divsi3): Likewise.
10320         (udivsi3): Likewise.
10321         (modsi3): Likewise.
10322         (umodsi3): Likewise.
10323
10324 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
10325
10326         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
10327
10328         * flow.c (redirect_edge_and_branch_force, split_edge,
10329         try_crossjump_to_edge): Use set_block_for_new_insns.
10330         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
10331
10332 2001-07-13  H.J. Lu  (hjl@gnu.org)
10333
10334         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
10335         the correct patch.
10336
10337 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
10338
10339         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
10340
10341 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
10342
10343         * c-common.c (decl_attributes): Take a pointer to the node to
10344         which attributes are to be attached, and a flags argument.
10345         * c-common.h (enum attribute_flags): New.
10346         (decl_attributes): Update prototype.
10347         * c-decl.c (start_decl, push_parm_decl, finish_struct,
10348         finish_enum, start_function): Update calls to decl_attributes.
10349         * c-parse.in (component_declarator, component_notype_declarator,
10350         label): Update calls to decl_attributes.
10351
10352 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
10353
10354         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
10355         * config/avr/avr.c (legitimate_address_p): Return value changed
10356         from letter to register classes. For better debugging.
10357
10358 2001-07-13  Kazu Hirata  <kazu@hxi.com>
10359
10360         * jump.c (reversed_comparison_code_parts): Fix comment typos.
10361
10362 2001-07-13  H.J. Lu  (hjl@gnu.org)
10363
10364         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
10365
10366 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
10367
10368         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
10369         correctly for shared configurations.
10370         * config/t-libgcc-pic:  New.
10371         * config/{i386,m68k,sparc}/t-openbsd:  New.
10372         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
10373         Support -shared.  Support debugging libraries with -g.
10374         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
10375         frame information does not emit pointer diffs.
10376         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
10377         emit pointer diffs.
10378
10379 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
10380
10381         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
10382
10383 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
10384
10385         * combine.c (try_combine): Ensure const_int pow2 is positive.
10386
10387 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
10388
10389         * config.gcc: Add configuration for s/390.
10390         * config/s390/s390.c: New. Subroutines for code generation.
10391         * config/s390/s390.h: New. Definitions for s/390.
10392         * config/s390/s390-protos.h: New. Prototypes.
10393         * config/s390/linux.h: New. Definitions for linux for s/390.
10394         * config/s390/linux64.h: New. Definitions for linux for zSeries.
10395         * config/s390/t-linux: New. Makefile fragment.
10396         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
10397         * config/s390/fixdfdi.h: New. Fix L_fix*di.
10398
10399 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
10400
10401         * emit-rtl.c (try_split): Update mark_jump_label call.
10402         * flow.c (find_sub_basic_blocks): Likewise.
10403         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
10404         jump_back_p): Kill.
10405         (mark_all_labels): Kill second parameter.
10406         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
10407         (rebuild_jump_labels, jump_optimize_minimal): Update call
10408         of jump_optimize_1.
10409         (jump_optimize_1): Kill crossjumping code.
10410         (mark_jump_label): Kill cross_jump parameter.
10411         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
10412         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
10413         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
10414          splitting.
10415         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
10416         DFI_bpro.
10417         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
10418         reorganize passes to do reg-stack first, bb-reorder second.
10419         * invoke.texi (-d letters doc): Remove the jump2 pass.
10420
10421 2001-07-12  Steve Ellcey <sje@cup.hp.com>
10422
10423         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
10424
10425 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10426
10427         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
10428         basic blocks.
10429         (verify_flow_info): Make diagnostics prettier.
10430
10431 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
10432
10433         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
10434
10435         * flow.c (outgoing_edges_match): Return early if condition reversal
10436         failed.
10437
10438 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
10439
10440         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
10441         (mips_move_2words): When splitting a move into two instructions,
10442         prefix the second address operand with '%D'.
10443
10444 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
10445
10446         * Makefile.in (final.o): Depend on debug.h.
10447         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
10448         (dbx_debug_hooks): Add new hooks.
10449         (xcoff_debug_hooks): New.
10450         * debug.c (debug_nothing_file_int_int): New.
10451         (do_nothing_debug_hooks): Update.
10452         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
10453         (debug_nothing_file_int_int): New.
10454         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
10455         static, update prototype.
10456         (dwarf2_debug_hooks): Update.
10457         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
10458         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
10459         static, update prototype.
10460         (dwarf_debug_hooks): Update.
10461         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
10462         * final.c: Include debug.h.
10463         (final_scan_insn): Use debug hooks when beginning and ending blocks.
10464         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
10465         static, update prototype.
10466         (sdb_debug_hooks): Update.
10467         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
10468         * toplev.c: Distinguish between xcoff and dbx.
10469
10470         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
10471         Call all debug hooks, not just dwarf ones.
10472
10473 2001-07-11  Timothy Wall  <twall@redhat.com>
10474
10475         * config.gcc: Add configuration for AIX5/IA64.
10476         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
10477         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
10478         support prefix/suffix code.
10479         * config/ia64/t-aix: New.  Makefile fragment.
10480         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
10481
10482 2001-07-11  Kazu Hirata  <kazu@hxi.com>
10483
10484         * recog.c (validate_change): Fix a comment typo.
10485
10486 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
10487
10488         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
10489         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
10490         hooks directly.
10491         * dbxout.c (dbx_debug_hooks): Add new hooks.
10492         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
10493         make static.
10494         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
10495         make static.
10496         * dbxout.h (dbxout_start_new_source_file,
10497         dbxout_resume_previous_source_file): Delete.
10498         * debug.c (do_nothing_debug_hooks): Add new hooks.
10499         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
10500         (debug_nothing_int_charstar, debug_nothing_int): New.
10501         * debug.h (gcc_debug_hooks): New hooks define, undef,
10502         start_source_file and end_source_file.
10503         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
10504         (debug_nothing_int_charstar, debug_nothing_int): New.
10505         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
10506         the conditionally compiled section.
10507         (dwarf2out_start_source_file, dwarf2out_end_source_file,
10508         dwarf2out_define, dwarf2out_undef): Make static.
10509         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
10510         dwarf2out_define, dwarf2out_undef): Remove.
10511         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
10512         (dwarfout_start_source_file, dwarfout_end_source_file,
10513         dwarfout_define, dwarfout_undef): Make static.
10514         (dwarfout_start_source_file_check,
10515         dwarfout_end_source_file_check): New.
10516         (dwarfout_define, dwarfout_finish): Update.
10517         * dwarfout.h (dwarfout_start_new_source_file,
10518         dwarfout_resume_previous_source_file, dwarfout_define,
10519         dwarfout_undef): Remove.
10520         * sdbout.c (sdb_debug_hooks): Add new hooks.
10521         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
10522         make static.
10523         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
10524         make static, take an arg.
10525         * sdbout.h (sdbout_start_new_source_file,
10526         sdbout_resume_previous_source_file): Delete.
10527         * toplev.c (debug_start_source_file, debug_end_source_file,
10528         debug_define, debug_undef): Delete.
10529         * toplev.h (debug_start_source_file, debug_end_source_file,
10530         debug_define, debug_undef): Delete.
10531
10532         * java/jcf-parse.c: Include debug.h.
10533         (parse_class_file): Update to use debug hooks directly.
10534         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
10535
10536 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10537
10538         * alias.c (set_mem_alias_set): New function.
10539         * rtl.h (set_mem_alias_set): Declare it.
10540         * builtins.c (expand_builtin_return_addr): Call it instead of
10541         using MEM_ALIAS_SET accessor.
10542         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
10543         (get_memory_rtx, expand_builtin_va_arg): Likewise.
10544         (expand_builtin_va_copy):Likewise.
10545         * caller-save.c (setup_save_areas): Likewise.
10546         * calls.c (compute_argument_addresses): Likewise.
10547         * explow.c (set_mem_attributes): Likewise.
10548         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
10549         (expand_assignment, store_constructor_field, store_field): Likewise.
10550         (expand_expr_unaligned): Likewise.
10551         * function.c (assign_stack_temp_for_type): Likewise.
10552         (put_reg_into_stack, gen_mem_addressof): Likewise.
10553         * ifcvt.c (noce_try_cmove_arith): Likewise.
10554         * reload1.c (reload, alter_reg): Likewise.
10555         * config/alpha/alpha.c (get_aligned_mem): Likewise.
10556         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
10557         (alpha_expand_unaligned_store): Likewise
10558         (alpha_expand_unaligned_load_words): Likewise.
10559         (alpha_expand_unaligned_store_words): Likewise.
10560         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
10561         (alpha_expand_epilogue): Likewise.
10562         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
10563         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
10564         * config/i386/i386.c (legitimize_pic_address): Likewise.
10565         * config/i960/i960.c (setup_incoming_varargs): Likewise.
10566         * config/ia64/ia64.c (spill_restore_mem): Likewise.
10567         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
10568         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
10569         * config/mips/mips.c (mips_va_arg): Likewise.
10570         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
10571         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
10572         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
10573         (setup_incoming_varargs, rs6000_va_arg): Likewise.
10574         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
10575         (rs6000_emit_epilogue): Likewise.
10576         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
10577         * config/sparc/sparc.c (sparc_va_arg): Likewise.
10578         * config/v850/v850.c (v850_va_arg): Likewise.
10579
10580 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
10581
10582         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
10583         when fallthru edge is present.
10584         (mege_blocks): Handle case where creation of jump insn
10585         is required.
10586
10587         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
10588         CLEANUP_POST_REGSTACK): New constants.
10589         * except.c (finish_eh_generation): Update call of cleanup_cfg,
10590         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
10591         * output.h (cleanup_cfg): Update prototype.
10592         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
10593         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
10594         cleanup_cfg call; kill missleading comment.
10595         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
10596         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
10597         parameter; control optimizations performed using it.
10598         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
10599         try_crossjump_bb): New functions.
10600
10601 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10602
10603         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
10604         extern.
10605         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
10606         pa_output_function_prologue.
10607         * pa-protos.h (pa_output_function_prologue): New prototype.
10608
10609 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10610
10611         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
10612         and low to get correct sign extension in low+high test.
10613
10614 2001-07-11  Janis Johnson <janis@us.ibm.com>
10615
10616         * gcov.c (arcdata): Use gcov_type to fix branch percentage
10617         for large hit count.
10618
10619         * profile.c (branch_prob): Fix .bbg info for computed gotos
10620         and C++ EH code.
10621
10622 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
10623
10624         * stmt.c (parse_output_constraint): New function, split out
10625         from ...
10626         (expand_asm_operands): ... here.  Use parse_output_constraint.
10627         * tree.h (parse_output_constraint): Declare it.
10628
10629 2001-07-11  Richard Henderson  <rth@redhat.com>
10630
10631         * bitmap.c: Comment some functions; fiddle whitespace.
10632         (bitmap_free): Don't export.
10633         (bitmap_element_allocate): Use memset.
10634         * bitmap.h (bitmap_free): Don't declare.
10635
10636 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
10637
10638         * gcse.c, lcm.c, sched-deps.c:
10639         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
10640
10641         * flow.c (flow_loops_find): Free dom if we found no loops, since
10642         we aren't going to save it.
10643
10644         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
10645         done.
10646
10647 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
10648
10649         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
10650
10651 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10652
10653         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
10654         #ifndef DWARF2_DEBUGGING_INFO.
10655
10656 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
10657
10658         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
10659
10660 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
10661
10662         * config/mips/mips.c (gen_int_relational): Tell the caller not to
10663         reverse a branch if a NE comparison is implemented with GTU.
10664
10665 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
10666             H.J. Lu  <hjl@gnu.org>
10667
10668         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
10669         constant addresses.
10670         (call_internal2): Likewise.
10671         (call_value_internal1): Likewise.
10672         (call_value_internal2): Likewise.
10673         (call_value_multiple_internal1): Likewise.
10674         (call_value_multiple_internal2): Likewise.
10675
10676 2001-07-10  Kazu Hirata  <kazu@hxi.com>
10677
10678         * calls.c (emit_library_call_value_1): Fix a comment typo.
10679         * dwarf2out.c (mem_loc_descriptor): Likewise.
10680         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
10681
10682 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
10683
10684         * simplify-rtx.c (simplify_subreg): Fix typo in comment
10685
10686 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10687
10688         * recog.c (offsettable_address_p): Handle LO_SUM case.
10689         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
10690         instead of plus_constant.
10691
10692 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10693
10694         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
10695         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
10696
10697 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10698
10699         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
10700         adjust_address_nv instead of plus_constant.
10701
10702 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
10703
10704         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
10705         dwarf2out.o): Depend on debug.h, wrap long lines.
10706         * dbxout.c: Include debug.h.
10707         (dbx_debug_hooks): New.
10708         (dbxout_init): Make static, take just 2 args.
10709         (dbxout_finish): Make static.
10710         * dbxout.h (dbxout_init, dbxout_finish): Delete.
10711         * debug.c: New file.
10712         * debug.h: New file.
10713         * dwarf2out.c: Include debug.h.
10714         (dwarf2_debug_hooks): New.
10715         (dwarf2out_init): Make static.
10716         (dwarf2out_finish): Make static, take 2 args.
10717         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
10718         * dwarfout.c: Include debug.h.
10719         (dwarf_debug_hooks): New.
10720         (dwarfout_init): Make static.
10721         (dwarfout_finish): Make static, take 2 args.
10722         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
10723         * sdbout.c: Include debug.h.
10724         (sdb_debug_hooks): New.
10725         (sdbout_init): Make static, take 2 args.
10726         * sdbout.h (sdbout_init): Delete.
10727         * toplev.c: Include debug.h.
10728         (debug_hooks): New.
10729         (compile_file): Set deubg_hooks based on command line options.
10730         Use the hooks unconditionally rather than conditional compilation.
10731
10732 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
10733
10734         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
10735         first_insn_after_basic_block_note instead.
10736
10737         * df.c (df_bb_refs_unlink): #if 0 out for now.
10738
10739 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
10740
10741         * ssa.h: Add prototype for ssa_const_prop
10742         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
10743         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
10744         (ssa_fast_dce): Remove unused variable
10745
10746 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
10747
10748         * diagnostic.c (finish_diagnostic): Rename to
10749         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
10750         calls thourghout.
10751
10752 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
10753
10754         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
10755         .loc support.
10756
10757         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
10758         (dump_file): Only pad the demangled name with spaces if the
10759         mangled name was padded with spaces.
10760
10761 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
10762
10763         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
10764         edge detection.
10765
10766 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10767
10768         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
10769         extraction if no direct load if either EXPAND_CONST_ADDRESS or
10770         EXPAND_INITIALIZER.
10771
10772         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
10773         whether can put offset inside LO_SUM to check mode alignment, not size.
10774
10775 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
10776
10777         * doc/tm.texi (Misc): Fix thinko.
10778
10779 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
10780
10781         * regmove.c (replace_in_call_usage): Fix warnings.
10782         * sched-deps.c (add_dependence): Fix warnings.
10783         * simplify-rtx.c (simplify_subreg): Likewise.
10784         Return NULL_RTX instead of NULL.
10785
10786         * reg-stack.c (emit_swap_insn): Eliminate warnings.
10787         (subst_asm_stack_regs): Likewise.
10788
10789         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
10790         warnings.
10791
10792         * dwarf2out.c (output_call_frame_info): Declare i as int.
10793         (build_abbrev_table): Declare n_alloc as int.
10794         (dwarf2out_finish): Initialize die.
10795         * except.c: Declare sjlj_funcdef_number as unsigned.
10796         (connect_post_landing_pads): Declare j as unsigned.
10797         (convert_to_eh_region_ranges): Initialize call_site.
10798         (output_function_exception_table): Initialize tt_format_size.
10799         * expr.c (move_by_pieces_1): Initialize to1.
10800         (store_constructor): Initialize minelt and maxelt.
10801         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
10802         * function.c (instantiate_decls): Avoid signed/unsigned warning.
10803
10804         * c-decl.c (combine_parm_decls): Unused, remove.
10805         * c-tree.h: Remove prototype for combine_parm_decls.
10806
10807         * reload.c (push_reload): Fix warning.
10808         (regno_clobbered_p): Likewise.
10809         * reload1.c (replace_pseudos_in_call_usage): Likewise.
10810         (reload_combine): Likewise.
10811
10812         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
10813         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
10814         warnings.
10815         * bitmap.c (bitmap_operation): Change user.
10816         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
10817
10818 2001-07-10  Eric Christopher  <echristo@redhat.com>
10819
10820         * config/mips/mips.c (override_options): Fix typo.
10821
10822 2001-07-09  Stan Shebs  <shebs@apple.com>
10823
10824         * target.h (struct gcc_target): New fields init_builtins and
10825         expand_builtin.
10826         * target-def.h (TARGET_INIT_BUILTINS): New macro.
10827         (TARGET_EXPAND_BUILTIN): New macro.
10828         (TARGET_INITIALIZER): Add them.
10829         * builtins.c: Include target.h.
10830         (expand_builtin): Use targetm.expand_builtin.
10831         (default_init_builtins): New function.
10832         (default_expand_builtin): New function.
10833         * expr.h (default_init_builtins): Declare.
10834         (default_expand_builtin): Declare.
10835         * c-common.c (c_common_nodes_and_builtins): Use
10836         targetm.init_builtins.
10837         * defaults.h (MD_INIT_BUILTINS): Remove.
10838         * Makefile.in (builtins.o): Depend on target.h.
10839
10840         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
10841         (TARGET_EXPAND_BUILTIN): Define.
10842         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
10843         (MD_EXPAND_BUILTIN): Remove.
10844
10845         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
10846         (TARGET_EXPAND_BUILTIN): Define.
10847         (c4x_init_builtins): Make endlink arg a local.
10848         (c4x_print_operand): Fix typos in adjust_address usages.
10849         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
10850         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
10851         (MD_EXPAND_BUILTIN): Remove.
10852
10853         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
10854         (TARGET_EXPAND_BUILTIN): Define.
10855         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
10856         (ix86_init_builtins): Call new function only if TARGET_MMX.
10857         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
10858         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
10859         (MD_EXPAND_BUILTIN): Remove.
10860
10861         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
10862         (TARGET_EXPAND_BUILTIN): Define.
10863         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
10864         (MD_EXPAND_BUILTIN): Remove.
10865
10866         * doc/tm.texi: Document these changes.
10867
10868 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
10869
10870         * basic-block.h (tree_node): Forward declare if needed.
10871         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
10872         (BLOCK_HEAD_TREE): Define.
10873         (BLOCK_END_TREE): Define.
10874         (struct loops): Rename field 'tree' to 'tree_root'.
10875         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
10876         'end_tree'.
10877         (flow_loops_tree_build): Rename reference to field 'tree' to
10878         'tree_root'.
10879         (flow_loops_level_compute): Ditto.
10880         * predict.c (estimate_bb_frequencies): Ditto.
10881         * tree.h (struct tree_common): Add field 'aux'.
10882
10883 2001-07-09  Stan Shebs  <shebs@apple.com>
10884
10885         * config/darwin.c (darwin_encode_section_info): Don't mark any
10886         DECL_EXTERNAL node as defined.
10887
10888 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10889
10890         * pa.c (pa_init_machine_status, pa_mark_machine_status,
10891         pa_free_machine_status, hppa_init_pic_save): Delete.
10892         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
10893         (hppa_profile_hook): Use hppa_pic_save_rtx.
10894         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
10895         hppa_init_pic_save): Delete.
10896         (hppa_pic_save_rtx): Declare.
10897         * pa.md (call, call_value, sibcall, sibcall_value,
10898         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
10899
10900 2001-07-09  Kazu Hirata  <kazu@hxi.com>
10901
10902         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
10903         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
10904
10905 2001-07-09  Andreas Jaeger  <aj@suse.de>
10906
10907         * output.h: Add declaration of final_forward_branch_p.
10908
10909         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
10910
10911         * varray.c: Include errors.h for internal_error and trim_filename
10912         declarations.
10913
10914         * Makefile.in (varray.o): Add errors.h.
10915
10916 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
10917
10918         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
10919         * optabs.c (have_add2_insn): Check whether the add insn chosen
10920         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
10921         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
10922
10923 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
10924
10925         * Makefile.in (OBJS): Add ssa-ccp.o
10926         (ssa-ccp.o): Add dependencies.
10927         * toplev.c (DFI_ssa_ccp): New dump file enum.
10928         (dump_file): Add entry for dumping after SSA CCP.
10929         (flag_ssa_ccp): New flag variable.
10930         (f_options): Add -fssa-ccp.
10931         (rest_of_compilation): Run SSA CCP if requested.
10932         * timevar.def (TV_SSA_CCP): New timevar.
10933         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
10934         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
10935         Fix minor typo in SSA DCE documentation.
10936         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
10937         Add documentation for new dump option.  Renumber dump files
10938         appropriately.
10939
10940 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
10941
10942         * emit-rtl.c (gen_highpart_mode): New.
10943         * rtl.h (gen_highpart_mode): Declare.
10944         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
10945         operand can be VOIDmode constant.
10946
10947 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
10948
10949         * flow.c (redirect_edge_and_branch_force): New.
10950         (can_fallthru): Ensure that basic blocks are succeeding.
10951         (try_optimize_cfg): Do not delete basic block if it is the last one.
10952
10953         * flow.c (try_redirect_by_replacing_jump): Do not remove
10954         jumps with side effects, unlink chain on fallthru edge;
10955         set block for new jump instruction; avoid basic block to
10956         over by line number note.
10957
10958         * flow.c (try_simplify_condjump): Verify that the condjump
10959         is not always falling trought.
10960
10961         Re-install patch:
10962         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
10963
10964         * flow.c (forwarder_block_p): Fix for fallthru blocks.
10965         (try_redirect_by_replacing_jump): Update properly the count
10966         and frequency information.
10967
10968 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10969
10970         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
10971         address that is a LO_SUM specially.
10972         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
10973
10974         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
10975
10976         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
10977         (operand_subword): Use them.
10978         (change_address_1): Renamed from change_address; new arg VALIDATE.
10979         * expr.h: Reflect above changes; change_address now macro.
10980         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
10981         making MEM.
10982         * cselib.c (add_mem_for_addr): Likewise.
10983         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
10984         * regmove.c (try_apply_stack_adjustment): Likewise.
10985         * reload.c (push_reload, make_memloc): Likewise.
10986         * reload1.c (eliminate_regs): Likewise.
10987         * simplify-rtx.c (simplify_replace_rtx): Likewise.
10988         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
10989         adjust_addess.
10990         * combine.c (make_extraction, simplify_shift_const): Likewise.
10991         (gen_lowpart_for_combine): Likewise.
10992         * cse.c (gen_lowpart_if_possible): Likewise.
10993         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
10994         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
10995         * optabs.c (gen_move_insn): Likewise.
10996         * reload1.c (alter_reg): Likewise.
10997         * simplify-rtx.c (simplify_subreg): Likewise.
10998         * stmt.c (expand_anon_union_decl): Likewise.
10999         * recog.c (validate_replace_rtx_1): Likewise.
11000         (expr.h): Include.
11001         * Makefile.in (recog.o): Add $(EXPR_H).
11002         * explow.c (stabilize): Call replace_equiv_address.
11003         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
11004         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
11005
11006 2001-07-03  Andrew Haley  <aph@redhat.com>
11007
11008         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
11009         the mode of the memory location.
11010
11011 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
11012
11013         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
11014
11015 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
11016
11017         * final.c (output_addr_const): Use target opening and
11018         closing parentheses.
11019         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
11020         defaults, add to TARGET_ASM_OUT.
11021         * target.h (struct gcc_target): Add open_paren and close_paren.
11022         * doc/md.texi: Update.
11023         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
11024         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
11025         TARGET_ASM_CLOSE_PAREN.
11026         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
11027         Override.
11028         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
11029         Override.
11030         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
11031         * config/a29k/a29k.h: Similarly.
11032         * config/alpha/alpha.h: Similarly.
11033         * config/arc/arc.h: Similarly.
11034         * config/arm/aof.h: Similarly.
11035         * config/arm/aout.h: Similarly.
11036         * config/avr/avr.h: Similarly.
11037         * config/c4x/c4x.h: Similarly.
11038         * config/clipper/clipper.h: Similarly.
11039         * config/convex/convex.h: Similarly.
11040         * config/d30v/d30v.h: Similarly.
11041         * config/dsp16xx/dsp16xx.h: Similarly.
11042         * config/elxsi/elxsi.h: Similarly.
11043         * config/fr30/fr30.h: Similarly.
11044         * config/h8300/h8300.h: Similarly.
11045         * config/i370/i370.h: Similarly.
11046         * config/i386/i386.h: Similarly.
11047         * config/i860/i860.h: Similarly.
11048         * config/i960/i960.h: Similarly.
11049         * config/ia64/ia64.h: Similarly.
11050         * config/m32r/m32r.h: Similarly.
11051         * config/m68hc11/m68hc11.h: Similarly.
11052         * config/m68k/m68k.h: Similarly.
11053         * config/m88k/m88k.h: Similarly.
11054         * config/mcore/mcore.h: Similarly.
11055         * config/mips/mips.h: Similarly.
11056         * config/mn10200/mn10200.h: Similarly.
11057         * config/mn10300/mn10300.h: Similarly.
11058         * config/ns32k/ns32k.h: Similarly.
11059         * config/pa/pa.h: Similarly.
11060         * config/pdp11/pdp11.h: Similarly.
11061         * config/pj/pj.h: Similarly.
11062         * config/romp/romp.h: Similarly.
11063         * config/rs6000/rs6000.h: Similarly.
11064         * config/sh/sh.h: Similarly.
11065         * config/sparc/sparc.h: Similarly.
11066         * config/v850/v850.h: Similarly.
11067         * config/vax/vax.h: Similarly.
11068         * config/we32k/we32k.h: Similarly.
11069
11070 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
11071
11072         * doc/c-tree.texi: Document representation of attributes.
11073
11074 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11075
11076         * doc/tm.texi: Update some places for the rename of target to
11077         targetm.  Fix typo.
11078
11079 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11080
11081         * target.h (struct gcc_target): Add insert_attributes.
11082         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
11083         (TARGET_INITIALIZER): Update.
11084         * tree.c, tree.h (default_insert_attributes): New function.
11085         Update comments on other default functions to refer to targetm,
11086         not target.
11087         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
11088         TARGET_INSERT_ATTRIBUTES.
11089         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
11090         * c-common.c (decl_attributes): Use targetm.insert_attributes.
11091         Don't use PRAGMA_INSERT_ATTRIBUTES.
11092         * Makefile.in (c-common.o): Depend on $(TARGET_H).
11093         * c-decl.c (start_decl, start_function): Don't call
11094         SET_DEFAULT_DECL_ATTRIBUTES.
11095         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
11096         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
11097         declare.
11098         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
11099         (c4x_check_attribute): Avoid modifying attribute list itself.
11100         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
11101         Make static.
11102         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
11103         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
11104         declare.
11105         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
11106         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
11107         Make static.
11108         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
11109         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
11110         declare.
11111         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
11112         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
11113         Adjust parameters.  Make static.
11114
11115 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11116
11117         * c-common.c (decl_attributes): Only take a single attributes
11118         parameter.
11119         * c-common.h (decl_attributes): Update prototype.
11120         * c-decl.c (start_decl, start_function): Only take a single
11121         attributes parameter.  Update calls to decl_attributes.
11122         (finish_struct, finish_enum): Update calls to decl_attributes.
11123         (push_parm_decl): Expect unified list of attributes.  Update call
11124         to decl_attributes.
11125         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
11126         notype_nested_function, component_declarator,
11127         component_notype_declarator, label): Update calls to
11128         decl_attributes.
11129         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
11130         lists that are passed to push_parm_decl.
11131         * c-tree.h (start_function, start_decl): Update prototypes.
11132         * config/sh/sh-protos.h, config/sh/sh.c
11133         (sh_pragma_insert_attributes): Only take a single attributes
11134         parameter.
11135         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
11136         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
11137         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
11138         build_module_descriptor, generate_static_references,
11139         generate_strings, build_selector_translation_table,
11140         generate_descriptor_table, generate_protocols,
11141         generate_ivars_list, generate_dispatch_table,
11142         generate_protocol_list, generate_category,
11143         generate_shared_structures, really_start_method, add_objc_decls,
11144         generate_classref_translation_entry): Update calls to start_decl
11145         and start_function.
11146         (build_tmp_function_decl, start_method_def): Unify attribute lists
11147         that are passed to push_parm_decl.
11148
11149 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
11150
11151         * final.c (no_asm_to_stream): New.
11152         (final_scan_insn): Use target structures for prologue ends
11153         and epilogue starts.
11154         * output.h (no_asm_to_stream): New.
11155         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
11156         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
11157         (TARGET_ASM_OUT): Update.
11158         * target.h (struct gcc_target): New members function_end_prologue
11159         and function_begin_epilogue.
11160         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
11161         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
11162         * config/alpha/alpha.c (output_end_prologue): Rename to
11163         alpha_output_function_end_prologue.  Use in target struct
11164         and make static.
11165         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
11166         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
11167         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
11168         ia64_output_function_end_prologue.  Use in target struct
11169         and make static.
11170         (ia64_function_prologue, ia64_funciton_epilogue): Rename
11171         mistyped prototypes.
11172         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
11173         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
11174         Delete.
11175         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
11176         an use in target struct, make static.
11177         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
11178         Delete.
11179
11180 2001-07-08  Richard Henderson  <rth@redhat.com>
11181
11182         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
11183
11184 2001-07-08  Richard Henderson  <rth@redhat.com>
11185
11186         * config/i386/i386.md: Remove constraints strings from define_split
11187         and define_peephole2 patterns.
11188         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
11189         (eh_return): Use them.
11190
11191 2001-07-08  Richard Henderson  <rth@redhat.com>
11192
11193         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
11194         Document MD_FALLBACK_FRAME_STATE_FOR.
11195
11196 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11197
11198         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
11199         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
11200         elimination.
11201         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
11202
11203 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
11204
11205         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
11206         of the label inside NAME as opposed to just the end of NAME.
11207
11208 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
11209
11210         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
11211         * config/alpha/alpha.c (alpha_init_machine_status,
11212         alpha_mark_machine_status, alpha_free_machine_status): Delete.
11213         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
11214         (vms_valid_decl_attribute_p): Make static, conditionally compile.
11215         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
11216
11217 2001-07-06  Stan Shebs  <shebs@apple.com>
11218
11219         * target.h (targetm): Rename global from "target", so as not to
11220         conflict with local variables.
11221         * c-decl.c: Ditto.
11222         * c-typeck.c: Ditto.
11223         * final.c: Ditto.
11224         * tree.c: Ditto.
11225         * cp/decl.c: Ditto.
11226         * cp/decl2.c: Ditto.
11227         * cp/typeck.c: Ditto.
11228         * 1750a/1750a.c: Ditto.
11229         * a29k/a29k.c: Ditto.
11230         * arc/arc.c: Ditto.
11231         * arm/arm.c: Ditto.
11232         * avr/avr.c: Ditto.
11233         * clipper/clipper.c: Ditto.
11234         * convex/convex.c: Ditto.
11235         * d30v/d30v.c: Ditto.
11236         * dsp16xx/dsp16xx.c: Ditto.
11237         * elxsi/elxsi.c: Ditto.
11238         * fr30/fr30.c: Ditto.
11239         * h8300/h8300.c: Ditto.
11240         * i370/i370.c: Ditto.
11241         * i386/i386.c: Ditto.
11242         * i860/i860.c: Ditto.
11243         * i960/i960.c: Ditto.
11244         * ia64/ia64.c: Ditto.
11245         * m32r/m32r.c: Ditto.
11246         * m68hc11/m68hc11.c: Ditto.
11247         * m68k/m68k.c: Ditto.
11248         * m88k/m88k.c: Ditto.
11249         * mips/mips.c: Ditto.
11250         * ns32k/ns32k.c: Ditto.
11251         * pa/pa.c: Ditto.
11252         * pdp11/pdp11.c: Ditto.
11253         * romp/romp.c: Ditto.
11254         * rs6000/rs6000.c: Ditto.
11255         * sh/sh.c: Ditto.
11256         * sparc/sparc.c: Ditto.
11257         * vax/vax.c: Ditto.
11258         * we32k/we32k.c: Ditto.
11259         * doc/tm.texi: Update the manual to match.
11260
11261 2001-07-06  Richard Henderson  <rth@redhat.com>
11262
11263         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
11264         DWARF2_UNWIND_INFO not just whether it is defined.
11265
11266 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
11267
11268         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
11269         call to simplify_binary_operation returns a new pattern.
11270
11271 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
11272
11273         * glimits.h (__SHRT_MAX__): New.
11274         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
11275         (SHRT_MAX): Define in terms of __SHRT_MAX__.
11276
11277 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
11278
11279         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
11280         avoid warnings.
11281
11282 2001-07-06  Richard Henderson  <rth@redhat.com>
11283
11284         * bitmap.c (bitmap_release_memory): Move adjacent to the
11285         allocation functions.
11286         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
11287         the implementation.  Binary search for the set bit.
11288         (bitmap_union_of_diff): Allocate the temporary on the stack
11289         instead of using xmalloc.
11290
11291 2001-07-06  Richard Henderson  <rth@redhat.com>
11292
11293         * genrecog.c (validate_pattern): Warn for constraints in
11294         define_{expand,split,peephole2}.  Remove strict_low_part
11295         before looking up match_dup.
11296
11297 2001-07-06  DJ Delorie  <dj@redhat.com>
11298
11299         * doc/gcc.texi (Makefile): Rename to be a more general purpose
11300         chapter about various build hints and history.  Add section
11301         talking about the various types of native and cross builds.
11302
11303 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
11304
11305         * Makefile.in (final.o): Depend on target.h.
11306         * final.c: Include target.h.
11307         (default_function_pro_epilogue): New.
11308         (final_start_function): Use target structure for function prologues.
11309         (final_end_function): Use target structure for function epilogues.
11310         * fold-const.c (real_hex_to_f): Constify s and p.
11311         * output.h (default_function_pro_epilogue): New.
11312         * real.h (real_hex_to_f): Update prototype.
11313         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
11314         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
11315         (TARGET_INITIALIZER): Update.
11316         * target.h (gcc_target): Add struct asm_out.
11317         * doc/tm.texi: Update.
11318
11319 config:
11320         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
11321         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
11322         in cpu/cpu.c, or rename old functions consistently.  Take
11323         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
11324         redundant macros and prototypes.  Make new functions static.
11325
11326         * 1750a/1750a.c: Similarly.
11327         * 1750a/1750a.h: Similarly.
11328         * a29k/a29k-protos.h: Similarly.
11329         * a29k/a29k.c: Similarly.
11330         * a29k/a29k.h: Similarly.
11331         * arc/arc-protos.h: Similarly.
11332         * arc/arc.c: Similarly.
11333         * arc/arc.h: Similarly.
11334         * arm/arm-protos.h: Similarly.
11335         * arm/arm.c: Similarly.
11336         * arm/arm.h: Similarly.
11337         * avr/avr-protos.h: Similarly.
11338         * avr/avr.c: Similarly.
11339         * avr/avr.h: Similarly.
11340         * clipper/clipper-protos.h: Similarly.
11341         * clipper/clipper.c: Similarly.
11342         * clipper/clipper.h: Similarly.
11343         * convex/convex.c: Similarly.
11344         * convex/convex.h: Similarly.
11345         * d30v/d30v-protos.h: Similarly.
11346         * d30v/d30v.c: Similarly.
11347         * d30v/d30v.h: Similarly.
11348         * d30v/d30v.md: Similarly.
11349         * dsp16xx/dsp16xx-protos.h: Similarly.
11350         * dsp16xx/dsp16xx.c: Similarly.
11351         * dsp16xx/dsp16xx.h: Similarly.
11352         * elxsi/elxsi.c: Similarly.
11353         * elxsi/elxsi.h: Similarly.
11354         * fr30/fr30.c: Similarly.
11355         * fr30/fr30.md: Similarly.
11356         * h8300/h8300-protos.h: Similarly.
11357         * h8300/h8300.c: Similarly.
11358         * h8300/h8300.h: Similarly.
11359         * i370/i370-protos.h: Similarly.
11360         * i370/i370.c: Similarly.
11361         * i370/i370.h: Similarly.
11362         * i386/i386.c: Similarly.
11363         * i386/osf1elf.h: Similarly.
11364         * i386/osfrose.h: Similarly.
11365         * i860/i860-protos.h: Similarly.
11366         * i860/i860.c: Similarly.
11367         * i860/i860.h: Similarly.
11368         * i960/i960-protos.h: Similarly.
11369         * i960/i960.c: Similarly.
11370         * i960/i960.h: Similarly.
11371         * ia64/ia64-protos.h: Similarly.
11372         * ia64/ia64.c: Similarly.
11373         * ia64/ia64.h: Similarly.
11374         * m32r/m32r-protos.h: Similarly.
11375         * m32r/m32r.c: Similarly.
11376         * m32r/m32r.h: Similarly.
11377         * m68hc11/m68hc11-protos.h: Similarly.
11378         * m68hc11/m68hc11.c: Similarly.
11379         * m68hc11/m68hc11.h: Similarly.
11380         * m68k/crds.h: Similarly.
11381         * m68k/dpx2.h: Similarly.
11382         * m68k/m68k-protos.h: Similarly.
11383         * m68k/m68k.c: Similarly.
11384         * m68k/m68k.h: Similarly.
11385         * m68k/news.h: Similarly.
11386         * m88k/m88k-protos.h: Similarly.
11387         * m88k/m88k.c: Similarly.
11388         * m88k/m88k.h: Similarly.
11389         * mips/mips-protos.h: Similarly.
11390         * mips/mips.c: Similarly.
11391         * mips/mips.h: Similarly.
11392         * ns32k/merlin.h: Similarly.
11393         * ns32k/ns32k.c: Similarly.
11394         * ns32k/ns32k.h: Similarly.
11395         * ns32k/tek6000.h: Similarly.
11396         * pa/pa-protos.h: Similarly.
11397         * pa/pa.c: Similarly.
11398         * pa/pa.h: Similarly.
11399         * pdp11/2bsd.h: Similarly.
11400         * pdp11/pdp11-protos.h: Similarly.
11401         * pdp11/pdp11.c: Similarly.
11402         * pdp11/pdp11.h: Similarly.
11403         * romp/romp-protos.h: Similarly.
11404         * romp/romp.c: Similarly.
11405         * romp/romp.h: Similarly.
11406         * rs6000/rs6000-protos.h: Similarly.
11407         * rs6000/rs6000.c: Similarly.
11408         * rs6000/rs6000.h: Similarly.
11409         * rs6000/sysv4.h: Similarly.
11410         * sh/sh-protos.h: Similarly.
11411         * sh/sh.c: Similarly.
11412         * sh/sh.h: Similarly.
11413         * sparc/sparc-protos.h: Similarly.
11414         * sparc/sparc.c: Similarly.
11415         * sparc/sparc.h: Similarly.
11416         * vax/vax.c: Similarly.
11417         * vax/vax.h: Similarly.
11418         * vax/vms.h: Similarly.
11419         * we32k/we32k.c: Similarly.
11420         * we32k/we32k.h: Similarly.
11421
11422 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
11423
11424         * basic-block.h (first_insn_after_basic_block_note): Declare.
11425         * flow.c (first_insn_after_basic_block_note): Define.  Moved
11426         from...
11427         * ssa.c (first_insn_after_basic_block_note): Remove.
11428         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
11429         necessary.
11430         (ssa_eliminate_dead_code): Properly update the CFG and PHI
11431         nodes when we find a dead conditional branch.  Insert BARRIERs
11432         after any blocks with no successors, but which do not have
11433         any BARRIERs.
11434
11435 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
11436
11437         * varray.c (varray_check_failed): Use internal_error.
11438
11439 2001-07-05  Andrew Haley  <aph@redhat.com>
11440
11441         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
11442         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
11443         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
11444
11445 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
11446
11447         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
11448         reference if the target constant is also a SYMBOL_REF.
11449
11450 2001-07-05  Eric Christopher  <echristo@redhat.com>
11451
11452         * config/mips/mips.h (MASK_MIPS3900): Remove.
11453         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
11454         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
11455         (TARGET_MIPS3900): Change to use mips_arch.
11456         (TARGET_MIPS4000): New.
11457         (TARGET_MIPS4100): New.
11458         (TARGET_MIPS4300): New.
11459         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
11460         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
11461         for -mipsX.
11462         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
11463         (ISA_HAS_BRANCHLIKELY): To here.
11464         (CC1_CPU_SPEC):  New.
11465         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
11466         (mips_arch_string): Declare.
11467         (mips_arch): Declare.
11468         (TARGET_OPTIONS): Add -march and -mtune.
11469
11470         * config/mips/mips.c (mips_arch_string): New.
11471         (mips_arch): New.
11472         (override_options): Handle -march for codegen and -mtune
11473         for scheduling. Use mips_arch. Move tx39 target default here.
11474         (mips_parse_cpu): Move error message to override_options.
11475
11476         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
11477
11478         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
11479
11480         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
11481         (MIPS Options): Ditto.  Change mcpu entry to historical text.
11482
11483 2001-07-05  H.J. Lu  (hjl@gnu.org)
11484
11485         * config/mips/mips.c (mips_parse_cpu): New function to parse
11486         -march=*/-mcpu=*.
11487
11488 2001-07-05  Jim Wilson  <wilson@redhat.com>
11489
11490         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
11491         * config/ia64/t-ia64: Likewise.
11492         (LIB1ASMFUNCS): Update comment.
11493
11494 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
11495
11496         * doc/install.texi (Install GCC: Binaries): Fix typo.
11497
11498 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11499
11500         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
11501         reference using the stack pointer, adjust it since we push Y
11502         temporarily.
11503         ("*ashrsi3"): Likewise.
11504         ("*lshrsi3"): Likewise.
11505
11506 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11507
11508         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
11509         when -fomit-frame-pointer is used.
11510
11511 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
11512
11513         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
11514         (try_redirect_by_replacing_jump): Reverse updating properly the
11515         count and frequency information.  Reverse removing cc0 setter.
11516         (forwarder_block_p): Reverse fixing for fallthru blocks.
11517
11518 2001-07-05  DJ Delorie  <dj@redhat.com>
11519
11520         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
11521         (translate_options): If the above is defined, use it to map
11522         given options to new options.
11523         * doc/tm.texi: Document it.
11524
11525 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
11526             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11527
11528         * doc/invoke.texi (Optimize Options): Document that -fgcse may
11529         cause programs using computed gotos to run more slowly.
11530
11531 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11532
11533         * doc/install.texi (Specific): Markup, spelling and typo fixes.
11534         Fixed sorting.
11535         Consistently require binutils 2.11.2, not prereleases.
11536         (Specific, decstation-*): Canonicalize as mips-dec-*.
11537         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
11538         always necessary.
11539         (Specific, m68k-altos): Removed reference to README.altos, deleted.
11540         (Specific, mips-*): Reword MIPS C compiler requirements.
11541         (Specific, powerpc*-*-*): New, mention --with-cpu once.
11542         (Specific, sunv5): Removed, obsolete.
11543
11544 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
11545
11546         * dwarf2out.c (output_loc_list): Use an all ones mask for
11547         .text asm output and don't rely on long long
11548         literals. Reformat some long lines.
11549
11550 2001-07-05  Andreas Jaeger  <aj@suse.de>
11551
11552         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
11553         section.
11554
11555 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
11556
11557         * dwarf2out.c (dwarf2out_define): Update comment.
11558         (dwarf2out_undef): Ditto.
11559         (dwarf2out_start_source_file): Ditto.
11560         (dwarf2out_end_source_file): Ditto.
11561         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
11562         since we never call the start/end debug hook for the primary file.
11563
11564 2001-07-04  Kazu Hirata  <kazu@hxi.com>
11565
11566         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
11567         from shll.
11568
11569 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
11570
11571         * cppinit.c (remove_dup_dirs): Inform if a system include
11572         directory is being reordered.
11573         * doc/invoke.texi (Directory Options): GCC warns if you hide a
11574         system include.
11575         * doc/cpp.texi (Search Paths): Likewise.
11576         * doc/gcc.texi (Interoperation): Remove information about
11577         -I/usr/include.
11578
11579 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
11580
11581         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
11582         (VARRAY_TOP_CHAR_PTR): Likewise.
11583
11584 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11585
11586         * gcc.c (process_command): Don't assign elements of a const char*.
11587
11588 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11589
11590         * emit-rtl.c (change_address): Don't abort if invalid address while
11591         reload is in progress.
11592
11593 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
11594
11595         * c-lex.c (cb_file_change): Pass line number to
11596         debug_start_source_file.
11597         (cb_undefine): Pass correct line number to debug_undef.
11598
11599         * toplev.c (debug_start_source_file): Add line number to
11600         parameters. Pass it along to dwarf2out_start_source_file.
11601         (decode_g_option): Stop resetting debug level back to normal when
11602         we change debug formats, unless the current level is
11603         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
11604         3).
11605
11606         * toplev.h (debug_start_source_file): Add line number to
11607         parameters.
11608
11609         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
11610         parameters.
11611
11612         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
11613         parameters.
11614         Output debug_macinfo data for starting file if requested.
11615         (dwarf2out_end_source_file): Output debug_macinfo data for ending
11616         file if requested.
11617         (dwarf2out_define): Output debug_macinfo data for defining a macro
11618         if requested.
11619         (dwarf2out_undef): Output debug_macinfo data for undefining a
11620         macro if requested.
11621         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
11622         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
11623         (macinfo_section_label): New. DWARF2 macro info section label.
11624         (dwarf2out_init): If we want macro info, output the start label
11625         for the section.
11626         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
11627         attribute to the compilation unit die pointing to the macro info.
11628
11629 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
11630
11631         * dwarf2out.c (new_loc_list): Move to inside #ifdef
11632         DWARF2_DEBUGGING_INFO.
11633         (add_loc_descr_to_loc_list): Ditto.
11634         (output_loc_list): Ditto.
11635         Also, fix thinko in curr not being initialized.
11636         (gen_internal_sym): Ditto.
11637
11638 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11639
11640         * emit-rtl.c (replace_equiv_address): New function.
11641         * expr.h (replace_equiv_address): New declaration.
11642         * explow.c (validize_mem): Call it instead of change_address and
11643         also call if -fforce-addr and address is constant.
11644         * expr.c: Replace more calls to change_address with adjust_address
11645         and/or replace_equiv_address or to validize_mem.
11646         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
11647         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
11648         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
11649         * config/i370/i370.md, config/i860/i860.md: Likewise.
11650         * config/i960/i960.md, config/mips/mips.c: Likewise.
11651         * config/mips/mips.md, config/pa/pa.md: Likewise.
11652         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
11653         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
11654
11655 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11656
11657         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
11658
11659         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
11660         function.
11661
11662 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11663
11664         * doc/include: New directory.
11665         * doc/fdl.texi: Move to doc/include/fdl.texi.
11666         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
11667         * doc/include/funding.texi, doc/include/gpl.texi: New files.
11668         * doc/gcc.texi: Use funding.texi and gpl.texi.
11669         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
11670         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
11671         Update dependencies and use -I $(docdir)/include.
11672
11673 2001-07-04  Anthony Green  <green@redhat.com>
11674
11675         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
11676
11677 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11678
11679         * doc/install.texi (sparc64-*-*): Remove garbage.
11680
11681 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
11682
11683         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
11684         Fix typo in last change to use adjust_address.
11685
11686 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11687
11688         * doc/install.texi (Specific): Update information for *-*-solaris*.
11689
11690 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11691
11692         * explow.c (plus_constant_wide): Reinitialize Y for restart.
11693
11694 2001-07-03  Stan Shebs  <shebs@apple.com>
11695
11696         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
11697         case for flag_no_mach_text_sections.
11698         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
11699         * config/darwin.c (flag_no_mach_text_sections): Remove.
11700         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
11701
11702 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11703
11704         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
11705         and avoid checking for constant as first operand.
11706         * recog.c (find_constant_term_loc): No longer static.
11707         (adj_offettable_operand): Delete.
11708         * rtl.h (adj_offsettable_operand): Delete declaration.
11709         (find_constant_term): Add declaration.
11710         * caller-save.c: Replace calls to adj_offsettable_operand with calls
11711         to adjust_address.
11712         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
11713         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
11714         * config/i386/i386.c, config/i386/i386.md: Likewise.
11715         * config/i860/i860.c, config/i960/i960.c: Likewise.
11716         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
11717         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
11718         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
11719         * config/mips/mips.c, config/mips/mips.md: Likewise.
11720         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
11721         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
11722         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
11723         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
11724         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
11725         * config/ns32k/ns32k.md: Likewise.
11726
11727 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
11728
11729         * rtl.c (copy_rtx): Handle 'T' format letter.
11730         * gensupport.c (collect_insn_data): Likewise.
11731         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
11732
11733 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
11734
11735         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
11736         -B option.  Use 'dir' not 'foo' as example directory name.
11737
11738 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11739
11740         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11741         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
11742
11743 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
11744
11745         * doc/cppinternals.texi: Improve formatting and logical markup.
11746
11747 2001-07-03  Andreas Jaeger  <aj@suse.de>
11748
11749         * Makefile.in (insn-recog.o): Add dependency on reload.h.
11750
11751         * genrecog.c (write_header): Include reload.h for prototypes in
11752         insn-recog.c.
11753
11754 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
11755
11756 config:
11757         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
11758         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
11759         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
11760         i386_pe_valid_type_attribute_p): Add.
11761         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
11762         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
11763
11764 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11765
11766         * explow.c (plus_constant_wide, case LO_SUM): New case.
11767         (plus_constant_for_output_wide): Delete.
11768         * rtl.h (plus_constant_for_output): Delete.
11769         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
11770         instead of plus_constant_for_output.
11771         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
11772         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
11773         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
11774         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
11775         * config/sparc/sparc.md: Likewise.
11776         Convert some change_address calls to adjust_address.
11777
11778 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
11779
11780         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
11781         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
11782         documentation of -std and -Wwrite-strings.
11783
11784 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
11785
11786         * cse.c (canon_hash): Don't register registers in very small
11787         register classes, as extending their lifetime might cause
11788         reload to fail.
11789
11790 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
11791
11792         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
11793
11794         * flow.c (forwarder_block_p): Fix for fallthru blocks.
11795         (try_redirect_by_replacing_jump): Update properly the count
11796         and frequency information.
11797
11798 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
11799
11800         * toplev.c (dump_file_index): Move SSA dumps just after first
11801         jump dump.
11802         (dump_file): Corresponding changes.
11803         (rest_of_compilation): Move SSA path to just after the first
11804         jump pass.
11805         * doc/gcc.texi (Passes): Update due to movement of SSA path.
11806         * doc/invoke.texi: Update dump file #s as they were completely
11807         out of date with reality.
11808
11809 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
11810
11811         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
11812
11813         * expr.c (emit_move_insn_1): Deal with non-default
11814         STACK_PUSH_CODE.
11815
11816         * expr.c (emit_single_push_insn): Fix warning.
11817
11818 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
11819
11820         * expr.c (emit_move_insn_1): Avoid modifying
11821         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
11822
11823 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11824
11825         * emit-rtl.c (adjust_address): New function.
11826         * expr.h (adjust_address): Add declaration.
11827         * builtins.c: Replace some calls to change_address with calls to it
11828         or to validize_mem.
11829         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
11830         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
11831         * config/arm/arm.c, config/convex/convex.c: Likewise.
11832         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
11833         * config/i386/i386.c, config/i386/i386.md: Likewise.
11834         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
11835         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
11836         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
11837         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
11838         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
11839
11840 2001-07-02  Jim Wilson  <wilson@redhat.com>
11841
11842         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
11843
11844 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
11845
11846         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
11847         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
11848
11849 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
11850
11851         * cppinit.c (lang_defaults): New table.
11852         (set_lang): Just read from lang_defaults into the live options
11853         structure.
11854
11855 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
11856
11857         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
11858         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
11859         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
11860
11861 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11862
11863         * doc/install.texi: Various spelling and markup fixes.
11864         (Installing GCC): Component specific installation instructions are
11865         gone.
11866         Fix reference.
11867         Warn about removing old install dir in the presence of shared libs.
11868         (Configuration): Invoke with options target to match configure
11869         --help.
11870         Consistently refer to gas, gld pathnames.
11871         Invert --enable-multilib documentation.
11872         Remove references to old compiler versions.
11873
11874 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11875
11876         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
11877
11878 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11879
11880         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
11881         section.
11882         (Specific, mips*-sgi-irix5): Note IDO download.
11883         Reworded MIPS C hints.
11884         Use GNU as instead of GAS.
11885         Markup fixes.
11886         Removed SGI Freeware reference, IRIX 6 only.
11887         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
11888         Note N64 library requirement/workaround.
11889         Update O32 hints.
11890         Complete list of structure passing bug victims.
11891
11892 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11893
11894         * doc/install.texi: Remove CVS Id.
11895
11896 2001-07-02  Andreas Jaeger  <aj@suse.de>
11897
11898         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
11899         (find_inherently_necessary): Remove unused variable.
11900
11901 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
11902
11903         * c-common.h (TDI_inlined): New ast dump phase.
11904         (dump_flag_name): New function.
11905         * c-dump.c (dump_files): Add inlined phase.
11906         (dump_flag_name): Define.
11907         * doc/invoke.texi (-fdump-ast-inlined): Document.
11908
11909 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11910
11911         * stor-layout.c (layout_decl): Revert change to handling of alignment
11912         in packed types.
11913
11914 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11915
11916         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
11917         for FIELD_DECL.
11918
11919 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
11920
11921         * doc/tm.texi (FUNCTION_ARG): Document that the last call
11922         is special.
11923
11924 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
11925
11926         * tlink.c (recompile_files): Remove COMPILER_PATH and
11927         LIBRARY_PATH from the environment.
11928
11929 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
11930
11931         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
11932         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
11933         enumerators.
11934         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
11935
11936         * c-parse.in (OBJC_STRING): Kill.
11937         (objc_string): Decompose to [objc_string] '@' STRING.
11938         (reswords): Take the leading '@' off all the Objective C keywords.
11939         (objc_rid_sans_at): Kill.
11940         (init_reswords): Don't initialize it.
11941         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
11942         (_yylex): Kill reconsider label.  Look ahead one token after
11943         an '@'; if we get an identifier, check whether it's an
11944         Objective C @-keyword.  If so, return the keyword.  Otherwise,
11945         put back the token and return the '@' as a terminal.
11946
11947         * cpplib.c (lex_macro_node): Remove unnecessary check for
11948         leading '@' on identifier.  Clarify control flow and commentary.
11949
11950 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11951
11952         * cse.c (new_label_ref): Variable deleted.
11953         (insert): Remove set of new_label_ref.
11954         (check_for_label_ref): New function.
11955         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
11956
11957 See ChangeLog.5 for earlier changes.