OSDN Git Service

* dwarf2out.c (debug_str_hash): New.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-11-08  Jakub Jelinek  <jakub@redhat.com>
2
3         * dwarf2out.c (debug_str_hash): New.
4         (struct indirect_string_node): New.
5         (struct dw_val_struct): Change type of val_str to it.
6         (DEBUG_STR_SECTION_FLAGS): Define.
7         (add_AT_string): Push string into hashtable, increment reference
8         counter.
9         (AT_string): Return string from ht_identifier.
10         (AT_string_form): New.
11         (free_AT): For dw_val_class_str, just decrement reference counter.
12         (size_of_string): Remove.
13         (size_of_die): Use AT_string_form to decide what size the string
14         occupies in DIE.
15         (size_of_pubnames): Use strlen instead of size_of_string.
16         (value_format): Use AT_string_form for dw_val_class_str.
17         (output_die): Output DW_FORM_strp strings using
18         dw2_asm_output_offset.
19         (indirect_string_alloc, output_indirect_string): New.
20         (dwarf2out_finish): Emit .debug_str strings if there are any.
21
22 2001-11-08  Andreas Franck  <afranck@gmx.de>
23
24         * configure.in: Add AC_ARG_PROGRAM to support program name
25         transformation with --program-prefix, --program-suffix and
26         --program-transform-name.
27         * configure: Regenerated.
28         * Makefile.in (GCC_INSTALL_NAME, CPP_INSTALL_NAME,
29         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
30         GCCBUG_INSTALL_NAME, GCC_CROSS_NAME, CPP_CROSS_NAME,
31         PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): Handle
32         program_transform_name the way suggested by autoconf.
33         (GCC_TARGET_INSTALL_NAME): Define.
34         (install-driver): Use the transformed target alias name.
35
36 2001-11-08  Richard Henderson  <rth@redhat.com>
37
38         * config/mips/mips.c (save_restore_insns): Remove GP from the
39         restore registers mask early instead of special casing it inside
40         the loop.
41
42 2001-11-08  Neil Booth  <neil@daikokuya.demon.co.uk>
43
44         * cp/decl.c (shadow_warning): New function.
45         (pushdecl): Improve -Wshadow warnings.  Don't give both a warning
46         and an error when a block scope decl shadows a parameter.
47
48 2001-11-08  Richard Henderson  <rth@redhat.com>
49
50         * config/fp-bit.h (usi_to_float): Define for US_SOFTWARE_GOFAST
51         case as well.
52
53 2001-11-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
54
55         * pa.md (negdf2, negsf2): Use multiplication rather than subtraction
56         to implement floating negation on processors prior to PA 2.0.
57
58 2001-11-08  Jakub Jelinek  <jakub@redhat.com>
59
60         * dwarf2asm.c (mark_indirect_pool_entry, mark_indirect_pool): New.
61         (USE_LINKONCE_INDIRECT): Define.
62         (dw2_output_indirect_constant_1): Try to output indirect constants
63         into linkonce sections if possible.
64         (dw2_force_const_mem): Likewise.  Register indirect_pool with GGC.
65         (dw2_output_indirect_constants): Likewise.
66
67 2001-11-07  Aldy Hernandez  <aldyh@redhat.com>
68
69         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Add vrsave.
70
71 2001-11-07  Neil Booth  <neil@daikokuya.demon.co.uk>
72
73         * c-decl.c (pushdecl): Remove file and line.
74         * c-typeck.c (pop_init_level): Remove size.
75
76 2001-11-07  Aldy Hernandez  <aldyh@redhat.com>
77
78         * doc/invoke.texi: Add -maltivec, -mno-altivec, and -mabi=altivec
79         for rs6000.
80
81         * config/rs6000/rs6000.h (MASK_ALTIVEC): New.
82         (TARGET_ALTIVEC): New.
83         (TARGET_SWITCHES): Add altivec.
84         (FIRST_PSEUDO_REGISTER): Change to 109.
85         (CALL_USED_REGISTERS): Same.
86         (FIRST_ALTIVEC_REGNO): New.
87         (LAST_ALTIVEC_REGNO): New.
88         (ALTIVEC_REGNO_P): New.
89         (UNITS_PER_ALTIVEC_WORD): New.
90         (ALTIVEC_VECTOR_MODE): New.
91         (FIXED_REGISTERS): Add altivec registers.
92         (REG_ALLOC_ORDER): Same.
93         (HARD_REGNO_NREGS): Adjust for altivec registers.
94         (HARD_REGNO_MODE_OK): Same.
95         (MODES_TIEABLE_P): Same.
96         (REGISTER_MOVE_COST): Same.
97         (REGNO_REG_CLASS): Same.
98         (reg_class): Add ALTIVEC_REGS.
99         (REG_CLASS_NAMES): Same.
100         (REG_CLASS_CONTENTS): Same.
101         (REG_CLASS_FROM_LETTER): Add 'v' constraint for ALTIVEC_REGS.
102         (ALTIVEC_ARG_RETURN): New.
103         (FUNCTION_VALUE): Handle VECTOR_TYPE.
104         (LIBCALL_VALUE): Handle altivec vector modes.
105         (VECTOR_MODE_SUPPORTED_P): New.
106         (ALTIVEC_ARG_MIN_REG): New.
107         (ALTIVEC_ARG_MAX_REG): New.
108         (ALTIVEC_ARG_NUM_REG): New.
109         (FUNCTION_VALUE_REGNO_P): Return true for altivec return register.
110         (FUNCTION_ARG_REGNO_P): Support passing args in altivec registers.
111         (REGISTER_NAMES): Add altivec regs.
112         (DEBUG_REGISTER_NAMES): Same.
113         (ADDITIONAL_REGISTER_NAMES): Same.
114         (rs6000_builtins): New.
115         (MD_EXPAND_BUILTIN): New.
116         (MD_INIT_BUILTINS): New.
117         (LEGITIMATE_OFFSET_ADDRESS_P): This addressing mode is not valid
118         for AltiVec instructions.
119         (LEGITIMATE_LO_SUM_ADDRESS_P): Same.
120         (HARD_REGNO_MODE_OK): Altivec modes can only go in altivec
121         registers.
122         (SECONDARY_MEMORY_NEEDED): We need memory to copy vector modes.
123         (TARGET_SWITCHES): Add no-altivec.
124         (DATA_ALIGNMENT): Align vectors to 128 bits.
125         (TARGET_OPTIONS): Add abi= option.
126         Add rs6000_abi_string extern.
127         (LOCAL_ALIGNMENT): New.
128         (CPP_CPU_SPEC): Define __ALTIVEC__ when -maltivec.
129         (MASK_ALTIVEC_ABI): New.
130         (TARGET_ALTIVEC_ABI): New.
131         (CONDITIONAL_REGISTER_USAGE): Set first 20 AltiVec registers to
132         call-saved.
133         (STACK_BOUNDARY): Adjust for altivec.
134         (BIGGEST_ALIGNMENT): Same.
135         (rs6000_args): Add vregno.
136         (USE_ALTIVEC_FOR_ARG_P): New.
137         (FIXED_REGISTERS): Add vrsave register.
138         (CALL_USED_REGISTERS): Same.
139         (CONDITIONAL_REGISTER_USAGE): Set VRSAVE info.
140         (VRSAVE_REGNO): New.
141         (reg_class): Add VRSAVE_REGS.
142         (REG_CLASS_NAMES): Same.
143         (REG_CLASS_CONTENTS): Same.
144         (REGNO_REG_CLASS): Same.
145         
146         * config/rs6000/sysv4.h (STACK_BOUNDARY): Adjust for altivec.
147         (ABI_STACK_BOUNDARY): Same.
148         (BIGGEST_ALIGNMENT): Same.
149         (ADJUST_FIELD_ALIGN): Remove undef.  Define anew.
150         (ROUND_TYPE_ALIGN): Same.
151         
152         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
153         to 64.
154
155         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
156         to 64.
157
158         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
159         to 64.
160
161         * config/rs6000/rs6000.c (rs6000_expand_builtin): New.
162         (altivec_expand_builtin): New.
163         (altivec_init_builtins): New.
164         (TARGET_EXPAND_BUILTIN): New.
165         (TARGET_INIT_BUILTINS): New.
166         (rs6000_init_builtins): New.
167         (struct builtin_description): New.
168         (bdesc_2arg): New.
169         (rs6000_reg_names): Add altivec registers.
170         (alt_reg_names): Same.
171         (secondary_reload_class): Altivec regs can hold altivec regs and
172         memory.
173         (rs6000_emit_move): Force constants into memory for AltiVec moves.
174         (print_operand): Add 'y' case for printing altivec memory
175         operands.
176         (rs6000_legitimize_address): Legitimize vector addresses into
177         [REG+REG] or [REG].
178         (altivec_expand_binop_builtin): New.
179         New string rs6000_current_abi.
180         (rs6000_override_options): Call rs6000_parse_abi_options.
181         (rs6000_parse_abi_options): New.
182         (function_arg_boundary): Vector arguments must be 16
183         byte aligned.
184         (function_arg_advance): Handle vector arguments.
185         (function_arg_partial_nregs): Same.
186         (init_cumulative_args): Same.
187         (function_arg): Same.
188
189         * config/rs6000/rs6000.md (altivec_lvx): New.
190         (type): Add altivec attribute.
191         (movv4si): New.
192         (*movv4si_internal): New.
193         (movv16qi): New.
194         (*movv16qi_internal): New.
195         (movv8hi): New.
196         (*movv8hi_internal1): New.
197         (movv4sf): New.
198         (*movv4sf_internal1): New.
199         (altivec_stvx): New.
200         (vaddubm): New.
201         (vadduhm): New.
202         (vadduwm): New.
203         (vaddfp): New.
204         (vaddcuw): New.
205         (vaddubs): New.
206         (vaddsbs): New.
207         (vadduhs): New.
208         (vaddshs): New.
209         (vadduws): New.
210         (vaddsws): New.
211         (vand): New.
212         (vandc): New.
213         (vavgub): New.
214         (vavgsb): New.
215         (vavguh): New.
216         (vavgsh): New.
217         (vavguw): New.
218         (vavgsw): New.
219         (vcmpbfp): New.
220         (vcmpequb): New.
221         (vcmpequh): New.
222         (vcmpequw): New.
223         (vcmpeqfp): New.
224         (vcmpgefp): New.
225         (vcmpgtub): New.
226         (vcmpgtsb): New.
227         (vcmpgtuh): New.
228         (vcmpgtsh): New.
229         (vcmpgtuw): New.
230         (vcmpgtsw): New.
231         (vcmpgtfp): New.
232         (vcmpgefp): New.
233         (vcmpgtub): New.
234         (vcmpgtsb): New.
235         (vcmpgtuh): New.
236         (vcmpgtsh): New.
237         (vcmpgtuw): New.
238         (vcmpgtsw): New.
239         (vcmpgtfp): New.
240         (vmaxub): New.
241         (vmaxsb): New.
242         (vmaxuh): New.
243         (vmaxsh): New.
244         (vmaxuw): New.
245         (vmaxsw): New.
246         (vmaxfp): New.
247         (vmrghb): New.
248         (vmrghh): New.
249         (vmrghw): New.
250         (vmrglb): New.
251         (vmrglh): New.
252         (vmrglw): New.
253         (vminub): New.
254         (vminsb): New.
255         (vminuh): New.
256         (vminsh): New.
257         (vminuw): New.
258         (vminsw): New.
259         (vminfp): New.
260         (vmuleub): New.
261         (vmulesb): New.
262         (vmuleuh): New.
263         (vmulesh): New.
264         (vmuloub): New.
265         (vmulosb): New.
266         (vmulouh): New.
267         (vmulosh): New.
268         (vnor): New.
269         (vor): New.
270         (vpkuhum): New.
271         (vpkuwum): New.
272         (vpkpx): New.
273         (vpkuhss): New.
274         (vpkshss): New.
275         (vpkuwss): New.
276         (vpkswss): New.
277         (vpkuhus): New.
278         (vpkshus): New.
279         (vpkuwus): New.
280         (vpkswus): New.
281         (vrlb): New.
282         (vrlh): New.
283         (vrlw): New.
284         (vslb): New.
285         (vslh): New.
286         (vslw): New.
287         (vsl): New.
288         (vslo): New.
289         (vsrb): New.
290         (vrsh): New.
291         (vrsw): New.
292         (vsrab): New.
293         (vsrah): New.
294         (vsraw): New.
295         (vsr): New.
296         (vsro): New.
297         (vsububm): New.
298         (vsubuhm): New.
299         (vsubuwm): New.
300         (vsubfp): New.
301         (vsubcuw): New.
302         (vsububs): New.
303         (vsubsbs): New.
304         (vsubuhs): New.
305         (vsubshs): New.
306         (vsubuws): New.
307         (vsubsws): New.
308         (vsum4ubs): New.
309         (vsum4sbs): New.
310         (vsum4shs): New.
311         (vsum2sws): New.
312         (vsumsws): New.
313         (vxor): New.
314
315 2001-11-07  Daniel Berlin  <dan@cgsoftware.com>
316
317         * Makefile.in (df.o): Add fibheap.h to dependencies.
318        
319         * df.h: Add prototypes for transfer functions, iterative_dataflow
320         functions.
321         (enum df_flow_dir): New enum.
322         (enum df_confluence_op): New enum.
323         (struct df): Add inverse_rts_map.
324
325         * df.c: Add sbitmap.h to the list of includes.
326         (df_rd_global_compute): Removed.
327         (df_ru_global_compute): Removed.
328         (df_lr_global_compute): Removed.
329         (df_rd_transfer_function): New function.
330         (df_ru_transfer_function): New function.
331         (df_lr_transfer_function): New function.
332         (df_analyse_1): allocate/compute/free df->inverse_rts_map.
333         Use iterative_dataflow_bitmap instead of df_*_global_compute.
334         (iterative_dataflow_sbitmap): New function.
335         (iterative_dataflow_bitmap): New function.
336
337 2001-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
338
339         * doc/gcc.texi: Move terminology and spelling conventions to
340         htdocs/codingconventions.html.
341
342 2001-11-07  Graham Stott  <grahams@redhat.com>
343
344         * cse.c (cse_insn): Emit BARRIER after unconditional jump.
345
346 Wed Nov  7 13:33:34 CET 2001  Jan Hubicka  <jh@suse.cz>
347
348         * expmed.c (expand_mult): Force operand to register before computing
349         cost.
350         * i386.c (x86_decompose_lea): New global vairable.
351         * i386.h (x86_decompose_lea): Declare.
352         (TARGET_DECOMPOSE_LEA): New macro.
353         (RTX_COST): Handle leas properly.
354
355 2001-11-06  Richard Henderson  <rth@redhat.com>
356
357         * config/alpha/elf.h (DO_SELECT_SECTION): TREE_READONLY is not
358         defined for a CONSTRUCTOR; don't check it.
359
360 2001-11-06  Danny Smith  <dannysmith@users.sourceforge.net>
361
362         * gcov.c (output_data): Use IS_ABSOLUTE_PATHNAME to
363         test for absolute pathnames.
364
365 2001-11-06  Olivier Hainque <hainque@act-europe.fr>
366
367         * unwind-dw2.c (execute_cfa_program): Evaluate call frame
368         instructions up to the target pc inclusive.
369
370 2001-11-06  Steve Christiansen  <smc@us.ibm.com>
371
372         * loop.c (loop_regs_scan):  Don't invalidate PIC register.
373
374 2001-11-06  Eric Christopher  <echristo@redhat.com>
375
376         * config/mips/mips.md(movdf_internal2): Add constraints for float
377         to general register move.
378         * config/mips/elf64.h: Add default ABI.
379
380 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
381
382         * alias.c:: Include langhooks.h.
383         * emit-rtl.c: Similarly.
384         * toplev.c: Similarly.
385         * tree-inline.c: Similarly.
386         * langhooks-def.h: New, the old langhooks.h.  Give the default
387         hooks a common prefix.
388         * langhooks.h: Contents extracted from toplev.h.
389         * toplev.h: Move langhook stuff to langhooks.h.
390         * langhooks.c: Give default hooks a common prefix.
391
392         * c-lang.c: Include langhooks-def.h.
393         * objc/objc-act.c: Similarly.
394         * Makefile.in: Update.
395         * objc/Make-lang.in: Update.
396
397 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
398
399         * doc/install.texi: Document that configure options not listed in
400         this file are unsupported.  Document --with-system-zlib.
401
402 Tue Nov  6 09:21:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
403
404         * rtl.h (mem_for_const_double): New declaration.
405         * varasm.c (mem_for_const_double): New function.
406         * config/convex/convex.md (movdf): Use it.
407         * config/m68k/hp320.h (LEGITIMATE_PIC_OPERAND_P): Likewise.
408         * config/m68k/linux.h, config/m68k/m68k.h: Likewise.
409         * config/m68k/m68kv4.h: Likewise.
410
411         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Adjust for addition
412         of new GP reg classes.
413
414         * expr.c (store_field): When making temp object for unaligned
415         component, set it to alias set 0.
416
417 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
418
419         * c-common.c (c_expand_expr_stmt): Apply default conversions to
420         non-lvalue arrays if C99.
421         * c-typeck.c (default_conversion): Split out code handling
422         array-to-pointer and function-to-pointer conversions into a
423         separate default_function_array_conversion function.
424         (default_function_array_conversion): New function.  Keep track of
425         whether any NON_LVALUE_EXPRs were stripped.  Return non-lvalue
426         arrays unchanged outside C99 mode instead of giving an error for
427         them.
428         (build_component_ref): Use pedantic_non_lvalue when handling
429         COMPOUND_EXPR.  Don't handle COND_EXPR specially.
430         (convert_arguments): Use default_function_array_conversion.
431         (build_unary_op): For ADDR_EXPR, take a flag indicating whether
432         non-lvalues are OK.
433         (unary_complex_lvalue): Likewise.
434         (internal_build_compound_expr): Use
435         default_function_array_conversion.  Apply default conversions to
436         function in compound expression.
437         (build_c_cast, build_modify_expr, digest_init, build_asm_stmt):
438         Use default_function_array_conversion.
439         * doc/extend.texi: Update documentation of subscripting non-lvalue
440         arrays.
441         Fixes PR c/461.
442
443 2001-11-05  Zack Weinberg  <zack@codesourcery.com>
444
445         * aclocal.m4: (AM_WITH_NLS): Don't look at ALL_LINGUAS.
446         (AM_GNU_GETTEXT): Set CATALOGS to a list of .gmo files
447         corresponding to the complete set of .po and .gmo files in
448         the source directory's po subdir, modified by LINGUAS.  Don't
449         look at ALL_LINGUAS.
450         * configure.in: Don't set ALL_LINGUAS.
451         * configure: Regenerate.
452
453         * Makefile.in (.po.gmo): Don't move into source directory.
454         (.po.pox): Clarify comments.
455         (install-po): Look for .gmo files in both srcdir and objdir;
456         don't fail if a file is totally missing.
457         (distclean): rmdir ada subdirectory too.
458
459 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
460
461         * config/rs6000/rs6000.c (rs6000_select_section): Handle
462         CONSTRUCTORs _correctly_.
463
464 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
465
466         * c-decl.c (delete_block): Remove.
467         * c-tree.h (delete_block): Remove.
468
469 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
470
471         * cppexp.c (lex, parse_defined): Update warning about defined.
472
473 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
474
475         * config/rs6000/rs6000.c (rs6000_select_section): Handle
476         CONSTRUCTORs too.
477
478 2001-11-05  Nick Clifton  <nickc@cambridge.redhat.com>
479
480         * config/arm/arm.c (arm_return_in_memory): Cope with
481         int_size_in_bytes returning -1.
482
483         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Handle
484         DECL being NULL.
485
486 Mon Nov  5 16:15:25 CET 2001  Jan Hubicka  <jh@suse.cz>
487
488         * Makefile.in (bb-reoder.o): Add depdendency on cfglayout.h;
489         remove unneded depdendencies;
490         (cfglayout.o): New.
491         * cfglayout.c, cfglayout.h: New files; break out from ...
492         * bb-reorder.c: ... here; Remove unneeded includes;
493
494 2001-11-04  Alan Modra  <amodra@bigpond.net.au>
495
496         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used.
497
498 2001-11-04  David Edelsohn  <edelsohn@gnu.org>
499
500         * config/rs6000/rs6000.c (rs6000_emit_move): Handle 64-bit
501         mode as well.  Do not explicitly create intermediate regs.
502
503 2001-11-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
504
505         * arm/aof.h (aof_text_section, aof_data_section): Don't declare.
506         (common_section): Delete unused variable.
507         (ASM_OUTPUT_ASCII): Fix signed/unsigned warnings.
508         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
509         * arm-protos.h (arm_poke_function_name, aof_add_import,
510         aof_delete_import): Const-ify.
511         * arm.c (legitimize_pic_address): Wrap variables in the macro
512         controlling their usage.
513         (arm_finalize_pic): Mark variable with ATTRIBUTE_UNUSED.
514         (arm_poke_function_name, pic_chain, import, aof_add_import,
515         aof_delete_import): Const-ify.
516         * i386.c (ix86_osf_output_function_prologue): Const-ify.
517         * i386/sysv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
518         ASM_OUTPUT_LONG_DOUBLE): Fix format specifier warnings.
519         * i860/fx2800.h (DBX_OUTPUT_STANDARD_TYPES): Const-ify.
520         * i860/sysv3.h: Add missing comment closure.
521         * m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Add missing semi-colon.
522         * m88k/dgux.h (SELECT_RTX_SECTION): Add missing argument in call
523         to symbolic_operand.
524
525         * config.gcc (m680[02]0-*-*): Rename case from m68000-*-*.
526         (i960-*-*): Set tmake_file.
527         (sparc86x-*-elf*): Fix typo in header name.
528
529         * sched-rgn.c (schedule_insns): Delete unused variable.
530
531 2001-11-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
532
533         PR c/2820
534         * c-typeck.c (lookup_field): Rework to return a chain down to
535         the looked-up field.
536         (build_component_ref): Use the new lookup_field to handle
537         nested anonymous entities correctly.
538
539 Sun Nov  4 11:53:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
540
541         * config/sparc/sparc.c (sparc_emit_set_const32, GEN_HIGHINT64):
542         Change parameters to gen_rtx_CONST_DOUBLE.
543         (GEN_INT64, sparc_emit_set_const64): Likewise.
544         * config/sparc/sparc.md (movdf split): Likewise.
545
546 2001-11-03  Geoffrey Keating  <geoffk@redhat.com>
547
548         * unroll.c (calculate_giv_inc): Use find_last_value rather
549         than just hoping the last instruction is the right SET.
550         [Fixes 990604-1.c on stormy16.]
551
552         * config/stormy16/stormy16.h (LIB_SPEC): Don't supply any libgloss
553         library at all if -T is used.
554
555         * config/stormy16/stormy16.c (stormy16_print_operand): Avoid
556         some uses of uninitialized variables in error cases.
557
558         * config/stormy16/stormy16.c (stormy16_output_shift): Don't
559         look at 'temp' if we won't be using it.
560
561         * config/stormy16/stormy16.h (CONST_COSTS): Define.
562         (RTX_COSTS): Define.
563         (ADDRESS_COST): Define.
564         (MEMORY_MOVE_COST): Allow for memory_move_secondary_cost.
565
566         * config/stormy16/stormy16.h (ASM_SPEC): Pass -g to the assembler.
567
568         * config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Call
569         stormy16_asm_output_mi_thunk.
570         * config/stormy16/stormy16.c (stormy16_asm_output_mi_thunk): New
571         function.
572         * config/stormy16/stormy16-protos.h
573         (stormy16_asm_output_mi_thunk): New prototype.
574
575 2001-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
576
577         * ChangeLog.2, ChangeLog.4, ChangeLog.5, ChangeLog,
578         FSFChangeLog.10, FSFChangeLog.11, alias.c, attribs.c,
579         caller-save.c, calls.c, cfg.c, cfganal.c, cfgcleanup.c, cfgrtl.c,
580         cppmacro.c, fold-const.c, ifcvt.c, local-alloc.c, profile.c,
581         sched-int.h, toplev.c, config/alpha/alpha.c,
582         config/alpha/alpha.md, config/c4x/c4x.h, config/cris/cris.h,
583         config/cris/cris.md, config/i370/i370.md, config/i386/i386.c,
584         config/i386/i386.h, config/i386/i386.md, config/i386/xm-djgpp.h,
585         config/ia64/ia64.c, config/m68hc11/m68hc11.c, config/m68k/m68k.md,
586         config/mcore/mcore.h, config/mmix/mmix.c, config/ns32k/ns32k.h,
587         config/ns32k/ns32k.md, config/rs6000/rs6000.c,
588         config/rs6000/sysv4.h, config/sh/sh.md: Fix spelling errors.
589
590 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
591
592         * Makefile.in (dbxout.o): Depend on function.h.
593         * collect2.c (is_in_list): Hide unused function.
594         * dbxout.c: Include function.h.
595         (source_label_number, dbxout_source_line, dbxout_source_file,
596         dbxout_function_end, dbxout_begin_function): Wrap/move inside
597         macros controlling usage.
598         * gcc.c (TARGET_EXECUTABLE_SUFFIX): Undef before defining.
599         * output.h (exports_section): Prototype.
600
601         * convex.c (convex_output_function_prologue): Fix format specifier
602         warning.
603         (asm_declare_function_name): Fix signed/unsigned warning.
604         (print_operand): Fix format specifier warning.
605         * convex.h (S_REGNO_P, A_REGNO_P): Fix signed/unsigned warning.
606         * dsp16xx-protos.h (uns_comparison_operator,
607         num_1600_core_shifts): Prototype.
608         * dsp16xx.c: Include tm_p.h, not dsp16xx-protos.h.
609         (frame_size, frame_pointer_offset): Delete.
610         (dsp16xx_output_function_prologue, dsp16xx_output_function_epilogue):
611         Make static.  Fix format specifier warnings.
612         * dsp16xx.h (IS_ACCUM_REG): Fix unsigned>=0 warning.
613         (EXTRA_SECTION_FUNCTIONS): Prototype const_section.
614         * dsp16xx.md: Add default case in switches.
615         * fr30.h (IN_RANGE): Delete.
616         * ia64.h (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
617         * mcore-protos.h (mcore_output_cmov): Const-ify.
618         * mcore.c (mcore_output_cmov): Likewise.
619         * mcore.h (switch_to_section): Make static and prototype.
620         * mn10200.h (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Fix
621         unsigned>=0 warnings.
622         * mn10300.h (REGNO_IN_RANGE_P): Likewise.
623         * rs6000-protos.h (read_only_data_section,
624         read_only_private_data_section): Prototype.
625         * rs6000.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
626         * sh.c (sh_adjust_cost): Mark parameter with ATTRIBUTE_UNUSED.
627         * sh.h (GENERAL_REGISTER_P): Fix unsigned>=0 warning.
628
629 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
630
631         * dwarf2asm.c (dw2_asm_output_pcrel): Mark parameters with
632         ATTRIBUTE_UNUSED.
633         * final.c (final_scan_insn): Add brackets around body of if-stmt.
634         * gcc.c (convert_filename): Add static prototype.  Const-ify.
635         Wrap variable in macros controlling its use.
636         * output.h (sdata_section): Add prototype.
637
638         * 1750a.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
639         (ASM_OUTPUT_ASCII): Avoid signed/unsigned warning.
640         * c4x.h (INIT_SECTION_FUNCTION): Add prototype.
641         (ASM_FILE_START): Const-ify.
642         (ASM_OUTPUT_BYTE_FLOAT, ASM_OUTPUT_SHORT_FLOAT): Fix format
643         specifier warning.
644         * c4x.md: Don't use the 'U' integer suffix.
645         * clipper.md (clipper_movstr): Delete declaration.
646         * d30v-protos.h (d30v_move_2words): Const-ify.
647         (debug_stack_info): Add prototype.
648         * d30v.c: Include "integrate.h".
649         (d30v_function_arg_boundary, d30v_function_arg,
650         d30v_function_arg_partial_nregs, d30v_function_arg_advance): Avoid
651         signed/unsigned warnings.
652         (d30v_print_operand_memory_reference, d30v_move_2words):
653         Const-ify.
654         * d30v.h (REG_CLASS_FROM_LETTER): Use unsigned array subscript.
655         * fr30.c (fr30_pass_by_reference, fr30_pass_by_value): Prototype.
656         * fr30.md: Const-ify.
657         * h8300.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
658         * i370.c (i370_label_scan, mvs_get_label): Make definition static.
659         (mvs_get_label_page): Hide unused static function.
660         * i860.c (current_function_original_name): Const-ify.
661         * i860/sysv3.h (current_function_original_name): Likewise.
662         * i860/sysv4.h (current_function_original_name): Likewise.
663         * i960.md: Add default case in switches.  Remove unused variable.
664         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Undef before defining.
665         * m32r.md: Const-ify.
666         * m68hc11-protos.h (m68hc11_asm_file_start): Const-ify.
667         * m68hc11.c: Include "reload.h".
668         (static_chain_reg, print_options, m68hc11_asm_file_start):
669         Const-ify.
670         * m68hc11.md: Delete unused variable.  Const-ify.  Add parens
671         around & in comparison.
672         * mcore.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
673         * mn10200.c (shift_mode): Remove trailing comma.
674         * mn10300-protos.h (output_tst): Const-ify.
675         * mn10300.c (output_tst): Likewise.
676         * pa/long_double.h (ASM_OUTPUT_LONG_DOUBLE): Fix format specifier
677         warnings.
678         * pa-protos.h (output_ascii): Use regular char *, not unsigned.
679         * pa.c (output_ascii): Likewise.
680         * pa/som.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
681         * pdp11.md (expand_unop): Delete declarations.
682         * pj-protos.h (pj_output_addsi3): Const-ify.
683         * pj.c (pj_output_push_int, pj_output_load, pj_output_inc,
684         pj_output_cnv_op, mode_to_char, pj_output_varidx, pj_print_cond,
685         unique_src_operand): Add prototypes.
686         (pj_output_store_into_lval): Make definition static.
687         (pj_function_incoming_arg): Don't use unary plus.
688         (pj_output_addsi3): Const-ify.
689         * romp.md (get_symref): Delete declarations.
690         * v850-c.c (mark_current_function_as_interrupt): Don't return
691         value from void function.
692         * v850.c: Include "integrate.h".
693         * v850.h (ASM_OUTPUT_LABELREF): Const-ify.
694         * vax-protos.h (const_section): Add prototype.
695
696 2001-11-03  Aldy Hernandez  <aldyh@redhat.com>
697
698         * machmode.def: Add documentation for the seventh argument in
699         vector modes.
700
701 2001-11-04  Hans-Peter Nilsson  <hp@bitrange.com>
702
703         * doc/invoke.texi (MMIX Options) <-mno-knuthdiv>: Say remainder
704         consistently.
705         <-mno-toplevel-symbols>: Change @code{:} to @samp{:}.
706         <-melf>: Don't have markup for ELF acronym.
707
708 2001-11-03  Hans-Peter Nilsson  <hp@bitrange.com>
709
710         * config.gcc (mmix-*-*): New target.
711         * doc/invoke.texi: Document MMIX options.
712         * doc/contrib.texi: Add note about MMIX port to my entry.
713         * config/mmix/t-mmix: New file.
714         * config/mmix/mmix.h: New file.
715         * config/mmix/mmix-protos.h: New file.
716         * config/mmix/mmix.c: New file.
717         * config/mmix/mmix.md: New file.
718         * config/mmix/crti.asm: New file.
719         * config/mmix/crtn.asm: New file.
720
721 2001-11-03  Kazu Hirata  <kazu@hxi.com>
722
723         * config/sparc/linux-aout.h: Fix comment formatting.
724         * config/sparc/linux.h: Likewise.
725         * config/sparc/linux64.h: Likewise.
726         * config/sparc/lynx.h: Likewise.
727         * config/sparc/pbd.h: Likewise.
728         * config/sparc/sol2-sld-64.h: Likewise.
729         * config/sparc/sol2.h: Likewise.
730         * config/sparc/sparc.c: Likewise.
731         * config/sparc/sparc.h: Likewise.
732         * config/sparc/sparc.md: Likewise.
733         * config/sparc/sunos4.h: Likewise.
734         * config/sparc/vxsim.h: Likewise.
735         * config/sparc/vxsparc.h: Likewise.
736         * config/sparc/vxsparc64.h: Likewise.
737
738 Sat Nov  3 10:37:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
739
740         * cselib.c (cselib_subst_to_values, case CONST_DOUBLE): Remove
741         reference to CONST_DOUBLE_MEM in comment.
742         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Remove one operand.
743         (gen_rtx, case CONST_DOUBLE): Call it with one less operand.
744         (init_emit_once): Don't clear CONST_DOUBLE_MEM.
745         * function.c (pop_function_context_from): Don't call
746         restore_varasm_status.
747         * function.h (restore_varasm_status): Delete declaration.
748         * gengenrtl.c (CONST_DOUBLE_FORMAT): Delete CONST_DOUBLE_MEM slot.
749         * rtl.c: Likewise.
750         * rtl.def (CONST_DOUBLE): Update comment.
751         * rtl.h (CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW): Update operand number.
752         (CONST_DOUBLE_CHAIN): Likewise.
753         (CONST_DOUBLE_MEM): Delete.
754         (gen_rtx_CONST_DOUBLE): Update parameters.
755         * varasm.c (struct varasm_status): x_pool_offset now HOST_WIDE_INT.
756         Remove reference to CONST_DOUBLE_MEM.
757         (const_alias_set): New variable.
758         (immed_double_const): Change call to gen_rtx_CONST_DOUBLE.
759         (immed_real_const_1): Adjust tests for 0, 1, and 2.
760         Don't set CONST_DOUBLE_MEM.
761         (clear_const_double_mem): Don't do anything with const_tiny_rtx.
762         (output_constant_def): Don't look at TREE_CST_RTL if INTEGER_CST.
763         Put constant in const_alias_set.
764         (struct pool_constant): ALIGN now unsigned.
765         OFFSET now HOST_WIDE_INT.
766         Delete LABEL.
767         (restore_varasm_status): Deleted.
768         (mark_pool_constant): Mark desc->rtl.
769         (force_const_mem): Rework to store rtl in hash table,
770         not CONST_DOUBLE_MEM.
771         Put constant in const_alias_set.
772         (find_pool_constant): Check desc->rtl.
773         (mark_constants, mark_constant): Don't special-case CONST_DOUBLE.
774         (init_varasm_once): Initialize const_alias_set.
775
776         * expr.c (expand_expr, case ADDDR_EXPR): If at top level, don't call
777         force_const_mem.
778
779         * reload.c (combine_reloads): Don't combine an output reload if there
780         are other reloads around for part of the output.
781
782         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a
783         constant expression.
784         (set_mem_decl): New function.
785         * expr.h (set_mem_decl): New declaration.
786         * final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo.
787         (output_asm_operand_names): Add tab.
788         * reload1.c (alter_reg): Set decl of MEM from REG_DECL.
789
790         * builtins.c (get_memory_rtx): Properly set MEM alias set and
791         attributes.
792
793 2001-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
794
795         * doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi:
796         Use "invalid" instead of "illegal".  Use @r in comments in
797         examples.
798
799 2001-11-02  Neil Booth  <neil@daikokuya.demon.co.uk>
800
801         * c-decl.c (pushdecl): Move block inside if conditional to remove
802         possibility of a segfault.  Lookup block-level extern
803         variables in enclosing scopes correctly.
804
805         * testsuite/gcc.c-torture/compile/20001018-1.x: Remove XFAIL.
806
807 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
808
809         * expmed.c (store_bit_field): Use simplify_gen_subreg to make
810         SUBREG so we avoid SUBREGing memory.
811
812         * expmed.c (store_bit_field): Same.
813
814 2001-11-02  DJ Delorie  <dj@redhat.com>
815
816         * config/rs6000/rs6000.c (rs6000_emit_move): Make sure that
817         using FP registers for DImode mem-mem moves is acceptable.
818
819 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
820
821         * builtins.c (apply_args_size): Handle vector arguments.
822         (apply_result_size): Same.
823
824         * machmode.def: Set WIDER mode field for all vector entries.
825
826 2001-11-02  Graham Stott  <grahams@redhat.com>
827
828         * recog.c (decode_asm_operands):  Check that the SRC is ASM_OPERANDS.
829
830 2001-11-01  Eric Christopher  <echristo@redhat.com>
831
832         * config.gcc: Revert part of earlier patch.
833         * config/mips/linux.h: Ditto.
834         * df.c: Include tm_p.h to avoid warnings.
835         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Add defaults.  Adjust
836         #if/#endif.
837         * config/mips/mips.c: Define mips_abi regardless.
838         (mips_output_function_prologues): Add long casts for .frame
839         output.
840         (override_options): Allow use of ABI_32.
841
842 2001-11-01  Kazu Hirata  <kazu@hxi.com>
843
844         * config/m68hc11/m68hc11.c: Fix comment formatting.
845         * config/m68hc11/m68hc11.h: Likewise.
846         * config/m68hc11/m68hc11.md: Likewise.
847
848 2001-11-01  Neil Booth  <neil@daikokuya.demon.co.uk>
849
850         * c-typeck.c (default_conversion): Retain the original expression
851         codes.
852         * gcc.dg/Wparentheses.c: New tests.
853
854 2001-11-01  David S. Miller  <davem@redhat.com>
855
856         * doc/install.texi (Specific, sparc-sun-solaris2*): Bring
857         64-bit Sparc description more in line with reality.
858
859 2001-11-01  Joseph S. Myers  <jsm28@cam.ac.uk>
860
861         * Makefile.in (GCOV_OBJS): Add version.o.
862         * gcov.c: Include "version.h" and <getopt.h>.
863         (gcov_version_string): Remove.
864         (print_usage): Take a parameter to determine whether this is a
865         call from --help or an error message.  Give fuller output that
866         follows the GNU Coding Standards for --help.
867         (print_version): New function.
868         (options): New.
869         (process_args): Use getopt_long.  Support long options.  Follow
870         GNU Coding Standards for --help and --version.
871         * doc/gcov.texi: Document long options.
872         Addresses part of PR other/704.
873
874 2001-11-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
875
876         * pa.c (output_move_double): Fix typo in double load.
877
878 2001-11-01  Kazu Hirata  <kazu@hxi.com>
879
880         * config/h8300/h8300.c (h8300_encode_label): Compute a string
881         before passing it to ggc_alloc_string.
882
883 2001-11-01  Kazu Hirata  <kazu@hxi.com>
884
885         * config/m68k/3b1.h: Fix comment formatting.
886         * config/m68k/3b1g.h: Likewise.
887         * config/m68k/a-ux.h: Likewise.
888         * config/m68k/amix.h: Likewise.
889         * config/m68k/apollo68.h: Likewise.
890         * config/m68k/atari.h: Likewise.
891         * config/m68k/aux-exit.c: Likewise.
892         * config/m68k/ccur-GAS.h: Likewise.
893         * config/m68k/crds.h: Likewise.
894         * config/m68k/dpx2.h: Likewise.
895         * config/m68k/dpx2g.h: Likewise.
896         * config/m68k/hp310.h: Likewise.
897         * config/m68k/hp320.h: Likewise.
898         * config/m68k/isi.h: Likewise.
899         * config/m68k/linux.h: Likewise.
900         * config/m68k/lynx.h: Likewise.
901         * config/m68k/m68k-psos.h: Likewise.
902         * config/m68k/m68k.c: Likewise.
903         * config/m68k/m68k.h: Likewise.
904         * config/m68k/m68k.md: Likewise.
905         * config/m68k/m68kelf.h: Likewise.
906         * config/m68k/m68kv4.h: Likewise.
907         * config/m68k/mot3300.h: Likewise.
908         * config/m68k/news.h: Likewise.
909         * config/m68k/next.h: Likewise.
910         * config/m68k/pbb.h: Likewise.
911         * config/m68k/plexus.h: Likewise.
912         * config/m68k/sgs.h: Likewise.
913         * config/m68k/sun3.h: Likewise.
914         * config/m68k/tower.h: Likewise.
915         * config/m68k/vxm68k.h: Likewise.
916
917 2001-10-31  DJ Delorie  <dj@redhat.com>
918
919         * config/mips/mips.h (mips_cache_flush_func): Prototype.
920         (TARGET_OPTIONS): Support -mflush-func= and -mno-flush-func.
921         (INITIALIZE_TRAMPOLINE): Use mips_cache_flush_func if nonzero.
922         * config/mips/mips.c (mips_cache_flush_func): New.
923         * doc/invoke.texi: Document the new options.
924
925 2001-10-31  Hans-Peter Nilsson  <hp@axis.com>
926
927         * config.gcc (cris-*-linux*, tm_file): Rearrange order.
928         * config/cris/linux.h (LIB_SPEC, STARTFILE_SPEC): Don't redefine.
929
930         * config/cris/cris.h (EH_RETURN_DATA_REGNO): Fix formatting.
931
932         * config/cris/cris.c: Include output.h after tree.h but before
933         target.h.
934
935 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
936
937         * Makefile.in (INTL_TARGETS, POSUB): Delete all references.
938         (INTL_SUBDIRS): Just intl.
939         (.SUFFIXES): Add .gmo .po .pox.
940         (native): Also depend on build-@POSUB@.
941         (intl.all, intl.install): Depend on config.h and things it includes.
942         (po-generated): New target; depend on c-parse.c and tradcif.c.
943         (install-normal): Also depend on install-@POSUB@.
944         (XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): New variables.
945         (build-, install-, build-po, update-po, install-po,
946         .po.gmo, .po.pox, $(PACKAGE).pot, po/$(PACKAGE).pot): New rules.
947
948         * aclocal.m4: Prefix each entry in CATALOGS with "po/"
949         * configure.in: Don't munge XGETTEXT.  Don't generate
950         po/Makefile.in.
951         * configure: Regenerate.
952
953         * exgettext: Delete.
954         * config/m68k/m68k.h: Add doc strings for -msky and -mnosky.
955         * objc/Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
956
957 2001-10-31  Kazu Hirata  <kazu@hxi.com>
958
959         * config/h8300/h8300.md (two anonymous patterns): New.
960
961 2001-10-31  Aldy Hernandez  <aldyh@redhat.com>
962
963         * tree.h (tree_index): Add support for V16QI and V8HI.
964         (V8HI_type_node): New.
965         (V16QI_type_node): New.
966
967         * tree.c (build_common_tree_nodes_2): Same.
968
969         * c-common.c (type_for_mode): Same.
970
971 2001-10-31  Kazu Hirata  <kazu@hxi.com>
972
973         * config/i386/att.h: Fix comment formatting.
974         * config/i386/beos-elf.h: Likewise.
975         * config/i386/bsd.h: Likewise.
976         * config/i386/bsd386.h: Likewise.
977         * config/i386/crtdll.h: Likewise.
978         * config/i386/cygwin.asm: Likewise.
979         * config/i386/cygwin.h: Likewise.
980         * config/i386/djgpp.h: Likewise.
981         * config/i386/freebsd-aout.h: Likewise.
982         * config/i386/freebsd.h: Likewise.
983         * config/i386/gas.h: Likewise.
984         * config/i386/i386-interix.h: Likewise.
985         * config/i386/i386-protos.h: Likewise.
986         * config/i386/i386.c: Likewise.
987         * config/i386/i386.h: Likewise.
988         * config/i386/i386.md: Likewise.
989         * config/i386/i386elf.h: Likewise.
990         * config/i386/interix.c: Likewise.
991         * config/i386/isc.h: Likewise.
992         * config/i386/isccoff.h: Likewise.
993         * config/i386/iscdbx.h: Likewise.
994         * config/i386/linux.h: Likewise.
995         * config/i386/lynx.h: Likewise.
996         * config/i386/mingw32.h: Likewise.
997         * config/i386/netbsd-elf.h: Likewise.
998         * config/i386/next.h: Likewise.
999         * config/i386/osf1elf.h: Likewise.
1000         * config/i386/osfrose.h: Likewise.
1001         * config/i386/sco5.h: Likewise.
1002         * config/i386/seq-gas.h: Likewise.
1003         * config/i386/seq-sysv3.h: Likewise.
1004         * config/i386/sequent.h: Likewise.
1005         * config/i386/sol2.h: Likewise.
1006         * config/i386/sun386.h: Likewise.
1007         * config/i386/uwin.asm: Likewise.
1008         * config/i386/uwin.h: Likewise.
1009         * config/i386/vxi386.h: Likewise.
1010         * config/i386/win32.h: Likewise.
1011         * config/i386/winnt.c: Likewise.
1012         * config/i386/xm-cygwin.h: Likewise.
1013         * config/i386/xm-mingw32.h: Likewise.
1014
1015 2001-10-31  Kazu Hirata  <kazu@hxi.com>
1016
1017         * builtins.def: Fix comment typos.
1018         * config/alpha.c: Likewise.
1019         * config/arm/arm.c: Likewise.
1020         * config/avr/avr.h: Likewise.
1021         * config/d30v/d30v.c: Likewise.
1022         * config/d30v/d30v.h: Likewise.
1023         * config/d30v/d30v.md: Likewise.
1024         * config/dsp16xx/dsp16xx.c: Likewise.
1025         * config/fr30/fr30.c: Likewise.
1026         * config/fr30/fr30.md: Likewise.
1027         * config/i386/i386.c: Likewise.
1028         * config/i860/i860.c: Likewise.
1029         * config/i960/i960.c: Likewise.
1030         * config/ia64/ia64.c: Likewise.
1031         * config/mips/mips.c: Likewise.
1032         * config/pa/pa.c: Likewise.
1033         * config/rs6000/rs6000.c: Likewise.
1034         * config/s390/s390.c: Likewise.
1035         * config/sparc/sparc.c: Likewise.
1036
1037 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1038
1039         * config/mips/elf.h: Fix comment formatting.
1040         * config/mips/elf64.h: Likewise.
1041         * config/mips/iris5.h: Likewise.
1042         * config/mips/iris5gas.h: Likewise.
1043         * config/mips/iris6.h: Likewise.
1044         * config/mips/isa3264.h: Likewise.
1045         * config/mips/linux.h: Likewise.
1046         * config/mips/mips.c: Likewise.
1047         * config/mips/mips.h: Likewise.
1048         * config/mips/mips.md: Likewise.
1049         * config/mips/mips16.S: Likewise.
1050         * config/mips/netbsd.h: Likewise.
1051         * config/mips/osfrose.h: Likewise.
1052         * config/mips/r3900.h: Likewise.
1053         * config/mips/sni-svr4.h: Likewise.
1054         * config/mips/svr4-t.h: Likewise.
1055         * config/mips/ultrix.h: Likewise.
1056
1057 2001-10-30  Daniel Berlin  <dan@cgsoftware.com>
1058
1059         * bitmap.c (bitmap_element_free): Don't forget to update head->indx
1060         when we update head->current.
1061
1062 2001-10-30  Neil Booth  <neil@daikokuya.demon.co.uk>
1063
1064         * tree.c (id_string_size): Remove.
1065         (dump_tree_statistics): Update.
1066         * toplev.c (compile_file): If dumping stats, dump tree stats too.
1067
1068 Tue Oct 30 19:00:43 CET 2001  Jan Hubicka  <jh@suse.cz>
1069
1070         * sched-rgn.c (schedule_insns): Fix comment.
1071
1072 2001-10-30  Zack Weinberg  <zack@codesourcery.com>
1073
1074         * configure.in: Correct previous change: don't assume that
1075         gas's version number _isn't_ the last thing on the line, or
1076         isn't the only number on the line, either.
1077         * configure: Regenerate.
1078
1079 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1080
1081         * cfgcleanup.c: Fix a comment typo.
1082
1083 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1084
1085         * alias.c: Fix comment formatting.
1086         * recog.c: Likewise.
1087         * config/cris/cris.c: Likewise.
1088         * config/cris/cris.h: Likewise.
1089         * config/i960/i960.c: Likewise.
1090         * config/i960/i960.h: Likewise.
1091
1092 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1093
1094         * config/arm/arm.c: Fix a comment typo.
1095         * config/arm/arm.h: Likewise.
1096         * config/ia64/ia64.c: Likewise.
1097
1098 2001-10-30  Jakub Jelinek  <jakub@redhat.com>
1099
1100         * emit-rtl.c (set_unique_reg_note): Don't create REG_EQUAL or
1101         REG_EQUIV notes for ASM_OPERANDS.  Return the new note (if any).
1102         * rtl.h (set_unique_reg_note): Change return value.
1103         * gcse.c (try_replace_reg): Use set_unique_reg_note.
1104         * cse.c (cse_insn): Likewise.
1105         * expr.c (emit_move_insn): Likewise.
1106         * explow.c (force_reg): Likewise.
1107         * local-alloc (update_equiv_regs): Likewise.
1108         * loop.c (move_moveables, load_mems): Likewise.
1109         * reload (find_reloads): Likewise.
1110
1111 2001-10-30  Paolo Bonzini  <bonzini@gnu.org>
1112
1113         Localization fixes.
1114         * c-decl.c (parmlist_tags_warning, start_struct,
1115         check_for_loop_decls): Separate messages for struct, union and
1116         enum cases to allow for languages in which they have different
1117         genders.
1118         * c-format.c (scanf_flag_specs): Separate short and long name of
1119         the assignment suppression feature.
1120         (check_format_types): Localize "pointer" and "different types"
1121         strings.
1122         * c-lex.c (lex_number): Localize "an unsigned long int" and
1123         related strings.
1124         (lex_string) [MULTIBYTE_CHARS]: Use initial lowercase letter on
1125         warning message.
1126         * c-typeck.c (build_unary_up): Separate messages for increment and
1127         decrement cases to allow for languages in which they use different
1128         articles.  Localize the strings "increment" and "decrement" in one
1129         case.
1130
1131 Tue Oct 30 11:08:11 CET 2001  Jan Hubicka  <jh@suse.cz>
1132
1133         * lcm.c (optimize_mode_switching):  Do not rebuild liveness information
1134         when no changes has been made.
1135
1136         * gcse.c (reg_set_bitmap): Turn into reg_set.
1137         (modify_mem_list_set, canon_modify_mem_list_set)
1138         (clear_modify_mem_tables, free_modify_mem_tables): New.
1139         (gcse_main); Use free_modify_mem_tables.
1140         (free_gcse_mem): Likewise; free the bitmaps.
1141         (alloc_gcse_main): Initialize the bitmaps.
1142         (canon_list_insert): Set canon_modify_mem_list_set.
1143         (record_last_mem_set_info): Likewise; set modify_mem_list_set.
1144         (compute_hash_table): Use clear_modify_mem_tables.
1145         (reset_opr_set_tables): Likewise.
1146         (oprs_not_set_p): reg_set_bitmap is regset.
1147         (mark_set, mark_clobber): Likewise.
1148
1149         * df.h (DF_EQUIV_NOTES): New constant.
1150         (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes
1151         when asked for.
1152
1153         * sched-rgn.c (CHECK_DEAD_NOTES): New constant.
1154         (init_regions, schedule_insns): Conditionalize the checking
1155         code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info.
1156
1157 Tue Oct 30 11:02:31 CET 2001  Jan Hubicka  <jh@suse.cz>
1158
1159         * i386.md (movti_rex64 splitter): Fix condition.
1160
1161 2001-10-29  Zack Weinberg  <zack@codesourcery.com>
1162
1163         * configure.in: Do not assume that gas's version number is the
1164         last thing on the first line of as --version output.
1165         * configure: Regenerate.
1166
1167         * tradcpp.c: Include intl.h.  Rename WARNING, ERROR, FATAL to
1168         MT_WARNING, MT_ERROR, MT_FATAL.
1169         (main): Call gcc_init_libintl.
1170         (v_message): Call gettext on msgid and "warning: "
1171         * tradcif.y: Include intl.h.
1172         (yyerror): Make parameter definition consistent with
1173         prototype.  Call gettext on msgid argument.
1174
1175 2001-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1176
1177         * combine.c (num_sign_bit_copies): Avoid signed/unsigned
1178         warnings.
1179
1180         * sparc/sol2.h: Include <sys/mman.h> when L_trampoline is defined.
1181
1182 Mon Oct 29 19:22:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1183
1184         * reload1.c (eliminate_regs): Test for reg_renumber being allocated
1185         before referencing it.
1186
1187 2001-10-26  DJ Delorie  <dj@redhat.com>
1188
1189         * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to
1190         override -G, and force -G0.
1191
1192 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1193
1194         * ChangeLog.2, ChangeLog.3, ChangeLog.4, FSFChangeLog.10,
1195         FSFChangeLog.11, c-common.c, c-common.def, c-common.h, c-decl.c,
1196         c-dump.c, c-typeck.c, except.c, sdbout.c, simplify-rtx.c,
1197         timevar.h, tree.h, varasm.c: Fix spelling errors and typos.
1198
1199         * loop.h (struct induction): Rename ext_dependant to
1200         ext_dependent.
1201         * loop.c: Change all uses.
1202         (check_ext_dependant_givs): Rename to check_ext_dependent_givs.
1203         All callers changed.
1204         * timevar.c (DEFTIMEVAR): Fix spelling of identifier__ parameter.
1205
1206 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1207
1208         * c-parse.in (expr_no_commas, primary), c-typeck.c
1209         (parser_build_binary_op): Use IS_EXPR_CODE_CLASS.
1210
1211 2001-10-29  David Edelsohn  <edelsohn@gnu.org>
1212
1213         Undo assemble_name change in earlier patch.
1214
1215 Mon Oct 29 21:11:40 2001  Nicola Pero  <n.pero@mi.flashnet.it>
1216
1217         * objc/objc-act.c (finish_message_expr): For the GNU runtime: when
1218         determining the type of the receiver, do not check that TREE_CODE
1219         of receiver is CALL_EXPR before calling receiver_is_class_object().
1220         (receiver_is_class_object): For the GNU runtime: recognize
1221         the case that the receiver is self in a class method context.
1222         Check that TREE_CODE of receiver is CALL_EXPR when checking that
1223         the receiver is a call to objc_get_class.
1224
1225 2001-10-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1226
1227         * pa.md (floatunssisf2): Set subreg 0 of operand 2 to zero.
1228
1229 Mon Oct 29 07:23:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1230
1231         * Makefile.in (OBJS): Put all files in alphabetical order.
1232
1233         * dwarf2out.c (add_const_value_attribute): Fix error in last
1234         change.
1235
1236 Mon Oct 29 12:43:06 CET 2001  Jan Hubicka  <jh@suse.cz>
1237
1238         * basic-block.h (purge_all_dead_edges): Add update_life_p argument.
1239         * cfgcleanup.c (merge_blocks): Update the life flag after merging;
1240         fix warning.
1241         * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness.
1242         (life_analysis): call purge_all_dead_edges after deleting noops.
1243         (delete_noop_move): Do not purge CFG.
1244         * toplev.c (rest_of_compilation): Update purge_all_dead_edges call.
1245
1246 2001-10-28  David Edelsohn  <edelsohn@gnu.org>
1247
1248         * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
1249         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete.
1250         (ASM_GLOBALIZE_LABEL): Use assemble_name.
1251         (ASM_OUTPUT_COMMON): Likewise.
1252         * config/rs6000/rs6000.c (print_operand): Use assemble_name.
1253         (rs6000_output_function_epilogue): Likewise.
1254         (output_mi_thunk): Fix typo.
1255         (rs6000_output_symbol_ref): Use assemble_name.
1256         (output_toc): Likewise.
1257         * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete.
1258         * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete;
1259         assemble_name calls STRIP_NAME_ENCODING.
1260         (ASM_OUTPUT_LABEL): Use assemble_name.
1261         (ASM_GLOBALIZE_LABEL): Likewise.
1262         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1263         (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op.  Use assemble_name.
1264         (ASM_OUTPUT_LOCAL): Likewise.
1265
1266 Sun Oct 28 15:45:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1267
1268         * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
1269         (expand_builtin_apply, expand_builtin_return): Likewise.
1270         (expand_builtin_va_arg, expand_builtin_va_copy): Likewise.
1271
1272 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1273
1274         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
1275         ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11,
1276         c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc,
1277         configure, configure.in, except.c, except.h, flow.c, function.c,
1278         gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def,
1279         predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c,
1280         sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c,
1281         unroll.c: Fix spelling errors.
1282
1283         * doc/extend.texi, doc/invoke.texi: Fix spelling.
1284
1285         * doc/gcc.texi: Document use of "dependent" and American spelling.
1286
1287 Sun Oct 28 17:05:36 CET 2001  Jan Hubicka  <jh@suse.cz>
1288
1289         * expr.c (emit_group_load): Support CONCATs by storing them to memory
1290         and reloading.
1291
1292 Sun Oct 28 09:59:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1293
1294         * expr.c (store_constructor_field): Only call adjust_address on MEM.
1295
1296 Sun Oct 28 16:48:09 CET 2001  Jan Hubicka  <jh@suse.cz>
1297
1298         * genrecog.c (write_switch):  Output if before switch for
1299         DT_elt_zero_wide_safe.
1300
1301 2001-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1302
1303         * Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h
1304         * i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma.
1305         (FUNCTION_PROFILER): Const-ify.
1306         * halfpic.c: Include "expr.h", "output.h" and "halfpic.h".
1307         (eliminate_constant_term, assemble_name, output_addr_const):
1308         Remove declarations.
1309         (ptr_half_pic_address_p, half_pic_hash): Prototype.
1310         (all_refs, half_pic_prefix, half_pic_hash, half_pic_declare,
1311         half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify.
1312         * halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype.
1313         (half_pic_declare, half_pic_external): Const-ify.
1314         * toplev.c: Include "halfpic.h".
1315
1316 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1317
1318         * config/alpha/alpha.md, config/arm/arm.c, config/arm/arm.h,
1319         config/d30v/d30v.h, config/fr30/fr30.c, config/i370/x-oe,
1320         config/i386/i386.c, config/i386/i386-interix.h,
1321         config/i386/i386.md, config/i386/i386.h, config/i386/sco5.h,
1322         config/i860/i860.h, config/i860/i860.md, config/m68k/aux-exit.c,
1323         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.md,
1324         config/ns32k/ns32k.h, config/pa/pa.c, config/rs6000/rs6000.c,
1325         config/sparc/sparc.c, config/m68hc11/m68hc11.c,
1326         config/cris/cris.c, config/cris/cris.h, config/s390/s390.c,
1327         config/s390/s390.h, config/stormy16/stormy16.h, doc/tm.texi: Fix
1328         spelling errors.
1329
1330         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
1331         ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS,
1332         c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c,
1333         collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h,
1334         haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c,
1335         regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c,
1336         system.h, toplev.c: Fix spelling errors.
1337
1338 Sat Oct 27 17:32:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1339
1340         * gcse.c (insert_insn_end_bb): Don't assume PAT is a SET.
1341
1342         * dwarf2out.c (reg_number): Abort if pseudo.
1343         (reg_loc_descriptor): Return 0 if pseudo.
1344         (is_based_loc): Return 0 if pseudo.
1345         (mem_loc_descriptor): Return 0 for pseudo and handle 0 return from
1346         recursive calls.
1347         (concat_loc_descriptor): Return 0 if either part's descriptor is 0.
1348         (loc_descriptor): Return 0 if can't find location and handle 0
1349         return from recursive calls.
1350         (loc_descriptor_from_tree): Likewise.
1351         Fix handling of indirect.
1352         Also return 0 for PLACEHOLDER_EXPR.
1353         Clean up COMPONENT_REF cases.
1354         (add_AT_location_descriptor): Simplify, but handle 0 return from
1355         loc_descriptor.
1356         (add_const_value_attribute): Avoid shift count warning.
1357         (add_bound_info): Remove test for PLACEHOLDER_EXPR here.
1358         Set comp_unit_die as context if not in function.
1359
1360         * config/mips/mips-protos.h: Break up long lines.
1361         Remove needless #ifdef/#endif blocks.
1362         Don't declare functions declared in file made by genpreds or recog.h.
1363         * config/mips/mips.c (mips_output_function_prologue): TSIZE
1364         is now HOST_WIDE_INT; delete unneeded casts.
1365         * config/mips/mips.h: Don't use #elif.
1366
1367         * expr.c (stor_constructor_field): Always call adjust_address.
1368         Copy TARGET before changing its alias set.
1369         (store_field): Likewise, for TO_RTX.
1370         (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find
1371         replacement.
1372         (safe_from_p, case ADDR_EXPR): Properly check for conflict.
1373         (find_placeholder): Return 0 if can't find object.
1374         (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder
1375         returns 0.
1376
1377 Sat Oct 27 16:31:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
1378
1379         * ifcvt.c (if_convert): Call clear_aux_for_blocks.
1380
1381 Sat Oct 27 12:12:09 CEST 2001  Jan Hubicka  <jh@suse.cz>
1382
1383         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
1384         merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
1385         (merge_blocks): Properly udpate life after making edge nonfallthru.
1386         * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.
1387
1388 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1389
1390         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
1391
1392 2001-10-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1393
1394         * c-typeck.c (convert_arguments): When comparing for enumeral
1395         type equality, use TYPE_MAIN_VARIANT.
1396         * gcc.dg/Wconversion.c: New tests.
1397
1398 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1399
1400         * s390/s390.c: Fix comment typos.
1401         * s390/s390.h: Likewise.
1402         * s390/s390.md: Likewise.
1403
1404 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1405
1406         * tree-inline.c (WALK_SUBTREE_TAIL): New macro.
1407         (walk_tree): Use it for tail calls where appropriate.
1408
1409 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1410
1411         * cse.c (check_for_label_ref): Don't require REG_LABEL notes for
1412         non-local label_refs.
1413
1414 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1415
1416         * config/h8300/h8300.md (4 anonymous patterns): New.
1417
1418 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1419
1420         * config/h8300/h8300.c (get_shift_alg): Clean up.  Return the
1421         algorithm through the shift_info structure.
1422         (emit_a_shift): Update the use of get_shift_alg.
1423
1424 2001-10-27  Daniel Berlin  <dan@cgsoftware.com>
1425
1426         * sched-rgn.c: Remove bitset typedef.
1427         Change bitset to sbitmap in prototypes / variable types.
1428         Remove bbset_size.
1429         Remove edgeset_bits.
1430         Remove edgeset_size.
1431         s/BITSET_ADD/SET_BIT/g
1432         s/BITSET_INVERT/sbitmap_ones/g
1433         s/BITSET_INTER/sbitmap_a_and_b/g
1434         s/BITSET_UNION/sbitmap_a_or_b/g
1435         s/BITSET_DIFFER/sbitmap_difference/g
1436         s/bitset_member/TEST_BIT/g
1437         (BITSET_*): Removed.
1438         (bitset_member): Removed.
1439         (extract_bitlst): Rewrite, now that we have sbitmaps, we can use
1440         EXECUTE_IF_SET_IN_SBITMAP.
1441         (split_edges): Rewrite, use sbitmap functions instead of bitset
1442         operations.
1443         (schedule_region): Allocate/free sbitmaps, rather than bitsets.
1444
1445 2001-10-26  Andreas Schwab  <schwab@suse.de>
1446
1447         * reload1.c (emit_input_reload_insns): Fix parens in last
1448         (undocumented) change that was supposed to change only whitespace.
1449
1450 Fri Oct 26 07:18:08 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1451
1452         * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning.
1453
1454         * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for
1455         ASM_OPERANDS.
1456
1457 2001-10-26  Andreas Jaeger  <aj@suse.de>
1458
1459         * flow.c (clear_log_links): Remove unused variable.
1460         * cfgcleanup.c (cleanup_cfg): Likewise.
1461
1462 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1463
1464         * tree-inline.c (remap_decl): Don't copy size and size_unit here.
1465         (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node.
1466
1467 2001-10-26  Richard Henderson  <rth@redhat.com>
1468
1469         * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG;
1470         rename PV_REG to R27_REG.
1471         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
1472         (REG_CLASS_FROM_LETTER): Update.
1473         (PREFERRED_RELOAD_CLASS): Don't widen a reg class.
1474         * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27.
1475         (udivsi3, modsi3, umodsi3): Likewise.
1476         (divdi3, udivdi3, moddi3, umoddi3): Likewise.
1477
1478 2001-10-26  Richard Henderson  <rth@redhat.com>
1479
1480         * cfg.c (clear_aux_for_blocks): Split out of ...
1481         (free_aux_for_blocks): here.
1482         (clear_aux_for_edges): Split from ...
1483         (free_aux_for_edges): here.
1484         * basic-block.h: Declare them.
1485         * lcm.c (compute_antinout_edge): Use them.
1486         (compute_laterin, compute_available, compute_nearerout): Likewise.
1487         (optimize_mode_switching): Likewise.
1488
1489 2001-10-26  Richard Henderson  <rth@redhat.com>
1490
1491         * Makefile.in (unstage*): Remove as, ld, collect-ld before
1492         moving everything back to the main build directory.
1493
1494 2001-10-26  Christopher Faylor  <cgf@redhat.com>
1495
1496         * config/i386/cygwin.h: Search target specfic include directory, if
1497         appropriate.
1498
1499 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1500
1501         * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside
1502         of macro guards. Fix #endif comment.
1503
1504         * output.h (default_exception_section, default_eh_frame_section):
1505         Move prototypes outside of macro guard.
1506
1507         * crtstuff.c: Fix #endif comment.
1508
1509 Thu Oct 25 12:21:58 2001  Jeffrey A Law  (law@cygnus.com)
1510
1511         * doc/md.texi (movMM): Clarify semantics of storing into a
1512         non-paradoxical SUBREG.
1513
1514 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
1515
1516         * langhooks.c (lang_hook_default_clear_binding_stack): New.
1517         (lang_hook_default_get_alias_set): Move next to other alias
1518         hooks.
1519         * langhooks.h: Prototype lang_hook_default_clear_binding_stack.
1520         (LANG_HOOKS_CLEAR_BINDING_STACK): New macro.
1521         (LANG_HOOKS_INITIALIZER): Add it.
1522         * toplev.h (struct lang_hooks): Add clear_binding_stack.
1523         * toplev.c (compile_file):  Call lang_hooks.clear_binding_stack
1524         instead of a loop calling poplevel.
1525
1526 2001-10-25  Nick Clifton  <nickc@cambridge.redhat.com>
1527
1528         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace
1529         occurrences of #elif with #if...#endif.
1530
1531 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1532
1533         * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning.
1534
1535 Thu Oct 25 08:46:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1536
1537         * alias.c (can_address_p): No longer static.
1538         * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
1539         Return 0 if all parameters are default values.
1540         (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
1541         (adjust_address_1): Try harder to compute a size.
1542         * expr.c (expand_assignment, store_constructor): If can't address,
1543         set MEM_KEEP_ALIAS_SET_P.
1544         (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
1545         (store_field): Likewise.
1546         (store_constructor): Simplify call to store_constructor_field.
1547         * expr.h (can_address_p): New declaration.
1548         * gensupport.c (gen_rtx_CONST_INT): New function.
1549         * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
1550         (MEM_SIZE): Get size from mode, if not set and not BLKmode.
1551         (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
1552
1553         * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst.
1554
1555 2001-10-24  Christopher Faylor  <cgf@redhat.com>
1556
1557         * config/i386/cygwin.h: Use proper path for mingw crt files when
1558         -mno-cygwin.
1559
1560 Wed Oct 24 18:43:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1561
1562         * dwarf2out.c (file_info_cmp): Always return consistent results.
1563
1564 2001-10-24  Roger Sayle <roger@eyesopen.com>
1565
1566         * stmt.c (expand_end_case): Index jumptables from zero for
1567         suitably small values of minval.
1568
1569 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
1570
1571         * stor-layout.c (place_union_field): If any field was aligned with
1572         attribute aligned, set record type's TYPE_USER_ALIGN.
1573         (place_field): Likewise.
1574         (finalize_record_size): Don't clear TYPE_USER_ALIGN.
1575         (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN.
1576
1577 2001-10-24  Zack Weinberg  <zack@codesourcery.com>
1578
1579         * c-common.h (struct c_common_identifier): Remove rid_code field.
1580         (C_RID_CODE): Use ->node.rid_code instead of ->rid_code.
1581
1582         * c-typeck.c (constructor_designated): New local flag.
1583         (struct constructor_stack): Add "designated" field to match.
1584         (start_init): Clear it.
1585         (really_start_incremental_init, push_init_level): Push and
1586         clear it.
1587         (pop_init_level): Pop it.
1588         (set_designator): Set it.
1589
1590         (pop_init_level): Suppress "missing initializer" warnings if
1591         constructor_designated is true.
1592         (process_init_element): Suppress warning about union
1593         initialization under traditional C, if constructor_designated
1594         is true.
1595
1596 Wed Oct 24 15:35:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1597
1598         * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last
1599         change.
1600
1601 Wed Oct 24 13:26:12 2001  Jeffrey A Law  (law@cygnus.com)
1602
1603         * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition.
1604
1605 2001-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
1606
1607         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if
1608         the node was already a set to a constant.
1609
1610 Wed Oct 24 12:41:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1611
1612         * emit-rtl.c (set_mem_attributes): Fix typo in last change.
1613         * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL.
1614
1615 2001-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1616
1617         * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings.
1618         (ASM_OUTPUT_ASCII): Const-ify.  Fix signed/unsigned warning.
1619         (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
1620         * s390.c (s390_final_chunkify): Don't use string concatenation.
1621         (s390_function_prologue, s390_function_epilogue): Const-ify.
1622         * s390.h (FUNCTION_PROFILER): Remove unused variable.
1623
1624 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
1625
1626         * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function
1627         prototypes.
1628
1629 2001-10-23  Stan Shebs  <shebs@apple.com>
1630
1631         * config/rs6000/x-darwin: Use -no-cpp-precomp instead of
1632         -traditional-cpp in first-stage compilation.
1633
1634 Tue Oct 23 21:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1635
1636         * gensupport.c (target_flags): Add.
1637
1638 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
1639
1640         * builtins.c (expand_builtin_setjmp): Only call convert_memory_address
1641         if needed.
1642         (expand_builtin_longjmp, expand_builtin_alloca): Likewise.
1643         * except.c (expand_builtin_frob_return_addr): Likewise.
1644         (expand_builtin_eh_return): Likewise.
1645         * stmt.c (expand_computed_goto): Likewise.
1646         * explow.c (memory_address): Likewise.
1647         (allocate_dynamic_stack_space): Clean up predicate testing.
1648         (probe_stack_range): Convert SIZE to Pmode.
1649         * calls.c (rtx_for_function_call): Only call convert_memory_address
1650         if needed.
1651         Pass function call operand as ptr_mode, not Pmode.
1652         * expr.c (expand_assignment): Clean up calls to convert_memory
1653         address by only doing so when needed and making offsets Pmode.
1654         (store_constructor, expand_expr, expand_expr_unaligned): Likewise.
1655         * function.c (assign_parms): Ensure address in MEM for RESULT_DECL
1656         is in Pmode, not ptr_mode.
1657
1658 2001-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1659
1660         * darwin-protos.h (constructor_section, destructor_section,
1661         mod_init_section, mod_term_section): Prototype.
1662         * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs):
1663         Const-ify.
1664         * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME):
1665         Likewise.
1666         (SECTION_FUNCTION): Prototype `FUNCTION'.  Delete
1667         objc_section_init declaration.
1668         (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init.
1669         (objc_section_init, try_section_alias): Make static.
1670         (alias_section): Make static and hide unused function.
1671         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
1672
1673 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1674
1675         * alias.c (can_address_p): Compnonents are not addressable if
1676         the containing type has alias set 0.
1677         (get_alias_set): Rework to use STRIP_NOPS.
1678         Only call front-end routine on object, type, or object with
1679         NOPs stripped, not inner values.
1680         Use language hook to call front-end routine.
1681         * builtins.c (get_memory_rtx): Always call set_mem_attributes.
1682         (expand_builtin_apply): Call set_mem_align on MEMs we make.
1683         Don't pass alignment to emit_block_move.
1684         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
1685         (expand_builtin_memset): Likewise, but for clear_storage.
1686         * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
1687         and remove C++ specific parts.
1688         * c-common.h (c_common_get_alias_set): Add declaration.
1689         * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
1690         * calls.c (emit_call_1): Fix typo in sibcall_pop case.
1691         (save_fixed_argument_area): Call set_mem_align.
1692         Remove alignment in call to emit_block_move.
1693         (emit_library_call_value_1, store_one_arg): Likewise.
1694         (target_for_arg): Remove; disabled long ago.
1695         * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
1696         once and similar cleanups.
1697         (offset_address): Use proper introductory comment.
1698         * expr.c (emit_block_move): Use alignment from that of MEM args, not
1699         from explicit operand; all callers changed.
1700         (clear_storage): Likewise.
1701         (expand_assignment): Don't call set_mem_alias_set on to_rtx.
1702         (store_field): Remove kludge on alias set used for to_rtx.
1703         (highest_pow2_factor, case *_DIV_EXPR): Never return 0.
1704         (expand_expr_unaligned): Call set_mem_attributes instead of
1705         set_mem_alias_set.
1706         * expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
1707         * function.c (assign_stack_temp_for_type): Set MEM alignment.
1708         (expand_function_end): Track MEM attributes of trampolines.
1709         * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
1710         * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
1711         attributes from original.
1712         * langhooks.c (lang_hook_default_get_alias_set): New function.
1713         (hook_get_alias_set_0): New function.
1714         * langhooks.h (hook_get_alias_set_0): New declaration.
1715         (lang_hook_default_get_alias_set): Likewise.
1716         (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
1717         * reload1.c (alter_reg): Use adjust_address_nv.
1718         * rtl.c (get_mode_alignment): Moved to here.
1719         * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
1720         change default if unknown from 1 to BITS_PER_UNIT.
1721         * stor-layout.c (get_mode_alignment): Remove from here.
1722         * toplev.h (struct lang_hoks): Add get_alias_set field.
1723         * tree.h (lang_get_alias_set): Delete declaration.
1724         * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
1725         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
1726         (ix86_va_arg): Likewise.
1727         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
1728         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
1729         * config/sparc/sparc.c (sparc_va_arg): Likewise.
1730         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
1731         (expand_block_move_mem): Remove dead code.
1732
1733 2001-10-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1734
1735         * c-common.c (warn_div_by_zero): New.
1736         * c-common.h (warn_div_by_zero): New.
1737         * c-decl.c (c_decode_option): Take it on the command line.
1738         * c-typeck.c (build_binary_op): Warn about division by zero.
1739         * doc/invoke.texi: Document the new command line option, fix
1740         documentation of -Wmultichar.
1741         * testsuite/gcc.dg/divbyzero.c: New tests.
1742         * testsuite/gcc.dg/noncompile/20010524-1.c: Update.
1743
1744 Tue Oct 23 15:30:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
1745
1746         * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op.
1747
1748         * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE
1749         to avoid update_life_info call.
1750         * basic-block.h (CLEANUP_UPATE_LIFE): Define.
1751         * cfgcleanup.c (bb_flags): New enum.
1752         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros.
1753         (notice_new_block, update_forwarder_flag): New functions.
1754         (try_simplify_condjump): Use FORWARDER_BLOCK_P.
1755         (try_forward_edges): Likewise; update flags.
1756         (merge_blocks): Likewise.
1757         (outgoing_edges_match): Likewise.
1758         (try_crossjump_to_edge): Likewise.
1759         (try_optimize_cfg): Likewise; initialize and clear the flags;
1760         recompute life info if needed.
1761         (cleanup_cfg): No need to clear aux pointers.
1762
1763 2001-10-23  Alexandre Oliva  <aoliva@redhat.com>
1764
1765         * config/i386/i386.c (override_options): Default to minimum
1766         stack alignment when optimizing for code size.
1767         * doc/invoke.texi (-mpreferred-stack-boundary): Document the
1768         change.
1769
1770         * config/i386/i386.c (override_options): Set upper limit of
1771         -mpreferred-stack-boundary to 12.
1772
1773 2001-10-22  Zack Weinberg  <zack@codesourcery.com>
1774
1775         * recog.c (peephole2_optimize): Add default case to switch.
1776
1777 2001-10-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1778
1779         * doc/gcc.texi (Sending Patches): Remove.
1780
1781 2001-10-22  Hans-Peter Nilsson  <hp@bitrange.com>
1782
1783         * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin
1784         fields when comparing.
1785
1786 2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1787
1788         * arm.h (HOST_INT, HOST_UINT): Delete.  Remove all uses.
1789         * arm.c (HOST_INT, HOST_UINT): Likewise.
1790
1791 2001-10-22  Stan Shebs  <shebs@apple.com>
1792
1793         * config/darwin-protos.h (darwin_exception_section): Declare.
1794         (darwin_eh_frame_section): Declare.
1795
1796 Mon Oct 22 18:21:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
1797
1798         * i386.md (movti_rex64): Fix mode.
1799
1800 2001-10-22  Stan Shebs  <shebs@apple.com>
1801
1802         * target.h (struct gcc_target): Add asm_out.exception_section,
1803         asm_out.eh_frame_section.
1804         * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro.
1805         (TARGET_ASM_EH_FRAME_SECTION): New.
1806         (TARGET_INITIALIZER): Update.
1807         * output.h (default_exception_section): Declare.
1808         (default_eh_frame_section): Declare.
1809         * dwarf2out.c: Include target.h.
1810         (output_call_frame_info): Call target hook for eh frames.
1811         (default_eh_frame_section): New function.
1812         * except.c: Include target.h.
1813         (output_function_exception_table): Call target hook for exception
1814         section.
1815         * varasm.c (default_exception_section): Rename from
1816         exception_section, remove EXCEPTION_SECTION macro.
1817
1818         * config/darwin.h (darwin_eh_frame_section): New function.
1819         (EXCEPTION_SECTION): Remove.
1820         (TARGET_ASM_EXCEPTION_SECTION): Define.
1821         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove.
1822         (nextstep_exception_section): New function.
1823         (nextstep_eh_frame_section): New function.
1824         (TARGET_ASM_EXCEPTION_SECTION): Define.
1825         (TARGET_ASM_EH_FRAME_SECTION): Define.
1826
1827         * config/pa/som.h (EXCEPTION_SECTION): Remove.
1828         (TARGET_ASM_EXCEPTION_SECTION): Define.
1829         * config/rs6000/sysv4.h, config/rs6000/xcoff.h
1830         (EXCEPTION_SECTION): Remove.
1831         (TARGET_ASM_EXCEPTION_SECTION): Define.
1832         * config/stormy16/stormy16.h: Remove comments referencing
1833         EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP.
1834
1835         * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and
1836         TARGET_ASM_EH_FRAME_SECTION.
1837
1838 2001-10-22  Nick Clifton  <nickc@cambridge.redhat.com>
1839
1840         * config/mips/mips.md (mul_acc_si): Fix precedence of conditional
1841         terms.
1842
1843         * c-format.c: Fix spelling typo in comment.
1844
1845         * sched-int.h: Fix typo in GCC preamble.
1846
1847 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1848
1849         PR debug/4252
1850         * doc/invoke.texi: Remove references to -fdump-translation-unit.
1851
1852 2001-10-22  Richard Henderson  <rth@redhat.com>
1853
1854         * config/i386/i386.c (ix86_expand_clear): New.
1855         * config/i386/i386-protos.h: Declare it.
1856         * config/i386/i386.md (setcc peep2s): Use it.
1857         (movsi_xor): Unexport.
1858
1859 2001-10-22  Richard Henderson  <rth@redhat.com>
1860
1861         * flow.c (clear_log_links): Use free_INSN_LIST_list, not
1862         free_EXPR_LIST_list for LOG_LINKS.
1863
1864 2001-10-21  Robert Lipe  <robertlipe@usa.net>
1865
1866         * config/i386/i386.c (sco_asm_named_section): Delete.
1867         (sco_asm_out_constructor): Delete.
1868         * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h.
1869         (ASM_OUTPUT_DOUBLE_INT): Likewise.
1870         (TARGET_ASM_CONSTRUCTOR): Delete.  Use default.
1871         (TARGET_ASM_NAMED_SECTION): Use default for ELF.
1872         (EXCEPTION_SECTION): Delete EH scn renaming hack.
1873
1874 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1875
1876         * c-format.c (maybe_read_dollar_number): Use safe-ctype macros
1877         and/or fold extra calls into fewer ones.
1878         * collect2.c (dump_file): Likewise.
1879         * cppexp.c (parse_number): Likewise.
1880         * cpplex.c (_cpp_lex_direct): Likewise.
1881         * final.c (output_asm_insn, asm_fprintf): Likewise.
1882         * fix-header.c (inf_scan_ident, main): Likewise.
1883         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
1884         Likewise.
1885         * fold-const.c (real_hex_to_f): Likewise.
1886         * gen-protos.c (parse_fn_proto): Likewise.
1887         * genattrtab.c (check_attr_test, check_attr_value): Likewise.
1888         * genrecog.c (change_state, write_action): Likewise.
1889         * gensupport.c (shift_output_template): Likewise.
1890         * local-alloc.c (requires_inout): Likewise.
1891         * mips-tfile.c (IS_ASM_IDENT): Likewise.
1892         * protoize.c (is_id_char, main): Likewise.
1893         * real.c (asctoeg): Likewise.
1894         * recog.c (asm_operand_ok): Likewise.
1895         * reload.c (find_reloads): Likewise.
1896         * scan.c (scan_identget_token): Likewise.
1897         * sched-vis.c (print_value): Likewise.
1898         * stringpool.c (ggc_alloc_string): Likewise.
1899         * toplev.c (read_integral_parameter, decode_g_option): Likewise.
1900         * tradcif.y (parse_number, yylex, parse_escape): Likewise.
1901         * tradcpp.c (rescan): Likewise.
1902         * tree.c (clean_symbol_name): Likewise.
1903         * varasm.c (decode_reg_name): Likewise.
1904
1905         * alpha.h (ASM_OUTPUT_ASCII): Likewise.
1906         * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise.
1907         * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise.
1908         * m88k.c (output_ascii): Likewise.
1909         * m88k.h (OVERRIDE_OPTIONS): Likewise.
1910         * mcore.h (REG_CLASS_FROM_LETTER): Likewise.
1911         * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise.
1912         * sh.h (REG_CLASS_FROM_LETTER): Likewise.
1913
1914 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1915
1916         * langhooks.c (lang_hook_default_do_nothing,
1917         lang_hook_default_decode_option): New defaults.
1918         * langhooks.h: Make hooks unconditional and non-NULL.
1919         * toplev.c (compile_file, toplev_main): Update.
1920         * toplev.h: Update comments.
1921         * objc/objc-act.c (lang_hooks): Update to new paradigm.
1922
1923 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1924
1925         * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE.
1926
1927         * system.h (IN_RANGE): New macro.
1928
1929 2001-10-21  Zack Weinberg  <zack@codesourcery.com>
1930
1931         * aclocal.m4 (AM_WITH_NLS): Also create and substitute
1932         INTLDEPS variable, which does not include $LIBICONV.
1933         * Makefile.in: Use INTLDEPS in LIBDEPS.
1934         * configure: Regenerate.
1935
1936 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1937
1938         * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char.
1939         * cpplex.c (lex_percent, lex_dot): Remove.
1940         (get_effective_char, skip_block_comment, skip_line_comment,
1941         parse_identifier_slow, parse_number, parse_string, save_comment,
1942         _cpp_lex_direct): Update to do lookback freely.
1943         (IF_NEXT_IS, BACKUP): New macros.
1944         * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char.
1945         * cppmacro.c (paste_tokens): Update.
1946
1947 2001-10-20  Nick Clifton  <nickc@cambridge.redhat.com>
1948
1949         * doc/invoke.texi (i386 and x86-64 Options): Fix typo.
1950
1951 2001-10-20  Hans-Peter Nilsson  <hp@axis.com>
1952
1953         * reload1.c (reload): Check CONSTANT_P before calling
1954         LEGITIMATE_PIC_OPERAND_P.
1955         * config/cris/cris.c (cris_legitimate_pic_operand): Revert
1956         workaround of 2001-10-13.
1957
1958 Sat Oct 20 15:16:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
1959
1960         * i386.c (split_di): Handle splitting of DFmode.
1961
1962 Sat Oct 20 07:27:14 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1963
1964         * emit-rtl.c (set_mem_attributes): Alignment is in bits.
1965         (adjust_address_1, offset_address): Likewise.
1966
1967         * final.c (output_asm_operand_names): New fcn, from output_asm_insn.
1968         (output_asm_insn): Call it for each line output.
1969         Don't record an operand more than once.
1970
1971         * toplev.h (struct lang_hooks): HONOR_READONLY now bool.
1972         * main.c: Include config.h and system.h, but not ansidecl.h.
1973         * Makefile.in (main.o): Update accordingly.
1974
1975 Sat Oct 20 12:05:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
1976
1977         * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64.
1978
1979 Sat Oct 20 12:01:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
1980
1981         * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter.
1982         * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies):
1983         Break out from ...
1984         (find_sub_basic_blocks): ... here;
1985         (find_many_sub_basic_blocks): New.
1986         * recog.c (split_all_insns): Update find_sub_basic_blocks call.
1987
1988         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4.
1989
1990         * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.:
1991
1992         * i386.c (split_di, split_ti): Revamp to use simplify_subreg.
1993
1994         * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new.
1995         * flow.c (update_life_info): Measure time.
1996         * c-decl.c: Include timevar.h
1997         (c_expand_body): Measure time.
1998         * toplev.c (rest_of_compilation): Measure time of mode switching
1999         separately.
2000         * Makefile.in (c-decl.o, cfgcleanup.o): Add dependency.
2001
2002         * toplev.c (flag_asynchronous_unwind_tables): New global variable.
2003         (lang_independent_options): Add asynchronous-unwind-tables
2004         (toplev_main): flag_asynchronous_unwind_tables implies
2005         flag_unwind_tables.
2006         * flags.h (flag_asynchronous_unwind_tables): Declare.
2007         * dwarf2out.c (dwarf2out_stack_adjust): Take into account
2008         flag_asynchronous_unwind_tables.
2009         (output_call_frame_info): Likewise.
2010         * invoke.texi (-fasynchronous-unwind-tables): Document.
2011         * i386.c (optimization_options): Enable
2012         flag_asynchronous_unwind_tables.
2013
2014         * i386.c (ix86_expand_setcc):  Always expect target to be QImode.
2015         * i386.md (s* expanders): Destination is QImode.
2016
2017         * toplev.c (rest_of_compilation): Do not call clear_log_links.
2018         * rtl.h (clear_log_links): Kill.
2019         * flow.c (clear_log_links): Make static; accept blocks parameter;
2020         do no clear life info.
2021         (update_life_info): Call clear_log_links.
2022
2023         * cfganal.c (forwarder_block_p): Avoid active_insn_p calls.
2024
2025 2001-10-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2026
2027         * cpplex.c (handle_newline, skip_escaped_newlines,
2028         get_effective_char, skip_block_comment, skip_line_comment,
2029         parse_identifier_slow, parse_number, parse_string,
2030         _cpp_lex_direct): Update to do more stepping back.
2031         (trigraph_ok): Similarly.  Rename trigraph_p.
2032         (SAVE_STATE, RESTORE_STATE): Remove.
2033         (BUFF_SIZE_UPPER_BOUND): Tweak.  Add sanity check.
2034
2035         * cpplib.c (destringize): Rename destringize_and_run, and
2036         call run_directive directly.
2037         (_cpp_do__Pragma): Simplify.
2038
2039 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2040
2041         * pe.c (arm_pe_unique_section): Const-ify.
2042         * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
2043         (switch_to_section): Add static prototype.
2044
2045         * output.h (drectve_section): Prototype.
2046
2047 2001-10-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2048
2049         * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*,
2050         fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*,
2051         parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*,
2052         i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware,
2053         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
2054         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*,
2055         i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1,
2056         i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*,
2057         i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*,
2058         i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*,
2059         i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*,
2060         i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*,
2061         ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf,
2062         mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*,
2063         powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*,
2064         powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*,
2065         powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*,
2066         powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*,
2067         powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*,
2068         powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*,
2069         rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*,
2070         sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf,
2071         v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf,
2072         cris-*-none, cris-*-linux*: Update ${tmfile} list.
2073         (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*,
2074         i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*,
2075         mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*,
2076         powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*,
2077         v850-*-*): Delete superflous ${cpu_type} setting.
2078         * config/linux.h: Delete svr4.h include.
2079         (SET_ASM_OP): Delete.
2080         * config/netware.h (INT_ASM_OP): Undef before define.
2081         * config/ptx4.h: Delete elfos.h include.
2082         (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping.
2083         * config/svr4.h: Delete elfos.h include. Update commentary.
2084         * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h,
2085         config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h,
2086         config/mn10200/mn10300.h, config/stormy16/stormy16.h,
2087         config/v850/v850.h: Delete svr4.h include.
2088         * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h,
2089         config/m68k/m68kv4.h, config/m88k/sysv4.h,
2090         config/sparc/sysv4.h: Update includes.
2091         * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h,
2092         config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h,
2093         config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h,
2094         config/m88k/dguxbcs.h: Delete includes.
2095         * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include.
2096         (PREFERRED_DEBUGGING_TYPE): Undef before defining it.
2097         * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining
2098         it.
2099         * config/m88k/dgux.h: Delete include.
2100         (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):  Undef before
2101         defining it.
2102         * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL,
2103         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it.
2104         * config/sh/elf.h: Update include.
2105         (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2106         DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes.
2107
2108 2001-10-19  Catherine Moore  <clm@redhat.com>
2109
2110         * config/stormy16/stormy-abi:  Updates to varargs descriptions.
2111         * config/stormy16/stormy16.c (stormy16_build_va_list):  Reverse
2112         base and count fields.
2113         (stormy16_expand_builtin_va_start):  last_reg_count changed to
2114         size_of_reg_args.  Use count + size in first comparison.
2115
2116 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2117
2118         * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro.
2119         * toplev.h (struct lang_hooks): New field HONOR_READONLY.
2120         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from
2121         TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly.
2122         Set alignment from type if INDIRECT_REF.
2123         (adjust_address_1, offset_address): Simplify alignment compuitation.
2124         * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P
2125         here; done by set_mem_attributes.
2126
2127 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2128
2129         * Makefile.in (rtlanal.o): Depend on $(TM_P_H).
2130         * arm-protos.h (rdata_section, zero_init_section, common_section):
2131         Prototype.
2132         * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify.
2133         * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid
2134         traditional mode stringification.
2135         * function.c (thread_prologue_and_epilogue_insns): Wrap variable
2136         in macros controling its use.
2137         * rtlanal.c: Include tm_p.h.
2138         * varasm.c (asm_output_aligned_bss): Mark parameter with
2139         ATTRIBUTE_UNUSED.
2140         (assemble_constant_align, assemble_start_function, assemble_align,
2141         assemble_variable, assemble_trampoline_template,
2142         output_constant_def_contents): Wrap potentially empty if-stmt body
2143         in brackets.
2144
2145 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2146
2147         * a29k-protos.h (literal_section): Prototype.
2148         * a29k.h (ASM_FILE_START): Don't discard pointer qualifier.
2149         * a29k.md: Ensure function pointers are prototyped.
2150         * genattrtab.c (write_eligible_delay): Mark parameter with
2151         ATTRIBUTE_UNUSED.
2152
2153 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2154
2155         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
2156         * 1750a.c (print_operand): Fix format specifier warning.
2157         * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier.
2158         * 1750a.md: Likewise.
2159         * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC.
2160         * genemit.c (output_add_clobbers): Mark parameter with
2161         ATTRIBUTE_UNUSED.
2162         * genrecog.c (write_subroutine): Likewise.
2163         * integrate.c (expand_inline_function): Delete unused variable.
2164         * varasm.c (remove_from_pending_weak_list): Wrap with
2165         ASM_WEAKEN_LABEL.
2166
2167 2001-10-19  Jakub Jelinek  <jakub@redhat.com>
2168
2169         * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg
2170         field is different to previous argument's neg field.
2171
2172         * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT.
2173
2174 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2175
2176         * final.c (get_decl_from_op): New function.
2177         (output_asm_insn): Call it; write "*" when item with decl is address.
2178
2179 2001-10-19  Janis Johnson  <janis187@us.ibm.com>
2180
2181         * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation
2182         about 64-bit support from the 3.0_branch version.
2183
2184 2001-10-19  Zack Weinberg  <zack@codesourcery.com>
2185
2186         * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and
2187         USE_INCLUDED_LIBINTL when appropriate.
2188         * configure, config.in: Regenerate.
2189         * Makefile.in (datadir): Set to @datadir@.
2190         (intl.o): Also depend on $(CONFIG_H) and system.h.
2191
2192         * intl.c: Factor out common gettext initialization sequence.
2193         (gcc_init_libintl):  New function.
2194         * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL;
2195         otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn
2196         off NLS.  Add multiple include guard.  No need to #ifdef-guard
2197         an #undef.  Prototype gcc_init_libintl here.
2198
2199         * collect2.c (main), cppmain.c (general_init), gcc.c (main),
2200         gcov.c (main), protoize.c (main), toplev.c (toplev_main):
2201         Use gcc_init_libintl.
2202
2203 2001-10-19  Catherine Moore  <clm@redhat.com>
2204
2205         * config/stormy16/stormy16.h (ASM_COMMENT_START): Define.
2206
2207         * config/stormy16/stormy16.c (stormy16_split_move):  Make
2208         sure that REG_INC notes are present for auto_inc operands.
2209
2210 2001-10-19  Andreas Jaeger  <aj@suse.de>
2211
2212         * configure: Regenerated.
2213         * configure.in: Add x86_64 to switch statements.
2214
2215 2001-10-18  Richard Henderson  <rth@redhat.com>
2216
2217         * config/alpha/alpha.md (sibcall_osf_1): Load destination
2218         address into $27 explicitly.
2219         (sibcall_value_osf_1): Likewise.
2220
2221 Thu Oct 18 16:07:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2222
2223         * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
2224         (offset_address): New function.
2225         (free_emit_status): Free regno_decl.
2226         (init_emit): Pass proper number of elements to xcalloc.
2227         Allocate regno_decl.
2228         (mark_emit_status): Mark regno_decl values.
2229         * expr.c (highest_pow2_factor): New function.
2230         (expand_assigment): Use it and offset_address.
2231         Properly handle ptr_mode vs. Pmode in offset calculation.
2232         (store_constructor, expand_expr_unaligned): Likewise.
2233         (expand_expr, case COMPONENT_EXPR): Likewise.
2234         * expr.h (offset_address): New decl.
2235         * function.h (struct emit_status): Add regno_decl.
2236         (REGNO_DECL): New macro.
2237         * final.c (output_asm_name): Move in file and don't conditionalize
2238         on flag_print_asm_name.
2239         (output_asm_insn): Only call output_asm_name if flag_print_asm_name.
2240         Output names of operands, if known.
2241         * function.c (assign_parms): Set REGNO_DECL.
2242         * integrate.c (integrate_decl_tree): Likewise.
2243         * stmt.c (expand_decl): Likewise.
2244         * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies.
2245
2246 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
2247
2248         * attribs.c (handle_noinline_attribute): New function.
2249         (handle_used_attribute): Likewise.
2250         (c_common_attribute_table): Added noinline and used.
2251         * doc/extend.texi (Function Attributes): Document them.
2252         * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
2253         Warn when merging inline with attribute noinline.
2254         (start_decl, start_function): Warn if inline and attribute
2255         noinline appear in the same declaration.
2256
2257 2001-10-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2258
2259         * config.gcc: Update c4x and i370 for C front end-specific
2260         dependencies.
2261         * config/c4x/c4x-c.c: New.
2262         * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove.
2263         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
2264         New declarations.
2265         * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h.
2266         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
2267         Make extern.
2268         (c4x_init_pragma): Remove.
2269         (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION,
2270         c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT,
2271         c4x_pr_ignored): Move to c4x-c.c.
2272         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
2273         * config/c4x/t-c4x: Update.
2274         * config/i370/i370-c.c: New.
2275         * config/i370/i370.c: Don't include c-lex.h or c-pragma.h.
2276         (i370_pr_map): Move to i370-c.c.
2277         * config/i370/t-i370: New.
2278
2279         * doc/tm.texi: Update.
2280
2281 2001-10-17  Stan Shebs  <shebs@apple.com>
2282
2283         * config/rs6000/rs6000.c: Make assorted mechanical formatting and
2284         typo fixes throughout.
2285         (machopic_output_stub): Remove some dead code.
2286
2287 2001-10-17  Richard Earnshaw <rearnsha@arm.com>
2288
2289         * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
2290         leak.
2291
2292 Wed Oct 17 05:26:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2293
2294         * Makefile.in (print-rtl.o): Depend on TREE_H.
2295         * alias.c (get_alias_set): Make two passes over objects to first
2296         see if inner object is access via restricted pointer.
2297         Defer allocating alias set for restricted pointer until here.
2298         Call find_placeholder with second arg nonzero.
2299         Minor cleanups.
2300         * c-common.c (c_apply_type_quals_to_decl): Defer getting alias
2301         set for restricted pointer types.
2302         * emit-rtl.c (set_mem_attributes): Set more attributes.
2303         (set_mem_align, change_address, adjust_address_1): New functions.
2304         (change_address_1): Now static.
2305         (adjust_address, adjust_address_nv): Deleted.
2306         (replace_equiv_address): Call change_address_1.
2307         * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
2308         (find_placeholder): Get starting point from PLIST arg.
2309         (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
2310         * expr.h (set_mem_align, change_address, adjust_address_1): New decls.
2311         (adjust_address, adjust_address_nv): New macros.
2312         * print-rtl.c (tree.h): New include.
2313         (print_rtx, case MEM): Print all memory attributes.
2314
2315 2001-10-17  Richard Henderson  <rth@redhat.com>
2316
2317         * config/alpha/alpha.c (direct_call_operand): Don't fall off end.
2318
2319 2001-10-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2320
2321         * c-tree.texi: Eliminate duplicated word.
2322         * cpp.texi: Likewise.
2323         * install.texi: Likewise.
2324         * invoke.texi: Likewise.
2325         * tm.texi: Likewise.
2326
2327 2001-10-17  Michael Collison  <collison@isisinc.net>
2328
2329         * dsp16xx.c: Fix comment formatting to match GNU standards.
2330         (dsp16xx_output_function_prologue): Change type of 'size'
2331         parameter from 'int' to HOST_WIDE_INT.
2332         (dsp16xx_output_function_epilogue): Change type of 'size'
2333         parameter from 'int' to HOST_WIDE_INT.
2334
2335 2001-10-16  Richard Henderson  <rth@redhat.com>
2336
2337         * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
2338         * configure, config.in: Rebuild.
2339
2340         * config/i386/i386.c (ix86_output_addr_vec_elt): New.
2341         (ix86_output_addr_diff_elt): New.
2342         * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
2343         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2344         (JUMP_TABLES_IN_TEXT_SECTION): New.
2345         * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
2346         * config/i386/i386-protos.h: Update.
2347
2348         * config/i386/386bsd.h, config/i386/beos-elf.h,
2349         config/i386/freebsd-aout.h, config/i386/freebsd.h,
2350         config/i386/i386-interix.h, config/i386/i386elf.h,
2351         config/i386/linux.h, config/i386/netbsd-elf.h,
2352         config/i386/netbsd.h, config/i386/openbsd.h,
2353         config/i386/ptx4-i.h, config/i386/rtemself.h,
2354         config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
2355         (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
2356
2357 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
2358
2359         * stmt.c (expand_asm_operands): Update commentary.
2360
2361 2001-10-16  Stan Shebs  <shebs@apple.com>
2362
2363         * config/darwin.h (GCC_NAME): Remove, no longer used.
2364         (NO_MATH_LIBRARY): Ditto.
2365         (MATH_LIBRARY): Define to emptiness.
2366         (DWARF2_DEBUGGING_INFO): Define.
2367         (PREFERRED_DEBUGGING_TYPE): Define.
2368         (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section.
2369         (EXCEPTION_SECTION): Define.
2370         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2371         * config/darwin.c (darwin_encode_section_info): Handle case of
2372         DECL_INITIAL being error_mark_node.
2373
2374 2001-10-16  Richard Henderson  <rth@redhat.com>
2375
2376         * alpha.c (current_file_function_operand): Don't fail for profiling.
2377         (direct_call_operand): New.
2378         * alpha-protos.h: Declare it.
2379         * alpha.h (EXTRA_CONSTRAINT): Use it.
2380         (PREDICATE_CODES): Add it.
2381         (ASM_OUTPUT_MI_THUNK): Remove.
2382         * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove.
2383         * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative.
2384
2385 2001-10-16  Krister Walfridsson  <cato@df.lth.se>
2386
2387         * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define.
2388         (JUMP_TABLES_IN_TEXT_SECTION): Define.
2389
2390 Wed Oct 17 00:21:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
2391
2392         * cfg.c (free_edge): Break out from ....
2393         (remove_edge): ... here.
2394         (clear_edges): Use free_edge.
2395
2396         * att.h (ASM_QUAD): Add comment.
2397         * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
2398
2399 Wed Oct 17 00:01:02 CEST 2001  Jan Hubicka  <jh@suse.cz>
2400
2401         * i386.c (split_ti): New function.
2402         (ix86_split_to_parts): Support TImodes.
2403         * i386.h (VALID_INT_MODE_P): Add TImode.
2404         * i386.md (movdi splitter): Fix.
2405         (movti): Support 64bit integer registers.
2406         (movti_rex64): New function and splitter.
2407
2408         * i386.c (*_cost): Add movsx/movzx cost.
2409         * i386.h (struct processor_costs): Add movsx/movzx fields.
2410         (RTX_COSTS): Handle zero/sign extend + avoid believing that
2411         64bit operations require split on 64bit machine.
2412         (CONST_COST): Make large 64bit constants expensive on 64bit compilation.
2413
2414         * i386.c (ix86_setup_incoming_varargs): Fix mode of PLUS.
2415         (ix86_expand_move): Avoid pushes of memory if size does not match;
2416         move long constants to register.
2417         (x86_initialize_trampoline): Fix mode.
2418         * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):
2419         Use ASM_QUAD on 64bit.
2420         * i386.md (test pattern): Disallow impossible constants.
2421         (tablejump PIC expander): Fix emitting of sum.
2422         (movdicc_rex64): Rename to movdicc.
2423         * linux64.h (LINK_SPEC): Add missing '%'.
2424
2425 2001-10-16  Alexandre Oliva  <aoliva@redhat.com>
2426
2427         * tree-inline.c (inlinable_function_p): Leave it up to the
2428         front-end to turn -finline-functions into DECL_INLINE set for all
2429         functions.
2430
2431 2001-10-16  Stan Shebs  <shebs@apple.com>
2432
2433         * config/rs6000/darwin.h (ASM_COMMENT_START): Define.
2434
2435 2001-10-16  Alan Modra  <amodra@bigpond.net.au>
2436
2437         * recog.c: Formatting and comment typo fixes.
2438
2439         * configure.in (gcc_cv_as_bfd_srcdir): New.  Use it to find gas
2440         version in single tree build.
2441         * configure: Regenerate.
2442
2443 2001-10-15  David Edelsohn  <edelsohn@gnu.org>
2444
2445         * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and
2446         MODE arguments to gen_rtx and compare operand with const0_rtx.
2447
2448 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2449
2450         * system.h: Poison old unused target macros.
2451         * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
2452         * config/stormy16/stormy16.c: Update references to obsolete macros.
2453         * config/stormy16/stormy16.h: Similarly.
2454         * config/stormy16/stormy16.md: Similarly.
2455         * config/cris/cris.h: Similarly.
2456
2457 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2458
2459         * cpplib.c (struct pragma_entry): Store the name as a hashnode.
2460         (lookup_pragma_entry, insert_pragma_entry, do_pragma,
2461         cpp_register_pragma): Update accordingly.
2462
2463 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2464
2465         * c-pragma.h (cpp_register_pragma_space): Remove.
2466         * cpplib.h (cpp_register_pragma_space): Remove.
2467         * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
2468         (cpp_register_pragma_space): Remove.
2469         (cpp_register_pragma): Simplify using lookup_pragma_entry,
2470         add sanity checks.
2471         (do_pragma): Similarly.
2472         (_cpp_init_internal_pragmas): Don't register namespaces.
2473
2474         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
2475         Don't register namespaces.
2476         * cp/lex.c (init_cp_pragma): Similarly.
2477         * doc/tm.texi: Update.
2478
2479 2001-10-10  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2480
2481         PR c/4157
2482         * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES
2483
2484 2001-10-13  Michael Collison  <collison@dhcp-12-114.townisp.com>
2485
2486         * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and
2487         add scheduling support.
2488         * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code.
2489         * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code.
2490         * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes.
2491
2492
2493 2001-10-13  Hans-Peter Nilsson  <hp@axis.com>
2494
2495         * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around
2496         missing CONSTANT_P test in core GCC.
2497
2498 2001-10-12  Neil Booth  <neil@daikokuya.demon.co.uk>
2499
2500         * cppmain.c (struct printer): New member source.
2501         (scan_translation_unit): Fix spacing at start of lines.
2502         (cb_line_change): Update.
2503
2504         * gcc.dg/cpp/spacing2.c: New test.
2505
2506 2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
2507
2508         * config/cris/arit.c: Use __builtin_labs, not abs.
2509
2510         * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
2511
2512         * config/cris/cris.c (cris_target_asm_function_epilogue): Move
2513         misplaced sprintf and fprintf argument.
2514
2515 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
2516
2517         * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
2518         * configure.in, Makefile.in: Take out obsolete check-po logic.
2519         * configure, config.in: Regenerate.
2520
2521 2001-10-12  Ziemowit Laski  <zlaski@apple.com>
2522
2523         * objc/objc-act.c (finish_objc): Correct precondition for emitting
2524         symtab declarations.
2525
2526 2001-10-12  Stan Shebs  <shebs@apple.com>
2527
2528         * config/rs6000/rs6000.c: Remove uses of "register" specifier in
2529         declarations of arguments and local variables.
2530
2531 2001-10-12  Christopher Faylor  <cgf@redhat.com>
2532
2533         * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and
2534         ENDFILE_SPEC definition.
2535
2536 2001-10-12  Kazu Hirata  <kazu@hxi.com>
2537
2538         * gthr-dce.h: Fix comment formatting.
2539         * gthr-posix.h: Likewise.
2540         * gthr-single.h: Likewise.
2541         * gthr-solaris.h: Likewise.
2542         * gthr-vxworks.h: Likewise.
2543         * gthr-win32.h: Likewise.
2544
2545 2001-10-12  Jakub Jelinek  <jakub@redhat.com>
2546
2547         * final.c (output_asm_insn): Make sure assembly dialects are
2548         terminated, not nested.  Output `|' and `}' characters if they
2549         don't appear inside assembly dialect selection.
2550         * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
2551         rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
2552         rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
2553         strsetsi_rex_1): Add {} braces.
2554
2555 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
2556
2557         * toplev.c (compile_file): Ignore return value from yyparse.
2558         Always pop any nested binding levels after yyparse returns.
2559
2560 2001-10-11  Richard Henderson  <rth@redhat.com>
2561
2562         * doc/c-tree.texi (Expression trees): Add VTABLE_REF.
2563
2564 2001-10-11  Richard Henderson  <rth@redhat.com>
2565
2566         * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT,
2567         fall back to add_AT_long_long for large CONST_INT.
2568
2569 2001-10-11  Richard Henderson  <rth@redhat.com>
2570
2571         * config/i386/i386.md (setcc splitters): Add four splitters to
2572         simplify compound compares that simplify_comparison can't handle.
2573
2574 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
2575
2576         * cpplex.c (digraph_spellings, token_spellings): Make static.
2577
2578 2001-10-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2579
2580         * unroll.c (loop_iterations): Fixup last patch.
2581
2582 2001-10-11  Richard Henderson  <rth@redhat.com>
2583
2584         * rtl.h (REG_VTABLE_REF): New.
2585         * rtl.c (reg_note_name): Add it.
2586         * combine.c (distribute_notes): Handle it.
2587         * final.c (final_scan_insn): Handle it.
2588         * tree.def (VTABLE_REF): New.
2589         * expr.c (expand_expr): Handle it.
2590         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
2591         * output.h: Declare them.
2592
2593 2001-10-11  Richard Henderson  <rth@redhat.com>
2594
2595         * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look
2596         for a DECL_INITIAL.
2597
2598 2001-10-11  David Edelsohn  <edelsohn@gnu.org>
2599
2600         * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only
2601         available in 64-bit mode.
2602
2603 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
2604
2605         * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none,
2606         cris-*-linux* cases.
2607         * config/cris/cris-protos.h: New file.
2608         * config/cris/cris.c: New file.
2609         * config/cris/cris.h: New file.
2610         * config/cris/cris.md: New file.
2611         * config/cris/linux.h: New file.
2612         * config/cris/aout.h: New file.
2613         * config/cris/arit.c: New file.
2614         * config/cris/cris_abi_symbol.c: New file.
2615         * config/cris/mulsi3.asm: New file.
2616         * config/cris/t-aout: New file.
2617         * config/cris/t-cris: New file.
2618         * config/cris/t-elfmulti: New file.
2619         * config/cris/t-linux: New file.
2620         * doc/invoke.texi: Add CRIS options.
2621         * doc/install.texi (Specific): Add blurb for CRIS.
2622
2623 2001-10-10  Hartmut Schirmer <SchirmerH@Innovative-Systems.de>
2624
2625         * config/float-i128.h: Make sure __STDC__VERSION__ is defined
2626         before using it.
2627         * config/float/i32.h: Likewise.
2628         * config/float-i386.h: Likewise.
2629         * config/float-i64.h: Likewise.
2630         * config/float-m68k.h: Likewise.
2631         * config/float-sh.h: Likewise.
2632         * config/float-sparc.h: Likewise.
2633
2634 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
2635
2636         * doc/contrib.texi: Add note about CRIS port to my entry.
2637
2638 2001-10-11  Kazu Hirata  <kazu@hxi.com>
2639
2640         * basic-block.h: Fix formatting.
2641         * bitmap.h: Likewise.
2642         * cpplib.h: Likewise.
2643         * c-tree.h: Likewise.
2644         * diagnostic.h: Likewise.
2645         * flags.h: Likewise.
2646         * ggc.h: Likewise.
2647         * longlong.h: Likewise.
2648         * real.h: Likewise.
2649         * reload.h: Likewise.
2650         * rtl.h: Likewise.
2651         * tree.h: Likewise.
2652
2653 2001-10-10  Richard Henderson  <rth@redhat.com>
2654
2655         * c-parse.in (asm_operand): Allow named operands.
2656         * genconfig.c (max_recog_operands): Set to 29.
2657         * local-alloc.c (requires_inout): Skip multiple digits.
2658         * recog.c (asm_operand_ok): Likewise.
2659         (preprocess_constraints): Use strtoul for matching constraints.
2660         (constrain_operands): Likewise.
2661         * regmove.c (find_matches): Likewise.
2662         * reload.c (find_reloads): Likewise.
2663         * stmt.c (parse_output_constraint): Don't reject in-out
2664         constraint on operands > 9.  Reject '[' in constraint.
2665         (expand_asm_operands): Handle named operands.  Use strtoul
2666         for matching constraints.
2667         (check_operand_nalternatives): Split out from expand_asm_operands.
2668         (check_unique_operand_names): New.
2669         (resolve_operand_names, resolve_operand_name_1): New.
2670
2671         * doc/extend.texi (Extended Asm): Document named operands.
2672         * doc/md.texi (Simple Constraints): Document matching constraints
2673         on operands > 9.
2674
2675 2001-10-10  Richard Henderson  <rth@redhat.com>
2676
2677         * combine.c (try_combine): Handle a SEQUENCE of one insn.
2678
2679         * i386.c (test splitter): Narrow tests vs paradoxical subregs.
2680         (jcc splitters): Add two splitters to simplify compound compares
2681         that simplify_comparison can't handle.
2682
2683 2001-10-10  Richard Henderson  <rth@redhat.com>
2684
2685         * langhooks.c: Include langhooks.h.
2686         * Makefile.in (langhooks.o): Depend on it.
2687
2688 Wed Oct 10 23:49:06 EDT 2001  John Wehle  (john@feith.com)
2689
2690         * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
2691         should not be considered as a no-op.
2692         * flow.c (delete_noop_moves): Handle REG_LIBCALL notes.
2693
2694 2001-10-10  Stan Shebs  <shebs@apple.com>
2695
2696         * alias.c: Remove uses of "register" specifier in declarations
2697         of arguments and local variables.
2698         * c-common.c: Ditto.
2699         * c-convert.c: Ditto.
2700         * c-decl.c: Ditto.
2701         * c-format.c: Ditto.
2702         * c-semantics.c: Ditto.
2703         * c-typeck.c: Ditto.
2704         * caller-save.c: Ditto.
2705         * calls.c: Ditto.
2706         * cfg.c: Ditto.
2707         * cfgbuild.c: Ditto.
2708         * cfgrtl.c: Ditto.
2709         * collect2.c: Ditto.
2710         * combine.c: Ditto.
2711         * convert.c: Ditto.
2712         * cppexp.c: Ditto.
2713         * cppfiles.c: Ditto.
2714         * cse.c: Ditto.
2715         * dbxout.c: Ditto.
2716         * defaults.h: Ditto.
2717         * df.c: Ditto.
2718         * dwarf2out.c: Ditto.
2719         * dwarfout.c: Ditto.
2720         * emit-rtl.c: Ditto.
2721         * explow.c: Ditto.
2722         * expmed.c: Ditto.
2723         * expr.c: Ditto.
2724         * final.c: Ditto.
2725         * fix-header.c: Ditto.
2726         * floatlib.c: Ditto.
2727         * flow.c: Ditto.
2728         * fold-const.c: Ditto.
2729         * function.c: Ditto.
2730         * gcc.c: Ditto.
2731         * gcse.c: Ditto.
2732         * gen-protos.c: Ditto.
2733         * genattrtab.c: Ditto.
2734         * gencheck.c: Ditto.
2735         * genconfig.c: Ditto.
2736         * genemit.c: Ditto.
2737         * genextract.c: Ditto.
2738         * genflags.c: Ditto.
2739         * gengenrtl.c: Ditto.
2740         * genoutput.c: Ditto.
2741         * genpeep.c: Ditto.
2742         * genrecog.c: Ditto.
2743         * gensupport.c: Ditto.
2744         * global.c: Ditto.
2745         * gmon.c: Ditto.
2746         * graph.c: Ditto.
2747         * haifa-sched.c: Ditto.
2748         * hard-reg-set.h: Ditto.
2749         * hash.c: Ditto.
2750         * integrate.c: Ditto.
2751         * jump.c: Ditto.
2752         * lists.c: Ditto.
2753         * local-alloc.c: Ditto.
2754         * loop.c: Ditto.
2755         * mips-tdump.c: Ditto.
2756         * mips-tfile.c: Ditto.
2757         * optabs.c: Ditto.
2758         * prefix.c: Ditto.
2759         * print-rtl.c: Ditto.
2760         * read-rtl.c: Ditto.
2761         * real.c: Ditto.
2762         * recog.c: Ditto.
2763         * reg-stack.c: Ditto.
2764         * regclass.c: Ditto.
2765         * regmove.c: Ditto.
2766         * reload.c: Ditto.
2767         * reload1.c: Ditto.
2768         * reorg.c: Ditto.
2769         * resource.c: Ditto.
2770         * rtl.c: Ditto.
2771         * rtlanal.c: Ditto.
2772         * scan.c: Ditto.
2773         * sched-deps.c: Ditto.
2774         * sched-rgn.c: Ditto.
2775         * sdbout.c: Ditto.
2776         * simplify-rtx.c: Ditto.
2777         * stmt.c: Ditto.
2778         * stor-layout.c: Ditto.
2779         * toplev.c: Ditto.
2780         * tradcif.y: Ditto.
2781         * tradcpp.c: Ditto.
2782         * tree.c: Ditto.
2783         * unroll.c: Ditto.
2784         * varasm.c: Ditto.
2785         * xcoffout.c: Ditto.
2786
2787 2001-10-10  Richard Henderson  <rth@redhat.com>
2788
2789         * rtl.h (can_reverse_comparison_p): Remove.
2790
2791 2001-10-10  Christopher Faylor <cgf@redhat.com>
2792
2793         * config/i386/cygwin.h: Avoid adding include files if -nostdinc is
2794         used.
2795
2796 2001-10-10  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2797
2798         * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define.
2799         (Thanks to Chris Faylor for suggesting macro name).
2800         (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more
2801         WIN32 defines.
2802         (STANDARD_INCLUDE_DIR): Remove i386- from directory name.
2803         (STANDARD_INCLUDE_COMPONENT): Change to MINGW.
2804         (MATH_LIBRARY): Undef before definition.
2805         (OUTPUT_QUOTED_STRING): Likewise.
2806         * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS.
2807
2808 2001-10-10  Richard Henderson  <rth@redhat.com>
2809
2810         * unwind-dw2-fde.c (fde_compare_t): Change return type to int.
2811         (fde_unencoded_compare): Likewise.  Don't use subtraction to get
2812         a tristate comparison value.
2813         (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise.
2814
2815 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2816
2817         PR c++/4512
2818         * unroll.c (loop_iterations): Ignore insns generated by loop
2819         unrolling.
2820
2821         * config.gcc (mips*-*-gnu*): Delete support.
2822         * config/mips/gnu.h: Remove.
2823
2824 2001-10-10  Kazu Hirata  <kazu@hxi.com>
2825
2826         * calls.c: Fix formatting.
2827         * c-decl.c: Likewise.
2828         * cfgcleanup.c: Likewise.
2829         * combine.c: Likewise.
2830         * cppfiles.c: Likewise.
2831         * cpplib.c: Likewise.
2832         * cppmacro.c: Likewise.
2833         * crtstuff.c: Likewise.
2834         * cse.c: Likewise.
2835         * dwarf2out.c: Likewise.
2836         * expmed.c: Likewise.
2837         * expr.c: Likewise.
2838         * fold-const.c: Likewise.
2839         * function.c: Likewise.
2840         * gcse.c: Likewise.
2841         * genattrtab.c: Likewise.
2842         * ggc-page.c: Likewise.
2843         * integrate.c: Likewise.
2844         * libgcc2.c: Likewise.
2845         * loop.c: Likewise.
2846         * optabs.c: Likewise.
2847         * profile.c: Likewise.
2848         * protoize.c: Likewise.
2849         * real.c: Likewise.
2850         * recog.c: Likewise.
2851         * reload1.c: Likewise.
2852         * reload.c: Likewise.
2853         * reorg.c: Likewise.
2854         * resource.c: Likewise.
2855         * sched-rgn.c: Likewise.
2856         * sdbout.c: Likewise.
2857         * stmt.c: Likewise.
2858         * toplev.c: Likewise.
2859         * varasm.c: Likewise.
2860
2861 2001-10-10  Janis Johnson  <janis187@us.ibm.com>, Alexandre Oliva  <aoliva@redhat.com>
2862
2863         * langhooks.c: Include rtl.h, insn-config.h and integrate.h.
2864         * Makefile.in (langhooks.o): Add dependencies.
2865
2866 Wed Oct 10 00:41:29 EDT 2001  John Wehle  (john@feith.com)
2867
2868         * rs6000.c (rs6000_emit_load_toc_table): Don't
2869         strdup the toc label.
2870         (create_TOC_reference): Likewise.
2871
2872 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2873
2874         * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent
2875         version default.
2876
2877 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2878
2879         * config/i386/i386.c (ix86_attribute_table): Correct
2880         min_len, max_len fields for dllimport, dllexport and shared.
2881
2882 2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
2883
2884         * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi,
2885         doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi:
2886         Consistently use "nonzero" instead of "non-zero".
2887
2888 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2889
2890         * acconfig.h: Fix comment formatting.
2891         * c-dump.h: Likewise.
2892         * c-tree.h: Likewise.
2893         * conditions.h: Likewise.
2894         * expr.h: Likewise.
2895         * function.h: Likewise.
2896         * gthr.h: Likewise.
2897         * hwint.h: Likewise.
2898         * integrate.h: Likewise.
2899         * intl.h: Likewise.
2900         * loop.h: Likewise.
2901         * optabs.h: Likewise.
2902
2903 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2904
2905         * c-common.h: Fix comment formatting.
2906         * c-dump.c: Likewise.
2907         * cfg.c: Likewise.
2908         * diagnostic.h: Likewise.
2909         * except.c: Likewise.
2910         * gcc.h: Likewise.
2911         * gcov-io.h: Likewise.
2912         * genattrtab.c: Likewise.
2913         * output.h: Likewise.
2914         * predict.h: Likewise.
2915         * reload1.c: Likewise.
2916         * reload.h: Likewise.
2917         * resource.h: Likewise.
2918         * scan.h: Likewise.
2919         * system.h: Likewise.
2920         * tree.h: Likewise.
2921         * tree-inline.c: Likewise.
2922         * tsystem.h: Likewise.
2923         * varasm.c: Likewise.
2924         * xcoffout.h: Likewise.
2925
2926 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2927
2928         * doc/gcc.texi: Document preference for "nonzero" over "non-zero".
2929
2930 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2931
2932         * config/alpha/freebsd.h, config/alpha/lib1funcs.asm,
2933         config/i386/i386elf.h, config/i386/netbsd-elf.h,
2934         config/i386/netware.h, config/mcore/gfloat.h,
2935         config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md,
2936         config/netware.h, gccbug.in: Update FSF address.
2937
2938 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2939
2940         * c-common.c: Fix comment typos.
2941         * cfgrtl.c: Likewise.
2942         * collect2.c: Likewise.
2943         * cpplex.c: Likewise.
2944         * doloop.c: Likewise.
2945         * dwarf2out.c: Likewise.
2946         * dwarfout.c: Likewise.
2947         * expr.c: Likewise.
2948         * fold-const.c: Likewise.
2949         * gcc.c: Likewise.
2950         * gcov.c: Likewise.
2951         * gcse.c: Likewise.
2952         * global.c: Likewise.
2953         * ifcvt.c: Likewise.
2954         * loop.c: Likewise.
2955         * optabs.c: Likewise.
2956         * protoize.c: Likewise.
2957         * regclass.c: Likewise.
2958         * reorg.c: Likewise.
2959         * rtl.h: Likewise.
2960         * stmt.c: Likewise.
2961         * tree.h: Likewise.
2962         * doc/cpp.texi: Likewise.
2963         * doc/c-tree.texi: Likewise.
2964         * doc/extend.texi: Likewise.
2965         * doc/invoke.texi: Likewise.
2966         * doc/objc.texi: Likewise.
2967         * doc/tm.texi: Likewise.
2968
2969 2001-10-08  Richard Henderson  <rth@redhat.com>
2970
2971         * varasm.c (set_named_section_flags): Initialize "declared".
2972
2973 2001-10-08  Robert Lipe  <robertlipe@usa.net>
2974
2975         * varasm.c (struct in_named_entry): Add declared.
2976         (named_section_first_declaration): New function.
2977         (default_elf_asm_named_section): Use it.
2978         * output.h (named_section_first_declaration): New.
2979
2980 2001-10-08  Richard Henderson  <rth@redhat.com>
2981
2982         * i386.md (movsi_xor): Export.
2983         (setcc peep2): Use it when available; add an alternative to
2984         match zero_extendhisi2_and.
2985
2986 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2987
2988         * romp-protos.h (romp_initialize_trampoline): New function.
2989         * romp.c (romp_initialize_trampoline): Likewise.
2990         * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of
2991         romp_initialize_trampoline.
2992
2993 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2994
2995         * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'.
2996         * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2997         * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2998         * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2999
3000 2001-10-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3001
3002         * unroll.c (loop_iterations): Extend check for multiple back edges.
3003
3004 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
3005
3006         * langhooks.h: New file.
3007         * Makefile.in (OBJS): Added langhooks.o.
3008         (c-lang.o): Depend on langhooks.h.
3009         (c-common.o): Don't depend on tree-inline.h.
3010         (tree-inline.o): Depend on toplev.h.
3011         (langhooks.o): New rule.
3012         * c-common.c: Don't include tree-inline.h.
3013         (c_mark_lang_decl): Mark argument c as unused.
3014         (c_common_lang_init): Don't initialize hooks here.
3015         * c-lang.c: Include langhooks.h, then override some macros.
3016         (lang_hooks): Initialize with macros in langhooks.h.
3017         (c_init): Don't initialize hooks here.
3018         * toplev.c (struct lang_hooks_for_tree_inlining): New struct.
3019         (struct lang_hooks): Add tree_inlining.  Refer to langhooks.h.
3020         * tree-inline.c: Include toplev.h.  Don't define hook variables.
3021         * tree-inline.h: Don't define hook types nor declare hook
3022         variables.  Move macros to...
3023         * langhooks.c: ... new file, as functions.  Adjust all callers.
3024
3025 2001-10-08  Jeffrey A Law  <law@cygnus.com>
3026
3027         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call
3028         purge_mem_unchanging_flag on all instructions, not just on those
3029         before NOTE_INSN_FUNCTION_BEG.
3030
3031 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3032
3033         * cppmacro.c (_cpp_create_definition): Leave comments off.
3034
3035         * doc/cpp.texi: Update.
3036
3037 2001-10-08  DJ Delorie  <dj@redhat.com>
3038
3039         * c-decl.c (grokfield): Make sure the only unnamed fields
3040         we're allowing are either structs or unions.
3041         * doc/extend.texi: Add documentation for the unnamed field
3042         extension.
3043
3044 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
3045
3046         * aclocal.m4 (gcc_AC_PROG_GNAT): New.
3047         * configure.in: Use it.
3048         * configure: Regenerated.
3049         * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
3050         config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.
3051
3052 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3053
3054         * cppfiles.c (open_file): Don't mark zero-length files
3055         never-reread here.  Don't output diagnostics here either.
3056         (stack_include_file): Mark them never-reread here.
3057         (_cpp_read_file): Update.
3058
3059 2001-10-08  Richard Henderson  <rth@redhat.com>
3060
3061         * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
3062
3063 2001-10-08  Richard Henderson  <rth@redhat.com>
3064
3065         * expr.c (store_expr): When converting a CONST_INT for storage
3066         in a SUBREG, convert it to both SUBREG modes before stripping
3067         the SUBREG.
3068
3069 2001-10-08  Richard Henderson  <rth@redhat.com>
3070
3071         * varasm.c (restore_varasm_status): New.
3072         * function.h: Declare it.
3073         * function.c (pop_function_context_from): Call it.
3074
3075 2001-10-08  Richard Henderson  <rth@redhat.com>
3076
3077         * c-common.h (struct c_lang_decl): Add declared_inline.
3078         * c-tree.h (DECL_DECLARED_INLINE_P): New.
3079         * c-lang.c (c_disregard_inline_limits): Use it.
3080         * c-decl.c (duplicate_decls): Likewise.
3081         (pushdecl, redeclaration_error_message): Likewise.
3082         (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
3083         (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
3084         Set DECL_INLINE if -finline-functions.
3085         (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
3086
3087 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3088
3089         * cppmacro.c (funlike_invocation_p): Move some logic to caller
3090         in enter_macro_context.  Create a padding token in its own context
3091         if necessary when the search for '(' fails.
3092         (enter_macro_context): Update.
3093
3094 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3095
3096         * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
3097         genmultilib, toplev.c: Fix spelling errors of "separate" as
3098         "seperate", and corresponding spelling errors of related words.
3099
3100 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3101
3102         * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
3103         * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
3104         Likewise.
3105         * c-dump.c (dump_option_value_info): Likewise.
3106         * c-format.c (format_length_info, format_char_info,
3107         format_flag_spec, format_flag_pair, format_kind_info): Likewise.
3108         * collect2.c (names): Likewise.
3109         * cppdefault.h (default_include): Likewise.
3110         * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
3111         * flow.c (life_analysis): Likewise.
3112         * gcc.c (dir_separator_str, modify_target, option_map,
3113         target_option_translations, spec_list_1, extra_specs_1,
3114         init_spec): Likewise.
3115         * gcov.c (gcov_version_string): Likewise.
3116         * genattr.c (write_units): Likewise.
3117         * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
3118         * gengenrtl.c (rtx_definition, defs): Likewise.
3119         * genrecog.c (pred_table): Likewise.
3120         * global.c (global_alloc): Likewise.
3121         * lcm.c (optimize_mode_switching): Likewise.
3122         * local-alloc.c (find_free_reg): Likewise.
3123         * params.h (param_info): Likewise.
3124         * predict.c (predictor_info): Likewise.
3125         * protoize.c (unexpansion_struct): Likewise.
3126         * real.c (bmask): Likewise.
3127         * recog.h (insn_operand_data, insn_data): Likewise.
3128         * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
3129         * stmt.c (expand_nl_goto_receiver): Likewise.
3130         * toplev.c (da, debug_args, lang_opt, documented_lang_options,
3131         target_switches, target_options): Likewise.
3132         * tradcif.y (token, tokentab2, yylex): Likewise.
3133         * tree.h (attribute_spec): Likewise.
3134
3135         * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
3136         Likewise.
3137         * arc.c (arc_output_function_epilogue): Likewise.
3138         * arm.c (processors, all_cores, all_architectures,
3139         arm_override_options, isr_attribute_arg, isr_attribute_args,
3140         arm_isr_value): Likewise.
3141         * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
3142         Likewise.
3143         * c4x.c (c4x_int_reglist): Likewise.
3144         * d30v.c (override_options): Likewise.
3145         * h8300.c (shift_insn): Likewise.
3146         * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
3147         pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
3148         ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
3149         builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
3150         ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
3151         * i386.h (processor_costs, ix86_cost): Likewise.
3152         * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
3153         * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
3154         * m68k.c (codes_68881, codes_FPA): Likewise.
3155         * m88k.c (mode_from_align, max_from_align, all_from_align,
3156         best_from_align, m_options): Likewise.
3157         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
3158         * mcore.c (mode_from_align): Likewise.
3159         * mips/elf64.h (UNIQUE_SECTION): Likewise.
3160         * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
3161         * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
3162         * mips.h (mips_regno_to_class): Likewise.
3163         * ns32k.c (scales): Likewise.
3164         * pa.c (import_string, magic_milli): Likewise.
3165         * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
3166         * sparc.c (leaf_reg_remap, sparc_override_options,
3167         reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
3168         Likewise.
3169         * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
3170
3171 2001-10-07  Dale Johannesen  <dalej@apple.com>
3172
3173         * reload1.c (reload_reg_free_p): Teach register interference
3174         checking that multiple output reloads are emitted in
3175         reverse order.
3176         reload1.c (reload_reg_reaches_end_p):  Ditto.
3177         reload1.c (reloads_conflict):  Ditto.
3178
3179 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3180
3181         * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and
3182         NULL_TREE inside @code.
3183
3184 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3185
3186         * doc/gcc.texi: Document consistent style of "32-bit",
3187         "Objective-C", and "@code{NULL}".
3188
3189 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
3190
3191         * cpplex.c (enum spell_type): Add SPELL_NUMBER.
3192         (cpp_token_len, cpp_spell_token, cpp_output_token,
3193         _cpp_equiv_tokens): Handle it.
3194         * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and
3195         CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF.
3196         * cppexp.c (_cpp_parse_expr): Use the correct operator code in
3197         error messages.
3198
3199 Sat Oct  6 07:42:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3200
3201         * gcc.c (default_compilers): Remove .ada.
3202
3203 2001-10-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3204
3205         * doc/cppinternals.texi: Update.
3206
3207 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
3208
3209         * gcc.c (main): Set this_file_error if the appropriate
3210         compiler for a language has not been installed.
3211
3212 2001-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
3213
3214         * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set.
3215
3216 2001-10-05  Joseph S. Myers  <jsm28@cam.ac.uk>
3217
3218         * gccbug.in (CATEGORIES): Add ada.
3219
3220 2001-10-05  Catherine Moore  <clm@redhat.com>
3221
3222         * config/stormy16/stormy-abi:  Document abi changes.
3223         * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine.
3224         (ICALL_REGS): New register class.
3225         (NUM_ARGUMENT_REGISTERS): Now 6.
3226         (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs
3227         in registers.
3228         (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS.
3229         * config/stormy16.md (call_internal, call_value_internal,
3230         indirect_jump): Use new 'z' constraint.
3231
3232 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3233
3234         * doc/cppinternals.texi: Update.
3235
3236 2001-10-05  Richard Henderson  <rth@redhat.com>
3237
3238         * dwarf2out.c (FRAME_BEGIN_LABEL): New.
3239         (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and
3240         the gas section-name-as-label feature.
3241
3242 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3243
3244         * doc/cppinternals.texi: Update.
3245
3246 Fri Oct  5 08:17:46 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3247
3248         * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
3249         to ensure valid SImode constants.
3250
3251 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
3252
3253         * Makefile.in (c-decl.o): Depend on tree-inline.h.
3254         (c-lang.o): Likewise, as well as insn-config.h and integrate.h.
3255         * c-decl.c: Include tree-inline.h.
3256         (c_expand_body): Call optimize_inline_calls. Determine whether
3257         a function is inlinable upfront, and only clear
3258         DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
3259         * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
3260         (c_disregard_inline_limits): New function.
3261         (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
3262         (c_post_options): Enable tree inlining if inlining is enabled.
3263         Don't inline trees when instrumenting functions.
3264         (c_init): Initialize lang_disregard_inline_limits and
3265         lang_cannot_inline_tree_fn.
3266         * tree-inline.c (initialize_inlined_parameters): Handle calls
3267         with fewer arguments than declared parameters, and fewer
3268         parameters than passed arguments.  Don't assume value is a
3269         DECL.
3270         (declare_return_variable): Convert return value back to the
3271         original type, if it was promoted.
3272         (tree_inlinable_function_p): New function.
3273         (inlinable_function_p): Don't look at DECL_INLINE if we're
3274         inlining all functions.  Make it work with a NULL id.
3275         Re-check DECL_UNINLINABLE after language-specific checks.
3276         * tree-inline.h (tree_inlinable_function_p): Declare it.
3277         * integrate.c (save_for_inline): Don't bother to prepare argvec
3278         when not inlining.
3279         * cse.c (check_for_label_ref): Don't check deleted labels.
3280
3281         * Makefile.in (tree-inline.o): Depend on newly-included headers.
3282         * tree-inline.c: Include headers needed for the functions moved in.
3283         (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
3284         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
3285         (copy_body, initialize_inlined_parameters): Likewise.
3286         (declare_return_variable, inlinable_function_p): Likewise.
3287         (expand_call_inline, expand_calls_inline): Likewise.
3288         (optimize_inline_calls, clone_body): Likewise.
3289         (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
3290         (copy_tree_r, remap_save_expr): Likewise.
3291
3292 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
3293
3294         * Makefile.in (OBJS): Added tree-inline.o.
3295         (c-common.o): Depend on tree-inline.h.
3296         (tree-inline.o): New target.
3297         * c-common.c: Include tree-inline.h.
3298         (c_mark_lang_decl): Don't mark saved_tree.
3299         (c_common_lang_init): Set lang_anon_aggr_type_p.
3300         * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
3301         (struct c_lang_decl): Moved saved_tree to tree_decl.
3302         * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
3303         * integrate.h (function_attribute_inlinable_p): Declare it.
3304         * integrate.c (function_attribute_inlinable_p): Export it.
3305         * tree-inline.c: New file.  Define variables declared in...
3306         * tree-inline.h: New file.  Declare functions to be moved to
3307         tree-inline.c.  Define macros and declare types and hooks for
3308         language-specific tree inlining.
3309         (flag_inline_trees): Moved definition from cp/decl2.c.
3310         * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
3311         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
3312         (struct tree_decl): Moved saved_tree from c_lang_decl and
3313         inlined_fns from C++'s lang_decl.
3314
3315 2001-10-04  Loren J. Rittle  <ljrittle@acm.org>
3316
3317         * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which
3318         propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS.
3319
3320 2001-10-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3321
3322         * doc/cppinternals.texi: Update.
3323
3324 2001-10-04  Eric Christopher  <echristo@redhat.com>
3325
3326         * config/mips/mips.c (init_cumulative_args): Remember to set
3327         cum->prototype.
3328         * config.gcc: Redo linux configuration. Add target_cpu_default
3329         of soft-float to all mipsisa32 combinations and tx39.
3330         * config/mips/linux.h: Remove include of mips.h.
3331
3332 2001-10-03  Loren J. Rittle  <ljrittle@acm.org>
3333
3334         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS,
3335         HOST_LDFLAGS and HOST_CPPFLAGS.
3336
3337 2001-10-03  Ziemowit Laski  <zlaski@apple.com>
3338
3339         * c-parse.in (objc_inherit_code, objc_pq_context,
3340         objc_public_flag): Make static.
3341         (objc_interface_context, objc_implementation_context,
3342         objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
3343         global tree array in objc/objc-act.[ch].
3344         (methoddef): Remove unnecessary code.
3345
3346         * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
3347         Hoist struct definitions to objc-act.h.
3348         (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
3349         cat_count): Place declaration in objc-act.h.
3350         (objc_tree_index): Move enumeration to objc-act.h.
3351         (objc_global_trees): Place declaration and macro accessors in
3352         objc-act.h.
3353         (implementation_context): Remove duplicate; use
3354         objc_implementation_context instead:
3355         (method_context): Remove duplicate; use objc_method_context
3356         instead.
3357         (objc_ellipsis_node, objc_method_prototype_template,
3358         implemented_classes, function_type): Move global vars to
3359         objc_global_trees.
3360         (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
3361         (build_message_expr): Move actual construction of ObjC message
3362         send nodes to finish_message_expr.
3363         (finish_message_expr): New routine, contains code formerly in
3364         build_message_expr.
3365         * objc/objc-act.h (finish_message_expr): New prototype.
3366         (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
3367         declarations; these vars are now part of objc_global_trees.
3368         (objc_tree_index, objc_global_trees): Move definitions from
3369         objc-act.c.
3370         * objc/objc-tree.def: Update copyright info.
3371
3372 Wed Oct  3 12:22:11 EDT 2001  John Wehle  (john@feith.com)
3373
3374         * dwarf2asm.c (unaligned_integer_asm_op): Abort if
3375         op is NULL.
3376         * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use
3377         only if TARGET_ARCH64.
3378
3379 2001-10-02  Bernd Schmidt  <bernds@redhat.com>
3380
3381         * doc/extend.texi: Fix some problems with previous checkin.
3382         * doc/invoke.texi: Likewise.
3383
3384 2001-10-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3385
3386         * cpphash.h: Update comments.
3387         (cpp_context): Update.
3388         (spec_nodes): Remove n__Pragma.
3389         * cppinit.c (cpp_create_reader): Update.
3390         (builtin_array): Add _Pragma.
3391         * cpplib.h: Update comments.
3392         (NODE_DISABLED, BT_PRAGMA): New.
3393         (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes.
3394         * cppmacro.c (struct cpp_macro): Remove disabled.
3395         (builtin_macro): Return int, handle _Pragma, push the new token
3396         on the context stack.
3397         (funlike_invocation_p): Unconstify, update.
3398         (enter_macro_context): Handle builtins here.
3399         (replace_args, push_token_context, push_ptoken_context):
3400         Update for prototype changes.
3401         (_cpp_pop_context): Update.
3402         (cpp_get_token): Don't handle buitins, nor _Pragma here.
3403         (cpp_sys_macro_p): Update.
3404         (_cpp_free_definition): Clear disabled flag.
3405         (_cpp_create_definition): Upate.
3406         * cppmain.c: Update comments.
3407
3408 Tue Oct  2 12:46:01 CEST 2001  Bo Thorsen     <bo@suse.co.uk>,
3409                                 Andreas Jaeger <aj@suse.de>,
3410                                 Jan Hubicka    <jh@suse.cz>
3411
3412         * doc/invoke.texi (i386 Options): Document x86-64 options.
3413         (i386 and x86-64 Options): Rename i386 options section.
3414
3415         * config/i386/i386.h (TARGET_UNWIND_INFO): New.
3416         (TARGET_SWITCHES): Add -munwind-info.
3417         (MASK_NO_UNWIND_INFO): New.
3418         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
3419         biarch compilation.
3420         (ASM_OUTPUT_DOUBLE_INT): New.
3421
3422         * config/i386/linux64.h: New spec file for Linux x86-64 support.
3423         * config.gcc: Fix tm_file settings for x86-64.
3424         * config/i386/x86-64.h: New file with OS independent x86-64
3425         definitions.
3426         * config/i386/biarch64.h: New file used to configure compiler
3427         to biarch/64bit compilation.
3428
3429         * config/i386/i386.c: (override_options): Set flags default
3430         for 64bit compilation.
3431
3432 Tue Oct  2 12:46:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
3433
3434         * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
3435         (ix86_expand_int_movcc): Optimize DImode conditional moves with
3436         constants on x86_64.
3437         (ix86_attr_length_immediate_default): Support MODE_DI.
3438         * i386.md (fixdi splitter): Add missing "&& 1" in splitter
3439         condition.
3440         (indirect_jump, tablejump): Turn into expander.
3441
3442 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3443
3444         * c-common.c (c_format_attribute_table): Make format and
3445         format_arg attributes apply to function types rather than to
3446         decls.
3447         (is_valid_printf_arglist): Construct an attribute list and pass
3448         that to check_function_format rather than a name.
3449         * c-common.h (check_function_format): Adjust prototype.
3450         * c-decl.c (duplicate_decls): Preserve attributes from type of
3451         built-in decl when allowing for harmless conflict in types.
3452         * c-format.c (record_function_format,
3453         record_international_format, function_format_list,
3454         international_format_info, international_format_list): Remove.
3455         (function_format_info): Remove next, name and assembler_name.
3456         Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
3457         (decode_format_attr): New.
3458         (handle_format_attribute): Handle receiving a type rather than a
3459         decl.  Call decode_format_attr.  Store format information in a
3460         function_format_info.
3461         (handle_format_arg_attribute): Correct comment.  Handle receiving
3462         a type rather than a decl.  Use unsigned HOST_WIDE_INT for
3463         arg_num.
3464         (check_format_info_recurse, check_format_info_main): Take argument
3465         numbers as unsigned HOST_WIDE_INT.
3466         (check_function_format): Take a list of attributes from the
3467         function type rather than a name or assembler name.  Check for
3468         format attributes in that list and the attributes on the type of
3469         the current function rather than looking through
3470         function_format_list.
3471         (check_format_info): Use unsigned HOST_WIDE_INT for argument
3472         numbers.
3473         (check_format_info_recurse): Take format_arg attributes from the
3474         type of the function calls rather than using
3475         international_format_list.  Allow for multiple format_arg
3476         attributes.
3477         * c-typeck.c (build_function_call): Pass type attributes to
3478         check_function_format rather than name or assembler name.  Don't
3479         require there to be a name or assembler name to check formats.
3480
3481 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3482
3483         * attribs.c (decl_attributes): Possibly call
3484         insert_default_attributes to insert default attributes on
3485         functions in a lazy manner.
3486         * builtin-attrs.def: New file; define the default format and
3487         format_arg attributes.
3488         * c-common.c (c_format_attribute_table): Move to earlier in the
3489         file.
3490         (c_common_nodes_and_builtins): Initialize format_attribute_table.
3491         (enum built_in_attribute, built_in_attributes,
3492         c_attrs_initialized, c_init_attributes,
3493         c_common_insert_default_attributes): New.
3494         (c_common_lang_init): Don't initialize format_attribute_table.  Do
3495         call c_init_attributes.
3496         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
3497         * c-common.h (init_function_format_info): Don't declare.
3498         (c_common_insert_default_attributes): Declare.
3499         * c-decl.c (implicitly_declare, builtin_function): Call
3500         decl_attributes.
3501         (init_decl_processing): Don't call init_function_format_info.
3502         (insert_default_attributes): New.
3503         * c-format.c (handle_format_attribute,
3504         handle_format_arg_attribute): Be quiet about inappropriate
3505         declaration when applying default attributes.
3506         (init_function_format_info): Remove.
3507         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
3508         (insert_default_attributes): Declare.
3509
3510 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3511
3512         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
3513
3514 2001-10-01  Jim Wilson  <wilson@redhat.com>
3515
3516         * sched-deps.c (add_dependence): When elide conditional dependence,
3517         check that insn doesn't modify cond2.
3518
3519 2001-10-01  Dale Johannesen  <dalej@apple.com>
3520
3521         * config/rs6000/rs6000.h (enum processor_type): Add support
3522         for 7400 (G4) and 7450.
3523         (RTX_COSTS): Ditto.
3524         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
3525         (rs6000_issue_rate): Ditto.
3526         (rs6000_adjust_cost): Fix cycle counts for compares.
3527         (debug_stack_info):  Fix an obvious typo.
3528         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
3529         * doc/invoke.texi: Document.
3530         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
3531         for Darwin.
3532         (PROCESSOR_DEFAULT): Ditto.
3533
3534 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
3535
3536         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
3537         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
3538         later recursive make invocation.
3539
3540 2001-10-01  Hans Boehm  <boehm@acm.org>
3541
3542         * optabs.c (emit_libcall_block): When using non-call exceptions,
3543         don't add REG_LIBCALL reg notes to trapping calls.
3544
3545 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
3546
3547         * flow.c (propagate_block_delete_libcall): Remove unused first arg
3548         (propagate_one_insn):  Update for above change
3549
3550 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
3551
3552         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
3553         _Unwind_GetTextRelBase): Argument is unused.
3554
3555 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3556
3557         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
3558         Loop through NOPs, placeholders, and components.
3559         Don't go through NOPs if change mode.
3560         (record_alias_subset): Do nothing if SUBSET and SET are the same.
3561         * emit-rtl.c (set_mem_alias_set): Enable check.
3562         * expr.c (find_placeholder): New function.
3563         (expand_expr, case PLACEHOLDER_EXPR): Use it.
3564         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
3565         to modify it and avoid unneeded copies.
3566         * expr.h (expand_expr): Always define.
3567         (find_placeholder): New declaration.
3568
3569 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3570
3571         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
3572         operand 2 is the stack pointer.
3573         ("addr-peephole"): Fix address computation peephole when operand 2
3574         is the stack pointer.
3575
3576 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3577
3578         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
3579         (ix86_setup_incoming_varargs): Likewise.
3580
3581 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
3582
3583         * stor-layout.c (layout_type): Don't complain about too-large
3584         array here.
3585
3586 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3587
3588         * function.c (keep_stack_depressed): Don't use delete_insn.
3589
3590         * expr.h (set_mem_alias_set): Move decl to here.
3591         * rtl.h (mem_attrs): New typedef and struct.
3592         (union rtunion_def): Add field for mem_attrs.
3593         (X0MEMATTR, MEM_ATTRS): New macros.
3594         (MEM_ALIAS_SET): Use MEM_ATTRS.
3595         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
3596         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
3597         (set_mem_alias_set): Delete decl from here.
3598
3599         * alias.c (set_mem_alias_set): Delete from here.
3600         * emit-rtl.c (mem_attrs_htab): New variable.
3601         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
3602         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
3603         (mem_attrs_mark, get_mem_attrs): Likewise.
3604         (gen_rtx_MEM): Clear MEM_ATTRS.
3605         (set_mem_attributes): Move to here.
3606         (set_mem_alias_set): Likewise, and call get_mem_attrs.
3607         (init_emit_once): const_int_htab now deletable htab.
3608         Initialize mem_attrs_htab.
3609         * explow.c (set_mem_attributes): Delete from here.
3610         * function.c (put_var_into_stack): Clear MEM_ATTRS.
3611         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
3612         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
3613         * reload1.c (reload): Rework changing REG to MEM.
3614
3615 2001-09-30  H.J. Lu <hjl@gnu.org>
3616
3617         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
3618         * config.in: Rebuild.
3619
3620 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3621
3622         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
3623         ("tsthi_1"): Avoid allocation in register y.
3624         ("*movqi_68hc12"): Reorganize and fix constraints.
3625         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
3626         ("addqi3"): Likewise.
3627         ("addhi3"): Fix constraints.
3628         ("*logicalhi3_zexthi"): Disparage soft registers.
3629
3630 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3631
3632         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
3633         to tmp reg.
3634
3635 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3636
3637         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
3638         that we use setjmp/longjmp exceptions.
3639
3640 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
3641
3642         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
3643         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
3644         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
3645         _cpp_pool_alloc, _cpp_next_chunk): Remove.
3646         (_cpp_extend_buff, BUFF_ROOM): Update.
3647         (_cpp_append_extend_buff): New.
3648         (struct cpp_reader): Remove macro_pool, add a_buff.
3649         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
3650         macro_pool.
3651         (cpp_destroy): Free a_buff instead of macro_pool.
3652         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
3653         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
3654         _cpp_pool_alloc, ): Remove.
3655         (parse_number, parse_string): Update use of _cpp_extend_buff.
3656         (_cpp_extend_buff): Update.
3657         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
3658         * cpplib.c (glue_header_name, parse_answer):
3659         Update use of _cpp_extend_buff.
3660         (cpp_register_pragma, cpp_register_pragma_space): Use
3661         _cpp_aligned_alloc.
3662         (do_assert, do_unassert): Check for EOL, update.
3663         * cppmacro.c (stringify_arg, collect_args): Update to use
3664         _cpp_extend_buff and _cpp_append_extend_buff.
3665         (save_parameter, parse_params, alloc_expansion_token,
3666         _cpp_create_definition): Rework memory management.
3667
3668 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
3669
3670         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
3671         update md_exec_prefix.
3672         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
3673         to string constant.
3674
3675 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3676
3677         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
3678         (SELECT_CC_MODE): Use s390_select_ccmode.
3679         * config/s390/s390-protos.h (s390_select_ccmode): Add.
3680         * config/s390/s390.c (s390_select_ccmode): New.
3681         (s390_match_ccmode): Add CCLmode.
3682         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
3683         (output_branch_condition, output_inverse_branch_condition): Removed.
3684         (print_operand): Use s390_branch_condition_mnemonic.
3685         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
3686         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
3687         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
3688
3689         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
3690         when converting conditional branches to far branches.
3691         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
3692         cmpint_di): Use CCSmode instead of CCUmode.
3693
3694         * config/s390/s390.c (legitimate_la_operand_p): New.
3695         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
3696         * config/s390/s390.md (movsi): Convert load address patterns to
3697         arithmetic operations when necessary.
3698         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
3699         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
3700         (*do_la_reg_0): Don't use before reload.
3701
3702         * config/s390/s390.c (legitimize_address): Make more efficient
3703         use of two-register addressing mode.
3704
3705         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
3706         with -mno-backchain in some corner cases.
3707
3708         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
3709
3710 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
3711
3712         * reload.c (find_reloads): Mark new USE insns with QImode.
3713         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
3714         find_reloads_subreg_address): Likewise.
3715         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
3716         encountered.
3717         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
3718         CLOBBERs.
3719         (reload): Make sure there are no USEs with mode other than
3720         VOIDmode.  At the end, remove those marked with QImode.
3721
3722 2001-09-29  Per Bothner  <per@bothner.com>
3723
3724         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
3725         * Makefile.in (includedir):  Rename to local_includedir.
3726         (includedir):  Define as $(prefix)/include.
3727         * config.in (PREFIX_INCLUDE_DIR):  New variable.
3728         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
3729
3730 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
3731
3732         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
3733         storehps builtins.
3734         * doc/extend.texi (Vector Extensions): New node.
3735         * doc/invoke.texi (Machine Dependent Options): Add documentation for
3736         i386 -mmmx, -msse, -m3dnow.
3737
3738 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
3739
3740         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
3741
3742 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
3743
3744         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
3745
3746         * doc/invoke.texi (Optimize Options): Delete spurious @table.
3747
3748 2001-09-28  Richard Henderson  <rth@redhat.com>
3749
3750         * varasm.c (assemble_integer): Bound alignment check by
3751         BIGGEST_ALIGNMENT.
3752
3753         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
3754
3755 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3756
3757         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
3758
3759 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
3760
3761         Mostly from Graham Stott  <grahams@redhat.com>
3762         * c-common.c (type_for_mode): Add support for V2SFmode.
3763         * tree.c (build_common_tree_nodes_2): Likewise.
3764         * tree.h (enum tree_index, global_trees): Likewise.
3765         * config/i386/i386.c (x86_3dnow_a): New variable.
3766         (override_options): Support 3Dnow extensions.
3767         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
3768         Athlon's version of 3Dnow.
3769         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
3770         (ix86_expand_builtin): Handle them.
3771         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
3772         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
3773         TARGET_3DNOW_A): New macros.
3774         (TARGET_SWITCHES): Add 3Dnow switches.
3775         (VALID_MMX_REG_MODE_3DNOW): New macro.
3776         (VECTOR_MODE_SUPPORTED_P): Use it.
3777         (enum ix86_builtins): Add entries for 3Dnow builtins.
3778         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
3779         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
3780         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
3781         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
3782         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
3783         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
3784         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
3785         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
3786         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
3787         sfence_insn, prefetch): Make these available if TARGET_SSE or
3788         TARGET_3DNOW_A.
3789
3790 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
3791
3792         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
3793         ix86_va_start, ix86_build_va_list): Declare.
3794         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
3795         ix86_va_start, ix86_build_va_list): New global functions.
3796         * i386.md (sse_prologue_save_insn): New insn.
3797         (sse_prologue_save): New expander.
3798         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
3799         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
3800
3801 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3802
3803         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
3804         Use size_t everywhere, make definitions consistent with
3805         prototypes.
3806
3807 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
3808
3809         * gcse.c (replace_store_insn): Use delete_insn.
3810         * loop.c (move_movables): Likewise; avoid delete_insn
3811         from clobbering notes moved elsewhere.
3812         (check_dbra_loop): Use delete_insn.
3813         * ssa.c (convert_from_ssa): Likewise.
3814         * cse.c (cse_insn): Use delete_insn.
3815
3816 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3817
3818         * cpphash.h (struct cpp_buff): Make unsigned.
3819         (_cpp_get_buff): Take length of size_t.
3820         (_cpp_unaligned_alloc): New.
3821         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
3822         (struct cpp_reader): Remove ident_pool.  Add u_buff.
3823         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
3824         (cpp_destroy): Destroy u_buff, not ident_pool.
3825         * cpplex.c (parse_number, parse_string, save_comment,
3826         cpp_token_as_text): Update to use the unaligned buffer.
3827         (new_buff): Make unsigned.
3828         (_cpp_unaligned_alloc): New.
3829         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
3830         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
3831         Similarly.
3832         (collect_args): Make unsigned.
3833
3834 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
3835
3836         * cpplex.c (cpp_output_token): Use a putc loop for
3837         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
3838
3839         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
3840         * configure, config.in: Regenerate.
3841         * system.h: Replace fwrite and fprintf with their unlocked
3842         variants if available.
3843
3844 2001-09-27  Richard Henderson  <rth@redhat.com>
3845
3846         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
3847         in favour of .eh_frame.
3848
3849 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
3850
3851         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
3852         to macros.
3853         (LIBCALL_VALUE): Likewise.
3854
3855 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3856
3857         * cpphash.h: Update comment.
3858         * cpplex.c: Update comments.
3859         (_cpp_can_paste): Remove.
3860         * cpplib.h (_cpp_can_paste): Remove.
3861         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
3862         lexer rather than _cpp_can_paste.
3863
3864 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3865
3866         * doc/cppinternals.texi: Update.
3867
3868 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3869
3870         * cpphash.h (struct cpp_pool): Remove locks and locked.
3871         (struct cpp_context): Add member buff.
3872         (struct cpp_reader): Remove member argument_pool.
3873         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
3874         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
3875         * cpplex.c (chunk_suitable): Remove pool argument.
3876         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
3877         (new_buff, _cpp_extend_buff): Update.
3878         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
3879         which buffer is returned.
3880         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
3881         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
3882         * cppmacro.c (lock_pools, unlock_pools): Remove.
3883         (push_ptoken_context): Take a _cpp_buff.
3884         (enter_macro_context): Pool locking removed.
3885         (replace_args): Use a _cpp_buff for the replacement list with
3886         arguments replaced.
3887         (push_token_context): Clear buff.
3888         (expand_arg): Use _cpp_pop_context.
3889         (_cpp_pop_context): Free a context's buffer, if any.
3890
3891 2001-09-26  DJ Delorie  <dj@redhat.com>
3892
3893         * c-typeck.c (digest_init): Check for sizeless arrays.
3894
3895 2001-09-26  Richard Henderson  <rth@redhat.com>
3896
3897         * optabs.c (init_one_libfunc): Create a dummy function type
3898         instead of using error_mark_node.
3899
3900 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3901
3902         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
3903         _cpp_extend_buff, _cpp_free_buff): New.
3904         (struct cpp_reader): New member free_buffs.
3905         * cppinit.c (cpp_destroy): Free buffers.
3906         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
3907         _cpp_extend_buff, _cpp_free_buff): New.
3908         * cpplib.h (struct cpp_options): Remove unused member.
3909         * cppmacro.c (collect_args): New.  Combines the old parse_arg
3910         and parse_args.  Use _cpp_buff for memory allocation.
3911         (funlike_invocation_p, replace_args): Update.
3912
3913 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
3914
3915         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
3916
3917 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
3918
3919         * except.c (sjlj_mark_call_sites): Change address inside sequence.
3920
3921 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
3922
3923         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
3924         glibc.
3925
3926 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
3927             Jim Wilson  <wilson@redhat.com>
3928
3929         * doc/install.texi (Specific, ia64-*-linux): Document.
3930
3931 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
3932
3933         * Makefile.in (cfgrtl.o): Add.
3934         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
3935         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
3936         free_aux_for_edge): Declare.
3937         * cfg.c
3938         (HAVE_return): Undefine.
3939         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
3940         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
3941         free_aux_for_edge): New global functions.
3942         (first_delete_block): New static variable.
3943         (init_flow): Clear first_delete_block.
3944         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
3945          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
3946          try_redirect_by_replacing_jump, last_loop_beg_note,
3947          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
3948          delete_insn, delete_insn_chain, create_basic_block_structure,
3949          create_basic_block, flow_delete_block, compute_bb_for_insn,
3950          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
3951          set_block_for_new_insns, split_block, merge_blocks_nomove,
3952          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
3953          redirect_edge_and_branch, force_nonfallthru_and_redirect,
3954          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
3955          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
3956          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
3957          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
3958          purge_all_dead_edges): Move to ....
3959         * cfgrtl.c: New file; .... Here.
3960
3961         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
3962         (reroder_basic_block): Use alloc_aux_for_blocks.
3963         * predict.c (estimate_bb_frequencies): Likewise; use
3964         alloc_aux_for_edges.
3965         * profile.c (compute_branch_probabilities): Likewise.
3966         (branch_prob): Likewise.
3967         * reg-stack.c (reg_to_stack): Likewise.
3968
3969         * emit-rtl.c (emit_insns_after): Never return NULL.
3970
3971         * basic-block.h (set_block_for_new_insns): Delete.
3972         * cfgrtl.c (set_block_for_new_insns): Delete.
3973
3974         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
3975         calls when crossjumping.
3976
3977         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
3978         * unroll.c (copy_loop_body): Use delete_insn.
3979
3980         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
3981         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
3982         keep_stack_depressed): Likewise.
3983         * gcse.c (cprop_cc0_jump): Likewise.
3984         * local-alloc.c (update_equiv_regs): Likewise.
3985         * loop.c (scan_loop, loop_delete_insns): Likewise.
3986         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
3987         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
3988         delete_output_reload, delete_address_reloads_1,
3989         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
3990         Likewise.
3991         * sibcall.c (replace_call_placeholder): Likewise.
3992         * cse.c (cse_insn): Likewise.
3993
3994 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
3995
3996         From Graham Stott  <grahams@redhat.com>
3997         (def_builtin): Only define builtins appropriate for target_flags.  All
3998         callers changed.
3999         (builtin_decsription): Add new field mask which is used to determine
4000         when to define the builtin via the macro def_builtin.
4001
4002         (bdesc_comi): Initialise new mask fields.
4003         (bdesc_2srg): Likewise.
4004         (bdesc_1arg): Likewise.
4005
4006         * config/i386/i386.c (ix86_init_builtins): Correct return type
4007         building v4hi_ftype_v4hi_int_int tree node.
4008         (ix86_expand_sse_comi): Fix typo swapping operands.
4009         Don't swap comparision condition, it is already swapped.
4010         (ix86_expand_sse_compare): Before swapping operands
4011         move operand 1 into new rtx and not the target rtx.
4012         Don't swap comparison condition, it is already swapped.
4013         Always check whether we need to create a new TARGET.
4014
4015         * config/i386/i386.md: (sse_comi) Fix typos.
4016         (sse_ucomi): Likewise.
4017         (cvtss2si): Fix operand 0 contraint.
4018         (cvttss2si): Likewise.
4019         (sse_unpckhps): Fix mode for operand 2.
4020         (sse_unpcklps): Likewise.
4021
4022 2001-09-25  Graham Stott  <grahams@redhat.com>
4023
4024         * sibcall.c (skip_copy_to_return_value): Tighten return value
4025         copy check.
4026
4027 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
4028
4029         * rs6000.c (lwa_operand): Address must be word aligned.
4030
4031 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4032
4033         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
4034         number has been set.
4035         (type_hash_mark): Mark type itself.
4036
4037 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4038
4039         * c-lex.c (cb_def_pragma): Update.
4040         (c_lex): Update, and skip padding.
4041         * cppexp.c (lex, parse_defined): Update, remove unused variable.
4042         * cpphash.h (struct toklist): Delete.
4043         (union utoken): New.
4044         (struct cpp_context): Update.
4045         (struct cpp_reader): New members eof, avoid_paste.
4046         (_cpp_temp_token): New.
4047         * cppinit.c (cpp_create_reader): Update.
4048         * cpplex.c (_cpp_temp_token): New.
4049         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
4050         (cpp_output_token): Don't print leading whitespace.
4051         (cpp_output_line): Update.
4052         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
4053         do_include_common, do_line, do_ident, do_pragma,
4054         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
4055         parse_assertion): Update.
4056         (get_token_no_padding): New.
4057         * cpplib.h (CPP_PADDING): New.
4058         (AVOID_LPASTE): Delete.
4059         (struct cpp_token): New union member source.
4060         (cpp_get_token): Update.
4061         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
4062         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
4063         replace_args, quote_string, stringify_arg, parse_arg, next_context,
4064         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
4065         _cpp_backup_tokens, _cpp_create_definition): Update.
4066         (push_arg_context): Delete.
4067         (padding_token, push_token_context, push_ptoken_context): New.
4068         (make_string_token, make_number_token): Update, rename.
4069         (cpp_get_token): Update to handle tokens as pointers to const,
4070         and insert padding appropriately.
4071         * cppmain.c (struct printer): New member prev.
4072         (check_multiline_token): Constify.
4073         (do_preprocessing, cb_line_change): Update.
4074         (scan_translation_unit): Update to handle spacing.
4075         * scan-decls.c (get_a_token): New.
4076         (skip_to_closing_brace, scan_decls): Update.
4077         * fix-header.c (read_scan_file): Update.
4078
4079         * doc/cpp.texi: Update.
4080
4081 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4082
4083         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
4084         leak by passing malloc'ed pointer to reconcat, not concat.
4085
4086 2001-09-24  DJ Delorie  <dj@redhat.com>
4087
4088         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
4089
4090 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
4091
4092         * flow.c (delete_dead_jumptables): Delete jumptable if the only
4093         reference is from the literal pool.
4094
4095 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
4096
4097         * doc/install.texi (Final install): Request additional information
4098         in mail about successful builds.
4099
4100 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4101
4102         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
4103         initial value of return pointer register instead of value in frame-20.
4104         Revise comments.
4105
4106 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4107
4108         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
4109         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
4110         the libcall if there isn't a referenced identifier for the symbol.
4111
4112 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4113
4114         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
4115         non 64-bit machines.  Use these as a plabel for the trampoline.
4116         (TRAMPOLINE_SIZE): Adjust size for new words.
4117         (INITIALIZE_TRAMPOLINE): Initialize new words.
4118         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
4119         pointer to the plabel in the trampoline.
4120
4121 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4122
4123         * pa.c (function_arg): Pass floating arguments in both general and
4124         floating registers in indirect (dynamic) calls when generating code
4125         for the 32 bit ABI and the HP assembler.
4126
4127 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4128
4129         * doc/install.texi: Markup fixes.
4130         Use Solaris 2, SunOS 4 as appropriate.
4131         (Specific, *-*-solaris2*): Explain this.
4132         Unconditionally warn against /usr/ucb tools.
4133         Remove Sun as warning, obsolete.
4134         Move X11 header bug workaround here, update patches.
4135         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
4136         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
4137
4138 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
4139
4140         * errors.h (warning, error, fatal, internal_error): Don't mark
4141         with ATTRIBUTE_PRINTF_n.
4142         * toplev.h (internal_error, fatal_io_error, warning, error,
4143         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
4144         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
4145         Likewise.
4146
4147 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4148
4149         * function.c (pop_function_context_from): var_refs_queue
4150         and temp slots now in GC memory.
4151         (mark_function_status, free_after_compilation): Likewise;
4152         also struct function now in GC memory.
4153         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
4154         (combine_temp_slots): Likewise.
4155         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
4156         (prepare_function_start): Use GC memory for struct function.
4157         (mark_temp_slot): Deleted.
4158         (gcc_mark_struct_function): struct function now in GC memory.
4159
4160         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
4161         code for division, not modulus.
4162
4163         * rtl.def (MEM): Remove obsolete part of comment.
4164
4165 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
4166
4167         * c-format.c (init_function_format_info): Check __builtin_printf
4168         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
4169         in gnu89 mode.
4170
4171 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4172
4173         * c-common.c (format_attribute_table): Remove decl.
4174         * tree.h (format_attribute_table, lang_attribute_table): New decls.
4175         (lang_attribute_common): Likewise.
4176
4177         * function.c (fix_lexical_address): Use set_mem_alias_set.
4178         (expand_function_start): Likewise.
4179         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
4180
4181         * varasm.c (output_constant): Fix unused variable warning.
4182
4183         * attribs.c: New file, from c-common.c.
4184         (attribute_tables): Now four elements.
4185         (format_attribute_table, lang_attribute_common): New variables.
4186         (init_attributes): Reflect above changes.
4187         (handle_mode_attribute): Delete check for wider than uintmax.
4188         * c-common.c: Delete parts moved to attribs.c.
4189         (enum attrs): Deleted; unused.
4190         (c_format_attribute_table): New variable.
4191         (c_common_lang_init): Initialize format_attribute_table with it.
4192         * c-common.h (decl_attributes): Remove decl.
4193         * tree.h (decl_attribute): Move it to here.
4194         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
4195         (attribs.o): New rule.
4196
4197 2001-09-22  Andreas Jaeger  <aj@suse.de>
4198
4199         * builtins.c (c_getstr): Remove unused variable.
4200
4201 2001-09-21  Richard Henderson  <rth@redhat.com>
4202
4203         * reload1.c (reload): Use delete_insn instead of splatting
4204         NOTE_INSN_DELETED.
4205
4206 2001-09-21  Richard Henderson  <rth@redhat.com>
4207
4208         * reload.c (push_secondary_reload): Don't check for "=" in output
4209         constraint after ""->ALL_REGS check.
4210
4211 2001-09-21  Richard Henderson  <rth@redhat.com>
4212
4213         * predict.c (expected_value_to_br_prob): Use pc_set.
4214
4215         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
4216         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
4217
4218 2001-09-21  Richard Henderson  <rth@redhat.com>
4219
4220         * rtl.h (LCT_RETURNS_TWICE): New.
4221         * calls.c (emit_call_1): Set current_function_calls_setjmp for
4222         ECF_RETURNS_TWICE.
4223         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
4224         to ECF_RETURNS_TWICE.
4225         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
4226         call to setjmp.
4227
4228         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
4229
4230         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
4231         (JMP_BUF_SIZE): New.
4232
4233 2001-09-21  Richard Henderson  <rth@redhat.com>
4234
4235         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
4236         to R8_REGS.
4237
4238 2001-09-21  Richard Henderson  <rth@redhat.com>
4239
4240         * tree.def (FDESC_EXPR): New.
4241         * expr.c (expand_expr): Handle it.
4242         * varasm.c (initializer_constant_valid_p): Likewise.
4243         (output_constant): Likewise.
4244         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
4245         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
4246         (ASM_OUTPUT_FDESC): New.
4247         * doc/tm.texi: Document the new macros.
4248
4249 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
4250
4251         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
4252         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
4253         once merging is complete.
4254
4255 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4256
4257         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
4258
4259 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
4260
4261         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
4262         that would be invalid after a merge.
4263
4264 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
4265
4266         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
4267         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
4268         remove some labels.
4269         (flow_delete_insn): This one.
4270         (delete_insn_chain): Rename from ...; do not care labels.
4271         (flow_delete_insn_chain): ... this one.
4272         (flow_delete_block): Remove the insns one BB has been expunged.
4273         (merge_blocks_nomove): Likewise.
4274         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
4275         updating BB boundaries.
4276         (tidy_fallthru_edge): Likewise.
4277         (commit_one_edge_insertion): Likewise.
4278         * cfgbuild.c (find_basic_block): Likewise.
4279         (find_basic_blocks_1): Likewise.
4280         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
4281         (try_crossjump_to_edge): Likewise.
4282         (try_optimize_cfg): Likewise.
4283         * cse.c (delete_trivially_dead_insns): Likewise.
4284         * df.c (df_insn_delete): Likewise.
4285         * doloop.c (doloop_modify): Use delete_related_insns.
4286         * emit-rtl.c (try_split): Likewise.
4287         (remove_insn): Update BB boundaries.
4288         * expect.c (connect_post_landing_pads): Use delete_related_insns.
4289         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
4290         updating BB boundaries.
4291         (propagate_block_delete_insn): Likewise.
4292         (propagate_block_delete_libcall): Likewise.
4293         * function.c (delete_handlers): Use delete_related_insns.
4294         (thread_prologue_and_epilogue_insns): Likewise.
4295         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
4296         * genpeep.c (gen_peephole): Use delete_related_insns.
4297         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
4298         BB boundaries.
4299         (find_cond_trap): Likewise.
4300         * integrate.c (save_for_inline): Use delete_related_insns.
4301         (copy_insn_list): Likewise.
4302         * jump.c (pruge_linie_number_notes): Likewise.
4303         (duplicate_loop_exit_test): Likewise.
4304         (delete_computation): Likewise.
4305         (delete_related_insn): Rename from ...; use delete_insn
4306         (delete_insn): ... this one.
4307         (redirect_jump): Use delete_related_insns.
4308         * loop.c (scan_loop): Likewise.
4309         (move_movables): Likewise.
4310         (find_and_verify_loops): Likewise.
4311         (check_dbra_loop): Likewise.
4312         * recog.c (peephole2_optimize): Likewise.
4313         * reg-stack.c (delete_insn_for_stacker): Remove.
4314         (move_for_stack_reg): Use delete_insn.
4315         * regmove.c (combine_stack_adjustments_for_block): Likewise.
4316         * reload1.c (delete_address_reloads): Use delete_related_insns.
4317         (fixup_abnormal_edges): Use delete_insn.
4318         * recog.c (emit_delay_sequence): Use delete_related_insns.
4319         (delete_from-delay_slot): Likewise.
4320         (delete_scheduled_jump): likewise.
4321         (optimize_skip): Likewise.
4322         (try_merge_delay_insns): Likewise.
4323         (full_simple_delay_slots): Likewise.
4324         (fill_slots_from_thread): Likewise.
4325         (relax_delay_slots): Likewise.
4326         (make_return_insns): Likewise.
4327         (dbr_schedule): Likewise.
4328         * rtl.h (delete_insn): Rename to delete_related_insns.
4329         (delete_insn, delete_insn_chain): New prototypes.
4330         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
4331         by df_insn_delete already.
4332         * ssa-dce.c (delete_insn_bb): Use delete_insn.
4333         * ssa.c (convert_from_ssa): Use delete_related_insns.
4334         * unroll.c (unroll_loop): Likewise.
4335         (calculate_giv_inc): Likewise.
4336         (copy_loop_body): Likewise.
4337
4338         * i386-protos.h (ix86_libcall_value, ix86_function_value,
4339         ix86_function_arg_regno_p, ix86_function_arg_boundary,
4340         ix86_return_in_memory, ix86_function_value): Declare.
4341         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
4342         new static valurables.
4343         (x86_64_reg_class): New enum
4344         (x86_64_reg_class_name): New array.
4345         (classify_argument, examine_argument, construct_container,
4346          merge_classes): New static functions.
4347         (optimization_options): Enable flag_omit_frame_pointer and disable
4348         flag_pcc_struct_return on 64bit.
4349         (ix86_libcall_value, ix86_function_value,
4350         ix86_function_arg_regno_p, ix86_function_arg_boundary,
4351         ix86_return_in_memory, ix86_function_value): New global functions.
4352         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
4353         (function_arg_advance): Handle x86_64 passing conventions.
4354         (function_arg): Likewise.
4355         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
4356         (RETURN_IN_MEMORY): Move offline.
4357         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
4358         (FUNCTION_VALUE_REGNO_P): New macro.
4359         (FUNCTION_ARG_REGNO_P): Move offline.
4360         (struct ix86_args): Add maybe_vaarg.
4361         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
4362         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
4363
4364 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
4365
4366         * s390.md: Changed attributes for scheduling.
4367         * s390.c: (s390_adjust_cost, s390_adjust_priority)
4368         Changed scheduling
4369
4370 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
4371
4372         Table-driven attributes.
4373         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
4374         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
4375         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
4376         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
4377         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
4378         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
4379         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
4380         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
4381         * tree.h (struct tree_decl): Change machine_attributes to
4382         attributes.
4383         * doc/c-tree.texi: Document that all attributes are now attached
4384         to decls and types.
4385         * c-common.c (add_attribute, attrtab, attrtab_idx,
4386         default_valid_lang_attribute, valid_lang_attribute): Remove.
4387         (attribute_tables, attributes_initialized,
4388         c_common_attribute_table, default_lang_attribute_table): New
4389         variables.
4390         (handle_packed_attribute, handle_nocommon_attribute,
4391         handle_common_attribute, handle_noreturn_attribute,
4392         handle_unused_attribute, handle_const_attribute,
4393         handle_transparent_union_attribute, handle_constructor_attribute,
4394         handle_destructor_attribute, handle_mode_attribute,
4395         handle_section_attribute, handle_aligned_attribute,
4396         handle_weak_attribute, handle_alias_attribute,
4397         handle_no_instrument_function_attribute,
4398         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
4399         handle_no_limit_stack_attribute, handle_pure_attribute): New
4400         functions.
4401         (init_attributes, decl_attributes): Rewrite to implement
4402         table-driven attributes.
4403         * c-common.h (enum attribute_flags): Move to tree.h.
4404         * c-format.c (decl_handle_format_attribute,
4405         decl_handle_format_arg_attribute): Rename to
4406         handle_format_attribute and handle_format_arg_attribute.  Update
4407         for table-driven attributes.
4408         * c-common.h (decl_handle_format_attribute,
4409         decl_handle_format_arg_attribute): Remove prototypes.
4410         (handle_format_attribute, handle_format_arg_attribute): Add
4411         prototypes.
4412         * c-decl.c (grokdeclarator): Handle attributes nested inside
4413         declarators.
4414         * c-parse.in (setattrs, maybe_setattrs): Remove.
4415         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
4416         Update to handle nested attributes properly.
4417         (maybe_resetattrs, after_type_declarator,
4418         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
4419         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
4420         properly.
4421         (make_pointer_declarator): Update to handle nested attributes
4422         properly.
4423         * doc/extend.texi: Update documentation of limits of attributes
4424         syntax.  Warn about problems with attribute semantics in C++.
4425         * target.h (struct target): Remove valid_decl_attribute and
4426         valid_type_attribute.  Add attribute_table and
4427         function_attribute_inlinable_p.
4428         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
4429         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
4430         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
4431         Add.
4432         (TARGET_INITIALIZER): Update.
4433         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
4434         definition.
4435         (function_attribute_inlinable_p): New function.  Check for the
4436         presence of any machine attributes before using
4437         targetm.function_attribute_inlinable_p.
4438         (function_cannot_inline_p): Update.
4439         * Makefile.in (integrate.o): Update dependencies.
4440         * doc/tm.texi: Update documentation of target attributes and
4441         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
4442         * tree.c (default_valid_attribute_p, valid_machine_attribute):
4443         Remove.
4444         (default_target_attribute_table,
4445         default_function_attribute_inlinable_p): New.
4446         (lookup_attribute): Update comment to clarify handling of multiple
4447         attributes with the same name.
4448         (merge_attributes, attribute_list_contained): Allow multiple
4449         attributes with the same name but different arguments to appear in
4450         the same attribute list.
4451         * tree.h (default_valid_attribute_p): Remove prototype.
4452         (struct attribute_spec): New.
4453         (default_target_attribute_table): Declare.
4454         (enum attribute_flags): Move from c-common.h.  Add
4455         ATTR_FLAG_TYPE_IN_PLACE.
4456         (default_function_attribute_inlinable_p): Declare.
4457         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
4458         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4459         (TARGET_ATTRIBUTE_TABLE): Define.
4460         (vms_attribute_table): New.
4461         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
4462         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4463         (TARGET_ATTRIBUTE_TABLE): Define.
4464         (arc_attribute_table, arc_handle_interrupt_attribute): New.
4465         * config/arm/arm.c (arm_valid_type_attribute_p,
4466         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
4467         Remove.
4468         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
4469         define.
4470         (TARGET_ATTRIBUTE_TABLE): Define.
4471         (arm_attribute_table, arm_handle_fndecl_attribute,
4472         arm_handle_isr_attribute): New.
4473         * config/avr/avr.c (avr_valid_type_attribute,
4474         avr_valid_decl_attribute): Remove.
4475         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
4476         define.
4477         (TARGET_ATTRIBUTE_TABLE): Define.
4478         (avr_attribute_table, avr_handle_progmem_attribute,
4479         avr_handle_fndecl_attribute): New.
4480         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
4481         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4482         (TARGET_ATTRIBUTE_TABLE): Define.
4483         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
4484         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
4485         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4486         (TARGET_ATTRIBUTE_TABLE): Define.
4487         (h8300_attribute_table, h8300_handle_fndecl_attribute,
4488         h8300_handle_eightbit_data_attribute,
4489         h8300_handle_tiny_data_attribute): New.
4490         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
4491         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
4492         Remove prototypes.
4493         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
4494         declarations.
4495         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
4496         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
4497         define.
4498         (TARGET_ATTRIBUTE_TABLE): Define.
4499         (ix86_attribute_table, ix86_handle_cdecl_attribute,
4500         ix86_handle_regparm_attribute): New.
4501         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
4502         i386_pe_valid_type_attribute_p): Remove.
4503         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
4504         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
4505         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4506         (TARGET_ATTRIBUTE_TABLE): Define.
4507         (ia64_attribute_table): New.
4508         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
4509         interrupt_ident2, model_ident1, model_ident2): Remove.
4510         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4511         (TARGET_ATTRIBUTE_TABLE): Define.
4512         (init_idents): Update.
4513         (m32r_attribute_table, m32r_handle_model_attribute): New.
4514         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
4515         Remove.
4516         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4517         (TARGET_ATTRIBUTE_TABLE): Define.
4518         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
4519         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
4520         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4521         (TARGET_ATTRIBUTE_TABLE): Define.
4522         (mcore_attribute_table, mcore_handle_naked_attribute): New.
4523         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
4524         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4525         (TARGET_ATTRIBUTE_TABLE): Define.
4526         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
4527         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
4528         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4529         (TARGET_ATTRIBUTE_TABLE): Define.
4530         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
4531         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
4532         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4533         (TARGET_ATTRIBUTE_TABLE): Define.
4534         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
4535         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4536         New.
4537         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
4538         Remove.
4539         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
4540         (TARGET_ATTRIBUTE_TABLE): Define.
4541         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
4542         New.
4543         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
4544         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4545         (TARGET_ATTRIBUTE_TABLE): Define.
4546         (v850_attribute_table, v850_handle_interrupt_attribute,
4547         v850_handle_data_area_attribute): New.
4548         * config/v850/v850-c.c (mark_current_function_as_interrupt):
4549         Return void.  Call decl_attributes instead of
4550         valid_machine_attribute.
4551
4552 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
4553
4554         * sh-protos.h (sh_pr_n_sets): Declare.
4555         * sh.c (calc_live_regs): If the initial value for PR has been copied,
4556         look at the copy to determine if PR needs to be saved.
4557         sh_pr_n_sets: New function.
4558         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
4559         (ALLOCATE_INITIAL_VALUE): Define.
4560
4561         * sh.c (initial_elimination_offset):
4562         Fix RETURN_ADDRESS_POINTER_REGNUM case.
4563
4564 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
4565
4566         * integrate.c (allocate_initial_values): New function.
4567         * integrate.h (allocate_initial_values): Declare.
4568         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
4569         here...
4570         * reload1.c (reload): And initialization of reg_equiv_memory_loc
4571         from here...
4572         * toplev.c (rest_of_compilation): To here.
4573         Call allocate_initial_values.
4574         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
4575
4576 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4577
4578         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
4579
4580 2001-09-20  DJ Delorie  <dj@redhat.com>
4581
4582         * c-typeck.c (really_start_incremental_init): Discriminate
4583         between zero-length arrays and flexible arrays.
4584         (push_init_level): Detect zero-length arrays and handle them
4585         like fixed-sized arrays.
4586         * expr.c (store_constructor): Handle zero-length arrays and
4587         flexible arrays correctly.
4588         * doc/extend.texi: Update zero-length array notes.
4589
4590 2001-09-20  Jim Wilson  <wilson@redhat.com>
4591
4592         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
4593         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
4594         for issue port conflicts.
4595         (cycle_end_fill_slots): TYPE_L instructions take two slots.
4596
4597 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
4598
4599         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
4600         on ia64.
4601
4602 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4603
4604         * fold-const.c (hashtab.h): Include.
4605         (int_const_binop): Remove FORSIZE arg and compute from type; all
4606         callers changed.
4607         Call size_int_type_wide for all single-word constants.
4608         (size_htab_hash, size_htab_eq): New functions.
4609         (size_int_type_wide): Rework to use hash table.
4610         * ggc-common.c (hashtab.h): Include.
4611         (struct d_htab_root): New struct.
4612         (d_htab_roots): New variable.
4613         (ggc_add_deletable_htab, ggc_htab_delete): New functions
4614         (ggc_mark_roots): Handle deletable htabs.
4615         * ggc-page.c (ggc_marked_p): New function.
4616         * ggc-simple.c (ggc_marked_p): Likewise.
4617         * ggc.h: Reformatting throughout.
4618         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
4619         * tree.c (init_obstacks): Make type_hash_table a deletable root.
4620         (type_hash_add): Allocate struct type_hash from GC memory.
4621         (mark_hash_entry, mark_type_hash): Deleted.
4622         (type_hash_marked_p, type_hash_mark): New functions.
4623         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
4624
4625 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
4626
4627         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
4628         than SImode.
4629
4630 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4631
4632         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
4633         array-too-large test for signed sizetype.
4634
4635 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
4636
4637         * i386.md (indirect_jump): Allow Pmode operand.
4638         (tablejump): LIkewise; perform expansion to 64bit mode.
4639         * i386.c (symbolic_operand): Allow 64bit PIC references.
4640         (pic_symbolic_operand): Likewise.
4641         (ix86_find_base_term): Strip the 64bit PIC references.
4642         (legitimate_pic_address_disp_p): Handle 64bit PIC.
4643         (legitimize_pic_address): Likewise.
4644         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
4645         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
4646
4647 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
4648
4649         * stringpool.c (get_identifier_with_length): New function.
4650         * tree.h (get_identifier_with_length): New prototype.
4651
4652 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
4653             David Edelsohn  <edelsohn@gnu.org>
4654
4655         Revert:
4656         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
4657         already sign-extended.
4658
4659         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
4660         * config/rs6000/rs6000.c (logical_operand): Always compare op as
4661         HOST_WIDE_INT.
4662         (rs6000_emit_set_long_const): Avoid unnecessary shift.
4663         (output_profile_hook): Declare label_name const.
4664         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
4665         to match constraints.
4666
4667 2001-09-19  Stan Shebs  <shebs@apple.com>
4668
4669         * alias.c: Fix typos in comments.
4670         * sched-rgn.c (init_ready_list): Ditto.
4671         * unwind-dw2.c (uw_frame_state_for): Ditto.
4672         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
4673         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
4674         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
4675
4676 2001-09-19  Richard Henderson  <rth@redhat.com>
4677
4678         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
4679         to the exit block.
4680         * Makefile.in (cfg.o): Depend on TM_P_H.
4681
4682 2001-09-19  Richard Henderson  <rth@redhat.com>
4683
4684         * config/alpha/alpha.c (local_symbol_p): Split out from ...
4685         (local_symbolic_operand): ... here.
4686         (small_symbolic_operand): Check mode.
4687         (global_symbolic_operand): New.
4688         (input_operand): Reject symbolics if explicit relocs.
4689         (call_operand): Tidy.
4690         (alpha_legitimize_address): Use movdi_er_high_g.
4691         (alpha_expand_mov): Likewise.
4692         * config/alpha/alpha-protos.h: Update.
4693         * config/alpha/alpha.h (PREDICATE_CODES): Update.
4694         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
4695         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
4696         (UNSPECV_LDGP2): Remove.
4697         (all call patterns): Use 's' not 'i' for symbolic constraint.
4698         (call_osf call_value_osf): Use call_operand.
4699         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
4700         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
4701         (prologue_ldgp_1_er): Remove.
4702         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
4703         (builtin_setjmp_receiver_er patterns): Use them.
4704         (exception_receiver_er): Likewise.
4705
4706 2001-09-19  Richard Henderson  <rth@redhat.com>
4707
4708         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
4709
4710         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
4711         and NON_LOCAL_GOTO notes.
4712         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
4713         copy over CALL_INSN_FUNCTION_USAGE.
4714
4715 2001-09-18  Catherine Moore  <clm@redhat.com>
4716
4717         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
4718         Define as 0.
4719
4720 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
4721
4722         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
4723         new-style tm_file specification.  Specify correct tm_p_file,
4724         md_file, and out_file for s390x.
4725
4726         * config/s390/linux.h, linux64.h:  Don't include other target
4727         macro header files.  Now handled via tm_file.
4728
4729         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
4730         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
4731         are defined before use.
4732
4733 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
4734
4735         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
4736         code generation only for Gnu assembler.
4737
4738 2001-09-18  Catherine Moore  <clm@redhat.com>
4739
4740         * config/stormy16 (LIB_SPEC): Remove -lnosys.
4741
4742 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
4743
4744         * config/mips/mips.c (mips_frame_set): New.
4745         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
4746         a parallel frame-related expression with a set for each register.
4747
4748 2001-09-18  Philip Blundell  <philb@gnu.org>
4749
4750         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
4751         header files.
4752
4753 2001-09-17  Dale Johannesen  <dalej@apple.com>
4754
4755         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
4756         * config/rs6000/aix.h (FIXED_R2): Define.
4757         * config/rs6000/darwin.h (FIXED_R2): Define.
4758         * config/rs6000/sysv4.h (FIXED_R2): Define.
4759
4760 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
4761
4762         * except.c (dw2_build_landing_pads): New local
4763         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
4764         barrier after clobbers.  Fixes c++/4012.
4765
4766 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4767
4768         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
4769
4770 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
4771
4772         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
4773         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
4774
4775 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4776
4777         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
4778         alloca/strcpy.
4779
4780 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4781
4782         * cpphash.h (_cpp_lex_direct): New.
4783         * cpplex.c (_cpp_lex_token): Update.
4784         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
4785         and increment that pointer.
4786         * cppmacro.c (alloc_expansion_token): New.
4787         (lex_expansion_token): Lex macro expansion directly into
4788         macro storage.
4789
4790 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
4791
4792         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
4793
4794 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
4795
4796         * basic-block.h (free_bb_for_insn): Declare.
4797         * bb-reorder.c (label_for_bb): Use block_label.
4798         (emit_jump_to_block_after): Remove.
4799         (insert_intra_1): Do not update block_for_insn.
4800         (insert_inter_bb_scope_notes): Likewise; update bb->end
4801         * cfg.c (free_bb_for_insn): New.
4802         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
4803         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
4804         (commit_one_edge_insertion): Likewise.
4805         (commit_one_edge_insertion): Do not update BB boundary.
4806         (commit_edge_insertions): Do not call compute_bb_for_insn.
4807         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
4808         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
4809         (merge_blocks_move_successor_nojumps): Likewise.
4810         (try_crossjump_to_edge): Do not update block_for_insn.
4811         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
4812         * df.c (df_pattern_emit_later): Do not update BB boundary.
4813         (df_jump_pattern_emit_after): Likewise.
4814         (df_insn_move_before): Use emit_insn_before.
4815         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
4816          properly.
4817         (add_insn_after, add_insn_before, emit_insns_after): Update BB
4818         boundaries and basic_block_for_insn.
4819         (reorder_insns_nobb): Rename from reorder_insns.
4820         (reorder_insns): New.
4821         (emit_block_insn_before, emit_block_insn_after): Kill.
4822         * flow.c (check_function_return_warnings): Do not call
4823         compute_bb_for_insn; Do not free basic_block_for_insn.
4824         (attempt_auto_inc): Do not update basic_block_for_insn.
4825         * function.c (emit_return_into_block): Likewise;
4826         do not update BB boundaries.
4827         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
4828         (insert_insn_end_bb): Use emit_insn_before; Likewise.
4829         (pre_insert_copy_insn): Likewise.
4830         (update_ld_motion_notes): Likewise.
4831         (insert_insn_start_bb): Likewise.
4832         (replace_store_insn): Likewise.
4833         * ifcvt.c (noce_process_if_block): Likewise.
4834         (if_convert): Do not call compute_bb_for_insn.
4835         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
4836         Use emit_insn_before and emit_insn_after.
4837         * recog.c (split_all_insns): Do not update BB boundaries;
4838         Do not call compute_bb_for_insn.
4839         (peephole2_optimize): Do not update BB boundaries.
4840         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
4841         emit_insn_before.
4842         (emit_swap_insn): Likewise.
4843         (convert_regs_1): Likewise.
4844         * reload1.c (reload): Call compute_bb_for_insn.
4845         * rtl.h (reorder_insns_nobb): Declare.
4846         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
4847         * toplev.c (rest_of_compilation): Call free_bb_for_insn
4848         at places CFG is invalidated; do not call compute_bb_for_insn.
4849
4850         * cfg.c (expunge_block): Invalidate BB structure.
4851
4852         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
4853         array.
4854
4855         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
4856
4857 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4858
4859         * cpphash.h (_cpp_lex_token): Update prototype.
4860         * cpplex.c (_cpp_lex_token): New prototype.
4861         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
4862         lex_macro_node, read_flag, do_pragma_poison): Update.
4863         * cppmacro.c (cpp_get_token, parse_params,
4864         lex_expansion_token): Update.
4865
4866 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4867
4868         * cppmain.c (scan_translation_unit): Don't worry about
4869         putting a space after hashes.
4870         * cpplib.c (directive_diagnostics): New.
4871         (_cpp_handle_directive): Update to use directive_diagnostics.
4872         (run_directive): Don't toggle prevent_expansion.
4873         (do_line): Backup in case of the line extension.
4874         * cpplib.h (cpp_lexer_pos): Remove.
4875         * cppmacro.c (_cpp_create_definition): Precede a leading #
4876         with whitespace.
4877
4878 2001-09-15  Richard Henderson  <rth@redhat.com>
4879
4880         * c-typeck.c (comptypes): Handle zero-length arrays properly.
4881
4882 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4883
4884         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
4885
4886 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4887
4888         PR preprocessor/3571
4889         * tradcpp.c (handle_directive): Skip non-vertical space.
4890
4891 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4892
4893         * cppmain.c (setup_callbacks): Set line callback only
4894         if outputting preprocessed source.
4895
4896 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4897
4898         * collect2.c (main): Const-ification.
4899         * gcc.c (translate_options, process_command): Use xstrdup in
4900         lieu of xmalloc/strcpy.
4901         (main): Use concat in lieu of xmalloc/strcpy/strcat.
4902
4903 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4904
4905         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
4906         example.
4907
4908 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4909
4910         * scan-decls.c (scan_decls): Fix typo.
4911
4912 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4913
4914         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
4915         Split mlstring_pos into mls_line and mls_col.
4916         * cppinit.c (cpp_create_reader): Initialize line to 1.
4917         (cpp_destroy): Free tokenruns.
4918         (push_include): Don't update lexer_pos.
4919         * cpplex.c (unterminated, parse_string): Update.
4920         (lex_token): Don't update lexer_pos, update.
4921         * cpplib.c (if_stack): Save line instead of line + col.
4922         (start_directive, _cpp_do__Pragma, do_else, do_elif,
4923         push_conditional, _cpp_pop_buffer): Update.
4924         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
4925         (_cpp_create_definition): Update.
4926
4927 2001-09-15  Eric Christopher  <echristo@redhat.com>
4928
4929         * config/mips/abi64.h: Add support for MEABI.
4930
4931 2001-09-15  Eric Christopher  <echristo@redhat.com>
4932
4933         * config/mips/mips.md: Add unspec #2.
4934         (reload_indi): Use.
4935         (reload_outdi): Ditto.
4936         (reload_outsi): Ditto.
4937         (HILO_delay): New.
4938
4939 2001-09-15  Eric Christopher  <echristo@redhat.com>
4940             Jason Eckhardt  <jle@redhat.com>
4941
4942         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
4943         * config/mips/isa32-linux.h: New file.
4944         * config/mips/isa3264.h: Ditto.
4945         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
4946         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
4947         (output_block_mode): Support MEABI.
4948         (function_arg): Ditto. Fix floating point arg passing.
4949         (mips_va_start): Ditto.
4950         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
4951         processors.
4952         (mips_asm_file_start): Add new section to pass abi to gdb.
4953         (function_arg_pass_by_reference): Support MEABI.
4954         (mips_parse_cpu): Support mips32 and mips64 processors.
4955         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
4956         TARGET_MIPS5KC.  Support isa32 and isa64.
4957         (processor_type): Add r4kc, r5kc, r20kc.
4958         (GENERATE_MULT3_SI): New.
4959         (GENERATE_MULT3_DI): Ditto.
4960         (GENERATE_MULT3): Remove.
4961         (ISA_HAS_64BIT_REGS): Add isa == 64.
4962         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
4963         (ISA_HAS_MADD_MSUB): New.
4964         (ISA_HAS_CLZ_CLO): Ditto.
4965         (ISA_HAS_DCLZ_DCLO): Ditto.
4966         (ABI_GAS_ASM_SPEC): New.
4967         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
4968         (ASM_SPEC): Ditto.
4969         (LINK_SPEC): Ditto.
4970         (SUBTARGET_CC1_SPEC): Ditto.
4971         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
4972         (PAD_VARARGS_DOWN): Support MEABI.
4973         (HARD_REGNO_NREGS): Move to mips.c.
4974         (ASM_OUTPUT_IDENT): Add #undef.
4975         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
4976         (mulsi3): Use GENERATE_MULT3_SI.
4977         (mulsi3_mult3): Ditto.  Support mips32, mips64.
4978         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
4979         (mul_sub_si): New pattern.
4980         (unnamed splitters): New.
4981         (muldi3): Use GENERATE_MULT3_DI.
4982         (muldi3_internal2): Ditto.
4983         (movdicc): Support mips32.
4984         * config/mips/t-isa3264: New file.
4985
4986 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
4987
4988         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
4989         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
4990         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
4991
4992         * reorg.c (fill_slots_from_thread): After call to
4993         steal_delay_list_from_target, update own_thread as new_thread may
4994         have branched.
4995
4996 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4997
4998         * cpperror.c (print_location): Take line and column, for
4999         default positioning use the previously lexed token.
5000         (_cpp_begin_message): Take line and column.
5001         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
5002         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
5003         * cpphash.h (_cpp_begin_message): Update prototype.
5004         * cppinit.c (push_include): Don't set output line.
5005         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
5006         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
5007         (do_pragma): Kludge for front ends.  Don't expand macros at all.
5008         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
5009         (struct cpp_token): Remove output_line.
5010         (struct cpp_callbacks): New member line_change.
5011         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
5012         cpp_get_token): Preserve BOL flag.
5013         (cpp_get_line): Remove.
5014         (_cpp_backup_tokens): Remove useless abort().
5015         * cppmain.c (cb_line_change): New.
5016         (scan_translation_unit): Don't worry about starting new lines here.
5017         * scan-decls.c (scan_decls): Update.
5018         * c-lex.c (c_lex, init_c_lex): Update.
5019         (cb_line_change, src_lineno): New.
5020
5021 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
5022
5023         * tree.c (append_random_chars): Generate the random
5024         characters in a reproducable fashion.
5025
5026 2001-09-14  Richard Henderson  <rth@redhat.com>
5027
5028         * config/i386/i386.c (internal_label_prefix): New.
5029         (internal_label_prefix_len): New.
5030         (override_options): Set them.
5031         (local_symbolic_operand): New.
5032         (legitimate_pic_address_disp_p): Use it.
5033         (legitimize_pic_address): Likewise.
5034
5035 2001-09-14  Marc Espie <espie@openbsd.org>
5036
5037         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
5038         correctly.
5039
5040 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5041
5042         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
5043         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
5044
5045 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
5046
5047         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
5048         invocation of SUBREG_REGNO_OFFSET.
5049
5050         * haifa-sched.c: Fix typo in FSF copyright statement.
5051         * sched-deps.c: Fix typo in FSF copyright statement.
5052         * sched-ebb.c: Fix typo in FSF copyright statement.
5053         * sched-rgn.c: Fix typo in FSF copyright statement.
5054         * sched-vis.c: Fix typo in FSF copyright statement.
5055
5056         * config.gcc: Move inclusion of arm elf specific header files
5057         from the files themselves into the tm_file variable.  Make
5058         sure that elfos.h is included before target specific elf
5059         headers.
5060         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
5061         already defined.
5062         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
5063         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
5064         ASM_OUTPUT_CASE_LABEL): Protect definition.
5065         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
5066         not already defined.
5067         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
5068         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
5069         Remove duplicate definition.
5070         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
5071         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
5072         (RDATA_SECTION_FUNCTION): Remove redundant definition.
5073         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
5074         Remove inclusion of arm/elf.h.
5075         * config/arm/unknown-elf.h: as for conix-elf.h.
5076         (STARTFILE_SPEC): Include crti.o and crtn.o.
5077         * config/arm/linux-elf.h: as for conix-elf.h.
5078         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
5079         * config/arm/strongarm-elf.h: Remove inclusion of
5080         unknown-elf.h.
5081         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
5082         * config/arm/unknown-elf-oabi.h: Remove inclusion of
5083         unknown-elf.h and elf.h.
5084         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
5085         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
5086         ASM_WEAKEN_LABEL): Remove redundant definition.
5087         * config/arm/elf.h: Test for inclusion of elfos.h
5088         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
5089         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
5090         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
5091         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
5092         redundant definition.
5093         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
5094         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
5095         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
5096         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
5097         Add rules to build crti.o and crtn.o
5098         * crti.asm: New file.
5099         * crtn.asm: New file.
5100
5101 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5102
5103         * c-parse.in (_yylex): Use _cpp_backup_tokens.
5104         * cpphash.h (struct tokenrun): Add prev.
5105         (struct lexer_state): Remove bol.
5106         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
5107         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
5108         : Remove.
5109         * cppinit.c (cpp_create_reader): Don't set bol.
5110         (cpp_destroy): Don't free lookaheads.
5111         * cpplex.c (lex_directive): Remove.
5112         (next_tokenrun): Update.
5113         (_cpp_lex_token): Clean up logic.
5114         (lex_token): Update to return a pointer to lexed token, since it
5115         can move to the start of the buffer.  Simpify newline handling.
5116         * cpplib.c (SEEN_EOL): Update.
5117         (skip_rest_of_line): Remove lookahead stuff.
5118         (end_directive): Line numbers are already incremented.  Revert
5119         to start of lexed token buffer if we can.
5120         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
5121         parse_answer): Use _cpp_backup_tokens.
5122         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
5123         instead.  Don't check for EOL.
5124         (do_include_common, do_line, do_pragma_system_header): Use
5125         skip_rest_of_line.
5126         * cpplib.h (BOL, _cpp_backup_tokens): New.
5127         * cppmacro.c (save_lookahead_token, take_lookahead_token,
5128         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
5129         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
5130         (builtin_macro): Don't use cpp_get_line.
5131         (cpp_get_line): Short term kludge.
5132         (parse_arg): Handle directives in arguments here.  Back up when
5133         appropriate.  Store EOF at end of argument list.
5134         (funlike_invocation_p): Use _cpp_backup_tokens.
5135         (push_arg_context): Account for EOF at end of list.
5136         (cpp_get_token): Remove lookahead stuff.  Update.
5137
5138 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5139
5140         * c-parse.in (yyerror): Const-ification and/or static-ization.
5141         * c-typeck.c (push_member_name): Likewise.
5142         * collect2.c (main): Likewise.
5143         * dbxout.c (dbxout_parms): Likewise.
5144         * diagnostic.c (format_with_decl): Likewise.
5145         * dwarf2out.c (output_ranges): Likewise.
5146         * dwarfout.c (fundamental_type_code): Likewise.
5147         * except.c (dw2_output_call_site_table): Likewise.
5148         * gcc.c (do_spec_1): Likewise.
5149         * genopinit.c (optabs): Likewise.
5150         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
5151         gen_declaration_1, handle_impent): Likewise.
5152         * protoize.c (default_include, in_system_include_dir, abspath):
5153         Likewise.
5154         * sched-vis.c (visualize_stall_cycles): Likewise.
5155         * sdbout.c (plain_type_1, sdbout_end_function,
5156         sdbout_end_epilogue): Likewise.
5157         * varasm.c (decode_reg_name): Likewise.
5158
5159         * 1750a.c (mod_regno_adjust): Likewise.
5160         * alpha.c (alpha_write_one_linkage,
5161         unicosmk_output_default_externs): Likewise.
5162         * arm.c (arm_condition_codes): Likewise.
5163         * arm.h (arm_condition_codes): Likewise.
5164         * avr.c (output_movsisf, encode_section_info): Likewise.
5165         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
5166         Likewise.
5167         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
5168         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
5169         * m88k.c (output_function_profiler): Likewise.
5170         * mips.c (mips_output_conditional_branch): Likewise.
5171         * ns32k.c (ns32k_out_reg_names): Likewise.
5172         * ns32k.h (ns32k_out_reg_names): Likewise.
5173         * pj.c (pj_output_rval): Likewise.
5174         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
5175         * sparc.c (sparc_flat_function_prologue,
5176         sparc_flat_function_epilogue): Likewise.
5177
5178 2001-09-13  Markus Werle <numerical.simulation@web.de>
5179             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5180
5181         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
5182         Aachen University of Technology".
5183
5184 2001-09-13  Andreas Schwab  <schwab@suse.de>
5185
5186         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
5187         C99.
5188
5189 2001-09-13  Richard Henderson  <rth@redhat.com>
5190
5191         * config/alpha/alpha.c (small_symbolic_operand): New.
5192         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
5193         (some_operand, input_operand): Don't handle HIGH.
5194         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
5195         (alpha_expand_mov): Likewise.
5196         (print_operand) [H]: Just print HIGH symbol.
5197         (print_operand_address): Handle small data.
5198         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
5199         (TARGET_SWITCHES): Add -msmall-data/large-data.
5200         (PIC_OFFSET_TABLE_REGNUM): New.
5201         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
5202         (PREDICATE_COES): Update.
5203         * config/alpha/alpha.md (adddi_er_high): New.
5204         (adddi_er_low): Handle small data.
5205         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
5206         prefer .sdata to .rodata.
5207         (SELECT_RTX_SECTION): Likewise.
5208
5209 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
5210
5211         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
5212         defining __size_t and leaving size_t undefined.
5213
5214 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
5215
5216         * basic-block.h (expunge_block): Declare.
5217         * cfg.c (expunge_block): Remove static declaration.
5218
5219 2001-09-12  Richard Henderson  <rth@redhat.com>
5220
5221         * integrate.c (copy_insn_list): Copy label name from
5222         NOTE_INSN_DELETED_LABEL.
5223
5224 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5225
5226         * c-common.c (c_tree_code_name): Const-ification.
5227         * c-decl.c (c_decode_option): Likewise.
5228         * c-typeck.c (warn_for_assignment): Likewise.
5229         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
5230         Likewise.
5231         * cppinit.c (output_deps): Likewise.
5232         * dependence.c (dependence_string, direction_string): Likewise.
5233         * dwarf2out.c (output_ranges): Likewise.
5234         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
5235         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
5236         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
5237         standard_startfile_prefix, standard_startfile_prefix_1,
5238         standard_startfile_prefix_2, tooldir_base_prefix,
5239         standard_bindir_prefix, find_a_file): Likewise.
5240         * genattrtab.c (make_length_attrs): Likewise.
5241         * gencheck.c (tree_codes): Likewise.
5242         * genemit.c (gen_split): Likewise.
5243         * genrecog.c (special_mode_pred_table): Likewise.
5244         * graph.c (graph_ext): Likewise.
5245         * protoize (default_include): Likewise.
5246         * reload.c (reload_when_needed_name): Likewise.
5247         * sched-vis.c (visualize_stall_cycles): Likewise.
5248         * tlink.c (recompile_files): Likewise.
5249         * toplev.c (decode_g_option): Likewise.
5250         * tradcpp.c (output_deps): Likewise.
5251         * varasm.c (decode_reg_name): Likewise.
5252
5253         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
5254         Const-ification.
5255         * arm.md: Likewise.
5256         * avr.c (avr_regnames, encode_section_info): Likewise.
5257         * c4x.c (float_reg_names): Likewise.
5258         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
5259         * elfos.h (const_section): Likewise.
5260         * i386.c (ix86_comp_type_attributes): Likewise.
5261         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
5262         * ia64/aix.h (UNIQUE_SECTION): Likewise.
5263         * ia64.c (type_names): Likewise.
5264         * m68hc11.c (reg_class_names): Likewise.
5265         * m88k.c (m_options): Likewise.
5266         * mips.c (mips_output_conditional_branch, mips_unique_section):
5267         Likewise.
5268         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5269         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
5270         ultra_code_names): Likewise.
5271         * sparc.h (OVERRIDE_OPTIONS): Likewise.
5272
5273 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
5274
5275         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
5276         Use --fatal-warnings option for gas.
5277         * configure: Rebuilt.
5278
5279 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5280
5281         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
5282
5283 2001-09-11  Jim Wilson  <wilson@redhat.com>
5284
5285         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
5286
5287 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5288
5289         * builtins.c (c_strlen): Treat an offset too large for a
5290         HOST_WIDE_INT as out of range.
5291
5292 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
5293
5294         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
5295         (EDGE_CRITICAL_P): New predicate.
5296         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
5297         handling.
5298         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
5299         (dump_edge_info): Remove "crit".
5300         * cfganal.c (mark_critical_edges): Kill.
5301         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
5302         * cfgcleanup.c (cleanup_cfg): Likewise.
5303         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
5304         (find_spanning_tree): Likewise.
5305         * reg-stack.c (convert_regs_1): Likewise.
5306         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
5307
5308         * basic-block.h (create_basic_block_structure): New.
5309         (create_basic_block): Update prototype.
5310         (force_nonfallthru): New.
5311         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
5312         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
5313         handle updating of block_for_insn, creating of empty BBs and BBs at
5314         the end of INSN chain.
5315         (create_basic_block): New function.
5316         (split_block): Use create_basic_block.
5317         (force_nonfallthru_and_redirect): Break out from ...; cleanup
5318         (redirect_edge_and_branch_force): ... here.
5319         (force_nonfallthru): New.
5320         (split_edge): Rewrite to use force_nonfallthru and create_block.
5321         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
5322         (find_basic_blocks): Free basic_block_for_insn.
5323         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
5324
5325         * cfg.c: Fix formating.
5326         * cfgcleanup.c: Fix formating.
5327         (merge_blocks, tail_recursion_label_p): Return bool.
5328         (merge_blocks_move_predecessor_nojumps,
5329          merge_blocks_move_successor_nojumps): Return void.
5330
5331 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
5332
5333         * configure.in: Check whether assembler supports section merging.
5334         * config.in: Rebuilt.
5335         * configure: Rebuilt.
5336         * varasm.c (variable_section, output_constant_pool): Pass alignment
5337         to SELECT_SECTION and SELECT_RTX_SECTION.
5338         (mergeable_string_section): New.
5339         (mergeable_constant_section): New.
5340         (default_elf_asm_named_section): Output SECTION_MERGE and
5341         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
5342         * output.h (mergeable_string_section): New.
5343         (mergeable_constant_section): New.
5344         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
5345         * toplev.c (flag_merge_constants): New.
5346         (f_options): Add -fmerge-constants and -fmerge-all-constants
5347         options.
5348         (toplev_main): Default to -fno-merge-constants if not optimizing.
5349         * flags.h (flag_merge_constants): Add extern.
5350         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
5351         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
5352         argument.
5353         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
5354         Define if assembler has working .subsection -1 support.
5355         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
5356         Put constant into special SHF_MERGE sections if the linker should
5357         attempt to merge duplicates.
5358         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
5359         macro argument.
5360         Put constant into special SHF_MERGE sections if the linker should
5361         attempt to merge duplicates.
5362         * config/alpha/elf.h: Likewise.
5363         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
5364         has working .subsection -1 support.
5365         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
5366         SELECT_SECTION.
5367         * config/svr3.h: Likewise.
5368         * config/darwin.h: Likewise.
5369         * config/arm/aof.h: Likewise.
5370         * config/arm/linux-elf.h: Likewise.
5371         * config/avr/avr.h: Likewise.
5372         * config/c4x/c4x.h: Likewise.
5373         * config/d30v/d30v.h: Likewise.
5374         * config/i386/dgux.h: Likewise.
5375         * config/i386/osfrose.h: Likewise.
5376         * config/i386/sco5.h: Likewise.
5377         * config/i386/svr3gas.h: Likewise.
5378         * config/ia64/aix.h: Likewise.
5379         * config/m32r/m32r.h: Likewise.
5380         * config/m68k/m68k.h: Likewise.
5381         * config/m88k/dgux.h: Likewise.
5382         * config/m88k/m88k.h: Likewise.
5383         * config/mcore/mcore-pe.h: Likewise.
5384         * config/mips/mips.h: Likewise.
5385         * config/pa/pa.h: Likewise.
5386         * config/pa/pa-linux.h: Likewise.
5387         * config/romp/romp.h: Likewise.
5388         * config/rs6000/sysv4.h: Likewise.
5389         * config/rs6000/xcoff.h: Likewise.
5390         * config/s390/linux.h: Likewise.
5391         * config/sparc/sparc.h: Likewise.
5392         * config/sparc/sysv4.h: Likewise.
5393         * config/stormy16/stormy16.h: Likewise.
5394         * config/v850/v850.h: Likewise.
5395         * config/vax/vms.h: Likewise.
5396         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
5397         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
5398         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
5399         default_elf_asm_named_section for SHF_MERGE sections.
5400
5401 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
5402
5403         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
5404         is OK.
5405
5406 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
5407
5408         * c-common.c (split_specs_attrs): Allow for empty attributes with
5409         empty TREE_PURPOSE.  Fixes PR c/4294.
5410
5411 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
5412
5413         * basic-block.h (cached_make_edge, make_single_succ): New.
5414         (make_edge): Remove first parameter.
5415         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
5416         * cfg.c (cached_make_edge): Rename from make_edge; return newly
5417         created edge; use obstack allocation.
5418         (make_edge, make_single_succ_edge): New.
5419         (first_removed_edge): New static variable.
5420         (init_flow): Initialize first_removed_edge and n_edges.
5421         (clear_edges): Use remove_edge.
5422         (flow_delete_block): Likewise.
5423         (remove_edge): Add removed edges to the removed edges list.
5424         (split_block, redirect_edge_and_branch_force, split_edge):
5425         Use make_edge.
5426         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
5427         (add_noreturn_fake_exit_edges): Likewise.
5428         (connect_infinite_loops_to_exit): Liekwise.
5429         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
5430         Use cached_make_edge.
5431         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
5432         * profile.c (branch_prob): Update make_edge call.
5433         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
5434
5435 2001-09-11  Richard Henderson  <rth@redhat.com>
5436
5437         * config/alpha/alpha.c: Tidy formatting.
5438         (local_symbolic_operand): Verify mode.
5439         (alpha_sa_mask): Ignore unicos for eh_return.
5440         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
5441         * config/alpha/alpha.md (umk divsi patterns): Remove.
5442         (extendsfdf2): Remove unicos check.
5443         (tablejump): Merge vms and unicos code; always use direct set
5444         plus label_ref use.
5445
5446 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5447
5448         * config.gcc (alpha*-*-unicosmk*): New target.
5449
5450         * config/alpha/alpha-protos.h (symbolic_operand,
5451         unicosmk_add_call_info_word, unicosmk_add_extern,
5452         unicosmk_defer_case_vector, unicosmk_unique_section,
5453         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
5454         unicosmk_asm_file_start, unicosmk_asm_file_end,
5455         unicosmk_output_common): Declare.
5456
5457         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
5458         direct_return, function_arg, alpha_va_start, alpha_va_arg,
5459         alpha_does_function_need_gp, alpha_end_function): Support Cray
5460         Unicos/Mk.
5461         (alpha_init_machine_status, alpha_mark_machine_status,
5462         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
5463         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
5464         unicosmk_asm_named_section, unicosmk_insert_attributes,
5465         unicosmk_section_type_flags, symbolic_operand,
5466         unicosmk_output_module_name, unicosmk_output_default_externs,
5467         unicosmk_output_dex, unicosmk_output_externs,
5468         unicosmk_output_addr_vec, unicosmk_ssib_name,
5469         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
5470         unicosmk_asm_file_end, unicosmk_output_common,
5471         unicosmk_section_type_flags, unicosmk_unique_section,
5472         unicosmk_add_call_info_word, unicosmk_text_section,
5473         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
5474         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
5475         unicosmk_dex_count, unicosmk_special_name): New.
5476         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
5477         TARGET_ABI_UNICOSMK.
5478         (get_aligned_mem, alpha_expand_unaligned_load,
5479         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
5480         alpha_expand_unaligned_store_words): Support big-endian mode.
5481         (print_operand): Likewise. New format specifier 't'. Use
5482         TARGET_AS_SLASH_BEFORE_SUFFIX.
5483         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
5484         (alpha_pv_save_size): Update with above change.
5485         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
5486         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
5487         Unicos/Mk.
5488
5489         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
5490         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
5491         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
5492         (EXTRA_CONSTRAINT): New constraint 'U'.
5493         (PREDICATE_CODES): Add symbolic_operand.
5494
5495         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
5496         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
5497         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
5498         (integer division and modulus patterns): Split in default and
5499         Unicos/Mk versions.
5500         (*divmodsi_internal, *divmoddi_internal): Disable for
5501         TARGET_ABI_UNICOSMK.
5502         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
5503         little-endian and big-endian versions.
5504         (ext, ins, msk): Likewise.
5505         (extv, extzv, insv): Support big-endian mode.
5506         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
5507         (call_umk, call_value_umk, *call_umk, tablejump_umk,
5508         *tablejump_umk_internal, *call_value_umk): New.
5509         (*movdi_nofix): Add pattern for loading an address into a register on
5510         TARGET_ABI_UNICOSMK.
5511         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
5512         (umk_mismatch_args, arg_home_umk): New.
5513         (various insns): Don't use mov, fmov, nop, fnop and unop.
5514         (realign): Support TARGET_ABI_UNICOSMK.
5515
5516         * config/alpha/unicosmk.h: New file.
5517         * config/alpha/t-unicosmk: New file.
5518
5519         * fixinc/inclhack.def (unicosmk_restrict): New.
5520         * fixinc/fixincl.x: Regenerate.
5521
5522         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
5523         (wchar_t): Check for and define __WCHAR_T__.
5524
5525 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
5526
5527         * combine.c (simplify_shift_const): Treat shifts by the mode
5528         size as undefined.
5529
5530 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5531
5532         * cpphash.h (struct tokenrun): New.
5533         (struct cpp_context): New member bol.
5534         (struct cpp_reader): New members.
5535         (_cpp_init_tokenrun): New.
5536         * cppinit.c (cpp_create_reader): Set up the token runs.
5537         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
5538         (lex_token): New internalised version of _cpp_lex_token.  Don't
5539         handle directives or the multiple include opimisation here any
5540         more.  Simply lex a token.
5541         * cpplib.c (run_directive): Clear bol.
5542         (_cpp_pop_buffer): Set bol.
5543         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
5544         arguments.
5545
5546 2001-09-11  Michael Meissner  <meissner@redhat.com>
5547
5548         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
5549         give an error if the user uses -mfp32.
5550         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
5551         default options.
5552         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
5553         floating point register size.
5554         (EXTRA_SPECS): Add CPP_FPR_SPEC.
5555
5556         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
5557         HOST_WIDE_INT_PRINT_DEC to properly print the result of
5558         int_size_in_bytes.
5559         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
5560         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
5561
5562 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
5563
5564         * dbxout.c (dbxout_parms): Fix typo in comment.
5565         * unroll.c (loop_find_equiv_value): Ditto.
5566         * toplev.c (rest_of_compilation): Ditto.
5567         * loop.c (scan_loop): Ditto.
5568         * dwarf2out.c (struct dw_fde_struct): Ditto.
5569
5570 2001-09-10  Zack Weinberg  <zackw@panix.com>
5571
5572         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
5573         copying identifier when we're just going to throw it away.
5574         (parse_identifier_slow): New routine to handle abnormal cases.
5575         (_cpp_lex_token): Update call site.
5576
5577         * hashtable.c (ht_lookup): Don't assume that the string we've
5578         been given is NUL-terminated.
5579         * system.h: #define __builtin_expect(a, b) to (a) if not
5580         GCC >=3.0.
5581
5582 2001-09-10  Michael Meissner  <meissner@redhat.com>
5583
5584         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
5585         binutils, gdb.
5586
5587 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
5588
5589         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
5590
5591 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5592
5593         * builtins.c (c_getstr): Correct thinko in last change and further
5594         cleanup.
5595
5596 2001-09-10  Tim Freeman <tim@fungibole.com>
5597
5598         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
5599         into varray's and register them as roots with the garbage
5600         collector so they are not collected too soon.
5601
5602 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
5603
5604         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
5605         New.
5606         * basic-block.h (flow_obstack, label_value_list,
5607         tail_recursion_label_list): Declare
5608         (tidy_fallthru_edges): Declare.
5609         (expunge_block, last_loop_beg_note): Delete.
5610         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
5611         * cfg.c: New file
5612         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
5613         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
5614         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
5615         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
5616         expunge_block, flow_delete_block, compute_bb_for_insn,
5617         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
5618         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
5619         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
5620         try_redirect_by_replacing_jump, last_loop_beg_note,
5621         redirect_edge_and_branch, redirect_edge_and_branch_force,
5622         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
5623         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
5624         commit_edge_insertions, dump_flow_info, debug_flow_info,
5625         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
5626         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
5627         Move here from flow.c
5628         * cfganal.c: New file.
5629         (forwarder_block_p, can_fallthru, mark_critical_edges,
5630          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
5631          find_unreachable_blocks, create_edge_list, free_edge_list,
5632          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
5633          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
5634          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
5635          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
5636          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
5637          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
5638         Move here from flow.c
5639         * cfgbuild.c: New file
5640         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
5641          make_edges, find_basic_blocks_1, find_basic_blocks,
5642          find_sub_basic_blocks): Move here from flow.c
5643         * cfgcleanup.c: New file.
5644         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
5645          merge_blocks_move_predecessor_nojumps,
5646          merge_blocks_move_successor_nojumps, merge_blocks,
5647          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
5648          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
5649         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
5650         if succeeded.
5651         * cfgloop.c: New file
5652         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
5653          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
5654          flow_loop_exit_edges_find, flow_loop_nodes_find,
5655          flow_loop_pre_header_scan, flow_loop_pre_header_find,
5656          flow_loop_tree_node_add, flow_loops_tree_build,
5657          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
5658          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
5659         Move here from flow.c
5660         * flow.c: Remove everything moved elsewhere
5661         * output.h (cleanup_cfg): Return bool.
5662
5663         * bb-reorder.c (reorder_block_def): Remove 'index'.
5664         (insert_intra_1): Add argument BB, set block for new note.
5665         (make_reorder_chain): Do not depdent on BB indexes.
5666         (make_reorder_chain_1): Do not use BB indexes.
5667         (label_for_bb): Likewise; set BB for new insn.
5668         (emit_jump_to_block_after): Likewise.
5669         (fixup_reoder_chain): Sanity check that all basic blocks
5670         are chained; verify newly created insn chain; remove
5671         undocnitional jump simplifying; Do not use BB indexes;
5672         properly initialize count and frequency information;
5673         dump reordered sequence.
5674         (insert_intra_bb_scope_notes): update call of insert_intra_1.
5675         (insert_inter_bb_scope_notes): Set block for new insn.
5676         (reorder_basic_blocks): Dump flow info before reoredering.
5677
5678 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5679
5680         * alias.c (clear_reg_alias_info): Use K&R format definition.
5681         Avoid unsigned warning.
5682         * builtins.c: Use "unsigned int", not "unsigned".
5683         (target_char_cast): Use host_integerp and tree_low_cst.
5684         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
5685         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
5686         (c_getstr): Likewise.
5687         (std_expand_builtin_va_arg): Use int_size_in_bytes.
5688         (builtin_memcpy_read_str): Avoid unsigned warning.
5689         (expand_builtin_memcpy): Alignments are unsigned.
5690         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
5691         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
5692         * predict.c (expensive_function_p): LIMIT now unsigned.
5693         * resource.c (mark_target_live_regs): Make some vars unsigned.
5694         * sdbout.c: Use "unsigned int", not "unsigned".
5695         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
5696         (sdbout_source_line): Likewise.
5697         (sdbout_record_type_name): Remove "const" for NAME declaration.
5698         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
5699
5700 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
5701
5702         * calls.c (store_one_arg): Expand comment.
5703
5704 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5705
5706         * calls.c (store_one_arg): Make sure that the entire argument is
5707         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
5708
5709 2001-09-09  Richard Henderson  <rth@redhat.com>
5710
5711         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
5712
5713 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
5714
5715         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
5716
5717 2001-09-09  Richard Henderson  <rth@redhat.com>
5718
5719         * config/alpha/alpha.c (alpha_next_sequence_number): New.
5720         (alpha_this_literal_sequence_number): New.
5721         (alpha_this_gpdisp_sequence_number): New.
5722         (some_operand, input_operand): Add HIGH.
5723         (local_symbolic_operand): New.
5724         (alpha_encode_section_info): New.
5725         (alpha_legitimate_address_p): Allow LO_SUM.
5726         (alpha_legitimize_address): Generate HIGH+LO_SUM.
5727         (alpha_expand_mov): Likewise.
5728         (secondary_reload_class): Check memory_operand not general_operand
5729         for FP_REGS test.
5730         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
5731         (alpha_expand_unaligned_store): Likewise.
5732         (alpha_expand_unaligned_load_words): Likewise.
5733         (alpha_expand_unaligned_store_words): Likewise.
5734         (alpha_expand_block_clear): Likewise.
5735         (print_operand): Handle %#, %*, %H.
5736         (print_operand_address): Handle LO_SUM.
5737         (find_lo_sum): New.
5738         (alpha_does_function_need_gp): Use it.
5739         (alpha_expand_block_move): Fix signed compare warnings.
5740         (alpha_sa_mask, alpha_align_insns): Likewise.
5741         * config/alpha/alpha-protos.h: Update.
5742         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
5743         (MASK_EXPLICIT_RELOCS): New.
5744         (TARGET_SWITCHES): Add -mexplicit-relocs.
5745         (EXTRA_CONSTRAINT): Add 'T'.
5746         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
5747         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
5748         (ENCODE_SECTION_INFO): Out line.
5749         (REDO_SECTION_INFO_P): New.
5750         (STRIP_NAME_ENCODING): New.
5751         (ASM_OUTPUT_LABELREF): New.
5752         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
5753         (PREDICATE_CODES): Update.
5754         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
5755         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
5756         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
5757         builtin_setjmp_receiver_er, exception_receiver_1_er,
5758         call_value_osf_1_er): New patterns.
5759         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
5760         (movqi, movhi, movsi): Add explicit $31 base register to lda.
5761         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
5762         (FINAL_PRESCAN_INSN): New.
5763
5764 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
5765
5766         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
5767
5768 2001-09-08  Andreas Jaeger  <aj@suse.de>
5769
5770         * i386.h (TARGET_SWITCHES): Fix description.
5771
5772 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
5773
5774         * rs6000.c (num_insns_constant): Compute number of instructions
5775         more accurately.
5776
5777         * doc/install.texi: Explain AIX exception handling work-around.
5778         Update URL for AIX fixes.
5779
5780 2001-09-07  Jim Wilson  <wilson@redhat.com>
5781
5782         * alias.c (clear_reg_alias_info): New.
5783         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
5784         * rtl.h (clear_reg_alias_info): Declare.
5785
5786 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5787
5788         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
5789         available.
5790         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
5791         (m16m,edivm,emulm): Change declaration to match definition.
5792
5793 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
5794
5795         * reload.c (push_reload): Check for subreg_lowpart_p instead of
5796         SUBREG_BYTE being 0 when determining if the inner part of a subreg
5797         can be reloaded.
5798
5799 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5800
5801         * c-common.c (signed_or_unsigned_type): Handle machine mode types
5802         which have no corresponding C type.
5803         * fold_const.c (target_isinf,target_isnan,target_negative): Update
5804         the representation of 64-bit doubles to work with 64-bit ints.
5805
5806 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
5807
5808         * config/mips/mips.c (override_options): Do not override ISA when ABI
5809         specified if MIPS_CPU_STRING_DEFAULT was specified.
5810
5811 2001-09-07  Richard Henderson  <rth@redhat.com>
5812
5813         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
5814         (express_from_1): Wrap lines.
5815         * rtlanal.c (commutative_operand_precedence): Rename from
5816         operand_preference; export.
5817         * rtl.h: Declare it.
5818         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
5819         (simplify_binary_operation): Invoke simplify_plus_minus on
5820         (CONST (PLUS ...)) as well.
5821         (struct simplify_plus_minus_op_data): New.
5822         (simplify_plus_minus_op_data_cmp): New.
5823         (simplify_plus_minus): Use them.  Avoid infinite recursion with
5824         simplify_binary_operation wrt CONST.
5825
5826 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
5827
5828         * h8300-protos.h (general_operand_dst_push): Remove.
5829         * h8300.c (general_operand_dst_push): Likewise.
5830         * h8300.h (OK_FOR_T): Likewise.
5831         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
5832         * h8300.md (pushqi_h8300): New.
5833         (pushqi_h8300hs): Likewise.
5834         (pushqi): Likewise.
5835         (pushhi_h8300): Likewise.
5836         (pushhi_h8300hs): Likewise.
5837         (pushhi): Likewise.
5838
5839 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5840
5841         * genattrtab.c (attr_printf): First arg is unsigned.
5842         Clean up formatting of callers.
5843
5844 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
5845
5846         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
5847         registers.
5848
5849 2001-09-07  Andreas Jaeger  <aj@suse.de>
5850
5851         * i386.h (TARGET_SWITCHES): Fix descriptions.
5852
5853 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5854
5855         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
5856
5857 2001-09-06  Ira Ruben  <ira@apple.com>
5858
5859         Remove OP_IDENTIFIER.
5860         * tree.def (OP_IDENTIFIER): Remove.
5861         * tree.c (tree_node_kind enum): Remove op_id_kind.
5862         (tree_node_kind_names): Remove "op_identifiers".
5863         (make_node): Remove OP_IDENTIFIER test.
5864         (build_op_identifier): Removed because it isn't being used.
5865         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
5866         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
5867
5868 2001-09-06  Richard Henderson  <rth@redhat.com>
5869
5870         * simplify-rtx.c (simplify_binary_operation): Revert last change.
5871
5872 2001-09-06  Richard Henderson  <rth@redhat.com>
5873
5874         * simplify-rtx.c (simplify_binary_operation): Simplify contents
5875         of CONST.
5876
5877 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5878
5879         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
5880         number used for CR register.
5881
5882 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
5883                           Joern Rennecke (amylaar@cygnus.com)
5884
5885         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
5886         * h8300.c (initial_offset): Handle offset between RP and FP.
5887         (h8300_return_addr_rtx): New function.
5888         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
5889         return register.
5890         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
5891         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
5892         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
5893         (CAN_ELIMINATE, REGISTER_NAMES):
5894         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
5895
5896 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
5897
5898         Remove TYPE_NONCOPIED_PARTS.
5899         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
5900         (struct tree_type): Remove noncopied_parts.
5901         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
5902         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
5903         (fixed_type_p): Remove.
5904         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
5905         (expand_expr, MODIFY_EXPR): Likewise.
5906         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
5907         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
5908
5909 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
5910
5911         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
5912         compiler warnings.
5913         (mask64_operand): Likewise.
5914         (includes_rldic_lshift_p): Likewise.
5915         (includes_rldicr_lshift_p): Likewise.
5916
5917 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
5918
5919         * objc/objc-act.c (build_message_expr): If a class method cannot
5920         be found, do not issue a warning if a corresponding instance
5921         method exists in the root class.
5922
5923 2001-09-05  Richard Henderson  <rth@redhat.com>
5924
5925         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
5926
5927 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
5928
5929         * function.c (ggc_mark_struct_function): Mark f->outer.
5930         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
5931         * integrate.c (output_inline_function): ... not here.
5932
5933 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
5934
5935         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
5936
5937         * i386.c (size_cost): New static variable.
5938         (override_function): Use size_cost when -Os is specified.
5939
5940         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
5941         properly;  Use current_function_calls_eh_return.
5942         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
5943         use leave to avoid dependency chain.
5944
5945         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
5946         get BB loop_depth instead of computing it from LOOP notes.
5947
5948         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
5949
5950 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5951
5952         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5953         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5954         UNALIGNED_DOUBLE_INT_ASM_OP): Define
5955
5956 2001-09-05  Jeffrey A Law  (law@cygnus.com)
5957             Jason Merrill (jason@redhat.com)
5958
5959         * stor-layout.c (layout_type): Complain if an array's size can
5960         not be represented in a size_t.
5961
5962         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
5963
5964 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
5965
5966         * gcc.c: (process_command) Add parentheses around assignment
5967         used as truth value.
5968
5969 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
5970
5971         * config/mips/mips.c (save_restore_insns): Don't mark any register
5972         save slots as unchanging if current_function_calls_eh_return.
5973
5974 2001-09-05  Richard Henderson  <rth@redhat.com>
5975
5976         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
5977         * config/alpha/alpha-protos.h: Declare it.
5978         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
5979         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
5980         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
5981         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
5982         (REG_OK_FOR_BASE_P): Select one of the above.
5983
5984 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
5985
5986         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
5987         (crti.o): Prefix name of object file with $(T).
5988         (crtn.o): Likewise.
5989
5990 2001-09-05  David S. Miller  <davem@redhat.com>
5991
5992         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
5993         * config/sparc/linux64.h: Likewise.
5994
5995 2001-09-05  Andreas Jaeger  <aj@suse.de>
5996
5997         * doc/invoke.texi (i386 Options): -mwide-multiply is not
5998         available anymore, remove the documentation.
5999         (i386 Options): Fix typo, cleanup index entries.
6000
6001         * prefix.c (concat): Remove, we can use the version from liberty.
6002
6003 2001-09-05  Richard Henderson  <rth@redhat.com>
6004
6005         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
6006         New functions split out of md file expanders.
6007         * config/alpha/alpha-protos.h: Declare them.
6008         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
6009
6010 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
6011
6012         * cppmacro.c (funlike_invocation_p): No need to restore context.
6013
6014 2001-09-04  Richard Henderson  <rth@redhat.com>
6015
6016         * reload.c (push_reload): Export.
6017         * reload.h (push_reload): Declare it.
6018
6019         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
6020         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
6021         * config/alpha/alpha.c (alpha_legitimize_address): New.
6022         (alpha_legitimize_reload_address): Likewise.
6023         * config/alpha/alpha-protos.h: Declare them.
6024
6025 2001-09-04  Stan Shebs  <shebs@apple.com>
6026
6027         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
6028         * config/darwin.c (machopic_stub_name): Account for internally
6029         generated lib calls such as memcpy.
6030
6031 2001-09-04  Richard Henderson  <rth@redhat.com>
6032
6033         * unwind.h (_UA_END_OF_STACK): New flag.
6034         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
6035
6036 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
6037
6038         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
6039
6040 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
6041
6042         * config/mips/mips.c (save_restore_insns): Change base_offset to
6043         fp_offset in second call to mips_emit_frame_related_store.
6044
6045 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
6046
6047         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
6048         sometimes be represented as a NOTE of type
6049         NOTE_INSN_DELETED_LABEL.
6050         (Insns): Document NOTE_INSN_DELETED_LABEL.
6051
6052 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
6053
6054         * c-common.h (tree_dump_index): Add more comments.
6055         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
6056         (dump_option_value_info): New struct.
6057         (dump_options): New array.
6058         (dump_switch_p): Parse switch options symbolically.
6059         * doc/invoke.texi (-fdump-ast): Rename to ...
6060         (-fdump-tree): ... here. Document that options are symbolic, and
6061         not all are applicable.
6062
6063 2001-09-04  David S. Miller  <davem@redhat.com>
6064
6065         * config/sparc/sparc.md (define_splits): Kill constraints.
6066
6067         Cleanup redundant and unused insn attributes.
6068         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
6069         binary, and move.  Mark ialu as default.
6070         (commented out define_function_unit "alu"): Kill.
6071         (define_attr "use_clobbered"): Kill.
6072         (whole file): Kill address insn type references.  Replace
6073         all unary/binary/move references with ialu.
6074         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
6075         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
6076         TYPE_IALU.
6077
6078         Simplify length insn attribute and make more judicious use
6079         of insn attribute defaulting.
6080         * config/sparc/sparc.md (all insns with length > one): Mark as
6081         insn type multi if real instructions, else use default if
6082         it is a forced splitter.
6083         (all insns with length == one): Use default insn length.
6084         (all insns of type ialu): Use default insn type.
6085
6086         Fix erroneous insn attribute settings.
6087         (addx): Set insn type to misc.
6088         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
6089         const_umulsidi3_sp64): Set insn type to imul.
6090
6091         Track SFmode vs DFmode insns according to UltraSPARC
6092         scheduling rules.
6093         * config/sparc/sparc.md ("fptype"): New attribute, default
6094         to "single".
6095         (all DFmode single insns): Mark as fptype "double".
6096
6097 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
6098
6099         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
6100
6101 2001-09-03  Richard Henderson  <rth@redhat.com>
6102
6103         * function.h (struct function): Add arg_pointer_save_area_init.
6104         * function.c (expand_function_end): Init arg_pointer_save_area.
6105         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
6106         when called from a nested function.
6107
6108 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
6109
6110         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
6111         is enabled.
6112
6113 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
6114
6115         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
6116
6117 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
6118
6119         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
6120         (emit_push_insn): Use specified padding direction when
6121         STACK_PUSH_CODE is POST_INC.
6122
6123         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
6124
6125 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6126
6127         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
6128
6129 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6130
6131         * cppinit.c (cpp_start_read): Free the imacros list as we
6132         traverse it.  Don't free the chains before returning.
6133         (_cpp_push_next_buffer): Only try pushing buffers if we've
6134         completed -imacros handling.
6135
6136 2001-08-31  Eric Christopher  <echristo@redhat.com>
6137
6138         * gcc.c (handle_braces): Add explaination for abort.
6139
6140 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
6141
6142         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
6143         move adjustment of bitpos instead.
6144
6145 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
6146
6147         * function.c: Remove all_functions.  Make outer_function_chain
6148         static.
6149         (init_function_start): Don't add new function structure to
6150         all_functions.
6151         (find_function_data, push_function_context_to,
6152         pop_function_context_from, put_var_into_stack,
6153         trampoline_address): Update for changed structure element names.
6154         (push_function_context_to): Disentangle.
6155         (free_after_compilation): Also free F.
6156         (expand_dummy_function_end): Don't free cfun here.
6157         (put_var_into_stack): Comment why we can't use find_function_data here.
6158         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
6159         (mark_function_chain): Split into maybe_mark_struct_function and
6160         ggc_mark_struct_function.  Export the latter.
6161         (init_function_once): Mark from cfun and outer_function_chain;
6162         not all_functions.
6163
6164         * function.h (struct function): Kill next_global.  Rename next
6165         to outer.  All users updated to match.
6166         (all_functions, outer_function_chain): Don't declare.
6167
6168         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
6169         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
6170         don't touch f->inlinable, after calling rest_of_compilation.
6171
6172         * tree.h: Forward-declare struct function.  Prototype
6173         ggc_mark_struct_function.
6174
6175 2001-08-31  Kazu Hirata  <kazu@hxi.com>
6176
6177         * config/h8300/h8300.md (*andorhi3): Fix typos.
6178
6179 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6180
6181         * calls.c (emit_library_call_value): Don't use a fixed
6182         argument after VA_CLOSE, i.e. out of scope in traditional C.
6183
6184         * emit-rtl.c (gen_rtvec): Likewise.
6185
6186 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6187
6188         * Makefile.in (c-pragma.o): Depend on output.h.
6189         (reorg.o): Depend on except.h.
6190
6191         * c-pragma.c: Include output.h.
6192
6193         * reorg.c: Include except.h.
6194
6195         * unwind-dw2.c: Call __builtin_alloca, not alloca.
6196
6197 2001-08-31  Richard Henderson  <rth@redhat.com>
6198
6199         * sched-deps.c (add_dependence): Don't elide dependency if the
6200         conditional used by insn is modified in elem.
6201
6202 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
6203
6204         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
6205
6206 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
6207
6208         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
6209         dump_switch_p.
6210
6211 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
6212
6213         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
6214         function.
6215         (stormy16_asm_out_constructor): New function.
6216         (TARGET_ASM_CONSTRUCTOR): Define.
6217         (TARGET_ASM_DESTRUCTOR): Define.
6218
6219 2001-08-31  Andreas Jaeger  <aj@suse.de>
6220
6221         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
6222         * loop.c (add_label_notes): Likewise.
6223         * reload.c (find_reloads): Likewise.
6224         * config/sh/sh.c (machine_dependent_reorg): Likewise.
6225
6226 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
6227
6228         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
6229         code here.  Take _Unwind_{W,Sw}ord*.
6230         (read_encoded_value_with_base): Use them.
6231         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
6232         words.
6233         (extract_cie_info): Simplify read_?leb128 handling.
6234         (execute_stack_op, execute_cfa_program): Likewise.
6235         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
6236
6237 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
6238
6239         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
6240         the frame pointer to pop the stack if convenient.
6241
6242         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
6243         Don't use post-increment before combine.
6244         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
6245         a call-saved register.
6246
6247 2001-08-31  Andreas Jaeger  <aj@suse.de>
6248
6249         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
6250         code was correct.
6251
6252 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
6253
6254         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
6255         not DIV/MOD, of course.
6256
6257 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
6258
6259         * rtl.def: Undo my patch commited 2001-08-27.
6260
6261         * genattrtab.c: Ditto.
6262
6263         * rtl.h: Ditto.
6264
6265         * sched-int.h: Ditto.
6266
6267         * target-def.h: Ditto.
6268
6269         * target.h: Ditto.
6270
6271         * haifa-sched.c: Ditto.
6272
6273         * sched-rgn.c: Ditto.
6274
6275         * sched-vis.c: Ditto.
6276
6277         * Makefile.in: Ditto.
6278
6279         * doc/md.texi: Ditto.
6280
6281         * doc/tm.texi: Ditto.
6282
6283         * doc/contrib.texi: Ditto.
6284
6285         * doc/gcc.texi: Ditto.
6286
6287         * genattrtab.h: Remove it.
6288
6289         * genautomata.c: Remove it.
6290
6291         * genattr.c: Undo my patch and Richard Henderson's patch commited
6292         2001-08-27.
6293
6294 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
6295
6296         * config.gcc (h8300-*-elf*): New case.
6297         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
6298         (SUBTARGET_CPP_SPEC): Define.
6299         (EXTRA_SPECS): Define.
6300         (SUBTARGET_EXTRA_SPECS): Define.
6301         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
6302         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
6303
6304 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
6305
6306         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
6307         (LIB2FUNCS_EXTRA): Define.
6308         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
6309         config/h8300/fixunssfsi.c: New file.
6310
6311 2001-08-30  Kazu Hirata  <kazu@hxi.com>
6312
6313         * config/h8300/h8300.md (zero_extendqihi2): Changes to
6314         define_expand to accommodate target-specific attributes.
6315         (anonymous zero_extendqihi2 patterns): New.
6316
6317 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
6318
6319         * h8300.md (*andorhi3): New pattern.
6320
6321 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
6322
6323         * h8300.c (dosize): Fix test for "sub".
6324
6325 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
6326
6327         * c-typeck.c (pointer_diff): Try to eliminate common term before
6328         doing conversions.
6329
6330 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
6331
6332         * config/arm/arm.c (arm_compute_initial_elimination_offset):
6333         Account for the saves of the FP registers.
6334
6335         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
6336         (TEXT_SECTION_ASM_OP): Define.
6337         (INIT_SECTION_ASM_OP): Define.
6338         (FINI_SECTION_ASM_OP): Define.
6339         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
6340         (RDATA_SECTION_FUNCITON): Provide prototype.
6341
6342 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
6343
6344         * reload1.c (move2add_note_store): Correct typo checking for
6345         argument pushes.
6346
6347 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
6348
6349         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
6350         note should not be considered outside the libcall block.
6351
6352 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6353
6354         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
6355
6356 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6357
6358         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
6359
6360 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6361
6362         * config/h8300/h8300-protos.h: Add a prototype for
6363         emit_logical_op.
6364         * config/h8300/h8300.c (emit_logical_op): New.
6365         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
6366         (andsi3): Likewise.
6367         (iorhi3): Likewise.
6368         (iorsi3): Likewise.
6369         (xorhi3): Likewise.
6370         (xorsi3): Likewise.
6371
6372 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6373
6374         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
6375         comparison with rtx INTVAL.
6376         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
6377         expression.
6378         * pa.h (FUNCTION_ARG_SIZE): Likewise.
6379
6380 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6381
6382         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
6383         comment typos.
6384
6385 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6386
6387         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
6388         (reg n) to (mem (pre_dec (reg n))
6389         (anonymous movsi pattern): Likewise.
6390
6391 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6392
6393         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
6394
6395 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6396
6397         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
6398         several special constants.
6399
6400 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6401
6402         * config/h8300/lib1funcs.asm: Fix comment typos.
6403
6404 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6405
6406         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
6407         Fix format specifier warnings.
6408
6409         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
6410         inet_makeaddr, semctl): Prototype.
6411
6412         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
6413         (save_restore_insns): Use base_offset, not gp_offset.
6414
6415         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
6416         (ASM_OUTPUT_BYTE): Fix format specifier warning.
6417
6418 2001-08-29  Richard Henderson  <rth@redhat.com>
6419
6420         * bb-reorder.c (function_tail_eff_head): New.
6421         (record_effective_endpoints): Set it.
6422         (fixup_reorder_chain): Use it.
6423
6424 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6425
6426         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
6427
6428 2001-08-28  Dale Johannesen  <dalej@apple.com>
6429
6430         * config/darwin.c (machopic_function_base_name): Add const
6431         qualifier to a string.
6432         (darwin_encode_section_info): Ditto.
6433
6434 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6435
6436         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
6437         function definition.
6438
6439 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
6440
6441         * df.h (struct df): Add rts_order variable.
6442
6443         * df.c (df_visit_next_rts): New function.
6444         (df_visit_next): Renamed to df_visit_next_rc
6445         (df_analyse_1): Allocate/compute/free rts_order as well.
6446         (df_rd_global_compute): Use df_visit_next_rc instead of
6447         df_visit_next.
6448         (df_ru_global_compute): Use df_visit_next_rts instead of
6449         df_visit_next.
6450
6451         * flow.c (flow_reverse_top_sort_order_compute): New function.
6452
6453         * basic-block.h: Add prototype.
6454
6455 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
6456
6457         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
6458         blocks, the BB_REACHABLE is now set, rather than aux being
6459         non-NULL. Update the test to reflect this.
6460
6461 2001-08-28  Eric Christopher  <echristo@redhat.com>
6462
6463         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
6464         config/mips/crti.asm: Ditto.
6465
6466 2001-08-28  Eric Christopher <echristo@redhat.com>
6467             Richard Henderson <rth@redhat.com>
6468
6469         * c-pragma.h (add_weak): Move prototype from here...
6470         * output.h (add_weak): ... to here.
6471         * varasm.c (add_weak): Fix typo.
6472         * config/mips/crti.asm: New file.
6473         * config/mips/crtn.asm: Ditto.
6474         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
6475         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
6476         (INVOKE__main): Ditto.
6477         (INIT_SECTION_ASM_OP): New.
6478         (FINI_SECTION_ASM_OP): Ditto.
6479         (STARTFILE_SPEC): Add crti.
6480         (ENDFILE_SPEC): Add crtn.
6481         * config/mips/elf64.h: Same.
6482         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
6483         Remove.
6484         * config/mips/vxworks.h: Ditto.
6485         * config/mips/t-elf: Support crti and crtn.
6486
6487 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6488
6489         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
6490         INSN_LIST.
6491
6492 2001-08-28  Richard Henderson  <rth@redhat.com>
6493
6494         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
6495         (one_cmplbi2 splitter): Remove redundant test.
6496
6497 2001-08-28  Dale Johannesen  <dalej@apple.com>
6498
6499         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
6500
6501 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
6502
6503         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
6504
6505 2001-08-28  Stan Shebs  <shebs@apple.com>
6506
6507         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
6508         (UNALIGNED_SHORT_ASM_OP): Define.
6509         (UNALIGNED_INT_ASM_OP): Define.
6510
6511 2001-08-28  Will Cohen  <wcohen@redhat.com>
6512
6513         * config/rs6000/rs6000.md (store_multiple): Correct RTL
6514         generation for first set.
6515
6516 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
6517
6518         * flow.c (redirect_edge_succ_nodup): Return new edge.
6519         (try_simplify_condjump): Use new edge.
6520         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
6521
6522         * cse.c (cse_basic_block): Skip note instructions.
6523
6524 2001-08-27  Richard Henderson  <rth@redhat.com>
6525
6526         * combine.c (combine_simplify_rtx): Don't reverse condition
6527         if there is no reverse for the condition.
6528         (simplify_comparison): Don't simplify subregs from INT to FP.
6529
6530         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
6531         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
6532         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
6533         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
6534         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
6535         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
6536
6537 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
6538
6539         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
6540         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
6541         (pushqi1): New.
6542         (adddi_dilshr32, adddi_dishl32): Only data register can be
6543         source for mem destination.
6544
6545         * expmed.c (store_bit_field): Ignore adjustment to bitpos
6546         and use bitnum to decide about register move.
6547
6548 2001-08-27  Richard Henderson  <rth@redhat.com>
6549
6550         * genattr.c (main): Emit state_t even when not doing scheduling.
6551
6552 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
6553             Richard Henderson  <rth@redhat.com>
6554
6555         * gcse.c (reg_first_set, reg_last_set): Replace with ...
6556         (reg_avail_info, current_bb): ... these.
6557         (oprs_unchanged_p, record_last_reg_set_info): Use them.
6558         (compute_hash_table): Likewise.
6559
6560 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
6561
6562         * flow.c (verify_flow_info): Use checksums to verify edges.
6563
6564 2001-08-27  Richard Henderson  <rth@redhat.com>
6565
6566         * genautomata.c (expand_automata): Always create a description.
6567
6568 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
6569
6570         * optabs.c (expand_binop): Correctly handle the carry in multiword
6571         add/subtract operations.
6572
6573 2001-08-27  Fred Fish  <fnf@be.com>
6574
6575         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
6576         __SIZE_TYPE__.
6577
6578 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
6579
6580         * reload.c (find_reloads_toplev): Back out this change:
6581
6582         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
6583
6584         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
6585         mem if the address is a mode_dependent_address_p.
6586
6587 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6588
6589         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
6590         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
6591         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
6592         RTL constructions.
6593
6594         * genattr.c (main): New variable num_insn_reservations.  Increase
6595         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
6596         pipeline hazard recognizer interface.
6597
6598         * genattrtab.h: New file.
6599
6600         * genattrtab.c: Include genattrtab.h.
6601         (attr_printf, check_attr_test, make_internal_attr,
6602         make_numeric_value): Move protypes into genattrtab.h.  Define them
6603         as external.
6604         (num_dfa_decls): New global variable.
6605         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
6606         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
6607         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
6608         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
6609
6610         * genautomata.c: New file.
6611
6612         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
6613
6614         * sched-int.h: (curr_state): Add the external definition for
6615         automaton pipeline interface.
6616         (haifa_insn_data): Add comments for members blockage and units.
6617
6618         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6619         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6620         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6621         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6622         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6623         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6624         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
6625         macros.
6626         (TARGET_SCHED): Use the new macros.
6627
6628         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
6629         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
6630         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
6631         dfa_bubble): New members in gcc_target.sched.
6632
6633         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
6634         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
6635         (insn_queue): Redefine it as pointer to array.
6636         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
6637         INSN_QUEUE_SIZE.
6638         (max_insn_queue_index_macro_value): New variable.
6639         (curr_state, dfa_state_size, ready_try): New varaibles for
6640         automaton interface.
6641         (ready_element, ready_remove, max_issue): New function prototypes
6642         for automaton interface.
6643         (choose_ready): New function prototype.
6644         (insn_unit, blockage_range): Add comments.
6645         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
6646         FUNCTION_UNITS_SIZE == 0.
6647         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
6648         actual_hazard, potential_hazard): Add comments.
6649         (insn_cost): Use cost -1 as undefined value.  Remove
6650         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
6651         pipeline interface.
6652         (ready_element, ready_remove): New functions for automaton
6653         interface.
6654         (schedule_insn): Add new code for automaton pipeline interface.
6655         (queue_to_ready): Add new code for automaton pipeline interface.
6656         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
6657         (debug_ready_list): Print newline when the queue is empty.
6658         (max_issue): New function for automaton pipeline interface.
6659         (choose_ready): New function.
6660         (schedule_block): Add new code for automaton pipeline interface.
6661         Print ready list before scheduling each insn.
6662         (sched_init): Add new code for automaton pipeline interface.
6663         Initiate insn cost by -1.
6664         (sched_finish): Free the current automaton state and finalize
6665         automaton pipeline interface.
6666
6667         * sched-rgn.c: Include target.h.
6668         (init_ready_list, new_ready, debug_dependencies): Add new code for
6669         automaton pipeline interface.
6670
6671         * sched-vis.c: Include target.h.
6672         (get_visual_tbl_length): Add code for automaton interface.
6673         (target_units, print_block_visualization):  Add comments.
6674
6675         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
6676         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
6677         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
6678         (getruntime.o, genautomata.o): New entries.
6679         (genattrtab.o): Add new dependency file genattrtab.h.
6680         (genattrtab): Add new dependencies.  Link it with `libm.a'.
6681         (getruntime.o, hashtab.o): New entries for canadian cross.
6682
6683         * doc/md.texi: Description of automaton based model.
6684
6685         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
6686         Add comments.
6687         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6688         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6689         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6690         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6691         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6692         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6693         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
6694         hook descriptions.
6695         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
6696         MAX_DFA_ISSUE_RATE): New macro descriptions.
6697
6698         * doc/contrib.texi: Add dfa based scheduler contribution.
6699
6700         * doc/gcc.texi: Add more information about genattrtab.
6701
6702 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
6703
6704         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
6705         an RTL basic block.
6706
6707 2001-08-27  Richard Henderson  <rth@redhat.com>
6708
6709         * function.c (expand_function_end): Don't init arg_pointer_save_area.
6710         (get_arg_pointer_save_area): New.  Create an init it here.
6711         (fix_lexical_addr): Use it.
6712         * function.h: Declare it.
6713         * builtins.c (expand_builtin_setjmp_receiver): Use it.
6714         * stmt.c (expand_nl_goto_receiver): Use it.
6715
6716 2001-08-27  Richard Henderson  <rth@redhat.com>
6717
6718         * final.c (final_scan_insn): Don't enter APP_ON mode for
6719         empty asm strings.
6720
6721         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
6722         alignment for assemble_integer for DW_EH_PE_aligned.
6723         * except.c (output_function_exception_table): Likewise.
6724
6725 2001-08-26  Andreas Jaeger  <aj@suse.de>
6726
6727         * c-tree.h: Add prototyp for c_sizeof_nowarn.
6728
6729 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
6730
6731         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
6732
6733 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
6734
6735         * config/rs6000/rs6000.c (mask_operand): Rewrite without
6736         bit-shifting loop.
6737         (mask64_operand): Likewise.
6738         (rldic_operand): Delete.
6739         (includes_lshift64_p): Delete.
6740         (includes_rldic_lshift_p): New function.
6741         (includes_rldicr_lshift_p): New function.
6742         (print_operand): Don't call rldic_operand in case 'W'.
6743         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
6744         (includes_lshift64_p): Remove.
6745         (includes_rldic_lshift_p): Declare.
6746         (includes_rldicr_lshift_p): Declare.
6747         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
6748         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
6749         Replace match_operand rldic_operand predicate with
6750         const_int_operand.  Replace includes_lshift64_p condition with
6751         includes_rldic_lshift_p.
6752         <ashldi3_internal 64 bit rldicr patterns>: New.
6753
6754 2001-08-27  Andreas Jaeger  <aj@suse.de>
6755
6756         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
6757         * errors.c: Likewise.
6758         * final.c: Likewise.
6759         * dwarf2asm.c: Likewise.
6760         * doprint.c (checkit): Likewise.
6761         * diagnostic.c: Likewise.
6762         * collect2.c: Likewise.
6763         * calls.c: Likewise.
6764         * c-semantics.c (build_stmt): Likewise.
6765         * c-format.c (status_warning): Likewise.
6766         * c-errors.c (pedwarn_c99): Likewise.
6767         * builtins.c (validate_arglist): Likewise.
6768         * config/pj/pj.c (pj_printf): Likewise.
6769         * fix-header.c: Likewise.
6770         * gcc.c: Likewise.
6771         * gcov.c (fnotice): Likewise.
6772         * gensupport.c (message_with_line): Likewise.
6773         * mips-tfile.c: Likewise.
6774         * protoize.c (notice): Likewise.
6775         * read-rtl.c (fatal_with_file_and_line): Likewise.
6776         * rtl-error.c: Likewise.
6777         * tradcpp.c: Likewise.
6778         * tree.c: Likewise.
6779         * cp/tree.c (build_min_nt): Likewise.
6780         (build_min): Likewise.
6781         * cp/lex.c: Likewise.
6782         * cp/errfn.c: Likewise.
6783         * cp/rtti.c (create_pseudo_type_info): Likewise.
6784
6785 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
6786
6787         * df.c (df_uses_record): Return after recording all uses
6788         in ASM_OPERANDS.
6789
6790 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
6791
6792         * df.c (df_insn_modify): Realloc the INSN table here, if
6793         necessary, here, too.
6794
6795 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
6796
6797         * config/mips/mips.c (mips_function_value): Handle complex return
6798         values.
6799
6800 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
6801
6802         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
6803         unshared.
6804         * reload.c (make_memloc): Copy result if it is still
6805         reg_equiv_memory_loc[regno] on return.
6806         (subst_reloads) [ENABLE_CHECKING]: Check that none of
6807         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
6808         reg_equiv_mem are modified by the substitutions.
6809
6810 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
6811
6812         * predict.c (expensive_function_p): New.
6813         * rtl.h (expensive_function_p): Declare.
6814         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
6815         (use_fast_prologue_epilogue): New static variable.
6816         (expand_prologue): Set it; emit short prologues if unset.
6817         (expand_epilogue): Likewise.
6818
6819 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
6820
6821         * config.gcc: Add stormy16-*-elf case.
6822         * config/stormy16/stormy-abi: New file.
6823         * config/stormy16/stormy16-lib2.c: New file.
6824         * config/stormy16/stormy16-protos.h: New file.
6825         * config/stormy16/stormy16.c: New file.
6826         * config/stormy16/stormy16.h: New file.
6827         * config/stormy16/stormy16.md: New file.
6828         * config/stormy16/t-stormy16: New file.
6829
6830 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
6831
6832         * i386.h (no-accumulate-outgoing-args): Use proper mask.
6833
6834 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
6835
6836         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
6837         descriptor members are pointer size, not constant 4.
6838         * config/rs6000/rs6000.md (define_splits): Remove more unused
6839         constraints.
6840
6841 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6842
6843         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
6844
6845 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
6846
6847         * cp/rtti.c (VPARAMS): Fix parameter.
6848
6849 2001-08-24  Zack Weinberg  <zackw@panix.com>
6850
6851         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
6852         to zero.
6853         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
6854         to switch.
6855         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
6856         in if controlling use of insv.
6857         (extract_bit_field): Likewise, for extv and extzv.
6858
6859 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
6860
6861         * i386.md (movcc peep2): Fix load of 0.
6862
6863 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6864
6865         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
6866         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
6867
6868 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
6869
6870         * c-pragma.h: Move weak_syms and weak_decls...
6871         * varasm.c: ...here.  Now static.
6872         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
6873         depend on HANDLE_PRAGMA_WEAK.
6874
6875         * c-common.c (c_alignof, c_alignof_expr): Move here...
6876         * c-typeck.c: ...from here.
6877         * c-tree.h, c-common.h: Adjust.
6878
6879 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
6880
6881         * config/ia64/ia64.c (rws_update): If !pred, set write_count
6882         instead of incrementing it.
6883
6884         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
6885         asm ready, don't try to move them all into the same array element.
6886
6887 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
6888
6889         * function.c (thread_prologue_and_epilogue_insns): Avoid
6890         fallthru flag on edge to exit.
6891
6892         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
6893
6894         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
6895         dead edges.
6896
6897 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
6898
6899         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
6900         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
6901         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
6902         Remove prototype.
6903
6904 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
6905
6906         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
6907         replace "GNU CC" with "GCC".
6908
6909 2001-08-23  Richard Henderson  <rth@redhat.com>
6910
6911         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
6912         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
6913         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
6914         Need GR between FR and not GR_AND_FR.
6915         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
6916         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
6917         AR regs before GR regs.
6918         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
6919         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
6920         (REGISTER_MOVE_COST): Update.
6921         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
6922
6923 2001-08-23  Richard Henderson  <rth@redhat.com>
6924
6925         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
6926         a register class.
6927
6928 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
6929
6930         * reload1.c (emit_reload_insns): Don't look for notes
6931         on a NULL store_insn.
6932
6933 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6934
6935         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
6936         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
6937         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
6938         format specifier warnings.
6939         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
6940
6941 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
6942
6943         * config/i386/i386-protos.h: Correct declaration of
6944         i386_pe_asm_named_section.
6945
6946 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6947
6948         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
6949         variable i.
6950         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
6951
6952 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
6953
6954         * cpperror.c (print_location): Don't show _Pragma.
6955         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
6956         and file change callback generation here.
6957         (stack_include_file): Update use of cpp_push_buffer.
6958         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
6959         (struct cpp_buffer): Remove type, pfile members.
6960         * cppinit.c (cpp_handle_option): Use free_chain.
6961         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
6962         (skip_escaped_newlines, get_effective_char, lex_percent): Take
6963         a cpp_reader rather than a cpp_buffer.
6964         (skip_escaped_newlines, get_effective_char, skip_block_comment,
6965         skip_line_comment, parse_string, lex_percent, lex_dot,
6966         _cpp_lex_token): Update accordingly.
6967         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
6968         generation here.
6969         (cpp_push_buffer): Update prototype.
6970         (run_directive): Update use of cpp_push_buffer.
6971         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
6972         handle_assertion): Update use of run_directive.
6973         * cpplib.h (enum cpp_buffer_type): Remove.
6974         (cpp_push_buffer): Update prototype.
6975         * fix-header.c (read_scan_file): Update.
6976
6977 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6978
6979         * gcc.c (struct prefix_list): Change prefix to const char *.
6980
6981 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6982
6983         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
6984
6985 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
6986
6987         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
6988         from a new MEM.
6989
6990         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
6991         a squeezable note.
6992         * rtl.h: Adjust.
6993         * ifcvt.c (dead_or_predicable): Adjust.
6994         * loop.c (find_and_verify_loops): Adjust.
6995         * stmt.c (expand_end_case): Adjust.
6996         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
6997         head and end insn pointers in the basic block, not just local copies.
6998         (merge_blocks_move_predecessor_nojumps): Likewise.
6999
7000 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
7001
7002         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
7003         bitmap.h, builtin-types.def, builtins.c, builtins.def,
7004         c-aux-info.c, c-common.c, c-common.def, c-common.h,
7005         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
7006         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
7007         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
7008         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
7009         conditions.h, config.gcc, configure.frag, configure.in,
7010         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
7011         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
7012         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
7013         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
7014         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
7015         emit-rtl.c, errors.c, errors.h, except.c, except.h,
7016         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
7017         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
7018         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
7019         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
7020         gencheck.c, gencodes.c, genconfig.c, genemit.c,
7021         genextract.c, genflags.c, gengenrtl.c, genmultilib,
7022         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
7023         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
7024         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
7025         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
7026         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
7027         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
7028         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
7029         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
7030         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
7031         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
7032         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
7033         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
7034         params.h, predict.c, predict.def, predict.h, prefix.c,
7035         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
7036         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
7037         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
7038         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
7039         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
7040         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
7041         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
7042         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
7043         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
7044         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
7045         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
7046         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
7047         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
7048         xcoffout.h: replace "GNU CC" with "GCC".
7049
7050 2001-08-21  Richard Henderson  <rth@redhat.com>
7051
7052         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
7053         (final_scan_insn): Consider jump tables data even if we have no
7054         independent text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
7055         ADDR_VEC_ALIGN.
7056         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
7057         (ASM_OUTPUT_CASE_END): Remove.
7058         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
7059         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
7060         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
7061
7062 2001-08-21  Richard Henderson  <rth@redhat.com>
7063
7064         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
7065         at barrier insns.  Emit stop bits before barriers.
7066
7067         * flow.c (flow_find_cross_jump): Don't consider unconditional
7068         return insns for commoning.
7069
7070         * final.c (compute_alignments): Fix typo.
7071
7072         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
7073         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
7074         (store_bit_field): Use mode_for_extraction more places.
7075         (extract_bit_field): Likewise.
7076
7077 2001-08-21  Zack Weinberg  <zackw@panix.com>
7078
7079         * caller-save.c: Don't include insn-codes.h.
7080         (reg_save_code, reg_restore_code): Make arrays of int.
7081         All uses updated to match.
7082         (insert_save, insert_restore): No need to initialize "code"
7083         variable upon declaration.
7084         * Makefile.in: update dependencies; fix typo in clean rule.
7085
7086 2001-08-21  Richard Henderson  <rth@redhat.com>
7087
7088         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
7089         (merge_if_block): Handle fallout from same.
7090
7091 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7092
7093         * builtins.c (type_to_class): Fix typo in last change.
7094
7095 2001-08-21  Richard Henderson  <rth@redhat.com>
7096
7097         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
7098         ia64_asm_output_label.
7099
7100         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
7101         copy of gp while the real gp register contains garbage.
7102
7103 2001-08-21  Zack Weinberg  <zackw@panix.com>
7104
7105         * expmed.c (mode_for_extraction): New function.
7106         (store_bit_field, extract_bit_field): Use it.
7107         * expr.h: Prototype it and provide an enum for its first argument.
7108
7109         * combine.c, function.c, recog.c: Don't include insn-codes.h.
7110         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
7111         and digging through the insn_data tables.
7112         * Makefile.in: Update dependencies.
7113
7114 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7115
7116         * cppfiles.c (stack_include_file): line-map.c now handles include
7117         depth.
7118         (handle_missing_handler): Similarly.
7119         (_cpp_execute_include): Similarly.
7120         (_cpp_pop_file_buffer): Similarly.
7121         * cpphash.h (struct cpp_reader): Remove system_include_depth,
7122         buffer_stack_depth and include_depth.
7123         * cpplib.c (do_include_common): line-map.c now handles include depth.
7124         (cpp_push_buffer): Similarly.
7125         (_cpp_pop_buffer): Similarly.
7126         * cppmacro.c (builtin_macro): Update.
7127         * line-map.c (init_line_maps): Set depth.
7128         (add_line_map): Increment "used" earlier.  Update and use the
7129         include depth.
7130         (trace_include): Use the include depth.
7131         * line-map.h (struct line_maps): New member depth.
7132
7133 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7134
7135         * cppfiles.c (stack_include_file): Don't handle -H here.
7136         * cppinit.c (cpp_start_read): Set include tracing after
7137         cpp_post_options and after stacking the main file.
7138         * line-map.c (trace_include): New.
7139         (init_line_maps, add_line_map): Update.
7140         * line-map.h (struct line_maps): New member trace_includes.
7141
7142 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7143
7144         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
7145         * cppfiles.c (stack_include_file): Only stack a file if there
7146         is something to do.  Return a boolean indicating whether a
7147         buffer was stacked or not.
7148         (_cpp_execute_include): Similarly.
7149         (_cpp_read_file): Similarly.
7150         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
7151
7152 2001-08-21  Sam Steingold  <sds@gnu.org>
7153
7154         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
7155         (RECACHE): keep obufp_before_macroname up to date
7156
7157 2001-08-21  Zack Weinberg  <zackw@panix.com>
7158
7159         * stmt.c: Don't include insn-codes.h.
7160         (expand_end_case): Machine specific logic moved to expr.c.
7161         No need to worry about __builtin_classify_type.
7162         (check_for_full_enumeration_handling, emit_case_nodes):
7163         Kill #if 0 blocks.
7164
7165         * builtins.o (expand_builtin_classify_type): Split up so code
7166         can be shared with fold_builtin_classify_type.
7167         (type_to_class, fold_builtin_classify_type): New functions.
7168         (fold_builtins): Handle __builtin_classify_type.
7169
7170         * expr.c (do_tablejump): Now static.
7171         (case_values_threshold, try_casesi, try_tablejump): New;
7172         code mostly from stmt.c (expand_end_case).
7173         (expr.h): Update prototypes.
7174
7175         * Makefile.in (stmt.o): Update dependencies.
7176
7177 2001-08-21  Will Cohen  <wcohen@redhat.com>
7178
7179         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
7180         declaration of variable i.
7181         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
7182         declaration of variable i.
7183
7184 2001-08-21  Richard Henderson  <rth@redhat.com>
7185
7186         * crtstuff.c: Fix thinko last change.  Move list tails to start
7187         of CRT_END section.  Tidy ifdefs.
7188         (__EH_FRAME_BEGIN__): Always static for ELF.
7189         (__do_global_ctors_1): Rename from __frame_dummy.
7190         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
7191         name change; don't hide __EH_FRAME_BEGIN__.
7192
7193 2001-08-21  Richard Henderson  <rth@redhat.com>
7194
7195         * gdbinit.in: Move break on exit after break on fancy_abort.
7196
7197         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
7198         sized types.
7199
7200 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7201
7202         * cpphash.h (_cpp_push_next_buffer): New.
7203         * cppinit.c (do_includes): Remove.
7204         (push_include, free_chain, _cpp_push_next_buffer): New.
7205         (cpp_start_read): Use them to rework command line option handling.
7206         (cpp_handle_option): Combine handling of -include and -imacros.
7207         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
7208         appropriate.  Always insert missing \n at EOF.
7209         * cpplib.c (start_directive): Get the directive position right.
7210         * cppmain.c (cb_file_change): Always print the first line, unless
7211         preprocessed.
7212
7213 2001-08-20  Andreas Jaeger  <aj@suse.de>
7214
7215         * profile.c (compute_branch_probabilities): Remove extra new-line
7216         in error message.
7217         * flow.c (verify_flow_info): Likewise.
7218
7219 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
7220
7221         * basic-block.h (basic_block): Add new field 'flags'.
7222         (BB_REACHABLE): Define.
7223         (expunge_block): Declare.
7224         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
7225         (EXIT_BLOCK_PTR): Ditto.
7226         (expunge_block): Remove static declaration.
7227         (cleanup_cfg): Clear bb->aux on every basic block.
7228         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
7229         computing reachability.
7230         (delete_unreachable_blocks): Delete block b if b->flags has
7231         BB_REACHABLE unset.
7232
7233 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
7234
7235         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
7236
7237 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7238
7239         * sparc.c (sparc_variable_issue): Fix typo in last change.
7240
7241 2001-08-20  Richard Henderson  <rth@redhat.com>
7242
7243         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
7244
7245 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7246
7247         * pa.h (RETURN_IN_MEMORY): Improve comment.
7248
7249 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
7250
7251         * doc/invoke.texi (Profiling options): Clarify the interactions
7252         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
7253
7254 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
7255
7256         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
7257         command.
7258
7259 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7260
7261         * gcc.c (make_relative_prefix): Allocate a sufficiently large
7262         buffer.
7263
7264 2001-08-20  Richard Henderson  <rth@redhat.com>
7265
7266         * final.c (end_final): Fix typo last change.
7267
7268 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7269
7270         * cppinit.c (init_standard_includes): The returned buffer
7271         is already malloc-ed.
7272         * gcc.c (add_prefix): Similarly.
7273         * prefix.c (translate_name): Update to support clear buffer
7274         ownership rules.
7275         (update_path): Similarly.  Be sure to free any newly allocated
7276         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
7277         (tr): New function.
7278         * prefix.h (update_path): Update prototype and document.
7279         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
7280         up and update to new buffer ownership rules.
7281         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
7282
7283 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
7284
7285         * final.c (compute_alignments): New function.
7286         (init_insn_lengths): Do not care label_align.
7287         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
7288         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
7289         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
7290         (shorted_branches): Realloc label_align array; do
7291         not call init_insn_lengths; Do not care about loop alignments.
7292         * output.h (compute_alignments): Declare.
7293         * toplev.c (rest_of_compilation): Call compute_alignments.
7294         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
7295
7296         * predict.c (block_info_def): Add npredecesors, remove nvisited;
7297         change visited to tovisit.
7298         (propagate_freq): Use faster traversing algorithm.
7299         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
7300         to tovisit; reverse meaning.
7301
7302         * predict.c (struct block_info_def): Remove nvisited.
7303         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
7304         (estimate_bb_frequencies): Call mark_dfs_back_edges.
7305
7306 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
7307
7308         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
7309         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
7310         (TARGET_FUSED_MADD): New.
7311         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
7312         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
7313         the multiply-add instructions.
7314
7315 2001-08-19  Richard Henderson  <rth@redhat.com>
7316
7317         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
7318         is aligned to pointer size.
7319
7320 2001-08-19  Richard Henderson  <rth@redhat.com>
7321
7322         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
7323         display markers during final schedule.
7324
7325 2001-08-19  Richard Henderson  <rth@redhat.com>
7326
7327         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
7328
7329 2001-08-19  Richard Henderson  <rth@redhat.com>
7330
7331         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
7332         in the same string.
7333         (ASM_NAME_TO_STRING): Remove.
7334         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
7335         in the same string.  Remove support for expressions.
7336
7337 2001-08-19  Richard Henderson  <rth@redhat.com>
7338
7339         * config/i386/i386.md (tablejump): Make an expander; handle
7340         pic relative addressing here.
7341         (tablejump_1): Rename from tablejump_pic.
7342         (casesi): Remove.
7343
7344 2001-08-19  Richard Henderson  <rth@redhat.com>
7345
7346         * regclass.c (fix_register): Fix typo.
7347
7348 2001-08-18  Richard Henderson  <rth@redhat.com>
7349
7350         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
7351         (struct _Unwind_Context): Expand br_loc to hold it.
7352         (uw_frame_state_for): Handle leaf functions better.
7353         (uw_update_reg_address): Update for br_loc change.
7354
7355 2001-08-18  Richard Henderson  <rth@redhat.com>
7356
7357         * crtstuff.c: Move list heads before code that uses them.
7358         (__JCR_LIST__): Remove initial null.
7359         (frame_dummy, __frame_dummy): Do java registration here ...
7360         (__do_global_ctors_aux): ... not here.
7361
7362         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
7363         (__do_global_dtors_aux): Update to match.
7364         (__JCR_LIST__, __do_jv_register_classes): New.
7365         (.init): Call it.
7366         * config/ia64/crtend.asm (__JCR_END__): New.
7367         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
7368         instead of an indirect LTOFF22 reloc.
7369
7370 2001-08-18  Richard Henderson  <rth@redhat.com>
7371
7372         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
7373         * regclass.c (init_reg_sets_1): Fix typo.
7374         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
7375         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
7376         (ia64_compute_frame_size): Make ar.unat live when in use.
7377         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
7378         for ar.pfs; remove ar.unat handling.
7379         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
7380         call-saved.
7381         (PREDICATE_CODES): Add ar_pfs_reg_operand.
7382         * config/ia64/ia64-protos.h: Update decls.
7383         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
7384         (sibcall_pic): Likewise.
7385
7386 2001-08-18  Richard Henderson  <rth@redhat.com>
7387
7388         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
7389         pred_rel_mutex when searching for insn_group_barrier.
7390         * config/ia64/ia64.md (cycle_display): Combine the expander
7391         and insn patterns.
7392
7393         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
7394         bit before asm as needed.
7395
7396 2001-08-18  Richard Henderson  <rth@redhat.com>
7397
7398         * timevar.def (TV_MACH_DEP): New.
7399         * toplev.c (rest_of_compilation): Use it.
7400         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
7401
7402 2001-08-18  Zack Weinberg  <zackw@panix.com>
7403
7404         * unwind-dw2.c (execute_stack_op): Add default aborts to
7405         the inner switches to prevent warnings.
7406
7407 2001-08-18  Richard Henderson  <rth@redhat.com>
7408
7409         * timevar.h (struct timevar_time_def): Change element type to float.
7410         (ticks_to_msec, clocks_to_msec): Likewise.
7411         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
7412         (get_time): Likewise.
7413         (timevar_print): Adjust zero check and printing to match.
7414
7415 2001-08-18  Zack Weinberg  <zackw@panix.com>
7416
7417         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
7418         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
7419         Eliminate overfull or underfull hboxes.
7420
7421 2001-08-18  Zack Weinberg  <zackw@panix.com>
7422
7423         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
7424
7425 2001-08-18  Zack Weinberg  <zackw@panix.com>
7426
7427         * haifa-sched.c: Convert to target hooks.  Macros replaced
7428         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
7429         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
7430         MD_SCHED_FINISH, and HAVE_cycle_display.
7431         * target-def.h (TARGET_SCHED_ADJUST_COST,
7432         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
7433         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
7434         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
7435         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
7436         New hook #defines to be overridden.
7437         (TARGET_SCHED): Bring them all together.
7438         (TARGET_INITIALIZER): Update.
7439         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
7440         instead of 'struct rtx_def *' throughout.
7441         (struct sched): New set of hooks for the scheduler.
7442         * Makefile.in (haifa-sched.o): Depend on target.h.
7443         * doc/tm.texi: Document the new scheduler hooks, together in
7444         their own section, instead of scattered around.
7445         Fix a bunch of underfull/overfull hboxes.
7446
7447         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
7448         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
7449         sparc.h: Don't define any of the old scheduler macros.
7450
7451         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
7452         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
7453         sparc.c: Create hook functions from code extracted from
7454         corresponding target header, or make existing hooks static, as
7455         appropriate.  Set the appropriate entries in targetm.
7456
7457         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
7458         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
7459         rs6000-protos.h, s390-protos.h, sparc-protos.h:
7460         Remove prototypes for functions which are now static.
7461
7462         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
7463         related gunk; the Haifa scheduler is now the only choice.
7464
7465 2001-08-18  Zack Weinberg  <zackw@panix.com>
7466
7467         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
7468         * genopinit.c: Put floating point divide insns in sdiv_optab.
7469         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
7470         * config/gofast.h, config/c4x/c4x.h,
7471         config/ia64/hpux_longdouble.h, config/mips/mips.h,
7472         config/pa/long_double.h, config/rs6000/sysv4.h,
7473         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
7474         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
7475         (init_optabs): Use init_optabv for overflow-trapping optabs.
7476         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
7477         cmp_optab RTX codes so have_insn_for can find them.
7478
7479         * optabs.c (expand_simple_binop, expand_simple_unop,
7480         have_insn_for, gen_sub3_insn): New interfaces.
7481         * expr.h: Prototype new functions.
7482         (enum optab_methods): Move here from optabs.h.
7483
7484         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
7485         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
7486         Use new functions instead of working directly with optabs.
7487         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
7488         unroll.c: Don't include optabs.h.
7489         * caller-save.c, combine.c, function.c, stmt.c: Just include
7490         insn-codes.h, not optabs.h.
7491         * Makefile.in: Update dependencies.
7492
7493         * combine.c (make_compound_operation, simplify_comparison):
7494         Fix typos testing for this or that instruction.
7495
7496 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
7497
7498         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
7499         generating libgcc.a.
7500
7501 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7502
7503         * except.c (TYPE_HASH): Delete.
7504
7505         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
7506         HOST_WIDE_INT.
7507
7508         * tree.c (TYPE_HASH): Delete.
7509
7510         * tree.h (TYPE_HASH): Define.
7511
7512 2001-08-18  Graham Stott  <grahams@redhat.com>
7513
7514         * config/mips/mips.md (adddi3_internal_2+1): Remove constraints from
7515         define_split.
7516         (adddi3_internal_2+2): Likewise.
7517         (eh_set_lr_di+1): Likewise.
7518
7519 2001-08-17  Richard Henderson  <rth@redhat.com>
7520
7521         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7522         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
7523         * dwarf2asm.c: ... here.
7524         * dwarfout.c: Remove them.
7525
7526         * varasm.c (assemble_integer): Add align parameter.
7527         (assemble_real, output_constant, output_constructor): Likewise.
7528         * output.h: Update decls.
7529         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
7530         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
7531         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
7532         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
7533         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
7534         Update all callers.
7535
7536         * final.c (end_final): Abort profile block generation if we
7537         havn't layed it out properly.
7538         * output.h (assemble_eh_integer): Remove stale decl.
7539         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
7540         (min_align): New.
7541         (assemble_integer): Handle unaligned data.
7542         (assemble_real): Abort on unaligned data.
7543         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
7544         anything useful.
7545         (default_dtor_section_asm_out_destructor): Use assemble_align.
7546         (default_named_section_asm_out_constructor): Likewise.
7547         (default_ctor_section_asm_out_constructor): Likewise.
7548         * config/darwin.c (machopic_asm_out_constructor): Likewise.
7549         (machopic_asm_out_destructor): Likewise.
7550         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
7551         (nextstep_asm_out_destructor): Likewise.
7552         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
7553         (vms_asm_out_destructor): Likewise.
7554
7555 2001-08-17  Richard Henderson  <rth@redhat.com>
7556
7557         * config/mips/iris6.h (TARGET_IRIX6): New.
7558         (current_section_name, current_section_flags): New.
7559         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
7560         (MAX_OFILE_ALIGNMENT): New.
7561         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
7562         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
7563         (copy_file_data): Split out from
7564         (mips_asm_file_end): ... here.
7565         (mips_asm_file_start): Remove extra .section directive.  Use
7566         tmpfile instead of mips_make_temp_file.
7567         (mips_unique_section): Use const char * as needed for warnings.
7568         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
7569         re-add align parameter.
7570         (iris6_asm_named_section): New.
7571         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
7572         (iris6_asm_output_align, iris6_section_align_1): New.
7573         (iris6_asm_file_start, iris6_asm_file_end): New.
7574         * config/mips/mips-protos.h: Update decls.
7575
7576 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
7577
7578         * doc/install.texi (Install GCC): Add links to build status pages.
7579         (Specific): Ditto.
7580         (Final install): Ditto; request updates for specific info
7581
7582 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7583
7584         * cpperror.c (print_location):  Don't take a file name; use the
7585         line map instead.
7586         (_cpp_begin_message): Similarly.
7587         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
7588         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
7589         (cpp_pedwarn_with_file_and_line): Remove.
7590         * cppfiles.c (stack_include_file): Update; set filename to stdin
7591         here when appropriate.
7592         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
7593         (_cpp_begin_message): Don't take a file name.
7594         * cppinit.c: Add comment.
7595         * cpplex.c: Fix end-of-directive indicator.
7596         * cpplib.c: Don't include intl.h.
7597         (run_directive, do_diagnostic): Update.
7598         (do_line): Update to not use nominal_fname.
7599         (cpp_push_buffer): Don't take a filename.
7600         * cpplib.h (struct ht): Remove.
7601         (cpp_push_buffer): Don't take a filename.
7602         (cpp_pedwarn_with_file_and_line): Remove.
7603         * cppmacro.c (struct cpp_macro): Remove file.
7604         (builtin_macro): Update.
7605         (_cpp_create_definition): Update.
7606         * cppmain.c: Correct comment.
7607         * fix-header.c (read_scan_file): Update.
7608
7609 2001-08-17  Kazu Hirata  <kazu@hxi.com>
7610
7611         * sbitmap.c: Fix comment formatting.
7612         * sched-deps.c: Likewise.
7613         * sibcall.c: Likewise.
7614         * simplify-rtx.c: Likewise.
7615         * ssa.c: Likewise.
7616         * ssa-ccp.c: Likewise.
7617         * stor-layout.c: Likewise.
7618         * timevar.c: Likewise.
7619         * toplev.c: Likewise.
7620         * unwind-dw2.c: Likewise.
7621         * unwind-dw2-fde.c: Likewise.
7622         * varasm.c: Likewise.
7623
7624 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7625
7626         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
7627         or larger than an integer in memory.
7628
7629 2001-08-17  Zack Weinberg  <zackw@panix.com>
7630
7631         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
7632         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
7633         * rtl.h: Don't forward-declare union tree_node here.  Don't
7634         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
7635         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
7636         and tree respectively.
7637         * tree.h: Don't forward-declare struct rtx_def here.  Don't
7638         typedef tree here.  Change all uses of struct rtx_def *,
7639         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
7640         and tree respectively.
7641
7642 2001-08-17  Richard Henderson  <rth@redhat.com>
7643
7644         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
7645         config/mips/openbsd.h: Fix typos last change.
7646
7647 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7648
7649         * doc/invoke.texi (Optimize Options): The default for
7650         -finline-limit is 600.
7651
7652 2001-08-17  Richard Henderson  <rth@redhat.com>
7653
7654         * varasm.c (text_section): Allow TEXT_SECTION to override the
7655         printing of TEXT_SECTION_ASM_OP.
7656         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
7657         (DATA_SECTION, BSS_SECTION): Remove.
7658         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
7659         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
7660         Rename from s/_NAME//.
7661         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
7662         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
7663         (TEXT_SECTION): ... here.  New.
7664         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
7665         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
7666         * config/mips/openbsd.h: Likewise.
7667         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
7668         (mips_asm_file_end): Likewise test.
7669         (mips_output_function_epilogue): Likewise.  Switch back to data
7670         section after emitting the function.
7671
7672         * doc/tm.texi (Sections): Document TEXT_SECTION.
7673
7674 2001-08-17  Richard Henderson  <rth@redhat.com>
7675
7676         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
7677         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
7678
7679 2001-08-17  Richard Henderson  <rth@redhat.com>
7680
7681         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
7682         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
7683         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
7684         Add aligned attribute.
7685
7686 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
7687
7688         * config/sh/sh.md: Add modes to unspecs in first insn to match
7689         those in the second.
7690
7691         * Makefile.in: Fix collect2 copy for Cygwin.
7692
7693 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
7694
7695         Install the proper patch.
7696         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
7697         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
7698         (expand_function_start): Likewise.
7699         * stmt.c (expand_decl): Likewise.
7700         * varasm.c (make_decl_rtx): Likewise.
7701
7702 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
7703
7704         * final.c: Undo my previous accidental checkin.
7705         * output.h: Likewise.
7706         * tm.texi: Likewise.
7707
7708 2001-08-16  Richard Henderson  <rth@redhat.com>
7709
7710         * varasm.c (named_section_flags): Remove align parameter.
7711         * varasm.c, dwarf2out.c: Update all callers.
7712         * output.h: Update prototypes.
7713
7714         * target.h (target.asm_out.named_section): Remove align parameter.
7715         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
7716         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
7717         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
7718         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
7719         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
7720
7721         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
7722         (get_named_section_flags, set_named_section_flags): New.
7723         (named_section_flags): Use them.
7724         (named_section): Do decl vs section flags check here...
7725         (default_section_type_flags): ... not here.
7726         (init_varasm_once): Create in_named_htab.
7727         (resolve_unique_section): Mark reloc unused.
7728
7729 2001-08-16  Richard Henderson  <rth@redhat.com>
7730
7731         * varasm.c (force_const_mem): Keep pool alignment in bits.
7732         (output_constant_pool): Use assemble_align.
7733
7734 2001-08-16  Zack Weinberg  <zackw@panix.com>
7735
7736         * doc/tm.texi: Remove extra @table command.
7737
7738 2001-08-16  Zack Weinberg  <zackw@panix.com>
7739
7740         * final.c (shorten_branches): Clear the end of the label_align
7741         array only if we made it larger.  Break up messy expressions
7742         for clarity.
7743
7744         * diagnostic.c (internal_error): Check for error recursion
7745         before doing ICE suppression.
7746
7747         * timevar.c: Timing variables now count in milliseconds.
7748         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
7749         (get_time): Not here.
7750         (timevar_print): Don't print any timer whose user, cpu, and
7751         wall times are all zero as displayed.
7752         * timevar.h: Update comment aboout units.  Make timevar
7753         counters unsigned.
7754
7755 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
7756
7757         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
7758         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
7759         (expand_function_start): Likewise.
7760         * stmt.c (expand_decl): Likewise.
7761         * varasm.c (make_decl_rtx): Likewise.
7762
7763 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
7764
7765         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
7766         (finalize_record_size): Don't set TYPE_USER_ALIGN.
7767
7768 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7769
7770         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
7771         variables.
7772
7773 2001-08-16  Andreas Jaeger  <aj@suse.de>
7774
7775         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
7776         prototype.
7777
7778 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
7779
7780         * rtl.h (only_sets_cc0_p): New prototype.
7781         * jump.c (sets_cc0_p): Handle INSN.
7782         (only_sets_cc0_p): New function.
7783         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
7784         (tidy_fallthru_edge): Likewise.
7785         * integrate.c (copy_insn_list): Likewise.
7786         * unroll.c (unroll_loop): Likewise.
7787         (copy_loop_body): Likewise.
7788
7789 2001-08-15  Jason Eckhardt  <jle@redhat.com>
7790
7791         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
7792
7793 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
7794
7795         * predict.c (struct block_info_def): Remove nvisited.
7796         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
7797         (estimate_bb_frequencies): Call mark_dfs_back_edges.
7798
7799         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
7800         (ix86_adjust_cost): Teach scheduler that latency to load operand can
7801         be masked.
7802
7803 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
7804
7805         * predict.def: Update hitrates.
7806
7807 2001-08-15  Richard Henderson  <rth@redhat.com>
7808
7809         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
7810
7811 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
7812
7813         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
7814         note from its associated jump.
7815
7816 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
7817
7818         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
7819         also on 64-bit s390x targets.
7820
7821 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
7822
7823         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
7824         function.
7825         (arm_expand_prologue): Handled nested functions which take a
7826         variable argument list.
7827         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
7828         macro with an invocation of
7829         arm_compute_initial_elimination_offset.
7830         * config/arm/arm-protos.h: Prototype
7831         arm_compute_initial_elimination_offset.
7832
7833 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7834
7835         * doc/install.texi (Specific, avr): Fix markup.
7836         (Specific, c4x): Ditto.
7837
7838 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7839
7840         * predict.c (dump_prediction): Change `bool' parameter to `int'.
7841
7842 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
7843
7844         * Makefile.in (OBJS): Add rtl-error.o
7845         (rtl-error.o): New rule.
7846         (diagnostic.o): Adjust dependency.
7847         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
7848         error_for_asm, _fatal_insn, _fatal_insn_not_found,
7849         warning_for_asm): Move to...
7850         rtl-error.c: ...here.  New file.
7851
7852 2001-08-14  Richard Henderson  <rth@redhat.com>
7853
7854         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
7855         if USING_SJLJ_EXCEPTIONS.
7856
7857 2001-08-14  Steve Ellcey <sje@cup.hp.com>
7858
7859         * tlink.c (scan_linker_output): Check string for unsatisfied in
7860         addition to undefined and unresolved.
7861
7862 2001-08-14  Graham Stott  <grahams@redhat.com>
7863
7864         * libgcc2.c (*): Replace EH_FRAME_SECTION with
7865         EH_FRAME_SECTION_NAME.
7866
7867 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
7868
7869         * genattrtab.c (simplify_test_exp_in_temp): New function.
7870         (simplify_test_exp): Avoid explicit use of temporary obstack.
7871         (simplify_cond, insert_right_side, evaluate_eq_attr,
7872         simplify_and_tree, simplify_or_tree, eliminate_known_true):
7873         Use simplify_test_exp_in_temp.
7874         (optimize_attrs): Iterate until expression stabilizes.
7875
7876 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
7877
7878         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
7879         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
7880
7881 2001-08-13  Richard Henderson  <rth@redhat.com>
7882
7883         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
7884         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
7885         * config/arm/conix-elf.h: Likewise.
7886
7887 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
7888
7889         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
7890         in gcc.c.
7891         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7892
7893         * gcse.c (hash_scan_set): Expressions that are set as part of
7894         jump instructions are not available.
7895
7896 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
7897
7898         * config/s390/s390.c (print_operand, s390_function_prologue,
7899         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
7900
7901 2001-08-13  Richard Henderson  <rth@redhat.com>
7902
7903         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
7904         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
7905         * doc/tm.texi (Exception Region Output): Document it.
7906
7907 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
7908
7909         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
7910         DWARF2 instead of stabs by default.
7911
7912 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
7913
7914         * config/rs6000/rs6000.c: Include optabs.h.
7915
7916 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
7917
7918         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
7919         save/restore routines.
7920         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
7921
7922 2001-08-13  Andreas Jaeger  <aj@suse.de>
7923
7924         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
7925         the english is correct.
7926
7927 2001-08-13  Zack Weinberg  <zackw@panix.com>
7928
7929         * expr.h: Split out optab- and libfunc-related code to...
7930         * optabs.h, libfuncs.h: ... these new headers.
7931
7932         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
7933         (OPTABS_H): New.
7934         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
7935         dependencies.
7936         * mkconfig.sh: Don't include insn-codes.h from config.h.
7937
7938         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
7939         enum insn_code is available.  Move reload_in_optab and
7940         reload_out_optab array declarations to optabs.h.
7941         * regmove.c (gen_add3_insn): Move to optabs.c, export from
7942         there, prototype in expr.h.
7943         * gencodes.c: Cleanup: zap global variables, don't use
7944         printf where puts will do, don't bother defining MAX_INSN_CODE
7945         which nothing uses, let CODE_FOR_nothing get its value implicitly.
7946
7947         * genemit.c, genopinit.c: Include optabs.h in generated file.
7948         * genoutput.c: Include insn-codes.h in generated file.
7949         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
7950         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
7951         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
7952         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
7953         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
7954         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
7955         Include optabs.h.
7956         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
7957         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
7958         config/m88k/m88k.c, config/sparc/sparc.c:
7959         Include libfuncs.h.
7960         * reload.c: Include expr.h and optabs.h before reload.h.
7961         * config/alpha/alpha.c: Include tree.h before reload.h.
7962         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
7963         and reload.h in that order.
7964         * config/sparc/sparc.c: Include debug.h.
7965         * recog.c: Include insn-codes.h.
7966
7967 2001-08-13  Andreas Jaeger  <aj@suse.de>
7968
7969         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
7970         s390*linux.
7971
7972 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7973
7974         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
7975         * gcc.c (init_spec): Fix typo in comment.
7976         * varasm.c (data_section): Fix typo in comment.
7977
7978 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
7979
7980         * predict.c (dump_prediction): New argument "USED".
7981         (combine_predictions_for_insn): Determine the used heuristics,
7982         output the case no heuristic applied.
7983         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
7984
7985 2001-08-13  Andreas Jaeger  <aj@suse.de>
7986
7987         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
7988         register %rip.
7989
7990 2001-08-13  Kazu Hirata  <kazu@hxi.com>
7991
7992         * jump.c: Fix formatting.
7993
7994 2001-08-13  Kazu Hirata  <kazu@hxi.com>
7995
7996         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
7997         length.
7998
7999 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
8000
8001         * loop.c (check_dbra_loop): Use condjump_label to compute
8002         jump_label.
8003
8004         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
8005         to better document the files they're in.
8006
8007 2001-08-12  Zack Weinberg  <zackw@panix.com>
8008
8009         * recog.h (struct insn_operand_data): Shrink 'mode' field
8010         to 16 bits.
8011
8012 2001-08-12  Kazu Hirata  <kazu@hxi.com>
8013
8014         * gcc.c: Fix comment formatting.
8015         * gccspec.c: Likewise.
8016         * gcov.c: Likewise.
8017         * gcse.c: Likewise.
8018         * genemit.c: Likewise.
8019         * gengenrtl.c: Likewise.
8020         * genrecog.c: Likewise.
8021         * gensupport.c: Likewise.
8022         * ggc-page.c: Likewise.
8023         * global.c: Likewise.
8024         * graph.c: Likewise.
8025         * ifcvt.c: Likewise.
8026         * integrate.c: Likewise.
8027         * lcm.c: Likewise.
8028         * libgcc2.c: Likewise.
8029         * loop.c: Likewise.
8030         * mbchar.c: Likewise.
8031         * optabs.c: Likewise.
8032         * predict.c: Likewise.
8033         * prefix.c: Likewise.
8034         * profile.c: Likewise.
8035         * protoize.c: Likewise.
8036         * real.c: Likewise.
8037         * recog.c: Likewise.
8038         * regclass.c: Likewise.
8039         * regmove.c: Likewise.
8040         * reg-stack.c: Likewise.
8041         * reload1.c: Likewise.
8042         * resource.c: Likewise.
8043         * rtlanal.c: Likewise.
8044         * rtl.c: Likewise.
8045
8046 2001-08-12  Kazu Hirata  <kazu@hxi.com>
8047
8048         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
8049         a tree representing a constant is passed to the macro.
8050
8051 2001-08-12  Richard Henderson  <rth@redhat.com>
8052
8053         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
8054         (rs6000_elf_asm_out_destructor): New.
8055         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
8056         (DTORS_SECTION_ASM_OP): Remove.
8057         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8058         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
8059
8060 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
8061
8062         Revert:
8063         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8064         * gcc.c (set_collect_gcc_options): New function, split out from
8065         main.
8066         Ignore elided switches.
8067         (do_spec_1): Invoke before executing command.
8068         (set_input): Export.
8069         Move declaration ...
8070         * gcc.h (set_input): ... here.
8071         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
8072         file.
8073
8074 2001-08-12  Richard Henderson  <rth@redhat.com>
8075
8076         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
8077         thinko wrt TARGET_RELOCATABLE.
8078
8079 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
8080
8081         * fix-header.c (cb_file_change): Update prototype.
8082
8083 2001-08-11  Zack Weinberg  <zackw@panix.com>
8084
8085         * toplev.c (set_float_handler): Make static.
8086         * toplev.h: Don't prototype set_float_handler.
8087
8088         * simplify-rtx.c: Don't include setjmp.h.
8089         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
8090         New functions.
8091         (simplify_unary_operation, simplify_binary_operation): Use them,
8092         via do_float_handler.
8093
8094         * fold-const.c: Don't include setjmp.h.
8095         (exact_real_inverse_1): New function.
8096         (exact_real_inverse): Use it, via do_float_handler.
8097
8098         * varasm.c: Don't include setjmp.h.
8099         (assemble_real_1): New function.
8100         (assemble_real): Use it, via do_float_handler.
8101         Call internal_error if we get a trap here.
8102
8103         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
8104         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
8105
8106 2001-08-11  Zack Weinberg  <zackw@panix.com>
8107
8108         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
8109         STACK_BOUNDARY if not already defined.
8110
8111         * calls.c, function.c, reload1.c, explow.c: Don't default
8112         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
8113         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
8114
8115         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
8116         to run-time test.
8117
8118         * doc/tm.texi: Document that STACK_BOUNDARY is required;
8119         clarify difference between it and PREFERRED_STACK_BOUNDARY.
8120
8121 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8122
8123         * cppmacro.c (enter_macro_context): Push macro expansions even
8124         if empty.
8125
8126 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8127
8128         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
8129         (rs6000_elf_section_type_flags): Actually return a value.
8130
8131 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
8132
8133         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
8134         Clean up code: add missing comments and prototypes, fix warnings,
8135         remove obsolete code, fix spacing to conform to coding style.
8136
8137 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
8138
8139         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
8140         and TARGET_ASM_CLOSE_PAREN.
8141         (regclass_map): CC register belongs to class NO_REGS.
8142         (legitimize_pic_address): Don't generate unnecessary moves
8143         (to avoid confusing loop optimization).
8144         (check_and_change_labels): Replace jump_long by indirect_jump.
8145         (s390_final_chunkify): Don't start a new literal pool on section
8146         switch in 64-bit code.
8147         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
8148
8149         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
8150         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
8151         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
8152         modes correctly.
8153         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
8154         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
8155         (CONST_COSTS): Fixed incorrect costs.
8156
8157         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
8158         Use emit_jump instead of emit_jump_insn (gen_jump).
8159         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
8160         (to avoid confusing flow analysis).
8161         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
8162         (casesi, casesi_jump): New.
8163         (jump_long): Removed.  Functionality merged into indirect_jump.
8164         (indirect_jump): Accept address_operand, not just register_operand.
8165         (cjump_long, icjump_long): Use same logic as indirect_jump.
8166         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
8167         Fixed broken setjmp/longjmp handling.
8168         (do_builtin_setjmp_setup): Removed.
8169
8170         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
8171         broken GNU as versions that don't accept .quad with large
8172         negative values.  Use hexadecimal output instead.
8173         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
8174         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
8175         FUNCTION_EPILOGUE): Removed.  Now in targetm.
8176
8177         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
8178
8179         * config/s390/fixdfdi.h: Add missing copyright statement.
8180         Fix type conflicts on 64-bit.  Add missing SFmode routines.
8181
8182         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
8183         email address.
8184
8185 2001-08-11  Richard Henderson  <rth@redhat.com>
8186
8187         * rtl.h (REG_EH_RETHROW): Remove.
8188         * rtl.c (reg_note_name): Update.
8189         * combine.c (distribute_notes): Don't check for it.
8190
8191 2001-08-11  Richard Henderson  <rth@redhat.com>
8192
8193         * combine.c (distribute_notes): Place REG_SETJMP.
8194
8195 2001-08-11  Richard Henderson  <rth@redhat.com>
8196
8197         * doc/extend.texi (Arrays and pointers implementation): Discourage
8198         relying on sign-extension of pointers.
8199
8200 2001-08-11  H.J. Lu <hjl@gnu.org>
8201
8202         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
8203         in_dtors.
8204         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
8205         RDATA_SECTION_ASM_OP.
8206
8207 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8208
8209         * doc/install.texi (Specific, c4x): Fix cross-reference to the
8210         main manual to work both for info and HTML versions.
8211
8212 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8213             Matt Kraai <kraai@alumni.carnegiemellon.edu>
8214
8215         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
8216         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
8217         (struct cpp_pool): New member first.
8218         * cppinit.c (append_include_chain): Plug memory leaks.
8219         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
8220         Allocate pragma structures from the (aligned) macro pool to
8221         avoid leaking memory.
8222         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
8223         so we don't leak memory.
8224         * hashtable.c (ht_destroy): New.
8225         * hashtable.h (ht_destroy): New.
8226
8227 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8228             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8229
8230         * c-lex.c (map): Make const.
8231         (cb_file_change): Update for callback passing a line map.
8232         Don't assume we have a previous map.  Remove sanity check
8233         about popping too many files.
8234         * cpperror.c (print_location): Make map const.
8235         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
8236         (cpp_make_system_header): Similarly.
8237         (search_from): Similarly.
8238         (_cpp_execute_include): Don't remember where we came from.
8239         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
8240         (struct cpp_reader): Make map const.
8241         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
8242         * cpplib.c (do_line): Update; line maps now hold sysp.
8243         (cpp_push_buffer): Similarly.
8244         (_cpp_do_file_change): Similarly; callback with map instead.
8245         (cpp_get_line_maps): Constify return value.
8246         (_cpp_pop_buffer): Update.
8247         * cpplib.h (struct cpp_file_change): Remove.
8248         (struct cpp_callbacks): Update.
8249         (cpp_get_line_maps): Constify return value.
8250         * cppmacro.c (_cpp_create_definition): Update.
8251         * cppmain.c (struct printer): Constify map.
8252         (maybe_print_line): Similarly.
8253         (print_line): Similarly.  Deduce flags 1 and 2 here.
8254         (cb_file_change): Update.
8255         * line-map.c (free_line_maps): Warn regardless.
8256         (add_line_map): Return pointer to const.  When passed NULL to_file
8257         with LC_LEAVE, use the obvious values for the return point so the
8258         caller doesn't have to figure them out.
8259         (lookup_line): Return pointer to const.
8260         (print_containing_files): Take pointer to const.
8261         * line-map.h (struct line_map): New members reason, sysp.
8262         (add_line_map): Return pointer to const.
8263         (lookup_line): Similarly.
8264         (print_containing_files): Take pointer to const.
8265
8266 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
8267             Richard Henderson  <rth@redhat.com>
8268
8269         * regmove.c (regmove_optimize): Avoid setting a register twice in
8270         a parallel set.
8271
8272 2001-08-10  Richard Henderson  <rth@redhat.com>
8273
8274         * doc/extend.texi (Arrays and pointers implementation): Document
8275         behavior of pointer/integer conversion.
8276
8277 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
8278
8279         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
8280
8281 2001-08-10  Richard Henderson  <rth@redhat.com>
8282
8283         * doc/extend.texi (C Implementation): New chapter.
8284         * doc/gcc.texi (Top): Link it in.
8285
8286 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
8287
8288         * doc/install.texi (Specific): Fix CVS merge botch.
8289
8290 2001-08-10  Richard Henderson  <rth@redhat.com>
8291
8292         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
8293         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
8294
8295 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
8296
8297         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
8298         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
8299         this macro is now required.
8300
8301         * cselib.c (cselib_process_insn), flow.c (propagate_block),
8302         loop.c (find_and_verify_loops), reload.c (reload): Check
8303         for rtx code of CALL_INSN, not CALL, when deciding if we
8304         need to check for REG_SETJMP note.
8305
8306         * gcse.c (compute_hash_table, compute_store_table): Update
8307         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
8308         logic.
8309
8310         * config/avr/avr.c: Fix typo.
8311         * config/convex/convex.c (expand_movstr): Use adjust_address.
8312         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
8313         variable.
8314         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
8315         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
8316         Fix typo.
8317         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
8318         Do define STACK_BOUNDARY.
8319         * config/i370/i370.c: Include expr.h.
8320         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
8321         config/pa/som.h, config/v850/v850.h: Take in_ctors and
8322         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
8323         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
8324         * config/m88k/m88k.c: Include c-tree.h after expr.h.
8325         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
8326         * config/romp/romp.c: Include expr.h after tree.h.
8327         Include toplev.h.
8328         (output_fpop): Use xmalloc, not oballoc.
8329         * config/we32k/we32k.c: Include expr.h.
8330
8331 2001-08-10  Kazu Hirata  <kazu@hxi.com>
8332
8333         * config/h8300/h8300.h: Fix formatting.
8334
8335 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
8336
8337         * c-common.h (RETURN_NULLIFIED_P): Lose.
8338         * c-semantics.c (genrtl_return_stmt): Don't check it.
8339
8340 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8341
8342         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
8343         (mips_annotate_frame_insn): New function.
8344         (mips_emit_frame_related_store): New function.
8345         (save_restore_insns): Don't mark instructions that set up the base
8346         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
8347         the store instructions instead.
8348         (mips_expand_prologue): If the stack size is moved into a temporary
8349         register, do not mark that move as frame-related.  Add a
8350         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
8351
8352 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8353
8354         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
8355         stack slot as unchanging if current_function_calls_eh_return.
8356
8357 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8358
8359         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
8360         access the second half of the TFmode scratch operand.
8361
8362 2001-08-10  Anthony Green  <green@redhat.com>
8363
8364         * java/class.c (emit_register_classes): Conditionalize code on
8365         JCR_SECTION_NAME.
8366
8367 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8368
8369         * doc/install.texi (Specific, avr): Fix cross-reference to the
8370         main manual to work both for info and HTML versions.
8371
8372 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8373
8374         * stmt.c (expand_null_return_1): Remove code to generate simple returns
8375         and "use_goto" argument.
8376         (expand_null_return, expand_value_return): Update all callers.
8377         * function.c (expand_function_end): Remove code to generate simple
8378         return.
8379         * config/vax/vax.md (epilogue): New expander for function return.
8380         * doc/md.texi (epilogue): Remove "if defined".
8381
8382 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
8383
8384         * Makefile.in: Partially revert my previous change:
8385         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
8386         of the hashtab.o and safe-ctype.o rules.
8387
8388 2001-08-09  Richard Henderson  <rth@redhat.com>
8389
8390         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
8391         (USE_COLLECT2): Remove duplicate definition.
8392         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
8393         (use_collect2): Remove dead code.
8394         * configure.in (use_collect2): Remove will_use_collect2 and
8395         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
8396         * configure: Rebuild.
8397
8398         * target.h (targetm.asm_out.constructor): New.
8399         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
8400         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
8401         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
8402         * varasm.c (in_ctors, in_dtors): New.
8403         (assemble_constructor, assemble_destructor): Remove.
8404         (default_stabs_asm_out_destructor): New.
8405         (default_named_section_asm_out_destructor): New.
8406         (dtors_section, default_dtor_section_asm_out_destructor): New.
8407         (default_stabs_asm_out_constructor): New.
8408         (default_named_section_asm_out_constructor): New.
8409         (ctors_section, default_ctor_section_asm_out_constructor): New.
8410         * output.h: Update declarations.
8411         * c-decl.c (c_expand_body): Use target hooks instead of
8412         assemble_constructor and assemble_destructor.
8413         * profile.c (output_func_start_profiler): Likewise.
8414         * objc/objc-act.c (finish_objc): Likewise.
8415         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
8416         for the constructor.
8417         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
8418
8419         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
8420         (DTORS_SECTION_ASM_OP): Likewise.
8421         (__CTOR_LIST__): Use attribute section when possible.
8422         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
8423
8424         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
8425         ASM_OUTPUT_CONSTRUCTOR.
8426
8427         * config/darwin.c (machopic_asm_out_constructor): New.
8428         (machopic_asm_out_destructor): New.
8429         * config/darwin-protos.h: Update declarations.
8430         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8431         (ASM_OUTPUT_DESTRUCTOR): Remove.
8432         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8433         * config/nextstep.c (nextstep_asm_out_constructor): New.
8434         (nextstep_asm_out_destructor): New.
8435         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8436         (ASM_OUTPUT_DESTRUCTOR): Remove.
8437         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8438         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
8439         ASM_OUTPUT_*STRUCTOR.
8440         * config/i386/aix386ng.h: Likewise.
8441
8442         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
8443         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
8444         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
8445         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8446         * config/lynx.h: Likewise.
8447         * config/netware.h: Likewise.
8448         * config/psos.h: Likewise.
8449         * config/alpha/alpha-interix.h: Likewise.
8450         * config/alpha/elf.h: Likewise.
8451         * config/arc/arc.h: Likewise.
8452         * config/arm/aof.h: Likewise.
8453         * config/arm/coff.h: Likewise.
8454         * config/arm/elf.h: Likewise.
8455         * config/c4x/c4x.h: Likewise.
8456         * config/h8300/h8300.h: Likewise.
8457         * config/i386/cygwin.h: Likewise.
8458         * config/i386/djgpp.h: Likewise.
8459         * config/i386/i386-coff.h: Likewise.
8460         * config/i386/i386-interix.h: Likewise.
8461         * config/i386/sco5.h: Likewise.
8462         * config/i386/vsta.h: Likewise.
8463         * config/i386/win32.h: Likewise.
8464         * config/i960/i960-coff.h: Likewise.
8465         * config/ia64/sysv4.h: Likewise.
8466         * config/m68hc11/m68hc11.h: Likewise.
8467         * config/m68k/coff.h: Likewise.
8468         * config/m68k/mot3300.h: Likewise.
8469         * config/m88k/m88k.h: Likewise.
8470         * config/mcore/mcore-pe.h: Likewise.
8471         * config/mcore/mcore.h: Likewise.
8472         * config/mips/elf.h: Likewise.
8473         * config/mips/elf64.h: Likewise.
8474         * config/mips/iris6.h: Likewise.
8475         * config/pa/pa64-hpux.h: Likewise.
8476         * config/rs6000/sysv4.h: Likewise.
8477         * config/sh/sh.h: Likewise.
8478         * config/sparc/litecoff.h: Likewise.
8479
8480         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
8481         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
8482         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8483         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8484         (ASM_OUTPUT_DESTRUCTOR): Remove.
8485         * config/a29k/a29k.c: Move include of tree.h.
8486         * config/a29k/udi.h: Delete file.
8487         * config/alpha/alpha.c (vms_asm_out_constructor): New.
8488         (vms_asm_out_destructor): New.
8489         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
8490         (EXTRA_SECTION_FUNCTIONS): Likewise.
8491         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8492         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8493         * config/c4x/c4x.c: Move include of tree.h.
8494         * config/clipper/clipper.c (clix_asm_out_constructor): New.
8495         (clix_asm_out_destructor): New.
8496         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8497         (ASM_OUTPUT_DESTRUCTOR): Remove.
8498         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8499         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8500         (TARGET_ASM_CONSTRUCTOR): New.
8501         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
8502         (sco_asm_out_constructor): New.
8503         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
8504         * config/i386/svr3gas.h: Remove stack grows up code.
8505         Remove code duplicated from i386/sysv3.h.
8506         (TARGET_ASM_CONSTRUCTOR): New.
8507         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8508         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
8509         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8510         (TARGET_ASM_CONSTRUCTOR): New.
8511         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
8512         (m68hc11_asm_out_destructor): New.
8513         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
8514         (TARGET_ASM_DESTRUCTOR): New.
8515         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
8516         * config/m68k/dpx2.h: Properly undef all the bits inherited from
8517         config/svr3.h pertaining to section manipulation.
8518         * config/m68k/dpx2g.h: Remove #if 0 code.
8519         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
8520         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
8521         (ASM_OUTPUT_CONSTRUCTOR): Remove.
8522         (TARGET_ASM_CONSTRUCTOR): New.
8523         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
8524         (m88k_svr3_asm_out_constructor): New.
8525         (m88k_svr3_asm_out_destructor): New.
8526         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8527         (ASM_OUTPUT_DESTRUCTOR): Remove.
8528         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8529         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
8530         * config/rs6000/aix.h: Likewise.
8531         * config/mips/rtems64.h: Don't undef removed constructor related bits.
8532         * config/mips/vxworks.h: Likewise.
8533         * config/rs6000/lynx.h: Likewise.
8534         * config/sh/elf.h: Likewise.
8535         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
8536         (DTORS_SECTION_ASM_OP): New.
8537         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8538         (ASM_OUTPUT_DESTRUCTOR): Remove.
8539         * config/sparc/sol2-sld-64.h: Likewise.
8540         * config/vax/vax.c (vms_asm_out_constructor): New.
8541         (vms_asm_out_destructor): New.
8542         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8543         (ASM_OUTPUT_DESTRUCTOR): Remove.
8544         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8545
8546         * doc/tm.texi (@node Initialization): Update.
8547
8548 2001-08-09  Richard Henderson  <rth@redhat.com>
8549
8550         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
8551         (__do_global_dtors_aux): Use gp-relative static data to avoid
8552         one dynamic relocation.
8553         (__do_frame_setup): Register Java classes.
8554         * config/alpha/crtend.asm (__JCR_END__): New.
8555
8556 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
8557
8558         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
8559         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
8560         (GEN, STAGESTUFF): Add new files.
8561         (insn-constants.h, s-constants, tm-preds.h, s-preds,
8562         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
8563         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
8564         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
8565         as well as insn-codes.h and insn-flags.h in config.h; and no
8566         extra headers in tconfig.h and hconfig.h.
8567
8568         * gencodes.c: Eliminate code to generate predicate declarations
8569         or #defines for md-file constants.
8570         * genconstants.c, genpreds.c: New files.
8571
8572         * i386.md: Re-order guard expressions such that TARGET_64BIT
8573         comes first, when this permits better optimization.  Add
8574         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
8575         why this is desirable.
8576
8577 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
8578
8579         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
8580         (find_fde_for_dso): Remove.
8581         (_Unwind_IteratePhdrCallback): New.
8582         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
8583         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
8584
8585 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8586
8587         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
8588         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
8589
8590 2001-08-09  Graham Stott  <grahams@redhat.com>
8591
8592         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
8593         (vis_no_unit): Use it.
8594         (visualize_no_unit): Add the insn only if room exists.
8595
8596 2001-08-09  Graham Stott  <grahams@redhat.com>
8597
8598         * predict.c (estimate_probability): Replace magic numbers with
8599         appropriate enumeration.
8600
8601 2001-08-09  Graham Stott  <grahams@redhat.com>
8602
8603         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
8604         parameter.
8605         (EXTRACT_FLAGS): Likewise.
8606
8607 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
8608
8609         * config/mips/mips.c    (mips_legitimate_address_p): Check for
8610         CONST_INT in last patch.
8611
8612 2001-08-08  Anthony Green  <green@redhat.com>
8613
8614         * java/class.c (emit_register_classes): Use assemble_jcr if
8615         possible.  Keep the original mechanism as a fallback.
8616         * defaults.h (JCR_SECTION_NAME): Define if we have named section
8617         and weak symbol support.
8618         * crtstuff.c (__JCR_LIST__): Define.
8619         (__JCR_END__): Define.
8620         (_Jv_RegiserClasses): Define weak symbol if possible.
8621         (__do_global_ctors_aux): Register classes for ELF targets with
8622         weak symbol support.
8623
8624 2001-08-08  Kazu Hirata  <kazu@hxi.com>
8625
8626         * dbxout.c: Fix comment formatting.
8627         * dependence.c: Likewise.
8628         * df.c: Likewise.
8629         * diagnostic.c: Likewise.
8630         * dominance.c: Likewise.
8631         * doprint.c: Likewise.
8632         * dwarf2out.c: Likewise.
8633         * dwarfout.c: Likewise.
8634         * emit-rtl.c: Likewise.
8635         * except.c: Likewise.
8636         * explow.c: Likewise.
8637         * expmed.c: Likewise.
8638         * expr.c: Likewise.
8639         * flow.c: Likewise.
8640         * fold-const.c: Likewise.
8641         * function.c: Likewise.
8642
8643 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8644
8645         * global.c (retry_global_alloc): Avoid shadowing allocno.
8646
8647 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
8648
8649         * except.c (remove_fixup_regions): Fix typo.
8650
8651 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
8652
8653         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
8654         unsigned HOST_WIDE_INT to avoid warning.
8655         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
8656         * flow.c (set_block_for_new_insns): Likewise.
8657
8658 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
8659
8660         * sibcall.c (return_value_pseudo): New static variable.
8661         (skip_copy_to_return_value): Handle return_value_pseudo.
8662         (call_ends_block_p): Ensure that return_value_pseudo is set.
8663         (optimize_sibling_and_tail_recursive_call): Discover the
8664         load of pseudo return value in alternate exit block.
8665
8666 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
8667
8668         * calls.c (ECF_ALWAYS_RETURN): New constant.
8669         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
8670         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
8671         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
8672         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
8673         * rtl.c (reg_note_name): New name.
8674         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
8675
8676 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
8677
8678         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
8679
8680 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
8681
8682         * alias.c (get_alias_set): Return a previously calculated
8683         alias set for a VAR_DECL.
8684         * function.c (gen_mem_addressof): Calculate the alias set before
8685         touching the RTL.
8686
8687 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
8688
8689         * predict.def: Set hitrates according our experimental run.
8690
8691 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
8692
8693         * i386.h (HARD_REGNO_RENAME_OK): New macro.
8694
8695 2001-08-08  H.J. Lu <hjl@gnu.org>
8696
8697         * config/mips/mips.c (mips_unique_section): New. Copied from
8698         config/mips/elf.h.
8699
8700         * config/mips/mips-protos.h (mips_unique_section): New
8701         prototype.
8702
8703         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
8704
8705         * config/mips/little.h: New. Generic little endian mips
8706         targets. Only mips*-*-linux* is converted to use it so far.
8707
8708         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
8709         (WCHAR_TYPE): Defined
8710         (WCHAR_TYPE_SIZE): Likewise.
8711         (INIT_SUBTARGET_OPTABS): Likewise.
8712         (BSS_SECTION_ASM_OP): Likewise.
8713         (SBSS_SECTION_ASM_OP): Likewise.
8714         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8715         (ASM_DECLARE_OBJECT_NAME): Likewise.
8716         (UNIQUE_SECTION): Likewise.
8717         (EXTRA_SECTIONS): Likewise.
8718         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
8719         (ASM_OUTPUT_DESTRUCTOR): Likewise.
8720         (ASM_OUTPUT_DEF): Likewise.
8721         (HANDLE_SYSV_PRAGMA): Removed.
8722         (NO_IMPLICIT_EXTERN_C): Likewise.
8723         (TARGET_MEM_FUNCTIONS): Likewise.
8724         (STARTFILE_SPEC): Likewise.
8725         (ENDFILE_SPEC): Likewise.
8726         (LIB_SPEC): Likewise.
8727         (INVOKE__main): Likewise.
8728         (CTOR_LIST_BEGIN): Likewise.
8729         (CTOR_LIST_END): Likewise.
8730         (DTOR_LIST_BEGIN): Likewise.
8731         (DTOR_LIST_END): Likewise.
8732         (SET_ASM_OP): Likewise.
8733         (ASM_OUTPUT_SOURCE_LINE): Likewise.
8734         (ASM_OUTPUT_DEF): Likewise.
8735         (ASM_OUTPUT_IDENT): Likewise.
8736
8737         * config/mips/mips.h (ASM_SPEC): Undefine before define.
8738         (CPLUSPLUS_CPP_SPEC): Likewise.
8739         (ASM_APP_ON) Redefine only if not defined.
8740         (ASM_APP_OFF): Likewise.
8741         (ASM_OUTPUT_SOURCE_LINE): Likewise.
8742         (ASM_OUTPUT_IDENT): Likewise.
8743
8744         * config.gcc: Update tm_file for Linux/mips.
8745
8746 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
8747
8748         * cselib.c (cselib_record_sets): If insn is predicated, turn
8749         sources into IF_THEN_ELSEs.
8750
8751         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
8752         Turn into define_insn_and_split.
8753
8754         * sched-deps.c: Include "cselib.h".
8755         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
8756         Use cselib to turn memory addresses into VALUEs.
8757         (sched_analyze): Call cselib_init/cselib_finish if necessary.
8758         * sched-int.h (struct sched_info): New member USE_CSELIB.
8759         * sched-ebb.c (ebb_sched_info): Initialize it.
8760         * sched-rgn.c (rgn_sched_info): Likewise.
8761         * Makefile.in (sched-deps.o): Update dependencies.
8762
8763         * cselib.h (cselib_subst_to_values): Declare.
8764         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
8765         that have no value and autoincs to be handled by generating a new
8766         dummy value.
8767
8768 2001-08-08  Graham Stott  <grahams@redhat.com>
8769
8770         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
8771         within fixed length SEQUENCE.
8772
8773 2001-08-08  Graham Stott  <grahams@redhat.com>
8774
8775         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
8776         (diagnostic_prefixing_rule): Likewise.
8777         (diagnostic_line_cutoff): Likewise.
8778         (diagnostic_kind_count): Likewise.
8779
8780 2001-08-08  Graham Stott  <grahams@redhat.com>
8781
8782         * alias.c (find_base_decl): Delete redundent assignment.
8783
8784 2001-08-08  Graham Stott  <grahams@redhat.com>
8785
8786         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
8787         (abs): Uppercase and paranthesize macro parameter.
8788         (MEM_DEPENDENCY): Add whitespace.
8789
8790 2001-08-08  Graham Stott  <grahams@redhat.com>
8791
8792         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
8793         failure check for CONST_INT
8794
8795 2001-08-08  Graham Stott  <grahams@redhat.com>
8796
8797         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
8798         (libcall_dead_p): Likewise.
8799
8800         (mark_used_regs): Constify fmt.
8801         (find_use_as_address): Likewise.
8802
8803 2001-08-08  Graham Stott  <grahams@redhat.com>
8804
8805         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
8806          parameter.
8807
8808 2001-08-08  Graham Stott  <grahams@redhat.com>
8809
8810         * combine.c (combine_simplify_rtx): Update comment and
8811         remove erroneous test.
8812
8813 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8814
8815         * cppinit.c (cpp_finish): Pop the final buffer without comment.
8816         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
8817         take care to avoid multiple no-newline at EOF warnings in that
8818         case.
8819
8820 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
8821
8822         * calls.c (expand_call): Do not emit INSN_SETJMP note.
8823         (emit_library_call_value_1): Likewise.
8824         (emit_call_1): Emit REG_SETJMP note.
8825         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
8826         of INSN_SETJMP
8827         * cselib.c (cselib_process_insn): Likewise.
8828         * flow.c (propagate_block): Likewise.
8829         * loop.c (find_and_verify_loops): Likewise.
8830         * reload.c (find_equiv_regs): Likewise.
8831         * reload1.c (reload): Likewise.
8832         * resource.c (mark_referenced_resources,
8833         mark_set_resources): Likewise.
8834         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
8835         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
8836         * haifa-sched.c (unlink_other_notes): Likewise.
8837         (reemit_notes): Likewise.
8838         * sched-ebb.c (sched_ebb): Likewise.
8839         * sched-rgc.c (sched_region): Likewise.
8840         * rtl.c (note_insn_name): Likewise.
8841         (reg_note_name): Add REG_SETJMP
8842         * rtl.h (reg_note): Add REG_SETJMP.
8843         (insn_note): Remove NOTE_INSN_SETJMP.
8844
8845         * profile.c (branch_prob): Add fake edges for setjmp.
8846
8847 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
8848
8849         * config.gcc: Quote target_cpu_default2 correctly for
8850         powerpc*-*-* targets.
8851
8852 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8853
8854         * cpplib.h, line-map.h: Update comments.
8855         * cppmain.c (printer_init): Move inline.
8856         (maybe_print_line, print_line): Take a map pointer.
8857         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
8858         (cb_file_change): Don't use prior value of print.map.
8859
8860 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
8861
8862         * doc/install.texi: Document fine-grained multilib configuration.
8863
8864 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
8865
8866         * rtlanal.c (find_first_parameter_load): Call note_stores
8867         only on the instructions.
8868
8869 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
8870
8871         * alias.c (nonlocal_mentioned_p):
8872         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
8873         * calls.c (emit_call_1): Likewise.
8874         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
8875         * cselib.c (cselib_process_insn): Likewise.
8876         * df.c (df_insns_modify): Likewise.
8877         * flow.c (need_fake_edge_p): Likewise.
8878         (propagate_one_insn): Likewise.
8879         * haifa-sched.c (reemit_notes): Likewise.
8880         * integrate.c (copy_insn_list): Likewise.
8881         * jump.c (delete_prior_computation): Likewise.
8882         * local-alloc.c (validate_equiv_mem): Likewise.
8883         * loop.c (scan_loop): Likewise.
8884         * predict.c (estimate_probability): Likewise.
8885         * reload.c (reload): Likewise.
8886         * sched-deps (sched_analyze): Likewise.
8887         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
8888         * gcse.c (compute_hash_table): Likewise.
8889         (mark_call): Likewise.
8890         (store_killed_in_insn): Likewise.
8891
8892 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
8893
8894         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
8895
8896 2001-08-06  Richard Henderson  <rth@redhat.com>
8897
8898         * varasm.c (assemble_gc_entry): Remove.
8899         * output.h: Likewise.
8900
8901 2001-08-06  Richard Henderson  <rth@redhat.com>
8902
8903         * varasm.c (assemble_constructor): Take a symbol_ref and a
8904         priority instead of a bare string.  Move priority handling
8905         here from cp/decl2.c.
8906         * output.h: Update decls.
8907
8908         * c-decl.c (c_expand_body): Update calls to assemble_constructor
8909         and assemble_destructor.
8910         * profile.c (output_func_start_profiler): Likewise.
8911         * objc/objc-act.c (finish_objc): Likewise.
8912         (build_module_descriptor): Return the symbol not the symbol name.
8913
8914 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
8915
8916         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
8917         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
8918         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
8919         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
8920         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
8921         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
8922
8923 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8924
8925         * cpperror.c (print_containing_files): Moved to line-map.c.
8926         (print_location): line-map.c handles re-listing or otherwise.
8927         * cpphash.h (struct lexer_state): Remove next_bol.
8928         (struct cpp_buffer): Remove include_stack_listed.
8929         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
8930         Remove faked buffer handling.
8931         (_cpp_do_file_change): Tweak.
8932         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
8933         * cppmain.c (struct printer): Remove filename.
8934         (print_line, cb_file_change): Update accordingly.
8935         * line-map.c: Include intl.h.
8936         (init_line_maps): Initialize last_listed.
8937         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
8938         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
8939         (print_containing_files): New.
8940         * line-map.h (struct line_maps): New member last_listed.
8941         (print_containing_files, INCLUDED_FROM): New.
8942         * Makefile.in: Update.
8943         * po/POTFILES.in: Add line-map.c.
8944
8945 2001-08-06  Richard Henderson  <rth@redhat.com>
8946
8947         * except.c (convert_from_eh_region_ranges_1): Never mark
8948         USE or CLOBBER insns as throwing.
8949
8950         * expr.c (store_constructor): Don't clobber memory targets.
8951
8952 2001-08-06  Andreas Jaeger  <aj@suse.de>
8953
8954         * profile.c (branch_prob): Remove unused variable insn.
8955
8956         * Makefile.in (local-alloc.o): Add dependency on except.h.
8957
8958         * local-alloc.c: Include except.h for can_throw_internal prototype.
8959
8960 2001-08-06  Richard Henderson  <rth@redhat.com>
8961
8962         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
8963         * function.c (expand_main_function): Implement it.
8964         * doc/tm.texi: Document it.
8965
8966 2001-08-06  Stan Shebs  <shebs@apple.com>
8967
8968         * doc/install.texi: Document powerpc-*-darwin* details.
8969
8970 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
8971
8972         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
8973         (ASM_CPU_SPEC): Move back to rs6000.h
8974         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
8975
8976         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
8977
8978         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
8979         readded.
8980
8981         * config/rs6000/linux64.h: Ditto.
8982
8983         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
8984         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
8985         nothing.
8986
8987         Remove accidently readded definitions of FUNCTION_PROLOGUE,
8988         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
8989
8990         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
8991         to rs6000.h
8992
8993 2001-08-05  Richard Henderson  <rth@redhat.com>
8994
8995         * local-alloc.c (update_equiv_regs): Do not move insns that
8996         can throw.
8997
8998 2001-08-05  Jan Hubicka  <jh@suse.cz>
8999
9000         * Makefile.in (reload1.o): Add dedendancy on except.h
9001         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
9002         prototypes.
9003         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
9004         indicating wehther edges has been cleaned up.
9005         * reload1.c: Inlucde except.h
9006         (fixup_abnormal_edges): Accept deleted insns.
9007         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
9008         after combine.
9009
9010 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
9011
9012         * cpplib.c (do_line): Correct line number after pop_buffer.
9013
9014 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
9015
9016         PR preprocessor/3824
9017         * line-map.c: Update comments.
9018         * line-map.h: Update comments.
9019         * tradcif.y: Don't consider large numbers unsigned.
9020
9021 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
9022
9023         PR preprocessor/3081
9024         * c-lex.c (map): New.
9025         (cb_file_change): Update map and use it.
9026         (cb_def_pragma, cb_define, cb_undef): Use map and line.
9027         (c_lex): Update to use map.
9028         * cpperror.c (print_location): Move to using logical line numbers.
9029         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
9030         (cpp_make_system_header): Similarly.
9031         (_cpp_execute_include): Stop line numbering hacks.  Store the
9032         line we will return to.
9033         * cpphash.h (CPP_BUF_LINE): Remove.
9034         (struct cpp_buffer): Remove lineno and pseudo_newlines.
9035         Add map and return_to_line.
9036         (_cpp_do_file_change): Update.
9037         * cppinit.c (cpp_start_read): Update line kludge.
9038         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
9039         (trigraph_ok): Use logical line numbers for diagnostics.
9040         (skip_block_comment): Likewise.
9041         (skip_whitespace): Likewise.
9042         (skip_line_comment): Use pfile->line instead.
9043         (_cpp_lex_token): Update to use logical line numbering exclusively.
9044         Handle BOL locally.  Accept new lines in directives, but keep
9045         pfile->line decremented.  Diagnostics use logical lines.  Update
9046         directive handling.
9047         * cpplib.c (SEEN_EOL): New.
9048         (skip_rest_of_line, check_eol): Use it.
9049         (end_directive): Increase line number when accepting the newline
9050         at the end of a directive.
9051         (run_directive): Simplify.
9052         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
9053         (_cpp_do_file_change): Update to take buffer line number as an
9054         argument, and store the current map in the cpp_reader.  Remove
9055         line number kludges.
9056         (_cpp_do__Pragma): Restore output position after a _Pragma.
9057         (cpp_push_buffer): Don't set output line or lineno.
9058         (_cpp_pop_buffer): Transfer more info from a faked buffer.
9059         Remove line kludge.  Set output_line.
9060         * cppmacro.c (builtin_macro): Update handling of __LINE__.
9061         (parse_arg): Use logical lines.
9062         (save_lookahead_token): Save EOFs too now.
9063         * cppmain.c (struct printer): Fix comments.
9064         (printer_init): Simplify, let caller do errors.
9065         (scan_translation_unit, check_multiline_token, dump_macro): Update.
9066         (maybe_print_line): Simplify.
9067         (print_line): Don't print a linemarker if -P.
9068         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
9069         (cb_file_change): Simplify.
9070         * line-map.h (LAST_SOURCE_LINE): Fix.
9071         (CURRENT_LINE_MAP): New.
9072
9073 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
9074
9075         * doloop.c (doloop_modify_runtime): Properly compute number of
9076         iterations if loop was unrolled.
9077
9078         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
9079         if their CSELIB_VAL_PTRs are.
9080
9081         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
9082         (setup_spill_pointers): Initialize it.
9083         (spill_restore_mem): Set it.
9084         (do_spill, do_restore): Use it to add REG_INC note.
9085         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
9086
9087         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
9088         asms if other insns are available.
9089
9090         * config/ia64/ia64.c (condop_operator): New predicate.
9091         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
9092         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
9093         patterns.
9094
9095         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
9096         temporary register than directly using a MEM.
9097
9098 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9099
9100         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
9101         parameter in last change.
9102
9103 2001-08-04  Zack Weinberg  <zackw@panix.com>
9104
9105         * sparc.md: Don't use #if inside C test expression.
9106
9107 2001-08-04  Richard Henderson  <rth@redhat.com>
9108
9109         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
9110
9111 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9112
9113         * cpphash.h (struct cpp_reader): New member directive_line.
9114         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
9115         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
9116         do_pragma): Pass line to callbacks.
9117         (start_directive): Record line of directive.
9118         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
9119         cb_include): Similarly.
9120         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
9121         Similarly.
9122
9123 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9124
9125         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
9126         comment.
9127
9128 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
9129
9130         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
9131
9132         * reload1.c (fixup_abnormal_edges): New static function.
9133         (reload): Use it.
9134
9135         * flow.c (need_fake_edge_p): New function.
9136         (flow_call_edges_add): Fix handling of noreturn and sibling calls;
9137         avoid call insn to be very last insn in the insn stream.
9138
9139         * profile.c (branch_prob): Call flow_call_edges_add instead of
9140         doing that by hand; cleanup cfg to re-merge basic blocks once
9141         we are done.
9142
9143 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9144
9145         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
9146         are also on line-map.h.
9147         * cppfiles.c (stack_include_file): Update.
9148         * cpphash.h (struct cpp_buffer): New member return_at_eof.
9149         (_cpp_pop_buffer): New.
9150         * cppinit.c (cpp_destroy, cpp_finish): Update.
9151         (do_includes): Mark each buffer to return at EOF.
9152         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
9153         return as requested.
9154         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
9155         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
9156         * cpplib.h (cpp_pop_buffer): Remove.
9157         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
9158         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
9159         buffers.
9160         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
9161         to pop buffers.
9162         (do_preprocessing): Update.
9163         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
9164         * c-parse.in (_yylex): Similarly.
9165         * scan-decls.c (scan_decls): Similarly.
9166         * line-map.h: Update comments.
9167
9168         * objc/Make-lang.in (objc-act.o): Update dependencies.
9169
9170 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9171
9172         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
9173         and soft register for operand 0.
9174         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
9175
9176 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9177
9178         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
9179         register for operand 0.
9180         ("bitcmpqi_z_used"): Allow memory for operand 0.
9181         (split "bitcmpqi"): New split to handle address reg as operand 1.
9182
9183 2001-08-04  Andreas Jaeger  <aj@suse.de>
9184
9185         * gcse.c: Revert Daniel's last patch.
9186
9187 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
9188
9189         * sparc-protos.h: Add prototypes for fp_zero_operand and
9190         reg_or_0_operand.
9191         * sh-protos.h: Add prototype for fpul_operand.
9192
9193 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9194
9195         * doc/extend.texi (Other Builtins): Fix typo in last change.
9196
9197 2001-08-03  Richard Henderson  <rth@redhat.com>
9198
9199         * target.h (gcc_target): Add asm_out.named_section,
9200         section_type_flags, have_named_sections.
9201         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
9202         (TARGET_HAVE_NAMED_SECTIONS): New.
9203         (TARGET_SECTION_TYPE_FLAGS): New.
9204
9205         * Makefile.in (toplev.o): Depend on TARGET_H.
9206         (varasm.o, dbxout.o): Likewise.
9207         * c-common.c (decl_attributes): Check targetm.have_named_sections
9208         instead of ifdef ASM_OUTPUT_SECTION_NAME.
9209         * dbxout.c (dbxout_function_decl): Likewise.
9210         (dbxout_function_end): Likewise.
9211         * toplev.c (compile_file): Likewise.
9212         * varasm.c (exception_section): Likewise.
9213         * cp/decl2.c (finish_objects): Likewise.
9214
9215         * defaults.h (EH_FRAME_SECTION): Remove.
9216         (EH_FRAME_SECTION_ASM_OP): Remove.
9217         (EH_FRAME_SECTION_NAME): New.
9218         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
9219         (UNIQUE_SECTION_P): Remove.
9220         * dwarf2out.c (SECTION_FORMAT): Remove.
9221         (ASM_OUTPUT_SECTION): Remove.
9222         (output_call_frame_info): Use named_section_flags.
9223         (output_comp_unit, dwarf2out_start_source_file): Likewise.
9224         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
9225         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
9226         * varasm.c (in_eh_frame, eh_frame_section): Remove.
9227         (named_section_flags): New.
9228         (named_section): Use it and targetm.section_type_flags.
9229         (resolve_unique_section): New.
9230         (assemble_start_function): Use it.
9231         (asm_emit_uninitialised, assemble_variable): Likewise.
9232         (default_section_type_flags): New.
9233         (default_no_named_section, default_elf_asm_named_section): New.
9234         (default_coff_asm_named_section, default_pe_asm_named_section): New.
9235         * output.h: Update varasm.c decls.
9236         (SECTION_*): New flags.
9237
9238         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
9239         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
9240
9241         * config/elfos.h (UNIQUE_SECTION_P): Remove.
9242         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
9243         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
9244         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
9245         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
9246         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
9247         * config/mips/elf.h, config/mips/elf64.h: Likewise.
9248         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
9249         * config/pa/pa64-hpux.h,
9250
9251         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
9252         (TARGET_ASM_NAMED_SECTION): New.
9253         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
9254         * config/alpha/vms.h, config/arm/coff.h: Likewise.
9255         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
9256         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
9257         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
9258         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
9259         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
9260         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
9261         * config/i386/sco5.h, config/i386/win32.h: Likewise.
9262         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
9263         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
9264         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
9265         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
9266         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
9267         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
9268         * config/sparc/sysv4.h: Likewise.
9269
9270         * config/nextstep.h: Error until named sections implemented.
9271
9272         * config/a29k/a29k.c (a29k_asm_named_section): New.
9273         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
9274         (vms_section_type_flags, vms_asm_named_section): New.
9275         * config/arm/arm.c (arm_elf_asm_named_section): New.
9276         * config/avr/avr.c (asm_output_section_name): Remove.
9277         * config/avr/avr-protos.h: Update.
9278         * config/c4x/c4x.c (c4x_asm_named_section): New.
9279         * config/h8300/h8300.c (h8300_asm_named_section): New.
9280         * config/i386/i386.c (sco_asm_named_section): New.
9281         * config/i386/winnt.c (SECTION_PE_SHARED): New.
9282         (i386_pe_section_type_flags): New.
9283         (i386_pe_asm_named_section): New.
9284         * config/i386/i386-protos.h: Update.
9285         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
9286         * config/mcore/mcore.c (mcore_asm_named_section): New.
9287         * config/mips/mips.c (iris6_asm_named_section): New.
9288         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
9289         instead of UNIQUE_SECTION_P.
9290         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
9291         (xcoff_asm_named_section): New.
9292         * config/sh/sh.c (sh_asm_named_section): New.
9293         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
9294
9295         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
9296         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
9297         (EH_FRAME_SECTION_NAME): New.
9298         (EXCEPTION_SECTION): New.
9299         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
9300         (DEBUG_*_SECTION): Remove.
9301         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
9302         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
9303         (EH_FRAME_SECTION_ASM_OP): Remove.
9304
9305         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
9306         (ASM_OUTPUT_SECTION_NAME): Remove.
9307         (TARGET_ASM_NAMED_SECTION): New.
9308         (TARGET_HAVE_NAMED_SECTIONS): New.
9309         (TARGET_SECTION_TYPE_FLAGS): New.
9310         (EH_FRAME_SECTION_ASM_OP): Remove.
9311         (EH_FRAME_SECTION_NAME): New.
9312
9313 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
9314
9315         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
9316         for complex expressions when cfun == 0.
9317         * doc/extend.texi: Document that __builtin_constant_p can be
9318         used in data initializers as well as functions.
9319
9320 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
9321
9322         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
9323         variable I locally, instead of expecting a declaration in the
9324         calling context.
9325
9326 2001-08-03  Richard Henderson  <rth@redhat.com>
9327
9328         * except.c (collect_one_action_chain): Add an explicit cleanup
9329         action if regions surrounding a catch were encoded entirely
9330         within the call-site entry.
9331
9332 2001-08-03  Richard Henderson  <rth@redhat.com>
9333
9334         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
9335         don't take REGNO of a non-register.
9336
9337 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9338
9339         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
9340         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
9341         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
9342         (__gthread_mutex_init_function): New function for mutex initialization.
9343
9344 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9345
9346         * Makefile.in: Revert screwed up commit.
9347
9348 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9349
9350         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
9351         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
9352         merged by linker script to get a final _exit().
9353         (__do_global_dtors): New for destructor handling in specific exit
9354         section.
9355         (__do_global_ctors): New for constructors in specific install section.
9356         (__map_data_section): Map data sections before running constructors.
9357         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
9358         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
9359         (DTORS_SECTION_ASM_OP): Likewise.
9360         (CTORS_SECTION_FUNCTION): Define to force a reference to
9361         __do_global_ctors.
9362         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
9363
9364 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9365
9366         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
9367
9368         * Makefile.in: Add df.h to gcse.c dependencies.
9369
9370 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9371
9372         * varasm.c (output_constant_def_contents): Use for the length of a
9373         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
9374         depending on which is larger.
9375
9376 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9377
9378         * gcse.c: Include df.h for use as a dataflow analyzer.
9379         Remove regvec.
9380         Declaration of reg_set_info: gone.
9381         New df_analyzer variable used by store motion.
9382         (reg_set_info): Deleted.
9383         (mark_mem_regs): New function, analyze regs used by a mem.
9384         (store_ops_ok): Use dataflow analyzer results to determine if
9385         necessary regs are changed in the block.
9386         (find_moveable_store): Remove check for symbol ref, we can handle
9387         much more complex expressions now.
9388         (compute_store_table): Remove most of the code, it's unnecessary
9389         now that the dataflow analyzer records the info for us.
9390         (store_killed_after): Add parameter to say whether to do the
9391         store_ops_okay test, used to speed up testing when we already know
9392         the answer, and just want to know if the store itself was killed.
9393         (build_store_vector): Largely rewritten to calculate the various
9394         vectors properly, and somewhat optimized.
9395         (store_motion): Init the df_analyzer, get REG_DEF chains.
9396         Also handle trapping expressions (since mems almost always trap)
9397         (simple_mem): Redefine what a simple mem is.
9398
9399 2001-08-03  DJ Delorie  <dj@redhat.com>
9400
9401         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
9402         set from a constant part of the condition.
9403
9404 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
9405
9406         * mkdeps.c (deps_add_default_target): Make local variable
9407         ``start'' a const char pointer.
9408         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
9409
9410 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9411
9412         * doc/install.texi (Configuration): Fix markup.
9413         (Specific, i?86-*-udk): Likewise.
9414         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
9415         --with-gnu-ld.
9416         Document --enable-threads and --enable-libgcj status.
9417         (Specific, mips-sgi-irix*): Canonicalize triples.
9418         (Specific, mips-sgi-irix5): Warn about problems with this config.
9419         Mention required GNU as patch.
9420         Native assembler problems are fixed.
9421         (Specific, mips-sgi-irix6): Update O32 ABI support status.
9422         Document --enable-threads and --enable-libgcj status.
9423
9424 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9425
9426         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
9427         of mkinstalldirs.
9428
9429 2001-08-03  Richard Henderson  <rth@redhat.com>
9430
9431         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
9432         constant data.
9433
9434 2001-08-03  Richard Henderson  <rth@redhat.com>
9435
9436         * rtlanal.c (find_first_parameter_load): Stop if we
9437         reach a CODE_LABEL at BOUNDARY.
9438
9439 2001-08-03  Richard Henderson  <rth@redhat.com>
9440
9441         * config/alpha/alpha.md (force_movdi): New insn.
9442         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
9443         Tweek FRP marking of VMS prologue insns.
9444         * config/alpha/vms.h (EPILOGUE_USES): New.
9445
9446 2001-08-02  Richard Henderson  <rth@redhat.com>
9447
9448         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
9449
9450 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
9451
9452         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
9453         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
9454         config/convex/convex.h, config/d30v/d30v.c,
9455         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
9456         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
9457         config/mips/mips.h, config/mn10200/mn10200.h,
9458         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
9459         config/v850/v850.h, config/vax/openbsd.h,
9460         config/vax/openbsd1.h, config/vax/ultrix.h,
9461         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
9462         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
9463         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
9464         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
9465         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
9466         in comments and documentation.
9467
9468 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9469
9470         * line-map.c: New.
9471         * line-map.h: New.
9472         * Makefile.in (line-map.o): New.
9473         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
9474         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
9475         * cpperror.c (print_containing_files): Similarly.
9476         (print_location): Update.  Don't output a space before _Pragma.
9477         * cppfiles.c (stack_include_file): Set to line 1 immediately.
9478         (stack_include_filee, cpp_make_system_header): Update.
9479         (_cpp_execute_include): Get logical line number right for calling
9480         as-yet-unterminated #include.
9481         * cpphash.h (struct cpp_reader): Add line_maps.
9482         (_cpp_do_file_change): Update.
9483         * cppinit.c (cpp_create_reader): Initialize line maps.
9484         (cpp_destroy): Destroy line maps.
9485         (cpp_start_read): Get logical line number right.
9486         * cpplex.c (parse_string): Only warn once for multi-line strings.
9487         Use boolean variable for null warning.
9488         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
9489         already.
9490         (do_include_common): End the directive early.
9491         (do_line): Don't warn about out-of-range lines in preprocessed
9492         source.  Update.  Remove unused variables.
9493         (_cpp_do_file_change): Update for new line mapping.
9494         (pragma_cb): New typedef.
9495         (cpp_register_pragma): Stop looking ahead before calling the
9496         handler.  Clean up.
9497         (do_pragma_system_header): End directive early.
9498         (cpp_get_line_maps): New.
9499         (cpp_pop_buffer): Fudge logical line.  Update.
9500         * cpplib.h: Include line-map.h
9501         (enum cpp_fc_reason): Remove.
9502         (struct cpp_file_change): Update.
9503         (cpp_get_line_maps): New.
9504         * cppmain.c (struct_printer): New member map.
9505         (cb_file_change): Update for new mappings.
9506         * fix-header.c (cb_file_change): Similarly.
9507
9508 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9509
9510         * Makefile.in (libgcc.mk): Define mkinstalldirs.
9511         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
9512
9513 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
9514
9515         * config/vax/vax.c: include expr.h.
9516
9517 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9518
9519         * Makefile.in ($(srcdir)/configure): Only rebuild in
9520         maintainer mode.
9521         ($(srcdir)/config.in): Only define in maintainer mode.
9522         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
9523
9524 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
9525
9526         * doc/install.texi (Install GCC: Binaries): Update Bull info.
9527
9528 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9529
9530         * gcc.c (set_collect_gcc_options): New function, split out from
9531         main.
9532         Ignore elided switches.
9533         (do_spec_1): Invoke before executing command.
9534         (set_input): Export.
9535         Move declaration ...
9536         * gcc.h (set_input): ... here.
9537         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
9538         file.
9539
9540 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
9541
9542         Kill -fhonor-std.
9543         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
9544         interaction.
9545         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
9546
9547 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
9548
9549         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
9550         for the unnamed instructions it expands to.
9551
9552 2001-08-02  Richard Henderson  <rth@redhat.com>
9553
9554         * regclass.c (call_really_used_regs): Conditionally define.
9555         (init_reg_sets_1): Don't use it if not defined.
9556         (fix_register): Similarly, don't set it.
9557
9558 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9559
9560         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
9561         Correct comment that had been missed in the previous change.
9562
9563 2001-08-01  Stan Shebs  <shebs@apple.com>
9564
9565         * config/darwin.c (machopic_stub_name): Try matching by name.
9566         (update_stubs): New function.
9567         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
9568         unconditionally.
9569
9570 2001-08-01  Richard Henderson  <rth@redhat.com>
9571
9572         * except.c (output_function_exception_table): Use assemble_align.
9573         * varasm.c (assemble_eh_label): Remove.
9574         (assemble_eh_align, assemble_eh_integer): Remove.
9575
9576 2001-08-01  Robert Lipe  <robertl@caldera.com>
9577
9578         * dwarfout.c: Remove reference to README.DWARF.
9579
9580 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
9581
9582         * regclass.c (call_really_used_regs): New array for registers which
9583         are actually used by a call.
9584         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
9585         new array.
9586         (fix_register): Set call_really_used too.
9587         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
9588         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
9589
9590 2001-08-01  Richard Henderson  <rth@redhat.com>
9591
9592         * read-rtl.c (read_name): Consider \r whitespace.
9593
9594 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
9595
9596         * config.gcc: Recognize powerpc-*-netbsd*.
9597
9598         * doc/install.texi (Host/target specific installation notes for
9599         GCC): Mention powerpc-*-netbsd*.
9600
9601         * config/rs6000/netbsd.h: New file.
9602         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
9603         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
9604         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
9605         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
9606         (TARGET_VERSION): Redefine.
9607
9608         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
9609         mcall-netbsd as a match for mcall-sysv.
9610         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
9611         (ncrti.S, ncrtn.S): New targets.
9612         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
9613
9614         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
9615         "netbsd' as a V4 ABI.
9616         (ASM_SPEC): Check for -mcall-netbsd.
9617         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
9618         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
9619         (LIB_SPEC, ENDFILE_SPEC): Ditto.
9620         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
9621         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
9622         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
9623         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
9624
9625         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
9626         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
9627
9628 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
9629
9630         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
9631         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
9632         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
9633         including "unwind-pe.h".
9634
9635 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
9636
9637         * rs6000.md (define_splits): Kill unused constraints.
9638
9639 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
9640                               Jan Hubicka  <jh@suse.cz>
9641
9642         * function.c (thread_prologue_and_epilogue_insns): Kill code
9643         dealing with non-existent CFG.
9644
9645 2001-08-01  Kazu Hirata  <kazu@hxi.com>
9646
9647         * alias.c: Fix comment formatting.
9648         * bitmap.c: Likewise.
9649         * builtins.c: Likewise.
9650         * calls.c: Likewise.
9651         * c-common.c: Likewise.
9652         * c-decl.c: Likewise.
9653         * c-dump.c: Likewise.
9654         * c-lex.c: Likewise.
9655         * collect2.c: Likewise.
9656         * combine.c: Likewise.
9657         * conflict.c: Likewise.
9658         * cppfiles.c: Likewise.
9659         * cppinit.c: Likewise.
9660         * cpplex.c: Likewise.
9661         * cpplib.c: Likewise.
9662         * cppmacro.c: Likewise.
9663         * cppspec.c: Likewise.
9664         * c-pragma.c: Likewise.
9665         * crtstuff.c: Likewise.
9666         * cse.c: Likewise.
9667         * cselib.c: Likewise.
9668         * c-semantics.c: Likewise.
9669         * c-typeck.c: Likewise.
9670
9671 2001-08-01  H.J. Lu <hjl@gnu.org>
9672
9673         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
9674
9675 2001-08-01  H.J. Lu <hjl@gnu.org>
9676
9677         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
9678
9679 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
9680
9681         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
9682         contextualizing Objective-C class name lookup by the lexer.
9683         (typespec_reserved_nonattr): Disable ObjC class name lookup after
9684         seeing a TYPESPEC.
9685         (protocoldef): Add support for forward @protocol declarations.
9686         (yylexname): Suppress ObjC class name lookup in certain contexts;
9687         re-enable after lookup is complete.
9688         (_yylex): Re-enable ObjC class name lookup when certain
9689         punctuation marks are seen.
9690
9691         * objc/objc-act.c (check_protocol_recursively): New function used
9692         for finding circular dependencies in protocols.
9693         (objc_declare_protocols): New function for handling forward
9694         @protocol declarations.
9695         (receiver_is_class_object): Detect the case when 'self' is used
9696         inside of a class method.
9697         (build_message_expr): Issue a warning if class method is desired
9698         but instance method is found instead.
9699         (conforms_to_protocol): Streamline.
9700         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
9701         protocol Foo, even if 'Bar foo' does not.
9702         (check_protocols): Streamline.
9703         (start_protocol): Add checks for circular and duplicate protocol
9704         definitions.
9705         (encode_aggregate_within): For typedefs of structs, encode the
9706         underlying struct.
9707         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
9708         (objc_declare_protocols): New prototype.
9709
9710 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9711
9712         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
9713         * cpplex.c (handle_newline): Update prototype.  Maintain logical
9714         line number.
9715         (skip_escaped_newlines, skip_block_comment, parse_string):
9716         Update accordingly.
9717         (_cpp_lex_token): Update, and store token position within the token.
9718         * cpplib.h (struct cpp_token): Add line and column entries.
9719         * cppmacro.c (replace_args): Position stringified tokens correctly.
9720
9721 2001-08-01  Andreas Jaeger  <aj@suse.de>
9722
9723         * basic-block.h: Add prototype for last_loop_beg_note.
9724
9725 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
9726
9727         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
9728         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
9729         comment.
9730         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
9731         while handling WITH_CLEANUP_EXPR node. Use second operand calling
9732         expand_decl_cleanup.
9733         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
9734         the first RTX.
9735         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
9736         operand while calling simple_cst_equal.
9737         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
9738         operand is the cleanup expression, the third is the RTL_EXPR.
9739         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
9740
9741 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
9742
9743         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
9744
9745 2001-07-31  matthew green  <mrg@eterna.com.au>
9746
9747         * config.gcc (i386-*-netbsdelf): New description.
9748         * config/i386/netbsd-elf.h: New file.
9749
9750 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
9751
9752         * loop.c (check_dbra_loop): Use single_set to compute
9753         jump_label.
9754
9755 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
9756
9757         PowerPC reorg and support for powerpc64-*-linux*.
9758
9759         Also fixes emitting of constants on 32 bit and 64 bit
9760         platforms.
9761
9762         * config.gcc: powerpc64-*-linux* is a new target.
9763         Things that needed aix.h now also include xcoff.h
9764
9765         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
9766         xcoff.h.
9767         Move AIX specific stuff into aix.h.
9768         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
9769         with more than just XCOFF now.
9770         (SET_ASM_OP): Remove, now defined where needed.
9771         (FUNCTION_PROLOGUE): New macro definition.
9772         (FUNCTION_EPILOGUE): New macro definition.
9773         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
9774
9775         * config/rs6000/xcoff.h: New file.
9776
9777         * config/rs6000/linux64.h: New file.
9778
9779         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
9780
9781 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
9782
9783         * rs6000.c (print_operand_address): Handle ELF syntax.
9784         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
9785         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
9786         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
9787
9788 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
9789
9790         * rs6000.c (rs6000_override_options): Only disable
9791         flag_function_sections for XCOFF.
9792         (exact_log2_cint_operand): New predicate.
9793         (reg_or_{add,sub}_cint64_operand): New predicates.
9794         (add_operand): Compare CONST_INT with fewer function calls.
9795         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
9796         (print_operand, case 'p'): Ensure positive operand.
9797         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
9798         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
9799         (PREDICATE_CODES): Add new predicates.
9800         * rs6000.md (addsi3): Split 32-bit constants more correctly.
9801         (divsi3, modsi3): Ensure positive power-of-2.
9802         (adddi3): Use new predicate.  Split 32-bit constants more
9803         correctly.  Re-arrange splitter to handle any constant.
9804         (subdi3): Use new predicate.
9805         (divdi3, moddi3): Ensure positive power-of-2.
9806         (movdi): Use rs6000_emit_set_const.
9807         (load_toc_v4_pic_di): Delete.
9808
9809 2001-07-31  Graham Stott <grahams@redhat.com>
9810
9811         * function.c (pad_below): Revert 2001-07-26 patch.
9812
9813 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
9814
9815         * reg-stack (convert_regs_1): Fix best edge condition.
9816
9817 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
9818
9819         * jump.c (duplicate_loop_exit_test): Better test for jumps
9820         entering the loop; create loop pre_header.
9821
9822 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
9823
9824         * doc/install.texi: Add s390 and s390x as new targets.
9825         * doc/invoke.texi: Add documentation of S/390 and zSeries
9826         target options.
9827         * doc/md.texi: Add documentation of S/390 and zSeries constraints.
9828
9829 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
9830
9831         * config/m68k/m68k.md: Replace all general_operand with
9832         nonimmediate_operand for all destinations.
9833         * config/m68k/m68k.c (not_sp_operand): Likewise.
9834
9835 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
9836
9837         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
9838
9839 2001-07-30  Richard Henderson  <rth@redhat.com>
9840
9841         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
9842         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
9843
9844 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
9845
9846         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
9847         Add missing doc strings
9848         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
9849         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
9850
9851 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
9852
9853         * i386.c (ix86_output_main_function_alignment_hack): New function.
9854         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
9855
9856         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
9857         edges by EDGE_DFS_BACK flag.
9858         (dump_edge_info): Add dfs_back flag.
9859         * basic-block.h (EDGE_DFS_BACK): New constant.
9860         (mark_dfs_back_edges): Declare.
9861         * alias.c (loop_p): Remove.
9862         (mark_constant_function): Use mark_dfs_back_edges.
9863
9864         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
9865         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
9866         (compensate_edge): Break out from ...
9867         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
9868         (convert_regs_2): Set block_done once block is really done;
9869         Do updating of the predecesors counts.
9870
9871         * toplev.c (rest_of_compilation): Recompute block_for_insn
9872         before post-reload cfg_cleanup.
9873         * function.c (thread_prologue_epilogue_insns):
9874         Call set_block_for_new_insns when emitting prologue directly.
9875
9876 2001-07-30  Andreas Jaeger  <aj@suse.de>
9877
9878         * jump.c: Add prototype for mark_modified_reg.
9879
9880         * cse.c (set_live_p): Add unused attribute.
9881
9882         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
9883         overflow.
9884         (scan_for_source_files): Use long for count to avoid overflow.
9885         (output_data): Likewise.
9886         (output_data): Don't use string concatatenation to silence gcc
9887         -traditional.
9888
9889         * predict.c: Fix typos and grammar.
9890
9891         * gcse.c (insert_insn_end_bb): Remove unused variables.
9892
9893 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
9894
9895         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
9896         (attempt_auto_inc): LIkewise.
9897         (mark_used_reg): Likewise.
9898         (try_pre_increment_1): Likewise.
9899         * regclass.c (regclass): Likewise.
9900         * global.c (allocno_compare): Update comment; change scaling factor.
9901         * local-alloc.c (QTY_CMP_PRI): Likewise.
9902         * regs.h (REG_FREQ_FROM_BB): New.
9903         (REG_FREQ_MAX): Likewise.
9904
9905 2001-07-30  H.J. Lu <hjl@gnu.org>
9906
9907         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
9908         -D_GNU_SOURCE.
9909
9910 2001-07-30  H.J. Lu  (hjl@gnu.org)
9911
9912         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
9913         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
9914         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
9915
9916 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
9917
9918         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
9919         as -mthumb-interwork when -mcpu=arm7 is specified.
9920
9921 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
9922
9923         * predict.def (noreturn, loop branch, loop exit): Mark as first
9924         match heuristics.
9925
9926 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
9927
9928         * combine.c (try_combine): Avoid barrier after noop jumps.
9929
9930 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9931
9932         * cpphash.h (struct cpp_reader): Remove import_warning.
9933         * cpplib.c (skip_rest_of_line): Don't bother turning off
9934         macro expansion.
9935         (parse_include): Move include handling to...
9936         (do_include_common): ... here.  Move import warning from...
9937         (do_import): ... here.
9938         (do_pragma_poison): Don't do a callback for poison identifiers.
9939         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
9940         * cppmain.c (setup_callbacks): Similarly.
9941
9942 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
9943
9944         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
9945         handle multiple sets.
9946         * except.c (sjlj_mark_call_sites): .... here.
9947         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
9948
9949 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
9950
9951         Suggested by Richard Henderson and Richard Kenner:
9952         * combine.c (recog_for_combine): Use the fake recog
9953         only if instruction does not match.
9954         * rtl.h (NOOP_MOVE_INSN_CODE): New.
9955         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
9956
9957         * combine.c (try_combine): Discover noop jump as direct jump.
9958
9959 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
9960
9961         * df.c (df_rd_global_compute): Add successors to worklist, not
9962         current item.
9963         (df_ru_global_compute): Ditto.
9964
9965 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
9966
9967         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
9968         increment REG_N_SETS.
9969
9970 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
9971
9972         * sbitmap.h: New prototype for sbitmap_a_xor_b.
9973
9974         * sbitmap.c (sbitmap_a_xor_b): New function.
9975         ifdef the basic block stuff on IN_GCC.
9976
9977 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9978
9979         * cppexp.c (parse_defined): Always record the macro name.
9980         (lex): Don't worry about identifiers, or special-case
9981         CPP_NOT here.
9982         (_cpp_parse_expr): Figure out at the end of the routine
9983         whether we saw a valid !defined() expression.
9984         * cppfiles.c (stack_include_file): Update for mi_valid.
9985         (_cpp_pop_file_buffer): Similarly.
9986         * cpplex.c (_cpp_lex_token): Similarly.
9987         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
9988         mi_if_not_defined, mi_lexed): Remove.
9989         (mi_valid): New.
9990         * cpplib.c (do_if): Simplify.
9991         (do_endif, push_conditional, _cpp_handle_directive): Update
9992         for renaming of mi_state to mi_valid.
9993 doc:
9994         * cpp.texi: Add index entries for digraphs, and add comment
9995         that C++ refers to them as alternative tokens.
9996
9997 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
9998
9999         * basic-block.h (CLEANUP_PRE_LOOP): New.
10000         * except.c (finish_eh_generation): Update call of cleanup_cfg.
10001         * sibcall.c (optimize_sibling_calls): Likewise.
10002         * toplev.c (rest_of_compilation): Likewise.
10003         * flow.c (try_forward_edges): Take argument MODE;
10004         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
10005         (try_optimize_cfg): Update call of try_forward_edges.
10006
10007 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
10008                                 Jan Hubicka  <jh@suse.cz>
10009
10010         * (validate_replace_rtx_1): Fix simplification of MINUS.
10011
10012 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10013
10014         PR preprocessor/3669
10015         * cppinit.c (init_dependency_output): Turn off dump requests
10016         if sending dependencies to stdout.
10017
10018 2001-07-28  Richard Henderson  <rth@redhat.com>
10019
10020         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
10021         not optimizing.
10022
10023 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
10024
10025         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
10026
10027 2001-07-28  Kazu Hirata  <kazu@hxi.com>
10028
10029         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
10030         is VAR_DECL first to prevent an ICE.
10031
10032 2001-07-28  Richard Henderson  <rth@redhat.com>
10033
10034         * varasm.c (immed_real_const_1): Don't elide special cases for
10035         nested functions.
10036         (clear_const_double_mem): Clear const_tiny_rtx too.
10037
10038 2001-07-28  Richard Henderson  <rth@redhat.com>
10039
10040         * dwarf2out.c (dw_val_class_offset): New.
10041         (struct dw_ranges_struct, dw_ranges_ref): New.
10042         (ranges_table, ranges_table_allocated): New.
10043         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
10044         (add_AT_offset, add_ranges, output_ranges): New.
10045         (print_die, output_die): Handle dw_val_class_offset.
10046         (attr_checksum, size_of_die, value_format): Likewise.
10047         (gen_lexical_block_die): Handle non-contiguous blocks.
10048         (gen_block_die): Likewise.
10049         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
10050         if needed.  Dump the ranges table.
10051         * final.c (final_start_function): Remove unnecessary notes and
10052         rebuild the block tree before numbering the blocks.
10053         * function.c (reorder_blocks_0): Walk the existing block tree
10054         to unmark all blocks.
10055         (reorder_blocks_1): Create block fragments when duplicate block
10056         notes are seen.
10057         (reorder_fix_fragments): New.
10058         (reorder_blocks): Call it.
10059         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
10060
10061 2001-07-28  Richard Henderson  <rth@redhat.com>
10062
10063         * emit-rtl.c (adjust_address): Make a copy of the memory address.
10064
10065 2001-07-28  Richard Henderson  <rth@redhat.com>
10066
10067         * flow.c (add_to_mem_set_list): New function.
10068         (init_propagate_block_info): Use it.
10069         (mark_set_1): Likewise.
10070         (insn_dead_p): Canonicalize memory address for dead store
10071         comparison.  Allow wider mode stores to kill narrower mode stores.
10072         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
10073         (invalidate_mems_from_set): Don't handle MEMs.
10074
10075 2001-07-28  Kazu Hirata  <kazu@hxi.com>
10076
10077         * config/h8300/h8300.h: Fix formatting.
10078
10079 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
10080
10081         * basic-block.h (EDGE_FREQUENCY): New macro.
10082         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
10083         for new BB/edges.
10084         * flow.c (find_sub_basic_blocks): Likewise.
10085         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
10086         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
10087
10088         * predict.c (DEF_PREDICTOR): New argument FLAGS.
10089         (HITRATE): New macro.
10090         (PRED_FLAG_FIRST_MATCH): New constant.
10091         (predictor_info): New field flgags.
10092         (combine_predictions_for_insn): Use DS theory to combine
10093         probabilities; set the edge probabilities when finished.
10094         (estimate_probability): Avoid duplicated matches
10095         of LOOP_BRANCH heuristics for nested loops; update comment.
10096         * predict.def: Add flags for each prediction, set probabilities
10097         according to B&L paper.
10098         * predict.h (DEF_PREDICTOR): New argument FLAGS.
10099
10100         * profile.c (compute_branch_probabilities):  Cleanup way the edge
10101         probabilities are computed and REG_BR_PROB notes are dropped; if
10102         values does not match, emit error.
10103         (init_branch_prob): Do error instead of warning when profile driven
10104         feedback is missing or corrupt.
10105
10106 2001-07-27  DJ Delorie  <dj@redhat.com>
10107
10108         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
10109         against a constant, try to adjust the compare to have the desired
10110         constant in it so that min/max optimizations happen more often.
10111
10112 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
10113
10114         * flow.c (last_loop_beg_note): New function.
10115         (redirect_edge_and_branch): Use it.
10116         (split_edge): Likewise.
10117
10118         * alias.c (loop_p): Avoid uninitialized memory access.
10119
10120         * flow.c (try_forward_edges): Avoid accessing freed memory.
10121
10122         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
10123         variable access.
10124
10125 2001-07-26  Andrew Haley  <aph@redhat.com>
10126         Joern Rennecke <amylaar@redhat.com>
10127
10128         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
10129         (SUBTARGET_CPP_ENDIAN_SPEC): New.
10130         (SUBTARGET_CPP_SPEC): New.
10131         (CPP_SPEC): Remove.
10132         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
10133         (SUBTARGET_CPP_PTR_SPEC): New.
10134         (CPP_DEFAULT_CPU_SPEC): New.
10135         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
10136         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
10137         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
10138         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
10139         (SUBTARGET_CPP_SPEC): Define as an empty string.
10140
10141 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10142
10143         * doc/install.texi (Configuration): Properly link the host
10144         specific instructions also when generating HTML.
10145
10146 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
10147
10148         * flow.c (redirect_edge_and_branch_force): Test
10149         target->global_live_at_start.
10150
10151 2001-07-26  Richard Henderson  <rth@redhat.com>
10152
10153         * simplify-rtx.c (avoid_constant_pool_reference): Export.
10154         * rtl.h (avoid_constant_pool_reference): Declare it.
10155         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
10156         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
10157
10158 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
10159
10160         * rtl.h (cleanup_barriers): Declare.
10161         * jump.c (cleanup_barriers): New function.
10162         * toplev.c (rest_of_compilation): Call cleanup_barriers
10163         before loop optimizer and after bb_reorder.
10164
10165         * flow.c (back_edge_of_syntactic_loop_p): New.
10166         (split_edge): Use it.
10167
10168 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10169
10170         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
10171
10172 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
10173
10174         * cse.c (cse_process_notes): Replace any registers if the address
10175         remains valid.
10176
10177 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
10178
10179         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
10180         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
10181         (propagate_block): Update prototype.
10182         * flow.c (update_life_info): Simplify the CFG and
10183         recalculate the global regs which are alive when
10184         removing dead code during a global update.
10185         (propagate_block): Return non-zero if an INSN is
10186         deleted.
10187
10188 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10189
10190         * Makefile.in (LIBICONV): Define.
10191
10192 2001-07-26  Catherine Moore  <clm@redhat.com>
10193
10194         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
10195         of conditional to avoid tree checking errors.
10196
10197 2001-07-26  Kazu Hirata  <kazu@hxi.com>
10198
10199         * regmove.c (regmove_optimize): Don't replace a reg with
10200         another reg of a different mode.
10201
10202 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
10203
10204         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
10205         limit length of dependency flush list.
10206         * params.h (MAX_PENDING_LIST_LENGTH): Define.
10207         * sched-int.h  (struct deps): Add pending_flush_length field.
10208         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
10209         has 1 element in it.
10210         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
10211         (sched_analyze): After a jump, if the pending memory flush list is too
10212         large, flush the pending lists.
10213         (init_deps): Initialize pending_flush_length to 0.
10214         * doc/invoke.texi (max_pending_list_length): Document parameter.
10215
10216 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
10217
10218         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
10219         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
10220         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
10221
10222 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10223
10224         * cpphash.h (struct_lexer_state): Delete was_skipping.
10225         Move skipping here from struct cpp_reader.
10226         * cpplex.c (parse_identifier): Update.
10227         (_cpp_lex_token): Don't skip tokens in a directive.
10228         * cpplib.c (struct if_stack): Update.
10229         (start_directive, end_directive): Don't change skipping state.
10230         (_cpp_handle_directive): Update.
10231         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
10232         (do_else, do_endif): Update; only check for excess tokens if not
10233         in a skipped conditional block.
10234         (push_conditional): Update for new struct if_stack.
10235
10236 2001-07-26  Graham Stott  <grahams@redhat.com>
10237
10238         * function.c (locate_and_pad_parm): Also pad initial offset
10239         so that the total argument size also includes the padding.
10240
10241 2001-07-26  Graham Stott <grahams@redhat.com>
10242
10243         * gensupport.c (alter_output_for_insn): Correct enable checking failure
10244         change XSTR to XTMPL.
10245
10246         (process_one_cond_exec): Likewise
10247
10248 2001-07-25  Richard Henderson  <rth@redhat.com>
10249
10250         * varasm.c (assemble_variable): Create DECL_RTL before setting
10251         TREE_ASM_WRITTEN.
10252
10253 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
10254
10255         * predict.c (estimate_probability): Avoid duplicated predictions.
10256
10257         * loop.c (find_and_verify_loops): Grok multiple barriers.
10258
10259 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10260
10261         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
10262
10263         * dbxout.c: Consistently use putc instead of fputc.
10264         (print_wide_int): New function; call instead of direct fprintf.
10265         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
10266         (dbxout_type_fields, dbxout_type_method_1): Likewise.
10267         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
10268         (print_int_cst_octal): Likewise.
10269         (print_octal): Show we wrote characters.
10270         (dbxout_type): Set have_used_extensions in more places.
10271
10272 2001-07-25  Catherine Moore  <clm@redhat.com>
10273
10274         * config/v850/v850.c (v850_va_arg):  Use addr
10275         instead of valist to build incr.
10276
10277 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
10278
10279         * flow.c (delete_dead_jumptables): New function.
10280         (life_analyzis): Call it.
10281         * bb-reorder.c (skip_insns_after_block): Handle contradictory
10282         sequences.
10283
10284 2001-07-25  Richard Henderson  <rth@redhat.com>
10285
10286         * except.c (reachable_handlers): Handle a region being removed
10287         out from under a RESX.
10288
10289 2001-07-25  Richard Henderson  <rth@redhat.com>
10290
10291         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
10292         swap GE/GT if it is an fp comparison.
10293
10294 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
10295
10296         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
10297         operands.
10298
10299 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
10300
10301         * ssa.c (rename_insn_1): Do not wrap an assignment to a
10302         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
10303         glitch.
10304
10305         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
10306         throw an exception.
10307         (visit_expression): When attempting to simplify an expression,
10308         retrieve any modes for arguments before they are simplified
10309         to constants.
10310
10311 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
10312             Janis Johnson  <janis@us.ibm.com>
10313
10314         * stmt.c (expand_goto): A nonlocal goto can be a call too.
10315         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
10316         pointer parameters to match documented usage of nonlocal_goto.
10317         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
10318         parameters to their correct order.
10319         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
10320         parameters to their correct order.
10321
10322 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
10323
10324         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
10325
10326 2001-07-25  Jan Hubicka  <jh@suse.cz>
10327             Richard Henderson  <rth@redhat.com>
10328
10329         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
10330         the sequence.
10331         (make_edges): New argument update_p; populate the edge cache if set.
10332         (find_basic_blocks): Update make_edges invocation.
10333
10334 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10335
10336         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
10337
10338 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10339
10340         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
10341         -Acpu and -Amachine.h.
10342         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
10343         Corrected header to say ELF not a.out.
10344         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
10345         when given -msoft-float.
10346
10347 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10348
10349         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
10350         extra multilib parts like arm-elf.
10351         (i960-*-coff*, i960-*-rtems): Should not use collect2.
10352         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
10353         crtfini.o as extra multilib parts.
10354
10355 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10356
10357         * configure.in: Add rtems as a supported thread model.
10358         * gthr-rtems.h: Add missing entry point __gthread_active_p.
10359         * configure: Rebuilt.
10360
10361 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
10362
10363         * stor-layout.c (get_mode_alignment): make it work when
10364         BITS_PER_UNIT is not a power of two.
10365         * builtins.c (get_pointer_alignment): Likewise.
10366
10367 2001-07-24  Richard Henderson  <rth@redhat.com>
10368
10369         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
10370         the retrieved constant into the expected mode.
10371
10372 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
10373
10374         * flow.c (try_simplify_condjump): Avoid duplicated edges.
10375         (verify_flow_info): Check for duplicated edges; clarify
10376         error reporting.
10377
10378         * flow.c (block_label): Update basic_block_for_insn.
10379         (commit_edge_insertions): Call compute_bb_for_insn.
10380
10381         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
10382         returns too.
10383
10384         * flow.c (redirect_edge_and_branch,
10385         try_optimize_cfg): Use redirect_edge_succ_nodup
10386         (redirect_edge_succ_nodup): New.
10387         * basic_block.h (redirect_edge_succ_nodup): Declare.
10388
10389         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
10390         after gcse.
10391
10392 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
10393
10394         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
10395         (try_crossjump_to_edge): Update commetns.
10396         (try_crossjump_bb): Likewise.
10397
10398 2001-07-24  Richard Henderson  <rth@redhat.com>
10399
10400         * combine.c (distribute_notes): Move set of need_refresh
10401         for noop_move_p down to catch all cases.
10402
10403 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
10404
10405         * recog.c (split_all_insns_noflow): New.
10406         * rtl.h (split_all_insns_noflow): Declare.
10407         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
10408         * m68hc11.c (m68hc11_reorg): Likewise.
10409         * sh.c (machine_dependent_reorg): Likewise.
10410         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
10411         call.
10412
10413 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
10414
10415         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
10416         (ashlsi3_n splitter): Likewise.
10417         (lshrsi3_n splitter): Likewise.
10418
10419         (GOTaddr2picreg): Make const SImode.
10420         (sym_label2reg): Likewise.
10421         (symGOT2reg): Likewise.
10422         (symGOTOFF2reg) Likewise.
10423
10424         (casesi_worker_0): Make unspec SImode.
10425
10426 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
10427
10428         * config/sh/sh.c (barrier_align): Check that an operand really is
10429         an insn before extracting its INSN_CODE.
10430
10431 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
10432
10433         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
10434         dangling else.
10435
10436         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
10437         for SImode to prevent overflow.
10438
10439 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10440
10441         * config/mips/irix6-libc-compat.c: New file.
10442         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
10443         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
10444         passing workaround.
10445
10446 2001-07-24  lars brinkhoff  <lars@nocrew.org>
10447
10448         * rtl.texi (REG_POINTER): Document.
10449         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
10450         QFmode, HFmode, TQFmode, QCmode, and HCmode.
10451
10452 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
10453
10454         * flow.c (delete_noop_moves): Do not confuse libcall regions.
10455
10456 2001-07-23  Richard Henderson  <rth@redhat.com>
10457
10458         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
10459
10460 2001-07-23  Kazu Hirata  <kazu@hxi.com>
10461
10462         * config/h8300/h8300-protos.h: Add a prototype for
10463         general_operand_dst_push.
10464         * config/h8300/h8300.c (general_operand_dst_push): New.
10465         * config/h8300/h8300.h (OK_FOR_T): New.
10466         (EXTRA_CONSTRAINT): Use it.
10467         * config/h8300/h8300.md (movqi_push): Remove and integrate into
10468         the existing movqi pattern.
10469         (movhi_push): Likewise.
10470
10471         * reload.c: Fix comment typos.
10472
10473 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
10474
10475         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
10476
10477 2001-07-23  H.J. Lu  (hjl@gnu.org)
10478
10479         * doc/extend.texi: Update __builtin_return_address and
10480         __builtin_frame_address.
10481
10482 2001-07-23  Richard Henderson  <rth@redhat.com>
10483
10484         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
10485         before CSE.
10486         * config/i386/i386.md: New setcc+movzbl peephole2.
10487
10488 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10489
10490         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
10491         * objc/objc-act.c: Include debug.h.
10492         (synth_module_prologue): Save and restore debug hooks too.
10493
10494 2001-07-23  lars brinkhoff  <lars@nocrew.org>
10495
10496         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
10497         and C4X_FLOAT_FORMAT.
10498         (BOOL_TYPE_SIZE): Document.
10499
10500 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
10501
10502         * unroll.c (loop_iterations): Fix miscalculation of initial
10503         giv offset.
10504
10505 2001-07-13  Andrew Haley  <aph@redhat.com>
10506
10507         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
10508         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
10509         * config/sh/sh.c (sh_can_redirect_branch): New function.
10510         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
10511         * reorg.c (steal_delay_list_from_target): Use
10512         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
10513
10514 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
10515
10516         * flow.c (try_simplify_condjump): Unlink insn chain on
10517         fallthru edge; use can_fallthru.
10518
10519 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
10520
10521         * basic-block.h (find_sub_basic_block): Declare.
10522         * flow.c (make_edges): New arguments MIN and MAX;
10523         (find_sub_basic_blocks): Revamp to use make_edges
10524         and purge_dead_edges.
10525         (find_basic_blocks): Update call of find_sub_basic_block.
10526
10527         * recog.c (split_all_insns): Always expect CFG to be consistent;
10528         call find_sub_basic_blocks in case something has changed.
10529         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
10530         has been built.
10531
10532         * basic-block.h (delete_noop_moves): Declare.
10533         * combine.c (combine_instructions): Call it.
10534         (recog_for_combine): Tolerate noop moves
10535         (distribute_notes): Force refresh when register dies at noop move.
10536         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
10537         too.
10538         (life_analysis): Update delete_noop_moves call.
10539         (set_noop_p): Move too ...
10540         * rtlanal.c (noop_move_p): ... here.
10541         * rtl.h (noop_move_p): Declare.
10542
10543         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
10544         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
10545         after combine.
10546         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
10547         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
10548
10549 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
10550
10551         * reload.c (push_reload): Fix typo in comment.
10552         (find_reloads_address): Ditto.
10553         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
10554
10555 2001-07-22  Richard Henderson  <rth@redhat.com>
10556
10557         * flow.c: Grammar check and clarify a lot of comments.
10558         (try_simplify_condjump): Rename variables to be clearer.
10559         (try_forward_edges): Skip complex and fallthru edges.
10560         Rearrange tests to avoid duplicate checks.
10561         (flow_find_cross_jump): Likewise.
10562         (outgoing_edges_match): Allow match if neither branch has
10563         probability data.  Loosen probability match to 5%.
10564         (try_crossjump_to_edge): Hoist repeated indirection into
10565         local variables.
10566         (try_crossjump_bb): Don't check complex edges.  Eliminate
10567         redundant crossjump tests.
10568         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
10569         checks before more expensive checks.
10570
10571 2001-07-22  Richard Henderson  <rth@redhat.com>
10572
10573         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
10574         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
10575         arguments.
10576
10577 2001-07-22  Richard Henderson  <rth@redhat.com>
10578
10579         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
10580         (const_sint32_operand): Likewise.
10581         * m68k.md (anon mulsi pattern): Use const_int_operand not
10582         const_sint32_operand.
10583         (umulsi3_highpart): Zero extend a constant input.
10584         (smulsi3_highpart): Don't bother checking SImode constant.
10585         (const_umulsi3_highpart): Give op3 DImode.
10586         (const_smulsi3_highpart): Likewise.
10587
10588 2001-07-22  Richard Henderson  <rth@redhat.com>
10589
10590         * flow.c (split_block): Make sure bb_note is included in the
10591         new block when splitting before a label.
10592
10593 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
10594
10595         * basic-block.h (redirect_edge_and_branch_force,
10596         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
10597         * flow.c (redirect_edge_and_branch_force,
10598         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
10599         (redirect_edge_and_branch_force): Fix copying of lifeness information.
10600         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
10601         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
10602         instead of label; update CFG after transformation.
10603         (find_if_case_1): Update call, use redirect_edge_and_branch_force
10604         for finishing the transformation; handle even case where ELSE
10605         does not follow THEN.
10606         (find_if_case_2): Update call of dead_or_predictable; simplify
10607         CFG update.
10608
10609         * emit-rtl.c (split_branch_probability): New global variable.
10610         (try_split): Take care to set split_branch_probability and
10611         create REG_BR_PROB note for new jump insns.
10612         * md.texi (define_split): Document new feature.
10613
10614         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
10615
10616 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10617
10618         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
10619         (asm_out_file): Remove redundant declaration.
10620         (assemble_asm): Remove old #if 0 block.
10621         (assemble_variable): Remove end of function; debug output is
10622         now handled with global_decl.  Remove old #if 0 block.  Update.
10623         Remove saved_in_section and associated no-op code.
10624         * Makefile.in (varasm.o): Correct dependencies.
10625
10626 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
10627
10628         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
10629         the definition in defaults.h.
10630
10631 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
10632
10633         * jump.c: Update comments.
10634         (delete_barrier_successors, delete_unreferenced_labels,
10635         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
10636         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
10637         jump_optimize, jump_optimize_minimal): Kill.
10638         (rebuild_jump_labels): Move code from jump_optimize_1.
10639         (purge_line_number_notes): Likewise.
10640         (copy_loop_headers): Likewise.
10641         * reg-stack.c: Update comment.
10642         * stmt.c: Likewise.
10643         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
10644         JUMP_AFTER_REGSCAN): Kill.
10645         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
10646         purge_line_number_notes and copy_loop_headers.
10647
10648 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
10649            Richard Henderson  <rth@redhat.com>
10650
10651         * dbxout.c (dbxout_global_decl): New.
10652         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
10653         * sdbout.c (sdbout_finish): New.
10654         (sdbout_debug_hooks): Use it, add comments.
10655         (sdbout_global_decl): Defer initialised public vars to
10656         sdbout_finish.
10657         * varasm.c (assemble_variable): Don't output debug information
10658         for file-scope variables.
10659
10660 2001-07-22  Richard Henderson  <rth@redhat.com>
10661
10662         * config/alpha/alpha.c (get_trap_mode_suffix): New.
10663         (get_round_mode_suffix): New.
10664         (print_operand): Use them for [/].  Remove support for [&'`()+].
10665         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
10666         * config/alpha/alpha.md (attr round_suffix): New.
10667         (attr trap_suffix): New.
10668         (all insns): Set them appropriately.  Use %/ instead of the
10669         myriad punctuators.
10670
10671 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10672
10673         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
10674
10675 2001-07-22  Richard Henderson  <rth@redhat.com>
10676
10677         * regrename.c (regrename_optimize): Compute nregs for each
10678         potential target register.
10679
10680 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
10681            Richard Henderson  <rth@redhat.com>
10682
10683         * dbxout.c (dbxout_global_decl): New.
10684         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
10685         * sdbout.c (sdbout_finish): New.
10686         (sdbout_debug_hooks): Use it, add comments.
10687         (sdbout_global_decl): Defer initialised public vars to
10688         sdbout_finish.
10689         * varasm.c (assemble_variable): Don't output debug information
10690         for file-scope variables.
10691
10692 2001-07-21  H.J. Lu  (hjl@gnu.org)
10693
10694         * config/mips/mips.c (mips_cpu): Moved into ...
10695         (override_options): Here.
10696
10697         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
10698         mips_tune.
10699         (mips_cpu): Removed.
10700
10701 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10702
10703         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
10704         ("iorqi3"): Likewise.
10705         ("xorqi3"): Likewise.
10706         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
10707         ("*subhi3_sp): Likewise.
10708         ("*subhi3"): Likewise.
10709         ("extendhisi2"): Accept D, X and Y as source operand to avoid
10710         reload problems.
10711
10712 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
10713
10714         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
10715         * config/freebsd.h: Likewise.
10716         * config/linux.h: Likewise.
10717         * config/openbsd.h: Likewise.
10718         * config/alpha/linux-elf.h: Likewise.
10719         * config/arm/linux-elf.h: Likewise.
10720         * config/d30v/d30v.h: Likewise.
10721         * config/fr30/fr30.h: Likewise.
10722         * config/ia64/aix.h: Likewise.
10723         * config/ia64/ia64.h: Likewise.
10724         * config/mips/linux.h: Likewise.
10725         * config/pj/pj.h: Likewise.
10726         * config/rs6000/linux.h: Likewise.
10727         * config/sparc/linux.h: Likewise.
10728         * config/sparc/linux64.h: Likewise.
10729
10730 2001-07-20  Bruce Korb  <bkorb@gnu.org>
10731
10732         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
10733         because getc() and char* may disagree on signedness.
10734
10735 2001-07-20  Richard Henderson  <rth@redhat.com>
10736
10737         * doc/rtl.texi (REG_DEAD): Update for current semantics.
10738
10739         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
10740         insns to delete in the presence of cc0 in a jump insn.
10741
10742 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
10743                                 Jan Hubicka  <jh@suse.cz>
10744
10745         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
10746         of doing the change by hand.
10747
10748 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
10749
10750         * rtlanal.c (set_noop_p): Return true for noop jumps.
10751
10752         * expr.c (emit_single_push_insn): Add call to push expander.
10753         * expr.h (optab_index): Add OTI_push
10754         (push_optab): New constant.
10755         * genopinit.c (optabs): Add push_optab.
10756         * optabs.c (init_optab): Init push optab.
10757         * md.texi (push??1): Document
10758
10759 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10760
10761         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
10762         expand to emit the pattern; put a REG_INC note for push/pop
10763         instructions.
10764         ("movdf", "movdf_internal"): Likewise.
10765         ("movsi", "movsi_internal"): Likewise.
10766         ("movsf", "movsf_internal"): Likewise.
10767         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
10768
10769 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10770
10771         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
10772         gen_highpart.
10773
10774 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
10775
10776         * params.def: Change default max inline insns to 100.
10777
10778 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
10779
10780         * combine.c (combine_simplify_rtx): Generate a new shift operation
10781         when simplifying the first operand of a (neg (ashift)) expression.
10782
10783 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
10784
10785         * regclass.c (N_REG_INTS): Use only 32 bits per element.
10786
10787 2001-07-20  Kelley Cook  <kelley.cook@home.com>
10788
10789         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
10790         information.   Move rest into ...
10791         (*-*-solaris): ... here.  Eliminate redundant information and
10792         reword necessary packages section.  Delete 4.x assembler bug info.
10793         (sparc-sun-*): Merge into ...
10794         (sparc-sun-sunos*): here.
10795
10796 2001-07-20  Catherine Moore  <clm@redhat.com>
10797
10798         * config/v850/v850.md (casesi): Generate LABEL_REF
10799         with Pmode.
10800
10801 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
10802
10803         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
10804         * i386.c (ix86_zero_extend_to_Pmode): Make global.
10805         * i386.md (strclrsi expander): Use it.
10806
10807 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10808
10809         * integrate.c (copy_insn_list): handle
10810         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
10811         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
10812         identically as to CODE_LABEL.
10813
10814         * fold-const (fold): Convert A/B/C to A/(B*C) and
10815         A/(B/C) to (A/B)*C
10816
10817         * except.c (connect_post_landing_pads): Delete the RESX insns.
10818
10819 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
10820
10821         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
10822
10823         * config/mips/mips.md (nmadd/nmsub): Use macro.
10824
10825 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
10826
10827         * cppinit.c (remove_dup_dir): Make static.
10828         (remove_dup_dirs): Make static. Only warn about preempting a
10829         system directory with a non-system directory.
10830
10831 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
10832
10833         * ifcvt.c (noce_try_store_flag_constants): Correct order
10834         of parameters to trunc_int_for_mode.
10835
10836 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
10837
10838         * reorg.c (fill_simple_delay_slots): If an instruction might throw
10839         an exception that will be caught within this function, do not fill
10840         its delay slot with any subsequent instruction.
10841
10842 2001-07-19  Steve Ellcey <sje@cup.hp.com>
10843
10844         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
10845         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
10846         pointer extension instruction.
10847         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
10848         * simplify-rtx.c (simplify_unary_operation) Likewise.
10849         * explow.c (convert_memory_address) Check value of
10850         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
10851         less than zero.
10852         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
10853         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
10854         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
10855         Add Multilib Support.
10856         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
10857         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
10858         Add Multilib Support.
10859         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
10860         support.
10861         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
10862         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
10863         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
10864
10865 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
10866
10867         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
10868         old and new operands in `<', `3' and `b'.
10869
10870 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10871
10872         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
10873         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
10874         (toplev.o): Don't depend on xcoffout.h.
10875         * c-decl.c: Include debug.h
10876         (duplicate_decls): Use debug hook.
10877         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
10878         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10879         (dbxout_types): Remove.
10880         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
10881         * debug.c (do_nothing_debug_hooks): Update.
10882         (debug_true_tree, debug_nothing_rtx): New.
10883         * debug.h (struct rtx_def): New.
10884         (struct gcc_debug_hooks): New hooks ignore_block,
10885         outlining_inline_function and label.
10886         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
10887         dwarf2out_frame_finish): New.
10888         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
10889         Make static, update prototype.
10890         (dwarf2_debug_hooks): Update.
10891         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
10892         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
10893         * dwarfout.c (dwarf_debug_hooks): Update.
10894         * emit-rtl.c: Include debug.h.
10895         (remove_unnecessary_notes): Use debug hook.
10896         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
10897         (final_scan_insn): Use debug hook.
10898         * integrate.c (output_inline_function): Use debug hook.
10899         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
10900         (sdb_debug_hooks): Update.
10901         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
10902         * toplev.c: Don't include xcoffout.h.
10903         (note_outlining_of_inline_function, debug_ignore_block): Remove.
10904         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
10905         Remove.
10906         * tree.h (dwarf2out_do_frame): Remove.
10907
10908 2001-07-19  Catherine Moore  <clm@cygnus.com>
10909
10910         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
10911
10912 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
10913
10914         * reload1.c (eliminate_regs_in_insn): When updating a set
10915         to the frame pointer to the hardware frame pointer, perform
10916         the update always not just when REPLACE is set.
10917
10918         * reload1.c (choose_reload_regs): Don't inherit a reload
10919         that crosses multiple registers if registers past the first
10920         don't fit in the desired class.
10921
10922         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
10923         when negating constants.
10924
10925 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
10926
10927         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
10928         * doc/tree.texi: Ditto.
10929
10930 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
10931             Jakub Jelinek  <jakub@redhat.com>
10932
10933         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
10934         (extract_cie_info): Handle "eh" augmentation properly,
10935         remember eh_ptr.
10936         (struct frame_state, __frame_state_for): New.
10937
10938 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10939
10940         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
10941         HANDLE_SYSV_PRAGMA): Define.
10942         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
10943         previous args.
10944         (copy_object): Caller changed.
10945
10946 2001-07-19  Andreas Schwab  <schwab@suse.de>
10947
10948         * configure.in (assembler dwarf2 debug_line support): Define nop
10949         insn for m68k.
10950         * configure: Regenerated.
10951
10952 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10953
10954         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
10955         dwarfout.h.
10956         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
10957         to conditionally compiled block.
10958         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10959         * dbxout.h (dbxout_function): Remove.
10960         * debug.c (do_nothing_debug_hooks): Update.
10961         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
10962         global_decl, deferred_inline_function.
10963         * dwarf2out.c (dwarf2_debug_hooks): Update.
10964         (dwarf2out_global_decl): New.
10965         * dwarfout.c: Don't include dwarfout.h.
10966         (dwarfout_global_decl, dwarfout_function_decl,
10967         dwarfout_deferred_inline_function): New.
10968         (dwarf_debug_hooks): Update.
10969         * dwarfout.h: Remove.
10970         * final.c: Don't include dwarfout.h.
10971         * sdbout.c (sdbout_global_decl): New.
10972         (sdbout_debug_hooks): Update.
10973         * toplev.c: Don't include dwarfout.h.
10974         (check_global_declarations, rest_of_compilation): Use new debug hooks.
10975         (note_deferral_of_defined_inline_function): Remove.
10976         * toplev.h (note_deferral_of_defined_inline_function): Remove.
10977         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
10978         * ch/lex.c: Don't include dwarfout.h.
10979         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
10980         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
10981         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
10982         * cp/optimize.c: Include debug.h.
10983         (maybe_clone_body): Use debug hook.
10984         * cp/semantics.c: Include debug.h.
10985         (expand_body): Use debug hook.
10986         * po/POTFILES.in: Remove dwarfout.h.
10987
10988 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10989
10990         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
10991         * c-parse.in (yyerror, _yylex): Similarly.
10992         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
10993         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
10994         Update comments.
10995         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
10996         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
10997
10998 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
10999
11000         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
11001         in-class declaration at -g1.  Fixes c++/2814.
11002
11003 2001-07-18  Richard Henderson  <rth@redhat.com>
11004
11005         * doc/md.texi (reload_in/out): Document restrictions in predicates
11006         and constraints for these patterns.  Document empty string matching
11007         ALL_REGS.
11008
11009 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11010
11011         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
11012
11013 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
11014
11015         * cse.c: Undo my previous patch.
11016
11017 2001-07-18  Tom Tromey  <tromey@redhat.com>
11018
11019         For PR java/2812:
11020         * configure: Rebuilt.
11021         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
11022         instead.
11023         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
11024
11025 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
11026                                 Jan Hubicka  <jh@suse.cz>
11027
11028         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
11029         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
11030         * jump.c (mark_jump_label): Do not forward branches.
11031
11032 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
11033
11034         * cse.c (delete_trivially_dead_insns): Delete the libcall block
11035         when return value is unused.
11036
11037 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
11038
11039         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
11040
11041 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
11042
11043         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
11044         on error.  We can't blindly return the result of
11045         pthread_mutex_trylock because it returns a positive number on
11046         error, while we must return -1 on error.
11047         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
11048         fixes.
11049         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
11050
11051 2001-07-18  Andreas Jaeger  <aj@suse.de>
11052
11053         * integrate.c (output_inline_function): Correct type of debug_hooks.
11054
11055 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
11056
11057         * combine.c (combine_simplify_rtx): DIV can be treated
11058         associatively for floats if unsafe math optimisations are enabled.
11059
11060 2001-07-17  Richard Henderson  <rth@redhat.com>
11061
11062         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
11063
11064 2001-07-17  Richard Henderson  <rth@redhat.com>
11065
11066         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
11067         don't force the function address into a register.
11068         (expand_call, emit_library_call_value_1): Update callers.
11069         * builtins.c (expand_builtin_apply): Likewise.
11070         * expr.h (prepare_call_address): Update decl.
11071
11072 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
11073
11074         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
11075         config directory.
11076         * config/i386/chorus.h: Move up.
11077         * config/sparc/chorus.h: Likewise.
11078         * config/rs6000/chorus.h: Likewise.
11079         * config/chorus.h: Moved here.
11080
11081 2001-07-17  Andreas Schwab  <schwab@suse.de>
11082
11083         * configure.in  (assembler eh_frame optimization): Handle big
11084         endian.
11085         * configure: Regenerated.
11086
11087 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
11088
11089         * expr.c (epxand_expr): Convert divisions into multiplications by
11090         reciprocals if -ffast-math.
11091
11092 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
11093
11094         * dbxout.c (dbxout_really_begin_function): Rename to
11095         dbxout_begin_function.
11096         (dbx_debug_hooks, xcoff_debug_hooks): Update.
11097         (dbxout_begin_function): Remove.
11098         (dbxout_function): Update.
11099         (dbxout_source_line): Update prototype.
11100         * dbxout.h (dbxout_begin_function): Remove.
11101         * debug.c (do_nothing_debug_hooks): Update.
11102         (debug_nothing_tree): Update.
11103         (debug_nothing_charstar_rtx): Remove.
11104         * debug.h (union tree_node): Declare.
11105         (struct rtx_def): Remove.
11106         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
11107         begin_function.  Change source_line prototype.
11108         (debug_nothing_tree): New.
11109         (debug_nothing_charstar_rtx): Delete.
11110         (dwarf2out_begin_prologue): Moved from ...
11111         * tree.h: ... here.
11112         * dwarf2out.c (dwarf2_debug_hooks): Update.
11113         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
11114         debug info, call dwarf2out_source_line.
11115         (dwarf2out_souce_line): Update prototype.
11116         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
11117         Change prototype, make static.
11118         (dwarfout_source_line): Update prototype.
11119         (dwarf_debug_hooks): Update.
11120         * dwarfout.h (dwarfout_begin_function): Remove.
11121         * final.c (final_start_function, final_scan_insn): Use appropriate
11122         debug hooks, update to use notice_source_line.
11123         (output_source_line): Rename notice_source_line.  Don't call the
11124         source_line debug hook.
11125         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
11126         make static, update prototype.
11127         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
11128         prototype.
11129         (sdbout_end_prologue): New.
11130         (sdbout_source_line): Update prototype.
11131         (sdbout_debug_hooks): Update.
11132         (sdbout_symbol): Remove unused var.
11133         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
11134         Delete.
11135         * varasm.c: Include debug.h.
11136         (assemble_start_function): Use begin_function debug_hook.
11137         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
11138         update with prototype.
11139         (xcoffout_source_line): Update prototype.
11140         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
11141         update prototype.
11142         (xcoffout_source_line): Update prototype.
11143
11144 2001-07-17  Richard Henderson  <rth@redhat.com>
11145
11146         * c-typeck.c (build_binary_op): Do not shorten unsigned
11147         right shift after sign extension.
11148
11149 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
11150
11151         * combine.c (combine_simplify_rtx): Attempt to simplify
11152         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
11153
11154         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
11155         (simplify_binary_operation, simplify_unary_operation,
11156          simplify_relational_operation): Use it.
11157
11158         * combine.c (combine_simplify_rtx): Don't do associative law
11159         on divisions; allow associative law on floats.
11160
11161 2001-07-17  H.J. Lu <hjl@gnu.org>
11162             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11163
11164         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
11165         ASM_OUTPUT_WEAK_ALIAS are defined.
11166         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
11167         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
11168         Moved ...
11169         * config/mips/iris5.h: ... here.
11170         (HANDLE_SYSV_PRAGMA): Defined as 1.
11171         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
11172         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
11173         symbol.
11174
11175 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
11176
11177         * c-parse.in (all_prefix_attributes): New variable.
11178         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
11179         (maybe_resetattrs): New production.
11180         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
11181         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
11182         notype_initdcl, nested_function, notype_nested_function,
11183         component_decl, components, components_notype,
11184         component_declarator, component_notype_declarator,
11185         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
11186         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
11187         after a comma being applied to more than one declarator.
11188         * doc/extend.texi (Attribute Syntax): Update.  Remove
11189         documentation of bugs that are no longer present.
11190
11191 2001-07-13  Eric Christopher  <echristo@redhat.com>
11192
11193         * config/mips/mips.h: Change TUNE_MIPS* options to use
11194         mips_tune.
11195         (EXTRA_SPECS): Add cc1_cpu_spec.
11196         * config/mips/mips.md (muldf3): Fix typo.
11197
11198 2001-07-16  Richard Henderson  <rth@redhat.com>
11199
11200         * config/m68k/m68k.c: Include expr.h and reload.h.
11201         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
11202         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
11203
11204 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
11205             Richard Henderson  <rth@redhat.com>
11206
11207         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
11208         (insn_live_p): Fix fall off end of function.
11209         (dead_libcall_p): Remove COUNTS argument; update callers.
11210         (delete_trivially_dead_insns): Remove unused variables.
11211
11212 2001-07-17  Andreas Jaeger  <aj@suse.de>
11213
11214         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
11215         x86-64 pic support.
11216
11217         * lcm.c (optimize_mode_switching): Avoid warning for unused
11218         variable if !NORMAL_MODE.
11219
11220         * flow.c (try_crossjump_to_edge): Remove unused variable.
11221
11222 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11223
11224         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
11225         atexit declaration in stdlib.h.
11226
11227 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
11228
11229         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
11230
11231 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
11232
11233         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
11234         * except.c (finish_eh_generation): Update call of cleanup_cfg;
11235         do rebuild_jump_labels instead of jump_optimize
11236         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
11237         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
11238         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
11239
11240         * flow.c: Include timevar.h
11241         (find_basic_block): Push/pop timevar;
11242         (cleanup_cfg): Likewise.
11243         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
11244         * Makefile: Add dependencies on timevar.h
11245
11246         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
11247         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
11248
11249         * rtl.h (delete_trivially_dead_insns): Add new parameter.
11250         * toplev.c (rest_of_compilation): Update calls.
11251         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
11252         (delete_trivially_dead_insns): ... here; accept new argument
11253         preserve_basic_blocks; preserve basic blocks if set.
11254
11255         * reg-stack.c (stack_regs_mentioned): Return 0 if
11256         stack_regs_mentioned_data is not initialized.
11257         (reg_to_stack): Make stack_regs_mentioned survive after the
11258         reg-stack is completted; do not call cleanup_cfg.
11259         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
11260         make cleanup_cfg after bb-reorder to output to debug file.
11261
11262 2001-07-16  Richard Henderson  <rth@redhat.com>
11263
11264         * regclass.c (init_reg_sets): Use only 32 bits per initializer
11265         from int_reg_class_contents.
11266
11267 2001-07-16  Richard Henderson  <rth@redhat.com>
11268
11269         * hard-reg-set.h (regs_invalidated_by_call): Declare.
11270         * regclass.c (regs_invalidated_by_call): Move from cse.c.
11271         (init_reg_sets_1): Move initialization from cse_main.
11272         * cse.c (regs_invalidated_by_call): Move to regclass.c.
11273         (cse_main): Move its initialization also.
11274         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
11275         * flow.c (propagate_one_insn): Likewise.
11276         * gcse.c (compute_hash_table): Likewise.
11277         (compute_kill_rd, compute_store_table): Likewise.
11278         * sched-deps.c (sched_analyze_1): Likewise.
11279
11280 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
11281
11282         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
11283         gen_rtx_SET.
11284
11285 2001-07-16  Steve Ellcey <sje@cup.hp.com>
11286
11287         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
11288         in if statement so we don't access undefined memory.
11289
11290 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
11291
11292         * gcse.c: Update comment at top.
11293         Update comment on mem handling.
11294         mem_last_set, mem_first_set, mem_set_in_block: gone.
11295         Declaration of reg_set_info: gone.
11296         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
11297         pointless with load_killed_in_block_p (they are *more*
11298         conservative then it, not less, and less accurate).
11299         (oprs_not_set_p): Ditto.
11300         (alloc_gcse_mem): Don't allocate mem_set_in_block
11301         (free_gcse_mem): Don't free it, either.
11302         (record_last_mem_set_info): Update comment in front, remove
11303         mem_*set_* stuff. Note the reason we don't handle stores directly
11304         here.
11305         (compute_hash_table): Update comments to reflect reality. Remove
11306         mem_*set_* references.
11307         (reset_opr_set_tables): Remove mem_*set_* references.
11308         (mark_call): Ditto.
11309         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
11310         (mark_clobber): Ditto (on both parts, we double set here too).
11311         (expr_killed_p): Remove mem_set_in_block test.
11312         (compute_transp): Remove mem_set_in_block test.
11313
11314         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
11315         of edge, and removal of phi alternative to dump file.
11316         (ssa_ccp_substitute_constants): Add note about register now being
11317         constant, and which uses were replaced in what insns to dump file.
11318
11319 2001-07-16  Andreas Jaeger  <aj@suse.de>
11320
11321         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
11322         variables of type HOST_WIDEST_INT.
11323
11324         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
11325         (__bb_exit_func): Correct type of count_max to avoid overflow.
11326         (num_digits): Handle long long argument.
11327
11328         * combine.c (gen_lowpart_for_combine): Remove unused variable.
11329
11330 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11331
11332         * output.h (sdb_begin_function_line): Restore as an extern
11333         variable.
11334         * sdbout.c (sdb_begin_function_line): Make extern.
11335
11336 2001-07-15  Richard Henderson  <rth@redhat.com>
11337
11338         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
11339         * genrecog.c (maybe_both_true_mode): New.
11340         (maybe_both_true_2): Use it.
11341         (write_switch): Don't put Pmode in a switch.
11342         * rtl.c (mode arrays): Don't explicitly size them.
11343
11344 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
11345
11346         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
11347         handling; move unconditional splitting before mode switching.
11348
11349         * i386.md (type): Add fistp type.
11350         (i387, length_attr, scheduling definitions): Handle this type.
11351         (fix_trunc?f?i2): Revamp to use mode switching.
11352         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
11353         * i386.h (fp_cw_mode): New enum
11354         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
11355         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
11356
11357 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11358
11359         * Makefile.in (integrate.o): Add debug.h.
11360         * integrate.c (debug.h): Add.
11361         (output_inline_function): Save, reset, and restore debug_hooks.
11362
11363 2001-07-15  Richard Henderson  <rth@redhat.com>
11364
11365         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
11366         instead of COMPARE for the EQUIV expression.
11367
11368 2001-07-15  Richard Henderson  <rth@redhat.com>
11369
11370         * flow.c (redirect_edge_and_branch_force): Initialize
11371         global_live_at_start and global_live_at_end.
11372         (allocate_bb_life_data): Export.
11373         * basic-block.h (allocate_bb_life_data): Declare.
11374         * toplev.c (rest_of_compilation): Call it.
11375
11376 2001-07-15  Richard Henderson  <rth@redhat.com>
11377
11378         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
11379         (alpha_tablejump_best_label): New.
11380         * config/alpha/alpha-protos.h: Declare them.
11381         * config/alpha/alpha.md: Use braced strings for code blocks.
11382         (tablejump_osf): Break out add with r29.
11383         (tablejump_osf_internal): Remove.
11384         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
11385         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
11386
11387 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
11388
11389         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
11390         of the movable.
11391
11392         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
11393
11394         * i386-protos.h (ix86_split_fp_branch): Update prototype.
11395         (ix86_fp_jump_nontrivial_p): New.
11396         * i386.md (fp_jcc_?): Update call of split_fp_branch;
11397         use ix86_fp_jump_nontrivial_p.
11398         * i386.c (ix86_fp_jump_nontrivial_p): New.
11399         (ix86_split_fp_branch): Accept code instead of rtx.
11400         (ix86_expand_compare): Expand comparison early in case
11401         doing so is resonably cheap.
11402
11403 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
11404
11405         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
11406         not 'machine'.
11407         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
11408         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
11409
11410 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
11411
11412         * dbxout.c (dbxout_source_line): Make static, update prototype.
11413         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
11414         (dbxout_init, dbxout_finish, dbxout_source_line,
11415         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
11416         * dbxout.h (dbxout_source_line): Delete.
11417         * debug.c (debug_nothing_file, debug_nothing_file_int,
11418         debug_nothing_file_charstar_rtx): New.
11419         (do_nothing_debug_hooks): Update.
11420         (debug_nothing_void, debug_nothing_charstar_rtx,
11421         dwarf2out_end_epilogue): New.
11422         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
11423         * debug.h (struct rtx_def): Declare.
11424         (gcc_debug_hooks): New hooks source_line, end_epilogue
11425         and end_function.
11426         (debug_nothing_void, debug_nothing_charstar_rtx,
11427         dwarf2out_end_epilogue): New.
11428         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
11429         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
11430         (dwarf2_debug_hooks): Update.
11431         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
11432         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
11433         * dwarf2out.h (dwarf2out_source_line): Remove.
11434         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
11435         Make static, update prototype.
11436         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
11437         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
11438         (dwarf_debug_hooks): Update.
11439         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
11440         dwarfout_end_function): Remove.
11441         * final.c (profile_function): Use debug hooks for ending functions
11442         and epilogues.
11443         (output_source_line, final_end_function): Update prototype,
11444         use debug hooks.
11445         (final_start_function, final_scan_insn): Update.
11446         * output.h (sdb_begin_function_line): Remove.
11447         (final_end_function): Update prototype.
11448         * sdbout.c (sdb_begin_function_line): Make static.
11449         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
11450         (sdbout_source_line): New.
11451         (sdbout_end_epilogue, sdbout_end_function): Make static, update
11452         prototypes.
11453         (sdb_debug_hooks): Update.
11454         (sdbout_init, sdbout_source_line,
11455         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
11456         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
11457         * toplev.c (compile_file, rest_of_compilation): Update.
11458         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
11459         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
11460         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
11461         Update for prototype changes.
11462         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
11463         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
11464
11465 2001-07-15  Richard Henderson  <rth@redhat.com>
11466
11467         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
11468         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
11469         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
11470         * config/alpha/alpha.c: Likewise.
11471         * config/alpha/alpha.md: Likewise.
11472         * config/alpha/alpha32.h: Likewise.
11473         * config/alpha/vms.h: Likewise.
11474         (OPEN_VMS): Remove.
11475
11476 2001-07-14  Richard Henderson  <rth@redhat.com>
11477
11478         * config/alpha/alpha.md: Use define_constants for unspec values.
11479         Substitute throughout.
11480
11481 2001-07-14  Tim Josling  <tej@melbpc.org.au>
11482
11483         * tree.def (EXPON_EXPR) remove. Never supported anyway.
11484
11485 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11486
11487         * pa.md: Remove unused constraints from define_split's.
11488
11489 2001-04-14  Richard Henderson  <rth@redhat.com>
11490
11491         * ifcvt.c (find_cond_trap): Test for exit block.
11492
11493 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
11494
11495         Re-install recently reverted patch.
11496         * emit-rtl.c (try_split): Update mark_jump_label call.
11497         * flow.c (find_sub_basic_blocks): Likewise.
11498         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
11499         jump_back_p): Kill.
11500         (mark_all_labels): Kill second parameter.
11501         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
11502         (rebuild_jump_labels, jump_optimize_minimal): Update call
11503         of jump_optimize_1.
11504         (jump_optimize_1): Kill crossjumping code.
11505         (mark_jump_label): Kill cross_jump parameter.
11506         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
11507         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
11508         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
11509          splitting.
11510         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
11511         DFI_bpro.
11512         (dump_file_info): Likewise.
11513         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
11514         reorganize passes to do reg-stack first, bb-reorder second.
11515         * invoke.texi (-d letters doc): Remove the jump2 pass.
11516
11517 2001-07-14  Richard Henderson  <rth@redhat.com>
11518
11519         * ifcvt.c (find_cond_trap): New.
11520         (find_if_header): Call it.
11521         (merge_if_block): Relax existing jump sanity check.
11522         * jump.c (jump_optimize_1): Remove conditional trap handling.
11523
11524 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
11525
11526         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
11527         millicode.
11528         (insn_refs_are_delayed): Correct comment.
11529         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
11530         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
11531         instead of r31.  Make associated insn !TARGET_64BIT, and
11532         provide an additional 64-bit insn that clobbers r2.
11533         (divsi3): Likewise.
11534         (udivsi3): Likewise.
11535         (modsi3): Likewise.
11536         (umodsi3): Likewise.
11537
11538 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
11539
11540         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
11541
11542         * flow.c (redirect_edge_and_branch_force, split_edge,
11543         try_crossjump_to_edge): Use set_block_for_new_insns.
11544         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
11545
11546 2001-07-13  H.J. Lu  (hjl@gnu.org)
11547
11548         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
11549         the correct patch.
11550
11551 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
11552
11553         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
11554
11555 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
11556
11557         * c-common.c (decl_attributes): Take a pointer to the node to
11558         which attributes are to be attached, and a flags argument.
11559         * c-common.h (enum attribute_flags): New.
11560         (decl_attributes): Update prototype.
11561         * c-decl.c (start_decl, push_parm_decl, finish_struct,
11562         finish_enum, start_function): Update calls to decl_attributes.
11563         * c-parse.in (component_declarator, component_notype_declarator,
11564         label): Update calls to decl_attributes.
11565
11566 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
11567
11568         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
11569         * config/avr/avr.c (legitimate_address_p): Return value changed
11570         from letter to register classes. For better debugging.
11571
11572 2001-07-13  Kazu Hirata  <kazu@hxi.com>
11573
11574         * jump.c (reversed_comparison_code_parts): Fix comment typos.
11575
11576 2001-07-13  H.J. Lu  (hjl@gnu.org)
11577
11578         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
11579
11580 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
11581
11582         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
11583         correctly for shared configurations.
11584         * config/t-libgcc-pic:  New.
11585         * config/{i386,m68k,sparc}/t-openbsd:  New.
11586         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
11587         Support -shared.  Support debugging libraries with -g.
11588         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
11589         frame information does not emit pointer diffs.
11590         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
11591         emit pointer diffs.
11592
11593 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
11594
11595         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
11596
11597 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
11598
11599         * combine.c (try_combine): Ensure const_int pow2 is positive.
11600
11601 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
11602
11603         * config.gcc: Add configuration for s/390.
11604         * config/s390/s390.c: New. Subroutines for code generation.
11605         * config/s390/s390.h: New. Definitions for s/390.
11606         * config/s390/s390-protos.h: New. Prototypes.
11607         * config/s390/linux.h: New. Definitions for linux for s/390.
11608         * config/s390/linux64.h: New. Definitions for linux for zSeries.
11609         * config/s390/t-linux: New. Makefile fragment.
11610         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
11611         * config/s390/fixdfdi.h: New. Fix L_fix*di.
11612
11613 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
11614
11615         * emit-rtl.c (try_split): Update mark_jump_label call.
11616         * flow.c (find_sub_basic_blocks): Likewise.
11617         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
11618         jump_back_p): Kill.
11619         (mark_all_labels): Kill second parameter.
11620         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
11621         (rebuild_jump_labels, jump_optimize_minimal): Update call
11622         of jump_optimize_1.
11623         (jump_optimize_1): Kill crossjumping code.
11624         (mark_jump_label): Kill cross_jump parameter.
11625         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
11626         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
11627         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
11628          splitting.
11629         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
11630         DFI_bpro.
11631         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
11632         reorganize passes to do reg-stack first, bb-reorder second.
11633         * invoke.texi (-d letters doc): Remove the jump2 pass.
11634
11635 2001-07-12  Steve Ellcey <sje@cup.hp.com>
11636
11637         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
11638
11639 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
11640
11641         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
11642         basic blocks.
11643         (verify_flow_info): Make diagnostics prettier.
11644
11645 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
11646
11647         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
11648
11649         * flow.c (outgoing_edges_match): Return early if condition reversal
11650         failed.
11651
11652 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
11653
11654         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
11655         (mips_move_2words): When splitting a move into two instructions,
11656         prefix the second address operand with '%D'.
11657
11658 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
11659
11660         * Makefile.in (final.o): Depend on debug.h.
11661         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
11662         (dbx_debug_hooks): Add new hooks.
11663         (xcoff_debug_hooks): New.
11664         * debug.c (debug_nothing_file_int_int): New.
11665         (do_nothing_debug_hooks): Update.
11666         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
11667         (debug_nothing_file_int_int): New.
11668         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
11669         static, update prototype.
11670         (dwarf2_debug_hooks): Update.
11671         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
11672         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
11673         static, update prototype.
11674         (dwarf_debug_hooks): Update.
11675         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
11676         * final.c: Include debug.h.
11677         (final_scan_insn): Use debug hooks when beginning and ending blocks.
11678         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
11679         static, update prototype.
11680         (sdb_debug_hooks): Update.
11681         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
11682         * toplev.c: Distinguish between xcoff and dbx.
11683
11684         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
11685         Call all debug hooks, not just dwarf ones.
11686
11687 2001-07-11  Timothy Wall  <twall@redhat.com>
11688
11689         * config.gcc: Add configuration for AIX5/IA64.
11690         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
11691         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
11692         support prefix/suffix code.
11693         * config/ia64/t-aix: New.  Makefile fragment.
11694         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
11695
11696 2001-07-11  Kazu Hirata  <kazu@hxi.com>
11697
11698         * recog.c (validate_change): Fix a comment typo.
11699
11700 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
11701
11702         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
11703         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
11704         hooks directly.
11705         * dbxout.c (dbx_debug_hooks): Add new hooks.
11706         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
11707         make static.
11708         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
11709         make static.
11710         * dbxout.h (dbxout_start_new_source_file,
11711         dbxout_resume_previous_source_file): Delete.
11712         * debug.c (do_nothing_debug_hooks): Add new hooks.
11713         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
11714         (debug_nothing_int_charstar, debug_nothing_int): New.
11715         * debug.h (gcc_debug_hooks): New hooks define, undef,
11716         start_source_file and end_source_file.
11717         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
11718         (debug_nothing_int_charstar, debug_nothing_int): New.
11719         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
11720         the conditionally compiled section.
11721         (dwarf2out_start_source_file, dwarf2out_end_source_file,
11722         dwarf2out_define, dwarf2out_undef): Make static.
11723         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
11724         dwarf2out_define, dwarf2out_undef): Remove.
11725         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
11726         (dwarfout_start_source_file, dwarfout_end_source_file,
11727         dwarfout_define, dwarfout_undef): Make static.
11728         (dwarfout_start_source_file_check,
11729         dwarfout_end_source_file_check): New.
11730         (dwarfout_define, dwarfout_finish): Update.
11731         * dwarfout.h (dwarfout_start_new_source_file,
11732         dwarfout_resume_previous_source_file, dwarfout_define,
11733         dwarfout_undef): Remove.
11734         * sdbout.c (sdb_debug_hooks): Add new hooks.
11735         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
11736         make static.
11737         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
11738         make static, take an arg.
11739         * sdbout.h (sdbout_start_new_source_file,
11740         sdbout_resume_previous_source_file): Delete.
11741         * toplev.c (debug_start_source_file, debug_end_source_file,
11742         debug_define, debug_undef): Delete.
11743         * toplev.h (debug_start_source_file, debug_end_source_file,
11744         debug_define, debug_undef): Delete.
11745
11746         * java/jcf-parse.c: Include debug.h.
11747         (parse_class_file): Update to use debug hooks directly.
11748         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
11749
11750 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11751
11752         * alias.c (set_mem_alias_set): New function.
11753         * rtl.h (set_mem_alias_set): Declare it.
11754         * builtins.c (expand_builtin_return_addr): Call it instead of
11755         using MEM_ALIAS_SET accessor.
11756         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
11757         (get_memory_rtx, expand_builtin_va_arg): Likewise.
11758         (expand_builtin_va_copy):Likewise.
11759         * caller-save.c (setup_save_areas): Likewise.
11760         * calls.c (compute_argument_addresses): Likewise.
11761         * explow.c (set_mem_attributes): Likewise.
11762         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
11763         (expand_assignment, store_constructor_field, store_field): Likewise.
11764         (expand_expr_unaligned): Likewise.
11765         * function.c (assign_stack_temp_for_type): Likewise.
11766         (put_reg_into_stack, gen_mem_addressof): Likewise.
11767         * ifcvt.c (noce_try_cmove_arith): Likewise.
11768         * reload1.c (reload, alter_reg): Likewise.
11769         * config/alpha/alpha.c (get_aligned_mem): Likewise.
11770         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
11771         (alpha_expand_unaligned_store): Likewise
11772         (alpha_expand_unaligned_load_words): Likewise.
11773         (alpha_expand_unaligned_store_words): Likewise.
11774         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
11775         (alpha_expand_epilogue): Likewise.
11776         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
11777         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
11778         * config/i386/i386.c (legitimize_pic_address): Likewise.
11779         * config/i960/i960.c (setup_incoming_varargs): Likewise.
11780         * config/ia64/ia64.c (spill_restore_mem): Likewise.
11781         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
11782         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
11783         * config/mips/mips.c (mips_va_arg): Likewise.
11784         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
11785         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
11786         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
11787         (setup_incoming_varargs, rs6000_va_arg): Likewise.
11788         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
11789         (rs6000_emit_epilogue): Likewise.
11790         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
11791         * config/sparc/sparc.c (sparc_va_arg): Likewise.
11792         * config/v850/v850.c (v850_va_arg): Likewise.
11793
11794 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
11795
11796         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
11797         when fallthru edge is present.
11798         (mege_blocks): Handle case where creation of jump insn
11799         is required.
11800
11801         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
11802         CLEANUP_POST_REGSTACK): New constants.
11803         * except.c (finish_eh_generation): Update call of cleanup_cfg,
11804         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
11805         * output.h (cleanup_cfg): Update prototype.
11806         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
11807         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
11808         cleanup_cfg call; kill missleading comment.
11809         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
11810         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
11811         parameter; control optimizations performed using it.
11812         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
11813         try_crossjump_bb): New functions.
11814
11815 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11816
11817         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
11818         extern.
11819         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
11820         pa_output_function_prologue.
11821         * pa-protos.h (pa_output_function_prologue): New prototype.
11822
11823 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11824
11825         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
11826         and low to get correct sign extension in low+high test.
11827
11828 2001-07-11  Janis Johnson <janis@us.ibm.com>
11829
11830         * gcov.c (arcdata): Use gcov_type to fix branch percentage
11831         for large hit count.
11832
11833         * profile.c (branch_prob): Fix .bbg info for computed gotos
11834         and C++ EH code.
11835
11836 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
11837
11838         * stmt.c (parse_output_constraint): New function, split out
11839         from ...
11840         (expand_asm_operands): ... here.  Use parse_output_constraint.
11841         * tree.h (parse_output_constraint): Declare it.
11842
11843 2001-07-11  Richard Henderson  <rth@redhat.com>
11844
11845         * bitmap.c: Comment some functions; fiddle whitespace.
11846         (bitmap_free): Don't export.
11847         (bitmap_element_allocate): Use memset.
11848         * bitmap.h (bitmap_free): Don't declare.
11849
11850 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
11851
11852         * gcse.c, lcm.c, sched-deps.c:
11853         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
11854
11855         * flow.c (flow_loops_find): Free dom if we found no loops, since
11856         we aren't going to save it.
11857
11858         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
11859         done.
11860
11861 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
11862
11863         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
11864
11865 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11866
11867         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
11868         #ifndef DWARF2_DEBUGGING_INFO.
11869
11870 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11871
11872         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
11873
11874 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11875
11876         * config/mips/mips.c (gen_int_relational): Tell the caller not to
11877         reverse a branch if a NE comparison is implemented with GTU.
11878
11879 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11880             H.J. Lu  <hjl@gnu.org>
11881
11882         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
11883         constant addresses.
11884         (call_internal2): Likewise.
11885         (call_value_internal1): Likewise.
11886         (call_value_internal2): Likewise.
11887         (call_value_multiple_internal1): Likewise.
11888         (call_value_multiple_internal2): Likewise.
11889
11890 2001-07-10  Kazu Hirata  <kazu@hxi.com>
11891
11892         * calls.c (emit_library_call_value_1): Fix a comment typo.
11893         * dwarf2out.c (mem_loc_descriptor): Likewise.
11894         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
11895
11896 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
11897
11898         * simplify-rtx.c (simplify_subreg): Fix typo in comment
11899
11900 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11901
11902         * recog.c (offsettable_address_p): Handle LO_SUM case.
11903         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
11904         instead of plus_constant.
11905
11906 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11907
11908         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
11909         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
11910
11911 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11912
11913         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
11914         adjust_address_nv instead of plus_constant.
11915
11916 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
11917
11918         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
11919         dwarf2out.o): Depend on debug.h, wrap long lines.
11920         * dbxout.c: Include debug.h.
11921         (dbx_debug_hooks): New.
11922         (dbxout_init): Make static, take just 2 args.
11923         (dbxout_finish): Make static.
11924         * dbxout.h (dbxout_init, dbxout_finish): Delete.
11925         * debug.c: New file.
11926         * debug.h: New file.
11927         * dwarf2out.c: Include debug.h.
11928         (dwarf2_debug_hooks): New.
11929         (dwarf2out_init): Make static.
11930         (dwarf2out_finish): Make static, take 2 args.
11931         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
11932         * dwarfout.c: Include debug.h.
11933         (dwarf_debug_hooks): New.
11934         (dwarfout_init): Make static.
11935         (dwarfout_finish): Make static, take 2 args.
11936         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
11937         * sdbout.c: Include debug.h.
11938         (sdb_debug_hooks): New.
11939         (sdbout_init): Make static, take 2 args.
11940         * sdbout.h (sdbout_init): Delete.
11941         * toplev.c: Include debug.h.
11942         (debug_hooks): New.
11943         (compile_file): Set deubg_hooks based on command line options.
11944         Use the hooks unconditionally rather than conditional compilation.
11945
11946 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
11947
11948         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
11949         first_insn_after_basic_block_note instead.
11950
11951         * df.c (df_bb_refs_unlink): #if 0 out for now.
11952
11953 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
11954
11955         * ssa.h: Add prototype for ssa_const_prop
11956         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
11957         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
11958         (ssa_fast_dce): Remove unused variable
11959
11960 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11961
11962         * diagnostic.c (finish_diagnostic): Rename to
11963         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
11964         calls thourghout.
11965
11966 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
11967
11968         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
11969         .loc support.
11970
11971         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
11972         (dump_file): Only pad the demangled name with spaces if the
11973         mangled name was padded with spaces.
11974
11975 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
11976
11977         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
11978         edge detection.
11979
11980 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11981
11982         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
11983         extraction if no direct load if either EXPAND_CONST_ADDRESS or
11984         EXPAND_INITIALIZER.
11985
11986         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
11987         whether can put offset inside LO_SUM to check mode alignment, not size.
11988
11989 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11990
11991         * doc/tm.texi (Misc): Fix thinko.
11992
11993 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
11994
11995         * regmove.c (replace_in_call_usage): Fix warnings.
11996         * sched-deps.c (add_dependence): Fix warnings.
11997         * simplify-rtx.c (simplify_subreg): Likewise.
11998         Return NULL_RTX instead of NULL.
11999
12000         * reg-stack.c (emit_swap_insn): Eliminate warnings.
12001         (subst_asm_stack_regs): Likewise.
12002
12003         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
12004         warnings.
12005
12006         * dwarf2out.c (output_call_frame_info): Declare i as int.
12007         (build_abbrev_table): Declare n_alloc as int.
12008         (dwarf2out_finish): Initialize die.
12009         * except.c: Declare sjlj_funcdef_number as unsigned.
12010         (connect_post_landing_pads): Declare j as unsigned.
12011         (convert_to_eh_region_ranges): Initialize call_site.
12012         (output_function_exception_table): Initialize tt_format_size.
12013         * expr.c (move_by_pieces_1): Initialize to1.
12014         (store_constructor): Initialize minelt and maxelt.
12015         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
12016         * function.c (instantiate_decls): Avoid signed/unsigned warning.
12017
12018         * c-decl.c (combine_parm_decls): Unused, remove.
12019         * c-tree.h: Remove prototype for combine_parm_decls.
12020
12021         * reload.c (push_reload): Fix warning.
12022         (regno_clobbered_p): Likewise.
12023         * reload1.c (replace_pseudos_in_call_usage): Likewise.
12024         (reload_combine): Likewise.
12025
12026         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
12027         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
12028         warnings.
12029         * bitmap.c (bitmap_operation): Change user.
12030         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
12031
12032 2001-07-10  Eric Christopher  <echristo@redhat.com>
12033
12034         * config/mips/mips.c (override_options): Fix typo.
12035
12036 2001-07-09  Stan Shebs  <shebs@apple.com>
12037
12038         * target.h (struct gcc_target): New fields init_builtins and
12039         expand_builtin.
12040         * target-def.h (TARGET_INIT_BUILTINS): New macro.
12041         (TARGET_EXPAND_BUILTIN): New macro.
12042         (TARGET_INITIALIZER): Add them.
12043         * builtins.c: Include target.h.
12044         (expand_builtin): Use targetm.expand_builtin.
12045         (default_init_builtins): New function.
12046         (default_expand_builtin): New function.
12047         * expr.h (default_init_builtins): Declare.
12048         (default_expand_builtin): Declare.
12049         * c-common.c (c_common_nodes_and_builtins): Use
12050         targetm.init_builtins.
12051         * defaults.h (MD_INIT_BUILTINS): Remove.
12052         * Makefile.in (builtins.o): Depend on target.h.
12053
12054         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
12055         (TARGET_EXPAND_BUILTIN): Define.
12056         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
12057         (MD_EXPAND_BUILTIN): Remove.
12058
12059         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
12060         (TARGET_EXPAND_BUILTIN): Define.
12061         (c4x_init_builtins): Make endlink arg a local.
12062         (c4x_print_operand): Fix typos in adjust_address usages.
12063         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
12064         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
12065         (MD_EXPAND_BUILTIN): Remove.
12066
12067         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
12068         (TARGET_EXPAND_BUILTIN): Define.
12069         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
12070         (ix86_init_builtins): Call new function only if TARGET_MMX.
12071         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
12072         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
12073         (MD_EXPAND_BUILTIN): Remove.
12074
12075         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
12076         (TARGET_EXPAND_BUILTIN): Define.
12077         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
12078         (MD_EXPAND_BUILTIN): Remove.
12079
12080         * doc/tm.texi: Document these changes.
12081
12082 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
12083
12084         * basic-block.h (tree_node): Forward declare if needed.
12085         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
12086         (BLOCK_HEAD_TREE): Define.
12087         (BLOCK_END_TREE): Define.
12088         (struct loops): Rename field 'tree' to 'tree_root'.
12089         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
12090         'end_tree'.
12091         (flow_loops_tree_build): Rename reference to field 'tree' to
12092         'tree_root'.
12093         (flow_loops_level_compute): Ditto.
12094         * predict.c (estimate_bb_frequencies): Ditto.
12095         * tree.h (struct tree_common): Add field 'aux'.
12096
12097 2001-07-09  Stan Shebs  <shebs@apple.com>
12098
12099         * config/darwin.c (darwin_encode_section_info): Don't mark any
12100         DECL_EXTERNAL node as defined.
12101
12102 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12103
12104         * pa.c (pa_init_machine_status, pa_mark_machine_status,
12105         pa_free_machine_status, hppa_init_pic_save): Delete.
12106         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
12107         (hppa_profile_hook): Use hppa_pic_save_rtx.
12108         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
12109         hppa_init_pic_save): Delete.
12110         (hppa_pic_save_rtx): Declare.
12111         * pa.md (call, call_value, sibcall, sibcall_value,
12112         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
12113
12114 2001-07-09  Kazu Hirata  <kazu@hxi.com>
12115
12116         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
12117         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
12118
12119 2001-07-09  Andreas Jaeger  <aj@suse.de>
12120
12121         * output.h: Add declaration of final_forward_branch_p.
12122
12123         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
12124
12125         * varray.c: Include errors.h for internal_error and trim_filename
12126         declarations.
12127
12128         * Makefile.in (varray.o): Add errors.h.
12129
12130 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
12131
12132         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
12133         * optabs.c (have_add2_insn): Check whether the add insn chosen
12134         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
12135         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
12136
12137 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
12138
12139         * Makefile.in (OBJS): Add ssa-ccp.o
12140         (ssa-ccp.o): Add dependencies.
12141         * toplev.c (DFI_ssa_ccp): New dump file enum.
12142         (dump_file): Add entry for dumping after SSA CCP.
12143         (flag_ssa_ccp): New flag variable.
12144         (f_options): Add -fssa-ccp.
12145         (rest_of_compilation): Run SSA CCP if requested.
12146         * timevar.def (TV_SSA_CCP): New timevar.
12147         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
12148         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
12149         Fix minor typo in SSA DCE documentation.
12150         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
12151         Add documentation for new dump option.  Renumber dump files
12152         appropriately.
12153
12154 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
12155
12156         * emit-rtl.c (gen_highpart_mode): New.
12157         * rtl.h (gen_highpart_mode): Declare.
12158         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
12159         operand can be VOIDmode constant.
12160
12161 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
12162
12163         * flow.c (redirect_edge_and_branch_force): New.
12164         (can_fallthru): Ensure that basic blocks are succeeding.
12165         (try_optimize_cfg): Do not delete basic block if it is the last one.
12166
12167         * flow.c (try_redirect_by_replacing_jump): Do not remove
12168         jumps with side effects, unlink chain on fallthru edge;
12169         set block for new jump instruction; avoid basic block to
12170         over by line number note.
12171
12172         * flow.c (try_simplify_condjump): Verify that the condjump
12173         is not always falling through.
12174
12175         Re-install patch:
12176         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
12177
12178         * flow.c (forwarder_block_p): Fix for fallthru blocks.
12179         (try_redirect_by_replacing_jump): Update properly the count
12180         and frequency information.
12181
12182 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12183
12184         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
12185         address that is a LO_SUM specially.
12186         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
12187
12188         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
12189
12190         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
12191         (operand_subword): Use them.
12192         (change_address_1): Renamed from change_address; new arg VALIDATE.
12193         * expr.h: Reflect above changes; change_address now macro.
12194         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
12195         making MEM.
12196         * cselib.c (add_mem_for_addr): Likewise.
12197         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
12198         * regmove.c (try_apply_stack_adjustment): Likewise.
12199         * reload.c (push_reload, make_memloc): Likewise.
12200         * reload1.c (eliminate_regs): Likewise.
12201         * simplify-rtx.c (simplify_replace_rtx): Likewise.
12202         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
12203         adjust_addess.
12204         * combine.c (make_extraction, simplify_shift_const): Likewise.
12205         (gen_lowpart_for_combine): Likewise.
12206         * cse.c (gen_lowpart_if_possible): Likewise.
12207         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
12208         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
12209         * optabs.c (gen_move_insn): Likewise.
12210         * reload1.c (alter_reg): Likewise.
12211         * simplify-rtx.c (simplify_subreg): Likewise.
12212         * stmt.c (expand_anon_union_decl): Likewise.
12213         * recog.c (validate_replace_rtx_1): Likewise.
12214         (expr.h): Include.
12215         * Makefile.in (recog.o): Add $(EXPR_H).
12216         * explow.c (stabilize): Call replace_equiv_address.
12217         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
12218         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
12219
12220 2001-07-03  Andrew Haley  <aph@redhat.com>
12221
12222         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
12223         the mode of the memory location.
12224
12225 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
12226
12227         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
12228
12229 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
12230
12231         * final.c (output_addr_const): Use target opening and
12232         closing parentheses.
12233         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
12234         defaults, add to TARGET_ASM_OUT.
12235         * target.h (struct gcc_target): Add open_paren and close_paren.
12236         * doc/md.texi: Update.
12237         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
12238         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
12239         TARGET_ASM_CLOSE_PAREN.
12240         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
12241         Override.
12242         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
12243         Override.
12244         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
12245         * config/a29k/a29k.h: Similarly.
12246         * config/alpha/alpha.h: Similarly.
12247         * config/arc/arc.h: Similarly.
12248         * config/arm/aof.h: Similarly.
12249         * config/arm/aout.h: Similarly.
12250         * config/avr/avr.h: Similarly.
12251         * config/c4x/c4x.h: Similarly.
12252         * config/clipper/clipper.h: Similarly.
12253         * config/convex/convex.h: Similarly.
12254         * config/d30v/d30v.h: Similarly.
12255         * config/dsp16xx/dsp16xx.h: Similarly.
12256         * config/elxsi/elxsi.h: Similarly.
12257         * config/fr30/fr30.h: Similarly.
12258         * config/h8300/h8300.h: Similarly.
12259         * config/i370/i370.h: Similarly.
12260         * config/i386/i386.h: Similarly.
12261         * config/i860/i860.h: Similarly.
12262         * config/i960/i960.h: Similarly.
12263         * config/ia64/ia64.h: Similarly.
12264         * config/m32r/m32r.h: Similarly.
12265         * config/m68hc11/m68hc11.h: Similarly.
12266         * config/m68k/m68k.h: Similarly.
12267         * config/m88k/m88k.h: Similarly.
12268         * config/mcore/mcore.h: Similarly.
12269         * config/mips/mips.h: Similarly.
12270         * config/mn10200/mn10200.h: Similarly.
12271         * config/mn10300/mn10300.h: Similarly.
12272         * config/ns32k/ns32k.h: Similarly.
12273         * config/pa/pa.h: Similarly.
12274         * config/pdp11/pdp11.h: Similarly.
12275         * config/pj/pj.h: Similarly.
12276         * config/romp/romp.h: Similarly.
12277         * config/rs6000/rs6000.h: Similarly.
12278         * config/sh/sh.h: Similarly.
12279         * config/sparc/sparc.h: Similarly.
12280         * config/v850/v850.h: Similarly.
12281         * config/vax/vax.h: Similarly.
12282         * config/we32k/we32k.h: Similarly.
12283
12284 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
12285
12286         * doc/c-tree.texi: Document representation of attributes.
12287
12288 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12289
12290         * doc/tm.texi: Update some places for the rename of target to
12291         targetm.  Fix typo.
12292
12293 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12294
12295         * target.h (struct gcc_target): Add insert_attributes.
12296         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
12297         (TARGET_INITIALIZER): Update.
12298         * tree.c, tree.h (default_insert_attributes): New function.
12299         Update comments on other default functions to refer to targetm,
12300         not target.
12301         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
12302         TARGET_INSERT_ATTRIBUTES.
12303         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
12304         * c-common.c (decl_attributes): Use targetm.insert_attributes.
12305         Don't use PRAGMA_INSERT_ATTRIBUTES.
12306         * Makefile.in (c-common.o): Depend on $(TARGET_H).
12307         * c-decl.c (start_decl, start_function): Don't call
12308         SET_DEFAULT_DECL_ATTRIBUTES.
12309         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
12310         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
12311         declare.
12312         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
12313         (c4x_check_attribute): Avoid modifying attribute list itself.
12314         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
12315         Make static.
12316         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
12317         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
12318         declare.
12319         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
12320         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
12321         Make static.
12322         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
12323         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
12324         declare.
12325         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
12326         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
12327         Adjust parameters.  Make static.
12328
12329 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12330
12331         * c-common.c (decl_attributes): Only take a single attributes
12332         parameter.
12333         * c-common.h (decl_attributes): Update prototype.
12334         * c-decl.c (start_decl, start_function): Only take a single
12335         attributes parameter.  Update calls to decl_attributes.
12336         (finish_struct, finish_enum): Update calls to decl_attributes.
12337         (push_parm_decl): Expect unified list of attributes.  Update call
12338         to decl_attributes.
12339         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
12340         notype_nested_function, component_declarator,
12341         component_notype_declarator, label): Update calls to
12342         decl_attributes.
12343         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
12344         lists that are passed to push_parm_decl.
12345         * c-tree.h (start_function, start_decl): Update prototypes.
12346         * config/sh/sh-protos.h, config/sh/sh.c
12347         (sh_pragma_insert_attributes): Only take a single attributes
12348         parameter.
12349         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
12350         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
12351         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
12352         build_module_descriptor, generate_static_references,
12353         generate_strings, build_selector_translation_table,
12354         generate_descriptor_table, generate_protocols,
12355         generate_ivars_list, generate_dispatch_table,
12356         generate_protocol_list, generate_category,
12357         generate_shared_structures, really_start_method, add_objc_decls,
12358         generate_classref_translation_entry): Update calls to start_decl
12359         and start_function.
12360         (build_tmp_function_decl, start_method_def): Unify attribute lists
12361         that are passed to push_parm_decl.
12362
12363 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
12364
12365         * final.c (no_asm_to_stream): New.
12366         (final_scan_insn): Use target structures for prologue ends
12367         and epilogue starts.
12368         * output.h (no_asm_to_stream): New.
12369         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
12370         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
12371         (TARGET_ASM_OUT): Update.
12372         * target.h (struct gcc_target): New members function_end_prologue
12373         and function_begin_epilogue.
12374         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
12375         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
12376         * config/alpha/alpha.c (output_end_prologue): Rename to
12377         alpha_output_function_end_prologue.  Use in target struct
12378         and make static.
12379         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
12380         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
12381         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
12382         ia64_output_function_end_prologue.  Use in target struct
12383         and make static.
12384         (ia64_function_prologue, ia64_funciton_epilogue): Rename
12385         mistyped prototypes.
12386         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
12387         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
12388         Delete.
12389         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
12390         an use in target struct, make static.
12391         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
12392         Delete.
12393
12394 2001-07-08  Richard Henderson  <rth@redhat.com>
12395
12396         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
12397
12398 2001-07-08  Richard Henderson  <rth@redhat.com>
12399
12400         * config/i386/i386.md: Remove constraints strings from define_split
12401         and define_peephole2 patterns.
12402         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
12403         (eh_return): Use them.
12404
12405 2001-07-08  Richard Henderson  <rth@redhat.com>
12406
12407         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
12408         Document MD_FALLBACK_FRAME_STATE_FOR.
12409
12410 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12411
12412         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
12413         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
12414         elimination.
12415         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
12416
12417 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
12418
12419         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
12420         of the label inside NAME as opposed to just the end of NAME.
12421
12422 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
12423
12424         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
12425         * config/alpha/alpha.c (alpha_init_machine_status,
12426         alpha_mark_machine_status, alpha_free_machine_status): Delete.
12427         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
12428         (vms_valid_decl_attribute_p): Make static, conditionally compile.
12429         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
12430
12431 2001-07-06  Stan Shebs  <shebs@apple.com>
12432
12433         * target.h (targetm): Rename global from "target", so as not to
12434         conflict with local variables.
12435         * c-decl.c: Ditto.
12436         * c-typeck.c: Ditto.
12437         * final.c: Ditto.
12438         * tree.c: Ditto.
12439         * cp/decl.c: Ditto.
12440         * cp/decl2.c: Ditto.
12441         * cp/typeck.c: Ditto.
12442         * 1750a/1750a.c: Ditto.
12443         * a29k/a29k.c: Ditto.
12444         * arc/arc.c: Ditto.
12445         * arm/arm.c: Ditto.
12446         * avr/avr.c: Ditto.
12447         * clipper/clipper.c: Ditto.
12448         * convex/convex.c: Ditto.
12449         * d30v/d30v.c: Ditto.
12450         * dsp16xx/dsp16xx.c: Ditto.
12451         * elxsi/elxsi.c: Ditto.
12452         * fr30/fr30.c: Ditto.
12453         * h8300/h8300.c: Ditto.
12454         * i370/i370.c: Ditto.
12455         * i386/i386.c: Ditto.
12456         * i860/i860.c: Ditto.
12457         * i960/i960.c: Ditto.
12458         * ia64/ia64.c: Ditto.
12459         * m32r/m32r.c: Ditto.
12460         * m68hc11/m68hc11.c: Ditto.
12461         * m68k/m68k.c: Ditto.
12462         * m88k/m88k.c: Ditto.
12463         * mips/mips.c: Ditto.
12464         * ns32k/ns32k.c: Ditto.
12465         * pa/pa.c: Ditto.
12466         * pdp11/pdp11.c: Ditto.
12467         * romp/romp.c: Ditto.
12468         * rs6000/rs6000.c: Ditto.
12469         * sh/sh.c: Ditto.
12470         * sparc/sparc.c: Ditto.
12471         * vax/vax.c: Ditto.
12472         * we32k/we32k.c: Ditto.
12473         * doc/tm.texi: Update the manual to match.
12474
12475 2001-07-06  Richard Henderson  <rth@redhat.com>
12476
12477         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
12478         DWARF2_UNWIND_INFO not just whether it is defined.
12479
12480 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
12481
12482         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
12483         call to simplify_binary_operation returns a new pattern.
12484
12485 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
12486
12487         * glimits.h (__SHRT_MAX__): New.
12488         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
12489         (SHRT_MAX): Define in terms of __SHRT_MAX__.
12490
12491 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
12492
12493         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
12494         avoid warnings.
12495
12496 2001-07-06  Richard Henderson  <rth@redhat.com>
12497
12498         * bitmap.c (bitmap_release_memory): Move adjacent to the
12499         allocation functions.
12500         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
12501         the implementation.  Binary search for the set bit.
12502         (bitmap_union_of_diff): Allocate the temporary on the stack
12503         instead of using xmalloc.
12504
12505 2001-07-06  Richard Henderson  <rth@redhat.com>
12506
12507         * genrecog.c (validate_pattern): Warn for constraints in
12508         define_{expand,split,peephole2}.  Remove strict_low_part
12509         before looking up match_dup.
12510
12511 2001-07-06  DJ Delorie  <dj@redhat.com>
12512
12513         * doc/gcc.texi (Makefile): Rename to be a more general purpose
12514         chapter about various build hints and history.  Add section
12515         talking about the various types of native and cross builds.
12516
12517 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
12518
12519         * Makefile.in (final.o): Depend on target.h.
12520         * final.c: Include target.h.
12521         (default_function_pro_epilogue): New.
12522         (final_start_function): Use target structure for function prologues.
12523         (final_end_function): Use target structure for function epilogues.
12524         * fold-const.c (real_hex_to_f): Constify s and p.
12525         * output.h (default_function_pro_epilogue): New.
12526         * real.h (real_hex_to_f): Update prototype.
12527         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
12528         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
12529         (TARGET_INITIALIZER): Update.
12530         * target.h (gcc_target): Add struct asm_out.
12531         * doc/tm.texi: Update.
12532
12533 config:
12534         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
12535         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
12536         in cpu/cpu.c, or rename old functions consistently.  Take
12537         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
12538         redundant macros and prototypes.  Make new functions static.
12539
12540         * 1750a/1750a.c: Similarly.
12541         * 1750a/1750a.h: Similarly.
12542         * a29k/a29k-protos.h: Similarly.
12543         * a29k/a29k.c: Similarly.
12544         * a29k/a29k.h: Similarly.
12545         * arc/arc-protos.h: Similarly.
12546         * arc/arc.c: Similarly.
12547         * arc/arc.h: Similarly.
12548         * arm/arm-protos.h: Similarly.
12549         * arm/arm.c: Similarly.
12550         * arm/arm.h: Similarly.
12551         * avr/avr-protos.h: Similarly.
12552         * avr/avr.c: Similarly.
12553         * avr/avr.h: Similarly.
12554         * clipper/clipper-protos.h: Similarly.
12555         * clipper/clipper.c: Similarly.
12556         * clipper/clipper.h: Similarly.
12557         * convex/convex.c: Similarly.
12558         * convex/convex.h: Similarly.
12559         * d30v/d30v-protos.h: Similarly.
12560         * d30v/d30v.c: Similarly.
12561         * d30v/d30v.h: Similarly.
12562         * d30v/d30v.md: Similarly.
12563         * dsp16xx/dsp16xx-protos.h: Similarly.
12564         * dsp16xx/dsp16xx.c: Similarly.
12565         * dsp16xx/dsp16xx.h: Similarly.
12566         * elxsi/elxsi.c: Similarly.
12567         * elxsi/elxsi.h: Similarly.
12568         * fr30/fr30.c: Similarly.
12569         * fr30/fr30.md: Similarly.
12570         * h8300/h8300-protos.h: Similarly.
12571         * h8300/h8300.c: Similarly.
12572         * h8300/h8300.h: Similarly.
12573         * i370/i370-protos.h: Similarly.
12574         * i370/i370.c: Similarly.
12575         * i370/i370.h: Similarly.
12576         * i386/i386.c: Similarly.
12577         * i386/osf1elf.h: Similarly.
12578         * i386/osfrose.h: Similarly.
12579         * i860/i860-protos.h: Similarly.
12580         * i860/i860.c: Similarly.
12581         * i860/i860.h: Similarly.
12582         * i960/i960-protos.h: Similarly.
12583         * i960/i960.c: Similarly.
12584         * i960/i960.h: Similarly.
12585         * ia64/ia64-protos.h: Similarly.
12586         * ia64/ia64.c: Similarly.
12587         * ia64/ia64.h: Similarly.
12588         * m32r/m32r-protos.h: Similarly.
12589         * m32r/m32r.c: Similarly.
12590         * m32r/m32r.h: Similarly.
12591         * m68hc11/m68hc11-protos.h: Similarly.
12592         * m68hc11/m68hc11.c: Similarly.
12593         * m68hc11/m68hc11.h: Similarly.
12594         * m68k/crds.h: Similarly.
12595         * m68k/dpx2.h: Similarly.
12596         * m68k/m68k-protos.h: Similarly.
12597         * m68k/m68k.c: Similarly.
12598         * m68k/m68k.h: Similarly.
12599         * m68k/news.h: Similarly.
12600         * m88k/m88k-protos.h: Similarly.
12601         * m88k/m88k.c: Similarly.
12602         * m88k/m88k.h: Similarly.
12603         * mips/mips-protos.h: Similarly.
12604         * mips/mips.c: Similarly.
12605         * mips/mips.h: Similarly.
12606         * ns32k/merlin.h: Similarly.
12607         * ns32k/ns32k.c: Similarly.
12608         * ns32k/ns32k.h: Similarly.
12609         * ns32k/tek6000.h: Similarly.
12610         * pa/pa-protos.h: Similarly.
12611         * pa/pa.c: Similarly.
12612         * pa/pa.h: Similarly.
12613         * pdp11/2bsd.h: Similarly.
12614         * pdp11/pdp11-protos.h: Similarly.
12615         * pdp11/pdp11.c: Similarly.
12616         * pdp11/pdp11.h: Similarly.
12617         * romp/romp-protos.h: Similarly.
12618         * romp/romp.c: Similarly.
12619         * romp/romp.h: Similarly.
12620         * rs6000/rs6000-protos.h: Similarly.
12621         * rs6000/rs6000.c: Similarly.
12622         * rs6000/rs6000.h: Similarly.
12623         * rs6000/sysv4.h: Similarly.
12624         * sh/sh-protos.h: Similarly.
12625         * sh/sh.c: Similarly.
12626         * sh/sh.h: Similarly.
12627         * sparc/sparc-protos.h: Similarly.
12628         * sparc/sparc.c: Similarly.
12629         * sparc/sparc.h: Similarly.
12630         * vax/vax.c: Similarly.
12631         * vax/vax.h: Similarly.
12632         * vax/vms.h: Similarly.
12633         * we32k/we32k.c: Similarly.
12634         * we32k/we32k.h: Similarly.
12635
12636 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
12637
12638         * basic-block.h (first_insn_after_basic_block_note): Declare.
12639         * flow.c (first_insn_after_basic_block_note): Define.  Moved
12640         from...
12641         * ssa.c (first_insn_after_basic_block_note): Remove.
12642         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
12643         necessary.
12644         (ssa_eliminate_dead_code): Properly update the CFG and PHI
12645         nodes when we find a dead conditional branch.  Insert BARRIERs
12646         after any blocks with no successors, but which do not have
12647         any BARRIERs.
12648
12649 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
12650
12651         * varray.c (varray_check_failed): Use internal_error.
12652
12653 2001-07-05  Andrew Haley  <aph@redhat.com>
12654
12655         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
12656         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
12657         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
12658
12659 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
12660
12661         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
12662         reference if the target constant is also a SYMBOL_REF.
12663
12664 2001-07-05  Eric Christopher  <echristo@redhat.com>
12665
12666         * config/mips/mips.h (MASK_MIPS3900): Remove.
12667         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
12668         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
12669         (TARGET_MIPS3900): Change to use mips_arch.
12670         (TARGET_MIPS4000): New.
12671         (TARGET_MIPS4100): New.
12672         (TARGET_MIPS4300): New.
12673         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
12674         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
12675         for -mipsX.
12676         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
12677         (ISA_HAS_BRANCHLIKELY): To here.
12678         (CC1_CPU_SPEC):  New.
12679         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
12680         (mips_arch_string): Declare.
12681         (mips_arch): Declare.
12682         (TARGET_OPTIONS): Add -march and -mtune.
12683
12684         * config/mips/mips.c (mips_arch_string): New.
12685         (mips_arch): New.
12686         (override_options): Handle -march for codegen and -mtune
12687         for scheduling. Use mips_arch. Move tx39 target default here.
12688         (mips_parse_cpu): Move error message to override_options.
12689
12690         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
12691
12692         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
12693
12694         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
12695         (MIPS Options): Ditto.  Change mcpu entry to historical text.
12696
12697 2001-07-05  H.J. Lu  (hjl@gnu.org)
12698
12699         * config/mips/mips.c (mips_parse_cpu): New function to parse
12700         -march=*/-mcpu=*.
12701
12702 2001-07-05  Jim Wilson  <wilson@redhat.com>
12703
12704         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
12705         * config/ia64/t-ia64: Likewise.
12706         (LIB1ASMFUNCS): Update comment.
12707
12708 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
12709
12710         * doc/install.texi (Install GCC: Binaries): Fix typo.
12711
12712 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12713
12714         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
12715         reference using the stack pointer, adjust it since we push Y
12716         temporarily.
12717         ("*ashrsi3"): Likewise.
12718         ("*lshrsi3"): Likewise.
12719
12720 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12721
12722         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
12723         when -fomit-frame-pointer is used.
12724
12725 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
12726
12727         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
12728         (try_redirect_by_replacing_jump): Reverse updating properly the
12729         count and frequency information.  Reverse removing cc0 setter.
12730         (forwarder_block_p): Reverse fixing for fallthru blocks.
12731
12732 2001-07-05  DJ Delorie  <dj@redhat.com>
12733
12734         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
12735         (translate_options): If the above is defined, use it to map
12736         given options to new options.
12737         * doc/tm.texi: Document it.
12738
12739 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
12740             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12741
12742         * doc/invoke.texi (Optimize Options): Document that -fgcse may
12743         cause programs using computed gotos to run more slowly.
12744
12745 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12746
12747         * doc/install.texi (Specific): Markup, spelling and typo fixes.
12748         Fixed sorting.
12749         Consistently require binutils 2.11.2, not prereleases.
12750         (Specific, decstation-*): Canonicalize as mips-dec-*.
12751         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
12752         always necessary.
12753         (Specific, m68k-altos): Removed reference to README.altos, deleted.
12754         (Specific, mips-*): Reword MIPS C compiler requirements.
12755         (Specific, powerpc*-*-*): New, mention --with-cpu once.
12756         (Specific, sunv5): Removed, obsolete.
12757
12758 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
12759
12760         * dwarf2out.c (output_loc_list): Use an all ones mask for
12761         .text asm output and don't rely on long long
12762         literals. Reformat some long lines.
12763
12764 2001-07-05  Andreas Jaeger  <aj@suse.de>
12765
12766         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
12767         section.
12768
12769 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12770
12771         * dwarf2out.c (dwarf2out_define): Update comment.
12772         (dwarf2out_undef): Ditto.
12773         (dwarf2out_start_source_file): Ditto.
12774         (dwarf2out_end_source_file): Ditto.
12775         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
12776         since we never call the start/end debug hook for the primary file.
12777
12778 2001-07-04  Kazu Hirata  <kazu@hxi.com>
12779
12780         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
12781         from shll.
12782
12783 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
12784
12785         * cppinit.c (remove_dup_dirs): Inform if a system include
12786         directory is being reordered.
12787         * doc/invoke.texi (Directory Options): GCC warns if you hide a
12788         system include.
12789         * doc/cpp.texi (Search Paths): Likewise.
12790         * doc/gcc.texi (Interoperation): Remove information about
12791         -I/usr/include.
12792
12793 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
12794
12795         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
12796         (VARRAY_TOP_CHAR_PTR): Likewise.
12797
12798 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12799
12800         * gcc.c (process_command): Don't assign elements of a const char*.
12801
12802 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12803
12804         * emit-rtl.c (change_address): Don't abort if invalid address while
12805         reload is in progress.
12806
12807 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12808
12809         * c-lex.c (cb_file_change): Pass line number to
12810         debug_start_source_file.
12811         (cb_undefine): Pass correct line number to debug_undef.
12812
12813         * toplev.c (debug_start_source_file): Add line number to
12814         parameters. Pass it along to dwarf2out_start_source_file.
12815         (decode_g_option): Stop resetting debug level back to normal when
12816         we change debug formats, unless the current level is
12817         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
12818         3).
12819
12820         * toplev.h (debug_start_source_file): Add line number to
12821         parameters.
12822
12823         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
12824         parameters.
12825
12826         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
12827         parameters.
12828         Output debug_macinfo data for starting file if requested.
12829         (dwarf2out_end_source_file): Output debug_macinfo data for ending
12830         file if requested.
12831         (dwarf2out_define): Output debug_macinfo data for defining a macro
12832         if requested.
12833         (dwarf2out_undef): Output debug_macinfo data for undefining a
12834         macro if requested.
12835         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
12836         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
12837         (macinfo_section_label): New. DWARF2 macro info section label.
12838         (dwarf2out_init): If we want macro info, output the start label
12839         for the section.
12840         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
12841         attribute to the compilation unit die pointing to the macro info.
12842
12843 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12844
12845         * dwarf2out.c (new_loc_list): Move to inside #ifdef
12846         DWARF2_DEBUGGING_INFO.
12847         (add_loc_descr_to_loc_list): Ditto.
12848         (output_loc_list): Ditto.
12849         Also, fix thinko in curr not being initialized.
12850         (gen_internal_sym): Ditto.
12851
12852 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12853
12854         * emit-rtl.c (replace_equiv_address): New function.
12855         * expr.h (replace_equiv_address): New declaration.
12856         * explow.c (validize_mem): Call it instead of change_address and
12857         also call if -fforce-addr and address is constant.
12858         * expr.c: Replace more calls to change_address with adjust_address
12859         and/or replace_equiv_address or to validize_mem.
12860         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
12861         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
12862         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
12863         * config/i370/i370.md, config/i860/i860.md: Likewise.
12864         * config/i960/i960.md, config/mips/mips.c: Likewise.
12865         * config/mips/mips.md, config/pa/pa.md: Likewise.
12866         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
12867         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
12868
12869 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12870
12871         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
12872
12873         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
12874         function.
12875
12876 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12877
12878         * doc/include: New directory.
12879         * doc/fdl.texi: Move to doc/include/fdl.texi.
12880         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
12881         * doc/include/funding.texi, doc/include/gpl.texi: New files.
12882         * doc/gcc.texi: Use funding.texi and gpl.texi.
12883         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
12884         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
12885         Update dependencies and use -I $(docdir)/include.
12886
12887 2001-07-04  Anthony Green  <green@redhat.com>
12888
12889         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
12890
12891 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12892
12893         * doc/install.texi (sparc64-*-*): Remove garbage.
12894
12895 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
12896
12897         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
12898         Fix typo in last change to use adjust_address.
12899
12900 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12901
12902         * doc/install.texi (Specific): Update information for *-*-solaris*.
12903
12904 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12905
12906         * explow.c (plus_constant_wide): Reinitialize Y for restart.
12907
12908 2001-07-03  Stan Shebs  <shebs@apple.com>
12909
12910         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
12911         case for flag_no_mach_text_sections.
12912         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
12913         * config/darwin.c (flag_no_mach_text_sections): Remove.
12914         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
12915
12916 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12917
12918         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
12919         and avoid checking for constant as first operand.
12920         * recog.c (find_constant_term_loc): No longer static.
12921         (adj_offettable_operand): Delete.
12922         * rtl.h (adj_offsettable_operand): Delete declaration.
12923         (find_constant_term): Add declaration.
12924         * caller-save.c: Replace calls to adj_offsettable_operand with calls
12925         to adjust_address.
12926         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
12927         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
12928         * config/i386/i386.c, config/i386/i386.md: Likewise.
12929         * config/i860/i860.c, config/i960/i960.c: Likewise.
12930         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
12931         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
12932         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
12933         * config/mips/mips.c, config/mips/mips.md: Likewise.
12934         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
12935         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
12936         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
12937         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
12938         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
12939         * config/ns32k/ns32k.md: Likewise.
12940
12941 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
12942
12943         * rtl.c (copy_rtx): Handle 'T' format letter.
12944         * gensupport.c (collect_insn_data): Likewise.
12945         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
12946
12947 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
12948
12949         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
12950         -B option.  Use 'dir' not 'foo' as example directory name.
12951
12952 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12953
12954         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12955         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
12956
12957 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
12958
12959         * doc/cppinternals.texi: Improve formatting and logical markup.
12960
12961 2001-07-03  Andreas Jaeger  <aj@suse.de>
12962
12963         * Makefile.in (insn-recog.o): Add dependency on reload.h.
12964
12965         * genrecog.c (write_header): Include reload.h for prototypes in
12966         insn-recog.c.
12967
12968 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12969
12970 config:
12971         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
12972         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
12973         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
12974         i386_pe_valid_type_attribute_p): Add.
12975         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
12976         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
12977
12978 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12979
12980         * explow.c (plus_constant_wide, case LO_SUM): New case.
12981         (plus_constant_for_output_wide): Delete.
12982         * rtl.h (plus_constant_for_output): Delete.
12983         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
12984         instead of plus_constant_for_output.
12985         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
12986         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
12987         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
12988         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
12989         * config/sparc/sparc.md: Likewise.
12990         Convert some change_address calls to adjust_address.
12991
12992 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
12993
12994         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
12995         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
12996         documentation of -std and -Wwrite-strings.
12997
12998 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
12999
13000         * cse.c (canon_hash): Don't register registers in very small
13001         register classes, as extending their lifetime might cause
13002         reload to fail.
13003
13004 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
13005
13006         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
13007
13008         * flow.c (forwarder_block_p): Fix for fallthru blocks.
13009         (try_redirect_by_replacing_jump): Update properly the count
13010         and frequency information.
13011
13012 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
13013
13014         * toplev.c (dump_file_index): Move SSA dumps just after first
13015         jump dump.
13016         (dump_file): Corresponding changes.
13017         (rest_of_compilation): Move SSA path to just after the first
13018         jump pass.
13019         * doc/gcc.texi (Passes): Update due to movement of SSA path.
13020         * doc/invoke.texi: Update dump file #s as they were completely
13021         out of date with reality.
13022
13023 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
13024
13025         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
13026
13027         * expr.c (emit_move_insn_1): Deal with non-default
13028         STACK_PUSH_CODE.
13029
13030         * expr.c (emit_single_push_insn): Fix warning.
13031
13032 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
13033
13034         * expr.c (emit_move_insn_1): Avoid modifying
13035         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
13036
13037 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13038
13039         * emit-rtl.c (adjust_address): New function.
13040         * expr.h (adjust_address): Add declaration.
13041         * builtins.c: Replace some calls to change_address with calls to it
13042         or to validize_mem.
13043         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
13044         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
13045         * config/arm/arm.c, config/convex/convex.c: Likewise.
13046         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
13047         * config/i386/i386.c, config/i386/i386.md: Likewise.
13048         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
13049         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
13050         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
13051         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
13052         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
13053
13054 2001-07-02  Jim Wilson  <wilson@redhat.com>
13055
13056         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
13057
13058 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
13059
13060         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
13061         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
13062
13063 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
13064
13065         * cppinit.c (lang_defaults): New table.
13066         (set_lang): Just read from lang_defaults into the live options
13067         structure.
13068
13069 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
13070
13071         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
13072         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
13073         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
13074
13075 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13076
13077         * doc/install.texi: Various spelling and markup fixes.
13078         (Installing GCC): Component specific installation instructions are
13079         gone.
13080         Fix reference.
13081         Warn about removing old install dir in the presence of shared libs.
13082         (Configuration): Invoke with options target to match configure
13083         --help.
13084         Consistently refer to gas, gld pathnames.
13085         Invert --enable-multilib documentation.
13086         Remove references to old compiler versions.
13087
13088 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13089
13090         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
13091
13092 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13093
13094         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
13095         section.
13096         (Specific, mips*-sgi-irix5): Note IDO download.
13097         Reworded MIPS C hints.
13098         Use GNU as instead of GAS.
13099         Markup fixes.
13100         Removed SGI Freeware reference, IRIX 6 only.
13101         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
13102         Note N64 library requirement/workaround.
13103         Update O32 hints.
13104         Complete list of structure passing bug victims.
13105
13106 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13107
13108         * doc/install.texi: Remove CVS Id.
13109
13110 2001-07-02  Andreas Jaeger  <aj@suse.de>
13111
13112         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
13113         (find_inherently_necessary): Remove unused variable.
13114
13115 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
13116
13117         * c-common.h (TDI_inlined): New ast dump phase.
13118         (dump_flag_name): New function.
13119         * c-dump.c (dump_files): Add inlined phase.
13120         (dump_flag_name): Define.
13121         * doc/invoke.texi (-fdump-ast-inlined): Document.
13122
13123 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13124
13125         * stor-layout.c (layout_decl): Revert change to handling of alignment
13126         in packed types.
13127
13128 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13129
13130         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
13131         for FIELD_DECL.
13132
13133 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
13134
13135         * doc/tm.texi (FUNCTION_ARG): Document that the last call
13136         is special.
13137
13138 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
13139
13140         * tlink.c (recompile_files): Remove COMPILER_PATH and
13141         LIBRARY_PATH from the environment.
13142
13143 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
13144
13145         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
13146         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
13147         enumerators.
13148         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
13149
13150         * c-parse.in (OBJC_STRING): Kill.
13151         (objc_string): Decompose to [objc_string] '@' STRING.
13152         (reswords): Take the leading '@' off all the Objective C keywords.
13153         (objc_rid_sans_at): Kill.
13154         (init_reswords): Don't initialize it.
13155         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
13156         (_yylex): Kill reconsider label.  Look ahead one token after
13157         an '@'; if we get an identifier, check whether it's an
13158         Objective C @-keyword.  If so, return the keyword.  Otherwise,
13159         put back the token and return the '@' as a terminal.
13160
13161         * cpplib.c (lex_macro_node): Remove unnecessary check for
13162         leading '@' on identifier.  Clarify control flow and commentary.
13163
13164 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13165
13166         * cse.c (new_label_ref): Variable deleted.
13167         (insert): Remove set of new_label_ref.
13168         (check_for_label_ref): New function.
13169         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
13170
13171 See ChangeLog.5 for earlier changes.