OSDN Git Service

* config/mips/mips.c (save_restore_insns): Remove GP from the
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-11-08  Richard Henderson  <rth@redhat.com>
2
3         * config/mips/mips.c (save_restore_insns): Remove GP from the
4         restore registers mask early instead of special casing it inside
5         the loop.
6
7 2001-11-08  Neil Booth  <neil@daikokuya.demon.co.uk>
8
9         * cp/decl.c (shadow_warning): New function.
10         (pushdecl): Improve -Wshadow warnings.  Don't give both a warning
11         and an error when a block scope decl shadows a parameter.
12
13 2001-11-08  Richard Henderson  <rth@redhat.com>
14
15         * config/fp-bit.h (usi_to_float): Define for US_SOFTWARE_GOFAST
16         case as well.
17
18 2001-11-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19
20         * pa.md (negdf2, negsf2): Use multiplication rather than subtraction
21         to implement floating negation on processors prior to PA 2.0.
22
23 2001-11-08  Jakub Jelinek  <jakub@redhat.com>
24
25         * dwarf2asm.c (mark_indirect_pool_entry, mark_indirect_pool): New.
26         (USE_LINKONCE_INDIRECT): Define.
27         (dw2_output_indirect_constant_1): Try to output indirect constants
28         into linkonce sections if possible.
29         (dw2_force_const_mem): Likewise.  Register indirect_pool with GGC.
30         (dw2_output_indirect_constants): Likewise.
31
32 2001-11-07  Aldy Hernandez  <aldyh@redhat.com>
33
34         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Add vrsave.
35
36 2001-11-07  Neil Booth  <neil@daikokuya.demon.co.uk>
37
38         * c-decl.c (pushdecl): Remove file and line.
39         * c-typeck.c (pop_init_level): Remove size.
40
41 2001-11-07  Aldy Hernandez  <aldyh@redhat.com>
42
43         * doc/invoke.texi: Add -maltivec, -mno-altivec, and -mabi=altivec
44         for rs6000.
45
46         * config/rs6000/rs6000.h (MASK_ALTIVEC): New.
47         (TARGET_ALTIVEC): New.
48         (TARGET_SWITCHES): Add altivec.
49         (FIRST_PSEUDO_REGISTER): Change to 109.
50         (CALL_USED_REGISTERS): Same.
51         (FIRST_ALTIVEC_REGNO): New.
52         (LAST_ALTIVEC_REGNO): New.
53         (ALTIVEC_REGNO_P): New.
54         (UNITS_PER_ALTIVEC_WORD): New.
55         (ALTIVEC_VECTOR_MODE): New.
56         (FIXED_REGISTERS): Add altivec registers.
57         (REG_ALLOC_ORDER): Same.
58         (HARD_REGNO_NREGS): Adjust for altivec registers.
59         (HARD_REGNO_MODE_OK): Same.
60         (MODES_TIEABLE_P): Same.
61         (REGISTER_MOVE_COST): Same.
62         (REGNO_REG_CLASS): Same.
63         (reg_class): Add ALTIVEC_REGS.
64         (REG_CLASS_NAMES): Same.
65         (REG_CLASS_CONTENTS): Same.
66         (REG_CLASS_FROM_LETTER): Add 'v' constraint for ALTIVEC_REGS.
67         (ALTIVEC_ARG_RETURN): New.
68         (FUNCTION_VALUE): Handle VECTOR_TYPE.
69         (LIBCALL_VALUE): Handle altivec vector modes.
70         (VECTOR_MODE_SUPPORTED_P): New.
71         (ALTIVEC_ARG_MIN_REG): New.
72         (ALTIVEC_ARG_MAX_REG): New.
73         (ALTIVEC_ARG_NUM_REG): New.
74         (FUNCTION_VALUE_REGNO_P): Return true for altivec return register.
75         (FUNCTION_ARG_REGNO_P): Support passing args in altivec registers.
76         (REGISTER_NAMES): Add altivec regs.
77         (DEBUG_REGISTER_NAMES): Same.
78         (ADDITIONAL_REGISTER_NAMES): Same.
79         (rs6000_builtins): New.
80         (MD_EXPAND_BUILTIN): New.
81         (MD_INIT_BUILTINS): New.
82         (LEGITIMATE_OFFSET_ADDRESS_P): This addressing mode is not valid
83         for AltiVec instructions.
84         (LEGITIMATE_LO_SUM_ADDRESS_P): Same.
85         (HARD_REGNO_MODE_OK): Altivec modes can only go in altivec
86         registers.
87         (SECONDARY_MEMORY_NEEDED): We need memory to copy vector modes.
88         (TARGET_SWITCHES): Add no-altivec.
89         (DATA_ALIGNMENT): Align vectors to 128 bits.
90         (TARGET_OPTIONS): Add abi= option.
91         Add rs6000_abi_string extern.
92         (LOCAL_ALIGNMENT): New.
93         (CPP_CPU_SPEC): Define __ALTIVEC__ when -maltivec.
94         (MASK_ALTIVEC_ABI): New.
95         (TARGET_ALTIVEC_ABI): New.
96         (CONDITIONAL_REGISTER_USAGE): Set first 20 AltiVec registers to
97         call-saved.
98         (STACK_BOUNDARY): Adjust for altivec.
99         (BIGGEST_ALIGNMENT): Same.
100         (rs6000_args): Add vregno.
101         (USE_ALTIVEC_FOR_ARG_P): New.
102         (FIXED_REGISTERS): Add vrsave register.
103         (CALL_USED_REGISTERS): Same.
104         (CONDITIONAL_REGISTER_USAGE): Set VRSAVE info.
105         (VRSAVE_REGNO): New.
106         (reg_class): Add VRSAVE_REGS.
107         (REG_CLASS_NAMES): Same.
108         (REG_CLASS_CONTENTS): Same.
109         (REGNO_REG_CLASS): Same.
110         
111         * config/rs6000/sysv4.h (STACK_BOUNDARY): Adjust for altivec.
112         (ABI_STACK_BOUNDARY): Same.
113         (BIGGEST_ALIGNMENT): Same.
114         (ADJUST_FIELD_ALIGN): Remove undef.  Define anew.
115         (ROUND_TYPE_ALIGN): Same.
116         
117         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
118         to 64.
119
120         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
121         to 64.
122
123         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT
124         to 64.
125
126         * config/rs6000/rs6000.c (rs6000_expand_builtin): New.
127         (altivec_expand_builtin): New.
128         (altivec_init_builtins): New.
129         (TARGET_EXPAND_BUILTIN): New.
130         (TARGET_INIT_BUILTINS): New.
131         (rs6000_init_builtins): New.
132         (struct builtin_description): New.
133         (bdesc_2arg): New.
134         (rs6000_reg_names): Add altivec registers.
135         (alt_reg_names): Same.
136         (secondary_reload_class): Altivec regs can hold altivec regs and
137         memory.
138         (rs6000_emit_move): Force constants into memory for AltiVec moves.
139         (print_operand): Add 'y' case for printing altivec memory
140         operands.
141         (rs6000_legitimize_address): Legitimize vector addresses into
142         [REG+REG] or [REG].
143         (altivec_expand_binop_builtin): New.
144         New string rs6000_current_abi.
145         (rs6000_override_options): Call rs6000_parse_abi_options.
146         (rs6000_parse_abi_options): New.
147         (function_arg_boundary): Vector arguments must be 16
148         byte aligned.
149         (function_arg_advance): Handle vector arguments.
150         (function_arg_partial_nregs): Same.
151         (init_cumulative_args): Same.
152         (function_arg): Same.
153
154         * config/rs6000/rs6000.md (altivec_lvx): New.
155         (type): Add altivec attribute.
156         (movv4si): New.
157         (*movv4si_internal): New.
158         (movv16qi): New.
159         (*movv16qi_internal): New.
160         (movv8hi): New.
161         (*movv8hi_internal1): New.
162         (movv4sf): New.
163         (*movv4sf_internal1): New.
164         (altivec_stvx): New.
165         (vaddubm): New.
166         (vadduhm): New.
167         (vadduwm): New.
168         (vaddfp): New.
169         (vaddcuw): New.
170         (vaddubs): New.
171         (vaddsbs): New.
172         (vadduhs): New.
173         (vaddshs): New.
174         (vadduws): New.
175         (vaddsws): New.
176         (vand): New.
177         (vandc): New.
178         (vavgub): New.
179         (vavgsb): New.
180         (vavguh): New.
181         (vavgsh): New.
182         (vavguw): New.
183         (vavgsw): New.
184         (vcmpbfp): New.
185         (vcmpequb): New.
186         (vcmpequh): New.
187         (vcmpequw): New.
188         (vcmpeqfp): New.
189         (vcmpgefp): New.
190         (vcmpgtub): New.
191         (vcmpgtsb): New.
192         (vcmpgtuh): New.
193         (vcmpgtsh): New.
194         (vcmpgtuw): New.
195         (vcmpgtsw): New.
196         (vcmpgtfp): New.
197         (vcmpgefp): New.
198         (vcmpgtub): New.
199         (vcmpgtsb): New.
200         (vcmpgtuh): New.
201         (vcmpgtsh): New.
202         (vcmpgtuw): New.
203         (vcmpgtsw): New.
204         (vcmpgtfp): New.
205         (vmaxub): New.
206         (vmaxsb): New.
207         (vmaxuh): New.
208         (vmaxsh): New.
209         (vmaxuw): New.
210         (vmaxsw): New.
211         (vmaxfp): New.
212         (vmrghb): New.
213         (vmrghh): New.
214         (vmrghw): New.
215         (vmrglb): New.
216         (vmrglh): New.
217         (vmrglw): New.
218         (vminub): New.
219         (vminsb): New.
220         (vminuh): New.
221         (vminsh): New.
222         (vminuw): New.
223         (vminsw): New.
224         (vminfp): New.
225         (vmuleub): New.
226         (vmulesb): New.
227         (vmuleuh): New.
228         (vmulesh): New.
229         (vmuloub): New.
230         (vmulosb): New.
231         (vmulouh): New.
232         (vmulosh): New.
233         (vnor): New.
234         (vor): New.
235         (vpkuhum): New.
236         (vpkuwum): New.
237         (vpkpx): New.
238         (vpkuhss): New.
239         (vpkshss): New.
240         (vpkuwss): New.
241         (vpkswss): New.
242         (vpkuhus): New.
243         (vpkshus): New.
244         (vpkuwus): New.
245         (vpkswus): New.
246         (vrlb): New.
247         (vrlh): New.
248         (vrlw): New.
249         (vslb): New.
250         (vslh): New.
251         (vslw): New.
252         (vsl): New.
253         (vslo): New.
254         (vsrb): New.
255         (vrsh): New.
256         (vrsw): New.
257         (vsrab): New.
258         (vsrah): New.
259         (vsraw): New.
260         (vsr): New.
261         (vsro): New.
262         (vsububm): New.
263         (vsubuhm): New.
264         (vsubuwm): New.
265         (vsubfp): New.
266         (vsubcuw): New.
267         (vsububs): New.
268         (vsubsbs): New.
269         (vsubuhs): New.
270         (vsubshs): New.
271         (vsubuws): New.
272         (vsubsws): New.
273         (vsum4ubs): New.
274         (vsum4sbs): New.
275         (vsum4shs): New.
276         (vsum2sws): New.
277         (vsumsws): New.
278         (vxor): New.
279
280 2001-11-07  Daniel Berlin  <dan@cgsoftware.com>
281
282         * Makefile.in (df.o): Add fibheap.h to dependencies.
283        
284         * df.h: Add prototypes for transfer functions, iterative_dataflow
285         functions.
286         (enum df_flow_dir): New enum.
287         (enum df_confluence_op): New enum.
288         (struct df): Add inverse_rts_map.
289
290         * df.c: Add sbitmap.h to the list of includes.
291         (df_rd_global_compute): Removed.
292         (df_ru_global_compute): Removed.
293         (df_lr_global_compute): Removed.
294         (df_rd_transfer_function): New function.
295         (df_ru_transfer_function): New function.
296         (df_lr_transfer_function): New function.
297         (df_analyse_1): allocate/compute/free df->inverse_rts_map.
298         Use iterative_dataflow_bitmap instead of df_*_global_compute.
299         (iterative_dataflow_sbitmap): New function.
300         (iterative_dataflow_bitmap): New function.
301
302 2001-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
303
304         * doc/gcc.texi: Move terminology and spelling conventions to
305         htdocs/codingconventions.html.
306
307 2001-11-07  Graham Stott  <grahams@redhat.com>
308
309         * cse.c (cse_insn): Emit BARRIER after unconditional jump.
310
311 Wed Nov  7 13:33:34 CET 2001  Jan Hubicka  <jh@suse.cz>
312
313         * expmed.c (expand_mult): Force operand to register before computing
314         cost.
315         * i386.c (x86_decompose_lea): New global vairable.
316         * i386.h (x86_decompose_lea): Declare.
317         (TARGET_DECOMPOSE_LEA): New macro.
318         (RTX_COST): Handle leas properly.
319
320 2001-11-06  Richard Henderson  <rth@redhat.com>
321
322         * config/alpha/elf.h (DO_SELECT_SECTION): TREE_READONLY is not
323         defined for a CONSTRUCTOR; don't check it.
324
325 2001-11-06  Danny Smith  <dannysmith@users.sourceforge.net>
326
327         * gcov.c (output_data): Use IS_ABSOLUTE_PATHNAME to
328         test for absolute pathnames.
329
330 2001-11-06  Olivier Hainque <hainque@act-europe.fr>
331
332         * unwind-dw2.c (execute_cfa_program): Evaluate call frame
333         instructions up to the target pc inclusive.
334
335 2001-11-06  Steve Christiansen  <smc@us.ibm.com>
336
337         * loop.c (loop_regs_scan):  Don't invalidate PIC register.
338
339 2001-11-06  Eric Christopher  <echristo@redhat.com>
340
341         * config/mips/mips.md(movdf_internal2): Add constraints for float
342         to general register move.
343         * config/mips/elf64.h: Add default ABI.
344
345 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
346
347         * alias.c:: Include langhooks.h.
348         * emit-rtl.c: Similarly.
349         * toplev.c: Similarly.
350         * tree-inline.c: Similarly.
351         * langhooks-def.h: New, the old langhooks.h.  Give the default
352         hooks a common prefix.
353         * langhooks.h: Contents extracted from toplev.h.
354         * toplev.h: Move langhook stuff to langhooks.h.
355         * langhooks.c: Give default hooks a common prefix.
356
357         * c-lang.c: Include langhooks-def.h.
358         * objc/objc-act.c: Similarly.
359         * Makefile.in: Update.
360         * objc/Make-lang.in: Update.
361
362 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
363
364         * doc/install.texi: Document that configure options not listed in
365         this file are unsupported.  Document --with-system-zlib.
366
367 Tue Nov  6 09:21:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
368
369         * rtl.h (mem_for_const_double): New declaration.
370         * varasm.c (mem_for_const_double): New function.
371         * config/convex/convex.md (movdf): Use it.
372         * config/m68k/hp320.h (LEGITIMATE_PIC_OPERAND_P): Likewise.
373         * config/m68k/linux.h, config/m68k/m68k.h: Likewise.
374         * config/m68k/m68kv4.h: Likewise.
375
376         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Adjust for addition
377         of new GP reg classes.
378
379         * expr.c (store_field): When making temp object for unaligned
380         component, set it to alias set 0.
381
382 2001-11-06  Joseph S. Myers  <jsm28@cam.ac.uk>
383
384         * c-common.c (c_expand_expr_stmt): Apply default conversions to
385         non-lvalue arrays if C99.
386         * c-typeck.c (default_conversion): Split out code handling
387         array-to-pointer and function-to-pointer conversions into a
388         separate default_function_array_conversion function.
389         (default_function_array_conversion): New function.  Keep track of
390         whether any NON_LVALUE_EXPRs were stripped.  Return non-lvalue
391         arrays unchanged outside C99 mode instead of giving an error for
392         them.
393         (build_component_ref): Use pedantic_non_lvalue when handling
394         COMPOUND_EXPR.  Don't handle COND_EXPR specially.
395         (convert_arguments): Use default_function_array_conversion.
396         (build_unary_op): For ADDR_EXPR, take a flag indicating whether
397         non-lvalues are OK.
398         (unary_complex_lvalue): Likewise.
399         (internal_build_compound_expr): Use
400         default_function_array_conversion.  Apply default conversions to
401         function in compound expression.
402         (build_c_cast, build_modify_expr, digest_init, build_asm_stmt):
403         Use default_function_array_conversion.
404         * doc/extend.texi: Update documentation of subscripting non-lvalue
405         arrays.
406         Fixes PR c/461.
407
408 2001-11-05  Zack Weinberg  <zack@codesourcery.com>
409
410         * aclocal.m4: (AM_WITH_NLS): Don't look at ALL_LINGUAS.
411         (AM_GNU_GETTEXT): Set CATALOGS to a list of .gmo files
412         corresponding to the complete set of .po and .gmo files in
413         the source directory's po subdir, modified by LINGUAS.  Don't
414         look at ALL_LINGUAS.
415         * configure.in: Don't set ALL_LINGUAS.
416         * configure: Regenerate.
417
418         * Makefile.in (.po.gmo): Don't move into source directory.
419         (.po.pox): Clarify comments.
420         (install-po): Look for .gmo files in both srcdir and objdir;
421         don't fail if a file is totally missing.
422         (distclean): rmdir ada subdirectory too.
423
424 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
425
426         * config/rs6000/rs6000.c (rs6000_select_section): Handle
427         CONSTRUCTORs _correctly_.
428
429 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
430
431         * c-decl.c (delete_block): Remove.
432         * c-tree.h (delete_block): Remove.
433
434 2001-11-05  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
435
436         * cppexp.c (lex, parse_defined): Update warning about defined.
437
438 2001-11-05  Geoffrey Keating  <geoffk@redhat.com>
439
440         * config/rs6000/rs6000.c (rs6000_select_section): Handle
441         CONSTRUCTORs too.
442
443 2001-11-05  Nick Clifton  <nickc@cambridge.redhat.com>
444
445         * config/arm/arm.c (arm_return_in_memory): Cope with
446         int_size_in_bytes returning -1.
447
448         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Handle
449         DECL being NULL.
450
451 Mon Nov  5 16:15:25 CET 2001  Jan Hubicka  <jh@suse.cz>
452
453         * Makefile.in (bb-reoder.o): Add depdendency on cfglayout.h;
454         remove unneded depdendencies;
455         (cfglayout.o): New.
456         * cfglayout.c, cfglayout.h: New files; break out from ...
457         * bb-reorder.c: ... here; Remove unneeded includes;
458
459 2001-11-04  Alan Modra  <amodra@bigpond.net.au>
460
461         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used.
462
463 2001-11-04  David Edelsohn  <edelsohn@gnu.org>
464
465         * config/rs6000/rs6000.c (rs6000_emit_move): Handle 64-bit
466         mode as well.  Do not explicitly create intermediate regs.
467
468 2001-11-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
469
470         * arm/aof.h (aof_text_section, aof_data_section): Don't declare.
471         (common_section): Delete unused variable.
472         (ASM_OUTPUT_ASCII): Fix signed/unsigned warnings.
473         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
474         * arm-protos.h (arm_poke_function_name, aof_add_import,
475         aof_delete_import): Const-ify.
476         * arm.c (legitimize_pic_address): Wrap variables in the macro
477         controlling their usage.
478         (arm_finalize_pic): Mark variable with ATTRIBUTE_UNUSED.
479         (arm_poke_function_name, pic_chain, import, aof_add_import,
480         aof_delete_import): Const-ify.
481         * i386.c (ix86_osf_output_function_prologue): Const-ify.
482         * i386/sysv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
483         ASM_OUTPUT_LONG_DOUBLE): Fix format specifier warnings.
484         * i860/fx2800.h (DBX_OUTPUT_STANDARD_TYPES): Const-ify.
485         * i860/sysv3.h: Add missing comment closure.
486         * m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Add missing semi-colon.
487         * m88k/dgux.h (SELECT_RTX_SECTION): Add missing argument in call
488         to symbolic_operand.
489
490         * config.gcc (m680[02]0-*-*): Rename case from m68000-*-*.
491         (i960-*-*): Set tmake_file.
492         (sparc86x-*-elf*): Fix typo in header name.
493
494         * sched-rgn.c (schedule_insns): Delete unused variable.
495
496 2001-11-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
497
498         PR c/2820
499         * c-typeck.c (lookup_field): Rework to return a chain down to
500         the looked-up field.
501         (build_component_ref): Use the new lookup_field to handle
502         nested anonymous entities correctly.
503
504 Sun Nov  4 11:53:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
505
506         * config/sparc/sparc.c (sparc_emit_set_const32, GEN_HIGHINT64):
507         Change parameters to gen_rtx_CONST_DOUBLE.
508         (GEN_INT64, sparc_emit_set_const64): Likewise.
509         * config/sparc/sparc.md (movdf split): Likewise.
510
511 2001-11-03  Geoffrey Keating  <geoffk@redhat.com>
512
513         * unroll.c (calculate_giv_inc): Use find_last_value rather
514         than just hoping the last instruction is the right SET.
515         [Fixes 990604-1.c on stormy16.]
516
517         * config/stormy16/stormy16.h (LIB_SPEC): Don't supply any libgloss
518         library at all if -T is used.
519
520         * config/stormy16/stormy16.c (stormy16_print_operand): Avoid
521         some uses of uninitialized variables in error cases.
522
523         * config/stormy16/stormy16.c (stormy16_output_shift): Don't
524         look at 'temp' if we won't be using it.
525
526         * config/stormy16/stormy16.h (CONST_COSTS): Define.
527         (RTX_COSTS): Define.
528         (ADDRESS_COST): Define.
529         (MEMORY_MOVE_COST): Allow for memory_move_secondary_cost.
530
531         * config/stormy16/stormy16.h (ASM_SPEC): Pass -g to the assembler.
532
533         * config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Call
534         stormy16_asm_output_mi_thunk.
535         * config/stormy16/stormy16.c (stormy16_asm_output_mi_thunk): New
536         function.
537         * config/stormy16/stormy16-protos.h
538         (stormy16_asm_output_mi_thunk): New prototype.
539
540 2001-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
541
542         * ChangeLog.2, ChangeLog.4, ChangeLog.5, ChangeLog,
543         FSFChangeLog.10, FSFChangeLog.11, alias.c, attribs.c,
544         caller-save.c, calls.c, cfg.c, cfganal.c, cfgcleanup.c, cfgrtl.c,
545         cppmacro.c, fold-const.c, ifcvt.c, local-alloc.c, profile.c,
546         sched-int.h, toplev.c, config/alpha/alpha.c,
547         config/alpha/alpha.md, config/c4x/c4x.h, config/cris/cris.h,
548         config/cris/cris.md, config/i370/i370.md, config/i386/i386.c,
549         config/i386/i386.h, config/i386/i386.md, config/i386/xm-djgpp.h,
550         config/ia64/ia64.c, config/m68hc11/m68hc11.c, config/m68k/m68k.md,
551         config/mcore/mcore.h, config/mmix/mmix.c, config/ns32k/ns32k.h,
552         config/ns32k/ns32k.md, config/rs6000/rs6000.c,
553         config/rs6000/sysv4.h, config/sh/sh.md: Fix spelling errors.
554
555 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
556
557         * Makefile.in (dbxout.o): Depend on function.h.
558         * collect2.c (is_in_list): Hide unused function.
559         * dbxout.c: Include function.h.
560         (source_label_number, dbxout_source_line, dbxout_source_file,
561         dbxout_function_end, dbxout_begin_function): Wrap/move inside
562         macros controlling usage.
563         * gcc.c (TARGET_EXECUTABLE_SUFFIX): Undef before defining.
564         * output.h (exports_section): Prototype.
565
566         * convex.c (convex_output_function_prologue): Fix format specifier
567         warning.
568         (asm_declare_function_name): Fix signed/unsigned warning.
569         (print_operand): Fix format specifier warning.
570         * convex.h (S_REGNO_P, A_REGNO_P): Fix signed/unsigned warning.
571         * dsp16xx-protos.h (uns_comparison_operator,
572         num_1600_core_shifts): Prototype.
573         * dsp16xx.c: Include tm_p.h, not dsp16xx-protos.h.
574         (frame_size, frame_pointer_offset): Delete.
575         (dsp16xx_output_function_prologue, dsp16xx_output_function_epilogue):
576         Make static.  Fix format specifier warnings.
577         * dsp16xx.h (IS_ACCUM_REG): Fix unsigned>=0 warning.
578         (EXTRA_SECTION_FUNCTIONS): Prototype const_section.
579         * dsp16xx.md: Add default case in switches.
580         * fr30.h (IN_RANGE): Delete.
581         * ia64.h (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
582         * mcore-protos.h (mcore_output_cmov): Const-ify.
583         * mcore.c (mcore_output_cmov): Likewise.
584         * mcore.h (switch_to_section): Make static and prototype.
585         * mn10200.h (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Fix
586         unsigned>=0 warnings.
587         * mn10300.h (REGNO_IN_RANGE_P): Likewise.
588         * rs6000-protos.h (read_only_data_section,
589         read_only_private_data_section): Prototype.
590         * rs6000.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
591         * sh.c (sh_adjust_cost): Mark parameter with ATTRIBUTE_UNUSED.
592         * sh.h (GENERAL_REGISTER_P): Fix unsigned>=0 warning.
593
594 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
595
596         * dwarf2asm.c (dw2_asm_output_pcrel): Mark parameters with
597         ATTRIBUTE_UNUSED.
598         * final.c (final_scan_insn): Add brackets around body of if-stmt.
599         * gcc.c (convert_filename): Add static prototype.  Const-ify.
600         Wrap variable in macros controlling its use.
601         * output.h (sdata_section): Add prototype.
602
603         * 1750a.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
604         (ASM_OUTPUT_ASCII): Avoid signed/unsigned warning.
605         * c4x.h (INIT_SECTION_FUNCTION): Add prototype.
606         (ASM_FILE_START): Const-ify.
607         (ASM_OUTPUT_BYTE_FLOAT, ASM_OUTPUT_SHORT_FLOAT): Fix format
608         specifier warning.
609         * c4x.md: Don't use the 'U' integer suffix.
610         * clipper.md (clipper_movstr): Delete declaration.
611         * d30v-protos.h (d30v_move_2words): Const-ify.
612         (debug_stack_info): Add prototype.
613         * d30v.c: Include "integrate.h".
614         (d30v_function_arg_boundary, d30v_function_arg,
615         d30v_function_arg_partial_nregs, d30v_function_arg_advance): Avoid
616         signed/unsigned warnings.
617         (d30v_print_operand_memory_reference, d30v_move_2words):
618         Const-ify.
619         * d30v.h (REG_CLASS_FROM_LETTER): Use unsigned array subscript.
620         * fr30.c (fr30_pass_by_reference, fr30_pass_by_value): Prototype.
621         * fr30.md: Const-ify.
622         * h8300.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
623         * i370.c (i370_label_scan, mvs_get_label): Make definition static.
624         (mvs_get_label_page): Hide unused static function.
625         * i860.c (current_function_original_name): Const-ify.
626         * i860/sysv3.h (current_function_original_name): Likewise.
627         * i860/sysv4.h (current_function_original_name): Likewise.
628         * i960.md: Add default case in switches.  Remove unused variable.
629         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Undef before defining.
630         * m32r.md: Const-ify.
631         * m68hc11-protos.h (m68hc11_asm_file_start): Const-ify.
632         * m68hc11.c: Include "reload.h".
633         (static_chain_reg, print_options, m68hc11_asm_file_start):
634         Const-ify.
635         * m68hc11.md: Delete unused variable.  Const-ify.  Add parens
636         around & in comparison.
637         * mcore.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
638         * mn10200.c (shift_mode): Remove trailing comma.
639         * mn10300-protos.h (output_tst): Const-ify.
640         * mn10300.c (output_tst): Likewise.
641         * pa/long_double.h (ASM_OUTPUT_LONG_DOUBLE): Fix format specifier
642         warnings.
643         * pa-protos.h (output_ascii): Use regular char *, not unsigned.
644         * pa.c (output_ascii): Likewise.
645         * pa/som.h (EXTRA_SECTION_FUNCTIONS): Add prototype.
646         * pdp11.md (expand_unop): Delete declarations.
647         * pj-protos.h (pj_output_addsi3): Const-ify.
648         * pj.c (pj_output_push_int, pj_output_load, pj_output_inc,
649         pj_output_cnv_op, mode_to_char, pj_output_varidx, pj_print_cond,
650         unique_src_operand): Add prototypes.
651         (pj_output_store_into_lval): Make definition static.
652         (pj_function_incoming_arg): Don't use unary plus.
653         (pj_output_addsi3): Const-ify.
654         * romp.md (get_symref): Delete declarations.
655         * v850-c.c (mark_current_function_as_interrupt): Don't return
656         value from void function.
657         * v850.c: Include "integrate.h".
658         * v850.h (ASM_OUTPUT_LABELREF): Const-ify.
659         * vax-protos.h (const_section): Add prototype.
660
661 2001-11-03  Aldy Hernandez  <aldyh@redhat.com>
662
663         * machmode.def: Add documentation for the seventh argument in
664         vector modes.
665
666 2001-11-04  Hans-Peter Nilsson  <hp@bitrange.com>
667
668         * doc/invoke.texi (MMIX Options) <-mno-knuthdiv>: Say remainder
669         consistently.
670         <-mno-toplevel-symbols>: Change @code{:} to @samp{:}.
671         <-melf>: Don't have markup for ELF acronym.
672
673 2001-11-03  Hans-Peter Nilsson  <hp@bitrange.com>
674
675         * config.gcc (mmix-*-*): New target.
676         * doc/invoke.texi: Document MMIX options.
677         * doc/contrib.texi: Add note about MMIX port to my entry.
678         * config/mmix/t-mmix: New file.
679         * config/mmix/mmix.h: New file.
680         * config/mmix/mmix-protos.h: New file.
681         * config/mmix/mmix.c: New file.
682         * config/mmix/mmix.md: New file.
683         * config/mmix/crti.asm: New file.
684         * config/mmix/crtn.asm: New file.
685
686 2001-11-03  Kazu Hirata  <kazu@hxi.com>
687
688         * config/sparc/linux-aout.h: Fix comment formatting.
689         * config/sparc/linux.h: Likewise.
690         * config/sparc/linux64.h: Likewise.
691         * config/sparc/lynx.h: Likewise.
692         * config/sparc/pbd.h: Likewise.
693         * config/sparc/sol2-sld-64.h: Likewise.
694         * config/sparc/sol2.h: Likewise.
695         * config/sparc/sparc.c: Likewise.
696         * config/sparc/sparc.h: Likewise.
697         * config/sparc/sparc.md: Likewise.
698         * config/sparc/sunos4.h: Likewise.
699         * config/sparc/vxsim.h: Likewise.
700         * config/sparc/vxsparc.h: Likewise.
701         * config/sparc/vxsparc64.h: Likewise.
702
703 Sat Nov  3 10:37:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
704
705         * cselib.c (cselib_subst_to_values, case CONST_DOUBLE): Remove
706         reference to CONST_DOUBLE_MEM in comment.
707         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Remove one operand.
708         (gen_rtx, case CONST_DOUBLE): Call it with one less operand.
709         (init_emit_once): Don't clear CONST_DOUBLE_MEM.
710         * function.c (pop_function_context_from): Don't call
711         restore_varasm_status.
712         * function.h (restore_varasm_status): Delete declaration.
713         * gengenrtl.c (CONST_DOUBLE_FORMAT): Delete CONST_DOUBLE_MEM slot.
714         * rtl.c: Likewise.
715         * rtl.def (CONST_DOUBLE): Update comment.
716         * rtl.h (CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW): Update operand number.
717         (CONST_DOUBLE_CHAIN): Likewise.
718         (CONST_DOUBLE_MEM): Delete.
719         (gen_rtx_CONST_DOUBLE): Update parameters.
720         * varasm.c (struct varasm_status): x_pool_offset now HOST_WIDE_INT.
721         Remove reference to CONST_DOUBLE_MEM.
722         (const_alias_set): New variable.
723         (immed_double_const): Change call to gen_rtx_CONST_DOUBLE.
724         (immed_real_const_1): Adjust tests for 0, 1, and 2.
725         Don't set CONST_DOUBLE_MEM.
726         (clear_const_double_mem): Don't do anything with const_tiny_rtx.
727         (output_constant_def): Don't look at TREE_CST_RTL if INTEGER_CST.
728         Put constant in const_alias_set.
729         (struct pool_constant): ALIGN now unsigned.
730         OFFSET now HOST_WIDE_INT.
731         Delete LABEL.
732         (restore_varasm_status): Deleted.
733         (mark_pool_constant): Mark desc->rtl.
734         (force_const_mem): Rework to store rtl in hash table,
735         not CONST_DOUBLE_MEM.
736         Put constant in const_alias_set.
737         (find_pool_constant): Check desc->rtl.
738         (mark_constants, mark_constant): Don't special-case CONST_DOUBLE.
739         (init_varasm_once): Initialize const_alias_set.
740
741         * expr.c (expand_expr, case ADDDR_EXPR): If at top level, don't call
742         force_const_mem.
743
744         * reload.c (combine_reloads): Don't combine an output reload if there
745         are other reloads around for part of the output.
746
747         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a
748         constant expression.
749         (set_mem_decl): New function.
750         * expr.h (set_mem_decl): New declaration.
751         * final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo.
752         (output_asm_operand_names): Add tab.
753         * reload1.c (alter_reg): Set decl of MEM from REG_DECL.
754
755         * builtins.c (get_memory_rtx): Properly set MEM alias set and
756         attributes.
757
758 2001-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
759
760         * doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi:
761         Use "invalid" instead of "illegal".  Use @r in comments in
762         examples.
763
764 2001-11-02  Neil Booth  <neil@daikokuya.demon.co.uk>
765
766         * c-decl.c (pushdecl): Move block inside if conditional to remove
767         possibility of a segfault.  Lookup block-level extern
768         variables in enclosing scopes correctly.
769
770         * testsuite/gcc.c-torture/compile/20001018-1.x: Remove XFAIL.
771
772 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
773
774         * expmed.c (store_bit_field): Use simplify_gen_subreg to make
775         SUBREG so we avoid SUBREGing memory.
776
777         * expmed.c (store_bit_field): Same.
778
779 2001-11-02  DJ Delorie  <dj@redhat.com>
780
781         * config/rs6000/rs6000.c (rs6000_emit_move): Make sure that
782         using FP registers for DImode mem-mem moves is acceptable.
783
784 2001-11-02  Aldy Hernandez  <aldyh@redhat.com>
785
786         * builtins.c (apply_args_size): Handle vector arguments.
787         (apply_result_size): Same.
788
789         * machmode.def: Set WIDER mode field for all vector entries.
790
791 2001-11-02  Graham Stott  <grahams@redhat.com>
792
793         * recog.c (decode_asm_operands):  Check that the SRC is ASM_OPERANDS.
794
795 2001-11-01  Eric Christopher  <echristo@redhat.com>
796
797         * config.gcc: Revert part of earlier patch.
798         * config/mips/linux.h: Ditto.
799         * df.c: Include tm_p.h to avoid warnings.
800         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Add defaults.  Adjust
801         #if/#endif.
802         * config/mips/mips.c: Define mips_abi regardless.
803         (mips_output_function_prologues): Add long casts for .frame
804         output.
805         (override_options): Allow use of ABI_32.
806
807 2001-11-01  Kazu Hirata  <kazu@hxi.com>
808
809         * config/m68hc11/m68hc11.c: Fix comment formatting.
810         * config/m68hc11/m68hc11.h: Likewise.
811         * config/m68hc11/m68hc11.md: Likewise.
812
813 2001-11-01  Neil Booth  <neil@daikokuya.demon.co.uk>
814
815         * c-typeck.c (default_conversion): Retain the original expression
816         codes.
817         * gcc.dg/Wparentheses.c: New tests.
818
819 2001-11-01  David S. Miller  <davem@redhat.com>
820
821         * doc/install.texi (Specific, sparc-sun-solaris2*): Bring
822         64-bit Sparc description more in line with reality.
823
824 2001-11-01  Joseph S. Myers  <jsm28@cam.ac.uk>
825
826         * Makefile.in (GCOV_OBJS): Add version.o.
827         * gcov.c: Include "version.h" and <getopt.h>.
828         (gcov_version_string): Remove.
829         (print_usage): Take a parameter to determine whether this is a
830         call from --help or an error message.  Give fuller output that
831         follows the GNU Coding Standards for --help.
832         (print_version): New function.
833         (options): New.
834         (process_args): Use getopt_long.  Support long options.  Follow
835         GNU Coding Standards for --help and --version.
836         * doc/gcov.texi: Document long options.
837         Addresses part of PR other/704.
838
839 2001-11-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
840
841         * pa.c (output_move_double): Fix typo in double load.
842
843 2001-11-01  Kazu Hirata  <kazu@hxi.com>
844
845         * config/h8300/h8300.c (h8300_encode_label): Compute a string
846         before passing it to ggc_alloc_string.
847
848 2001-11-01  Kazu Hirata  <kazu@hxi.com>
849
850         * config/m68k/3b1.h: Fix comment formatting.
851         * config/m68k/3b1g.h: Likewise.
852         * config/m68k/a-ux.h: Likewise.
853         * config/m68k/amix.h: Likewise.
854         * config/m68k/apollo68.h: Likewise.
855         * config/m68k/atari.h: Likewise.
856         * config/m68k/aux-exit.c: Likewise.
857         * config/m68k/ccur-GAS.h: Likewise.
858         * config/m68k/crds.h: Likewise.
859         * config/m68k/dpx2.h: Likewise.
860         * config/m68k/dpx2g.h: Likewise.
861         * config/m68k/hp310.h: Likewise.
862         * config/m68k/hp320.h: Likewise.
863         * config/m68k/isi.h: Likewise.
864         * config/m68k/linux.h: Likewise.
865         * config/m68k/lynx.h: Likewise.
866         * config/m68k/m68k-psos.h: Likewise.
867         * config/m68k/m68k.c: Likewise.
868         * config/m68k/m68k.h: Likewise.
869         * config/m68k/m68k.md: Likewise.
870         * config/m68k/m68kelf.h: Likewise.
871         * config/m68k/m68kv4.h: Likewise.
872         * config/m68k/mot3300.h: Likewise.
873         * config/m68k/news.h: Likewise.
874         * config/m68k/next.h: Likewise.
875         * config/m68k/pbb.h: Likewise.
876         * config/m68k/plexus.h: Likewise.
877         * config/m68k/sgs.h: Likewise.
878         * config/m68k/sun3.h: Likewise.
879         * config/m68k/tower.h: Likewise.
880         * config/m68k/vxm68k.h: Likewise.
881
882 2001-10-31  DJ Delorie  <dj@redhat.com>
883
884         * config/mips/mips.h (mips_cache_flush_func): Prototype.
885         (TARGET_OPTIONS): Support -mflush-func= and -mno-flush-func.
886         (INITIALIZE_TRAMPOLINE): Use mips_cache_flush_func if nonzero.
887         * config/mips/mips.c (mips_cache_flush_func): New.
888         * doc/invoke.texi: Document the new options.
889
890 2001-10-31  Hans-Peter Nilsson  <hp@axis.com>
891
892         * config.gcc (cris-*-linux*, tm_file): Rearrange order.
893         * config/cris/linux.h (LIB_SPEC, STARTFILE_SPEC): Don't redefine.
894
895         * config/cris/cris.h (EH_RETURN_DATA_REGNO): Fix formatting.
896
897         * config/cris/cris.c: Include output.h after tree.h but before
898         target.h.
899
900 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
901
902         * Makefile.in (INTL_TARGETS, POSUB): Delete all references.
903         (INTL_SUBDIRS): Just intl.
904         (.SUFFIXES): Add .gmo .po .pox.
905         (native): Also depend on build-@POSUB@.
906         (intl.all, intl.install): Depend on config.h and things it includes.
907         (po-generated): New target; depend on c-parse.c and tradcif.c.
908         (install-normal): Also depend on install-@POSUB@.
909         (XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): New variables.
910         (build-, install-, build-po, update-po, install-po,
911         .po.gmo, .po.pox, $(PACKAGE).pot, po/$(PACKAGE).pot): New rules.
912
913         * aclocal.m4: Prefix each entry in CATALOGS with "po/"
914         * configure.in: Don't munge XGETTEXT.  Don't generate
915         po/Makefile.in.
916         * configure: Regenerate.
917
918         * exgettext: Delete.
919         * config/m68k/m68k.h: Add doc strings for -msky and -mnosky.
920         * objc/Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
921
922 2001-10-31  Kazu Hirata  <kazu@hxi.com>
923
924         * config/h8300/h8300.md (two anonymous patterns): New.
925
926 2001-10-31  Aldy Hernandez  <aldyh@redhat.com>
927
928         * tree.h (tree_index): Add support for V16QI and V8HI.
929         (V8HI_type_node): New.
930         (V16QI_type_node): New.
931
932         * tree.c (build_common_tree_nodes_2): Same.
933
934         * c-common.c (type_for_mode): Same.
935
936 2001-10-31  Kazu Hirata  <kazu@hxi.com>
937
938         * config/i386/att.h: Fix comment formatting.
939         * config/i386/beos-elf.h: Likewise.
940         * config/i386/bsd.h: Likewise.
941         * config/i386/bsd386.h: Likewise.
942         * config/i386/crtdll.h: Likewise.
943         * config/i386/cygwin.asm: Likewise.
944         * config/i386/cygwin.h: Likewise.
945         * config/i386/djgpp.h: Likewise.
946         * config/i386/freebsd-aout.h: Likewise.
947         * config/i386/freebsd.h: Likewise.
948         * config/i386/gas.h: Likewise.
949         * config/i386/i386-interix.h: Likewise.
950         * config/i386/i386-protos.h: Likewise.
951         * config/i386/i386.c: Likewise.
952         * config/i386/i386.h: Likewise.
953         * config/i386/i386.md: Likewise.
954         * config/i386/i386elf.h: Likewise.
955         * config/i386/interix.c: Likewise.
956         * config/i386/isc.h: Likewise.
957         * config/i386/isccoff.h: Likewise.
958         * config/i386/iscdbx.h: Likewise.
959         * config/i386/linux.h: Likewise.
960         * config/i386/lynx.h: Likewise.
961         * config/i386/mingw32.h: Likewise.
962         * config/i386/netbsd-elf.h: Likewise.
963         * config/i386/next.h: Likewise.
964         * config/i386/osf1elf.h: Likewise.
965         * config/i386/osfrose.h: Likewise.
966         * config/i386/sco5.h: Likewise.
967         * config/i386/seq-gas.h: Likewise.
968         * config/i386/seq-sysv3.h: Likewise.
969         * config/i386/sequent.h: Likewise.
970         * config/i386/sol2.h: Likewise.
971         * config/i386/sun386.h: Likewise.
972         * config/i386/uwin.asm: Likewise.
973         * config/i386/uwin.h: Likewise.
974         * config/i386/vxi386.h: Likewise.
975         * config/i386/win32.h: Likewise.
976         * config/i386/winnt.c: Likewise.
977         * config/i386/xm-cygwin.h: Likewise.
978         * config/i386/xm-mingw32.h: Likewise.
979
980 2001-10-31  Kazu Hirata  <kazu@hxi.com>
981
982         * builtins.def: Fix comment typos.
983         * config/alpha.c: Likewise.
984         * config/arm/arm.c: Likewise.
985         * config/avr/avr.h: Likewise.
986         * config/d30v/d30v.c: Likewise.
987         * config/d30v/d30v.h: Likewise.
988         * config/d30v/d30v.md: Likewise.
989         * config/dsp16xx/dsp16xx.c: Likewise.
990         * config/fr30/fr30.c: Likewise.
991         * config/fr30/fr30.md: Likewise.
992         * config/i386/i386.c: Likewise.
993         * config/i860/i860.c: Likewise.
994         * config/i960/i960.c: Likewise.
995         * config/ia64/ia64.c: Likewise.
996         * config/mips/mips.c: Likewise.
997         * config/pa/pa.c: Likewise.
998         * config/rs6000/rs6000.c: Likewise.
999         * config/s390/s390.c: Likewise.
1000         * config/sparc/sparc.c: Likewise.
1001
1002 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1003
1004         * config/mips/elf.h: Fix comment formatting.
1005         * config/mips/elf64.h: Likewise.
1006         * config/mips/iris5.h: Likewise.
1007         * config/mips/iris5gas.h: Likewise.
1008         * config/mips/iris6.h: Likewise.
1009         * config/mips/isa3264.h: Likewise.
1010         * config/mips/linux.h: Likewise.
1011         * config/mips/mips.c: Likewise.
1012         * config/mips/mips.h: Likewise.
1013         * config/mips/mips.md: Likewise.
1014         * config/mips/mips16.S: Likewise.
1015         * config/mips/netbsd.h: Likewise.
1016         * config/mips/osfrose.h: Likewise.
1017         * config/mips/r3900.h: Likewise.
1018         * config/mips/sni-svr4.h: Likewise.
1019         * config/mips/svr4-t.h: Likewise.
1020         * config/mips/ultrix.h: Likewise.
1021
1022 2001-10-30  Daniel Berlin  <dan@cgsoftware.com>
1023
1024         * bitmap.c (bitmap_element_free): Don't forget to update head->indx
1025         when we update head->current.
1026
1027 2001-10-30  Neil Booth  <neil@daikokuya.demon.co.uk>
1028
1029         * tree.c (id_string_size): Remove.
1030         (dump_tree_statistics): Update.
1031         * toplev.c (compile_file): If dumping stats, dump tree stats too.
1032
1033 Tue Oct 30 19:00:43 CET 2001  Jan Hubicka  <jh@suse.cz>
1034
1035         * sched-rgn.c (schedule_insns): Fix comment.
1036
1037 2001-10-30  Zack Weinberg  <zack@codesourcery.com>
1038
1039         * configure.in: Correct previous change: don't assume that
1040         gas's version number _isn't_ the last thing on the line, or
1041         isn't the only number on the line, either.
1042         * configure: Regenerate.
1043
1044 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1045
1046         * cfgcleanup.c: Fix a comment typo.
1047
1048 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1049
1050         * alias.c: Fix comment formatting.
1051         * recog.c: Likewise.
1052         * config/cris/cris.c: Likewise.
1053         * config/cris/cris.h: Likewise.
1054         * config/i960/i960.c: Likewise.
1055         * config/i960/i960.h: Likewise.
1056
1057 2001-10-30  Kazu Hirata  <kazu@hxi.com>
1058
1059         * config/arm/arm.c: Fix a comment typo.
1060         * config/arm/arm.h: Likewise.
1061         * config/ia64/ia64.c: Likewise.
1062
1063 2001-10-30  Jakub Jelinek  <jakub@redhat.com>
1064
1065         * emit-rtl.c (set_unique_reg_note): Don't create REG_EQUAL or
1066         REG_EQUIV notes for ASM_OPERANDS.  Return the new note (if any).
1067         * rtl.h (set_unique_reg_note): Change return value.
1068         * gcse.c (try_replace_reg): Use set_unique_reg_note.
1069         * cse.c (cse_insn): Likewise.
1070         * expr.c (emit_move_insn): Likewise.
1071         * explow.c (force_reg): Likewise.
1072         * local-alloc (update_equiv_regs): Likewise.
1073         * loop.c (move_moveables, load_mems): Likewise.
1074         * reload (find_reloads): Likewise.
1075
1076 2001-10-30  Paolo Bonzini  <bonzini@gnu.org>
1077
1078         Localization fixes.
1079         * c-decl.c (parmlist_tags_warning, start_struct,
1080         check_for_loop_decls): Separate messages for struct, union and
1081         enum cases to allow for languages in which they have different
1082         genders.
1083         * c-format.c (scanf_flag_specs): Separate short and long name of
1084         the assignment suppression feature.
1085         (check_format_types): Localize "pointer" and "different types"
1086         strings.
1087         * c-lex.c (lex_number): Localize "an unsigned long int" and
1088         related strings.
1089         (lex_string) [MULTIBYTE_CHARS]: Use initial lowercase letter on
1090         warning message.
1091         * c-typeck.c (build_unary_up): Separate messages for increment and
1092         decrement cases to allow for languages in which they use different
1093         articles.  Localize the strings "increment" and "decrement" in one
1094         case.
1095
1096 Tue Oct 30 11:08:11 CET 2001  Jan Hubicka  <jh@suse.cz>
1097
1098         * lcm.c (optimize_mode_switching):  Do not rebuild liveness information
1099         when no changes has been made.
1100
1101         * gcse.c (reg_set_bitmap): Turn into reg_set.
1102         (modify_mem_list_set, canon_modify_mem_list_set)
1103         (clear_modify_mem_tables, free_modify_mem_tables): New.
1104         (gcse_main); Use free_modify_mem_tables.
1105         (free_gcse_mem): Likewise; free the bitmaps.
1106         (alloc_gcse_main): Initialize the bitmaps.
1107         (canon_list_insert): Set canon_modify_mem_list_set.
1108         (record_last_mem_set_info): Likewise; set modify_mem_list_set.
1109         (compute_hash_table): Use clear_modify_mem_tables.
1110         (reset_opr_set_tables): Likewise.
1111         (oprs_not_set_p): reg_set_bitmap is regset.
1112         (mark_set, mark_clobber): Likewise.
1113
1114         * df.h (DF_EQUIV_NOTES): New constant.
1115         (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes
1116         when asked for.
1117
1118         * sched-rgn.c (CHECK_DEAD_NOTES): New constant.
1119         (init_regions, schedule_insns): Conditionalize the checking
1120         code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info.
1121
1122 Tue Oct 30 11:02:31 CET 2001  Jan Hubicka  <jh@suse.cz>
1123
1124         * i386.md (movti_rex64 splitter): Fix condition.
1125
1126 2001-10-29  Zack Weinberg  <zack@codesourcery.com>
1127
1128         * configure.in: Do not assume that gas's version number is the
1129         last thing on the first line of as --version output.
1130         * configure: Regenerate.
1131
1132         * tradcpp.c: Include intl.h.  Rename WARNING, ERROR, FATAL to
1133         MT_WARNING, MT_ERROR, MT_FATAL.
1134         (main): Call gcc_init_libintl.
1135         (v_message): Call gettext on msgid and "warning: "
1136         * tradcif.y: Include intl.h.
1137         (yyerror): Make parameter definition consistent with
1138         prototype.  Call gettext on msgid argument.
1139
1140 2001-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1141
1142         * combine.c (num_sign_bit_copies): Avoid signed/unsigned
1143         warnings.
1144
1145         * sparc/sol2.h: Include <sys/mman.h> when L_trampoline is defined.
1146
1147 Mon Oct 29 19:22:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1148
1149         * reload1.c (eliminate_regs): Test for reg_renumber being allocated
1150         before referencing it.
1151
1152 2001-10-26  DJ Delorie  <dj@redhat.com>
1153
1154         * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to
1155         override -G, and force -G0.
1156
1157 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1158
1159         * ChangeLog.2, ChangeLog.3, ChangeLog.4, FSFChangeLog.10,
1160         FSFChangeLog.11, c-common.c, c-common.def, c-common.h, c-decl.c,
1161         c-dump.c, c-typeck.c, except.c, sdbout.c, simplify-rtx.c,
1162         timevar.h, tree.h, varasm.c: Fix spelling errors and typos.
1163
1164         * loop.h (struct induction): Rename ext_dependant to
1165         ext_dependent.
1166         * loop.c: Change all uses.
1167         (check_ext_dependant_givs): Rename to check_ext_dependent_givs.
1168         All callers changed.
1169         * timevar.c (DEFTIMEVAR): Fix spelling of identifier__ parameter.
1170
1171 2001-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1172
1173         * c-parse.in (expr_no_commas, primary), c-typeck.c
1174         (parser_build_binary_op): Use IS_EXPR_CODE_CLASS.
1175
1176 2001-10-29  David Edelsohn  <edelsohn@gnu.org>
1177
1178         Undo assemble_name change in earlier patch.
1179
1180 Mon Oct 29 21:11:40 2001  Nicola Pero  <n.pero@mi.flashnet.it>
1181
1182         * objc/objc-act.c (finish_message_expr): For the GNU runtime: when
1183         determining the type of the receiver, do not check that TREE_CODE
1184         of receiver is CALL_EXPR before calling receiver_is_class_object().
1185         (receiver_is_class_object): For the GNU runtime: recognize
1186         the case that the receiver is self in a class method context.
1187         Check that TREE_CODE of receiver is CALL_EXPR when checking that
1188         the receiver is a call to objc_get_class.
1189
1190 2001-10-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1191
1192         * pa.md (floatunssisf2): Set subreg 0 of operand 2 to zero.
1193
1194 Mon Oct 29 07:23:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1195
1196         * Makefile.in (OBJS): Put all files in alphabetical order.
1197
1198         * dwarf2out.c (add_const_value_attribute): Fix error in last
1199         change.
1200
1201 Mon Oct 29 12:43:06 CET 2001  Jan Hubicka  <jh@suse.cz>
1202
1203         * basic-block.h (purge_all_dead_edges): Add update_life_p argument.
1204         * cfgcleanup.c (merge_blocks): Update the life flag after merging;
1205         fix warning.
1206         * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness.
1207         (life_analysis): call purge_all_dead_edges after deleting noops.
1208         (delete_noop_move): Do not purge CFG.
1209         * toplev.c (rest_of_compilation): Update purge_all_dead_edges call.
1210
1211 2001-10-28  David Edelsohn  <edelsohn@gnu.org>
1212
1213         * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
1214         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete.
1215         (ASM_GLOBALIZE_LABEL): Use assemble_name.
1216         (ASM_OUTPUT_COMMON): Likewise.
1217         * config/rs6000/rs6000.c (print_operand): Use assemble_name.
1218         (rs6000_output_function_epilogue): Likewise.
1219         (output_mi_thunk): Fix typo.
1220         (rs6000_output_symbol_ref): Use assemble_name.
1221         (output_toc): Likewise.
1222         * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete.
1223         * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete;
1224         assemble_name calls STRIP_NAME_ENCODING.
1225         (ASM_OUTPUT_LABEL): Use assemble_name.
1226         (ASM_GLOBALIZE_LABEL): Likewise.
1227         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1228         (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op.  Use assemble_name.
1229         (ASM_OUTPUT_LOCAL): Likewise.
1230
1231 Sun Oct 28 15:45:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1232
1233         * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
1234         (expand_builtin_apply, expand_builtin_return): Likewise.
1235         (expand_builtin_va_arg, expand_builtin_va_copy): Likewise.
1236
1237 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1238
1239         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
1240         ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11,
1241         c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc,
1242         configure, configure.in, except.c, except.h, flow.c, function.c,
1243         gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def,
1244         predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c,
1245         sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c,
1246         unroll.c: Fix spelling errors.
1247
1248         * doc/extend.texi, doc/invoke.texi: Fix spelling.
1249
1250         * doc/gcc.texi: Document use of "dependent" and American spelling.
1251
1252 Sun Oct 28 17:05:36 CET 2001  Jan Hubicka  <jh@suse.cz>
1253
1254         * expr.c (emit_group_load): Support CONCATs by storing them to memory
1255         and reloading.
1256
1257 Sun Oct 28 09:59:54 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1258
1259         * expr.c (store_constructor_field): Only call adjust_address on MEM.
1260
1261 Sun Oct 28 16:48:09 CET 2001  Jan Hubicka  <jh@suse.cz>
1262
1263         * genrecog.c (write_switch):  Output if before switch for
1264         DT_elt_zero_wide_safe.
1265
1266 2001-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1267
1268         * Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h
1269         * i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma.
1270         (FUNCTION_PROFILER): Const-ify.
1271         * halfpic.c: Include "expr.h", "output.h" and "halfpic.h".
1272         (eliminate_constant_term, assemble_name, output_addr_const):
1273         Remove declarations.
1274         (ptr_half_pic_address_p, half_pic_hash): Prototype.
1275         (all_refs, half_pic_prefix, half_pic_hash, half_pic_declare,
1276         half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify.
1277         * halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype.
1278         (half_pic_declare, half_pic_external): Const-ify.
1279         * toplev.c: Include "halfpic.h".
1280
1281 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1282
1283         * config/alpha/alpha.md, config/arm/arm.c, config/arm/arm.h,
1284         config/d30v/d30v.h, config/fr30/fr30.c, config/i370/x-oe,
1285         config/i386/i386.c, config/i386/i386-interix.h,
1286         config/i386/i386.md, config/i386/i386.h, config/i386/sco5.h,
1287         config/i860/i860.h, config/i860/i860.md, config/m68k/aux-exit.c,
1288         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.md,
1289         config/ns32k/ns32k.h, config/pa/pa.c, config/rs6000/rs6000.c,
1290         config/sparc/sparc.c, config/m68hc11/m68hc11.c,
1291         config/cris/cris.c, config/cris/cris.h, config/s390/s390.c,
1292         config/s390/s390.h, config/stormy16/stormy16.h, doc/tm.texi: Fix
1293         spelling errors.
1294
1295         * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,
1296         ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS,
1297         c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c,
1298         collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h,
1299         haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c,
1300         regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c,
1301         system.h, toplev.c: Fix spelling errors.
1302
1303 Sat Oct 27 17:32:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1304
1305         * gcse.c (insert_insn_end_bb): Don't assume PAT is a SET.
1306
1307         * dwarf2out.c (reg_number): Abort if pseudo.
1308         (reg_loc_descriptor): Return 0 if pseudo.
1309         (is_based_loc): Return 0 if pseudo.
1310         (mem_loc_descriptor): Return 0 for pseudo and handle 0 return from
1311         recursive calls.
1312         (concat_loc_descriptor): Return 0 if either part's descriptor is 0.
1313         (loc_descriptor): Return 0 if can't find location and handle 0
1314         return from recursive calls.
1315         (loc_descriptor_from_tree): Likewise.
1316         Fix handling of indirect.
1317         Also return 0 for PLACEHOLDER_EXPR.
1318         Clean up COMPONENT_REF cases.
1319         (add_AT_location_descriptor): Simplify, but handle 0 return from
1320         loc_descriptor.
1321         (add_const_value_attribute): Avoid shift count warning.
1322         (add_bound_info): Remove test for PLACEHOLDER_EXPR here.
1323         Set comp_unit_die as context if not in function.
1324
1325         * config/mips/mips-protos.h: Break up long lines.
1326         Remove needless #ifdef/#endif blocks.
1327         Don't declare functions declared in file made by genpreds or recog.h.
1328         * config/mips/mips.c (mips_output_function_prologue): TSIZE
1329         is now HOST_WIDE_INT; delete unneeded casts.
1330         * config/mips/mips.h: Don't use #elif.
1331
1332         * expr.c (stor_constructor_field): Always call adjust_address.
1333         Copy TARGET before changing its alias set.
1334         (store_field): Likewise, for TO_RTX.
1335         (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find
1336         replacement.
1337         (safe_from_p, case ADDR_EXPR): Properly check for conflict.
1338         (find_placeholder): Return 0 if can't find object.
1339         (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder
1340         returns 0.
1341
1342 Sat Oct 27 16:31:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
1343
1344         * ifcvt.c (if_convert): Call clear_aux_for_blocks.
1345
1346 Sat Oct 27 12:12:09 CEST 2001  Jan Hubicka  <jh@suse.cz>
1347
1348         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
1349         merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
1350         (merge_blocks): Properly udpate life after making edge nonfallthru.
1351         * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.
1352
1353 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1354
1355         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
1356
1357 2001-10-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1358
1359         * c-typeck.c (convert_arguments): When comparing for enumeral
1360         type equality, use TYPE_MAIN_VARIANT.
1361         * gcc.dg/Wconversion.c: New tests.
1362
1363 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1364
1365         * s390/s390.c: Fix comment typos.
1366         * s390/s390.h: Likewise.
1367         * s390/s390.md: Likewise.
1368
1369 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1370
1371         * tree-inline.c (WALK_SUBTREE_TAIL): New macro.
1372         (walk_tree): Use it for tail calls where appropriate.
1373
1374 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1375
1376         * cse.c (check_for_label_ref): Don't require REG_LABEL notes for
1377         non-local label_refs.
1378
1379 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1380
1381         * config/h8300/h8300.md (4 anonymous patterns): New.
1382
1383 2001-10-26  Kazu Hirata  <kazu@hxi.com>
1384
1385         * config/h8300/h8300.c (get_shift_alg): Clean up.  Return the
1386         algorithm through the shift_info structure.
1387         (emit_a_shift): Update the use of get_shift_alg.
1388
1389 2001-10-27  Daniel Berlin  <dan@cgsoftware.com>
1390
1391         * sched-rgn.c: Remove bitset typedef.
1392         Change bitset to sbitmap in prototypes / variable types.
1393         Remove bbset_size.
1394         Remove edgeset_bits.
1395         Remove edgeset_size.
1396         s/BITSET_ADD/SET_BIT/g
1397         s/BITSET_INVERT/sbitmap_ones/g
1398         s/BITSET_INTER/sbitmap_a_and_b/g
1399         s/BITSET_UNION/sbitmap_a_or_b/g
1400         s/BITSET_DIFFER/sbitmap_difference/g
1401         s/bitset_member/TEST_BIT/g
1402         (BITSET_*): Removed.
1403         (bitset_member): Removed.
1404         (extract_bitlst): Rewrite, now that we have sbitmaps, we can use
1405         EXECUTE_IF_SET_IN_SBITMAP.
1406         (split_edges): Rewrite, use sbitmap functions instead of bitset
1407         operations.
1408         (schedule_region): Allocate/free sbitmaps, rather than bitsets.
1409
1410 2001-10-26  Andreas Schwab  <schwab@suse.de>
1411
1412         * reload1.c (emit_input_reload_insns): Fix parens in last
1413         (undocumented) change that was supposed to change only whitespace.
1414
1415 Fri Oct 26 07:18:08 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1416
1417         * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning.
1418
1419         * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for
1420         ASM_OPERANDS.
1421
1422 2001-10-26  Andreas Jaeger  <aj@suse.de>
1423
1424         * flow.c (clear_log_links): Remove unused variable.
1425         * cfgcleanup.c (cleanup_cfg): Likewise.
1426
1427 2001-10-26  Alexandre Oliva  <aoliva@redhat.com>
1428
1429         * tree-inline.c (remap_decl): Don't copy size and size_unit here.
1430         (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node.
1431
1432 2001-10-26  Richard Henderson  <rth@redhat.com>
1433
1434         * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG;
1435         rename PV_REG to R27_REG.
1436         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
1437         (REG_CLASS_FROM_LETTER): Update.
1438         (PREFERRED_RELOAD_CLASS): Don't widen a reg class.
1439         * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27.
1440         (udivsi3, modsi3, umodsi3): Likewise.
1441         (divdi3, udivdi3, moddi3, umoddi3): Likewise.
1442
1443 2001-10-26  Richard Henderson  <rth@redhat.com>
1444
1445         * cfg.c (clear_aux_for_blocks): Split out of ...
1446         (free_aux_for_blocks): here.
1447         (clear_aux_for_edges): Split from ...
1448         (free_aux_for_edges): here.
1449         * basic-block.h: Declare them.
1450         * lcm.c (compute_antinout_edge): Use them.
1451         (compute_laterin, compute_available, compute_nearerout): Likewise.
1452         (optimize_mode_switching): Likewise.
1453
1454 2001-10-26  Richard Henderson  <rth@redhat.com>
1455
1456         * Makefile.in (unstage*): Remove as, ld, collect-ld before
1457         moving everything back to the main build directory.
1458
1459 2001-10-26  Christopher Faylor  <cgf@redhat.com>
1460
1461         * config/i386/cygwin.h: Search target specfic include directory, if
1462         appropriate.
1463
1464 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1465
1466         * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside
1467         of macro guards. Fix #endif comment.
1468
1469         * output.h (default_exception_section, default_eh_frame_section):
1470         Move prototypes outside of macro guard.
1471
1472         * crtstuff.c: Fix #endif comment.
1473
1474 Thu Oct 25 12:21:58 2001  Jeffrey A Law  (law@cygnus.com)
1475
1476         * doc/md.texi (movMM): Clarify semantics of storing into a
1477         non-paradoxical SUBREG.
1478
1479 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
1480
1481         * langhooks.c (lang_hook_default_clear_binding_stack): New.
1482         (lang_hook_default_get_alias_set): Move next to other alias
1483         hooks.
1484         * langhooks.h: Prototype lang_hook_default_clear_binding_stack.
1485         (LANG_HOOKS_CLEAR_BINDING_STACK): New macro.
1486         (LANG_HOOKS_INITIALIZER): Add it.
1487         * toplev.h (struct lang_hooks): Add clear_binding_stack.
1488         * toplev.c (compile_file):  Call lang_hooks.clear_binding_stack
1489         instead of a loop calling poplevel.
1490
1491 2001-10-25  Nick Clifton  <nickc@cambridge.redhat.com>
1492
1493         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace
1494         occurrences of #elif with #if...#endif.
1495
1496 2001-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1497
1498         * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning.
1499
1500 Thu Oct 25 08:46:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1501
1502         * alias.c (can_address_p): No longer static.
1503         * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
1504         Return 0 if all parameters are default values.
1505         (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
1506         (adjust_address_1): Try harder to compute a size.
1507         * expr.c (expand_assignment, store_constructor): If can't address,
1508         set MEM_KEEP_ALIAS_SET_P.
1509         (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
1510         (store_field): Likewise.
1511         (store_constructor): Simplify call to store_constructor_field.
1512         * expr.h (can_address_p): New declaration.
1513         * gensupport.c (gen_rtx_CONST_INT): New function.
1514         * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
1515         (MEM_SIZE): Get size from mode, if not set and not BLKmode.
1516         (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
1517
1518         * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst.
1519
1520 2001-10-24  Christopher Faylor  <cgf@redhat.com>
1521
1522         * config/i386/cygwin.h: Use proper path for mingw crt files when
1523         -mno-cygwin.
1524
1525 Wed Oct 24 18:43:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1526
1527         * dwarf2out.c (file_info_cmp): Always return consistent results.
1528
1529 2001-10-24  Roger Sayle <roger@eyesopen.com>
1530
1531         * stmt.c (expand_end_case): Index jumptables from zero for
1532         suitably small values of minval.
1533
1534 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
1535
1536         * stor-layout.c (place_union_field): If any field was aligned with
1537         attribute aligned, set record type's TYPE_USER_ALIGN.
1538         (place_field): Likewise.
1539         (finalize_record_size): Don't clear TYPE_USER_ALIGN.
1540         (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN.
1541
1542 2001-10-24  Zack Weinberg  <zack@codesourcery.com>
1543
1544         * c-common.h (struct c_common_identifier): Remove rid_code field.
1545         (C_RID_CODE): Use ->node.rid_code instead of ->rid_code.
1546
1547         * c-typeck.c (constructor_designated): New local flag.
1548         (struct constructor_stack): Add "designated" field to match.
1549         (start_init): Clear it.
1550         (really_start_incremental_init, push_init_level): Push and
1551         clear it.
1552         (pop_init_level): Pop it.
1553         (set_designator): Set it.
1554
1555         (pop_init_level): Suppress "missing initializer" warnings if
1556         constructor_designated is true.
1557         (process_init_element): Suppress warning about union
1558         initialization under traditional C, if constructor_designated
1559         is true.
1560
1561 Wed Oct 24 15:35:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1562
1563         * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last
1564         change.
1565
1566 Wed Oct 24 13:26:12 2001  Jeffrey A Law  (law@cygnus.com)
1567
1568         * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition.
1569
1570 2001-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
1571
1572         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if
1573         the node was already a set to a constant.
1574
1575 Wed Oct 24 12:41:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1576
1577         * emit-rtl.c (set_mem_attributes): Fix typo in last change.
1578         * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL.
1579
1580 2001-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1581
1582         * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings.
1583         (ASM_OUTPUT_ASCII): Const-ify.  Fix signed/unsigned warning.
1584         (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings.
1585         * s390.c (s390_final_chunkify): Don't use string concatenation.
1586         (s390_function_prologue, s390_function_epilogue): Const-ify.
1587         * s390.h (FUNCTION_PROFILER): Remove unused variable.
1588
1589 2001-10-24  Jakub Jelinek  <jakub@redhat.com>
1590
1591         * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function
1592         prototypes.
1593
1594 2001-10-23  Stan Shebs  <shebs@apple.com>
1595
1596         * config/rs6000/x-darwin: Use -no-cpp-precomp instead of
1597         -traditional-cpp in first-stage compilation.
1598
1599 Tue Oct 23 21:45:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1600
1601         * gensupport.c (target_flags): Add.
1602
1603 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
1604
1605         * builtins.c (expand_builtin_setjmp): Only call convert_memory_address
1606         if needed.
1607         (expand_builtin_longjmp, expand_builtin_alloca): Likewise.
1608         * except.c (expand_builtin_frob_return_addr): Likewise.
1609         (expand_builtin_eh_return): Likewise.
1610         * stmt.c (expand_computed_goto): Likewise.
1611         * explow.c (memory_address): Likewise.
1612         (allocate_dynamic_stack_space): Clean up predicate testing.
1613         (probe_stack_range): Convert SIZE to Pmode.
1614         * calls.c (rtx_for_function_call): Only call convert_memory_address
1615         if needed.
1616         Pass function call operand as ptr_mode, not Pmode.
1617         * expr.c (expand_assignment): Clean up calls to convert_memory
1618         address by only doing so when needed and making offsets Pmode.
1619         (store_constructor, expand_expr, expand_expr_unaligned): Likewise.
1620         * function.c (assign_parms): Ensure address in MEM for RESULT_DECL
1621         is in Pmode, not ptr_mode.
1622
1623 2001-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1624
1625         * darwin-protos.h (constructor_section, destructor_section,
1626         mod_init_section, mod_term_section): Prototype.
1627         * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs):
1628         Const-ify.
1629         * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME):
1630         Likewise.
1631         (SECTION_FUNCTION): Prototype `FUNCTION'.  Delete
1632         objc_section_init declaration.
1633         (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init.
1634         (objc_section_init, try_section_alias): Make static.
1635         (alias_section): Make static and hide unused function.
1636         (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning.
1637
1638 Tue Oct 23 13:05:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1639
1640         * alias.c (can_address_p): Compnonents are not addressable if
1641         the containing type has alias set 0.
1642         (get_alias_set): Rework to use STRIP_NOPS.
1643         Only call front-end routine on object, type, or object with
1644         NOPs stripped, not inner values.
1645         Use language hook to call front-end routine.
1646         * builtins.c (get_memory_rtx): Always call set_mem_attributes.
1647         (expand_builtin_apply): Call set_mem_align on MEMs we make.
1648         Don't pass alignment to emit_block_move.
1649         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
1650         (expand_builtin_memset): Likewise, but for clear_storage.
1651         * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set
1652         and remove C++ specific parts.
1653         * c-common.h (c_common_get_alias_set): Add declaration.
1654         * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro.
1655         * calls.c (emit_call_1): Fix typo in sibcall_pop case.
1656         (save_fixed_argument_area): Call set_mem_align.
1657         Remove alignment in call to emit_block_move.
1658         (emit_library_call_value_1, store_one_arg): Likewise.
1659         (target_for_arg): Remove; disabled long ago.
1660         * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs
1661         once and similar cleanups.
1662         (offset_address): Use proper introductory comment.
1663         * expr.c (emit_block_move): Use alignment from that of MEM args, not
1664         from explicit operand; all callers changed.
1665         (clear_storage): Likewise.
1666         (expand_assignment): Don't call set_mem_alias_set on to_rtx.
1667         (store_field): Remove kludge on alias set used for to_rtx.
1668         (highest_pow2_factor, case *_DIV_EXPR): Never return 0.
1669         (expand_expr_unaligned): Call set_mem_attributes instead of
1670         set_mem_alias_set.
1671         * expr.h (emit_block_move, clear_storage): Remove ALIGN argument.
1672         * function.c (assign_stack_temp_for_type): Set MEM alignment.
1673         (expand_function_end): Track MEM attributes of trampolines.
1674         * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM.
1675         * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory
1676         attributes from original.
1677         * langhooks.c (lang_hook_default_get_alias_set): New function.
1678         (hook_get_alias_set_0): New function.
1679         * langhooks.h (hook_get_alias_set_0): New declaration.
1680         (lang_hook_default_get_alias_set): Likewise.
1681         (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer.
1682         * reload1.c (alter_reg): Use adjust_address_nv.
1683         * rtl.c (get_mode_alignment): Moved to here.
1684         * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and
1685         change default if unknown from 1 to BITS_PER_UNIT.
1686         * stor-layout.c (get_mode_alignment): Remove from here.
1687         * toplev.h (struct lang_hoks): Add get_alias_set field.
1688         * tree.h (lang_get_alias_set): Delete declaration.
1689         * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment.
1690         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
1691         (ix86_va_arg): Likewise.
1692         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
1693         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
1694         * config/sparc/sparc.c (sparc_va_arg): Likewise.
1695         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
1696         (expand_block_move_mem): Remove dead code.
1697
1698 2001-10-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1699
1700         * c-common.c (warn_div_by_zero): New.
1701         * c-common.h (warn_div_by_zero): New.
1702         * c-decl.c (c_decode_option): Take it on the command line.
1703         * c-typeck.c (build_binary_op): Warn about division by zero.
1704         * doc/invoke.texi: Document the new command line option, fix
1705         documentation of -Wmultichar.
1706         * testsuite/gcc.dg/divbyzero.c: New tests.
1707         * testsuite/gcc.dg/noncompile/20010524-1.c: Update.
1708
1709 Tue Oct 23 15:30:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
1710
1711         * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op.
1712
1713         * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE
1714         to avoid update_life_info call.
1715         * basic-block.h (CLEANUP_UPATE_LIFE): Define.
1716         * cfgcleanup.c (bb_flags): New enum.
1717         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros.
1718         (notice_new_block, update_forwarder_flag): New functions.
1719         (try_simplify_condjump): Use FORWARDER_BLOCK_P.
1720         (try_forward_edges): Likewise; update flags.
1721         (merge_blocks): Likewise.
1722         (outgoing_edges_match): Likewise.
1723         (try_crossjump_to_edge): Likewise.
1724         (try_optimize_cfg): Likewise; initialize and clear the flags;
1725         recompute life info if needed.
1726         (cleanup_cfg): No need to clear aux pointers.
1727
1728 2001-10-23  Alexandre Oliva  <aoliva@redhat.com>
1729
1730         * config/i386/i386.c (override_options): Default to minimum
1731         stack alignment when optimizing for code size.
1732         * doc/invoke.texi (-mpreferred-stack-boundary): Document the
1733         change.
1734
1735         * config/i386/i386.c (override_options): Set upper limit of
1736         -mpreferred-stack-boundary to 12.
1737
1738 2001-10-22  Zack Weinberg  <zack@codesourcery.com>
1739
1740         * recog.c (peephole2_optimize): Add default case to switch.
1741
1742 2001-10-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1743
1744         * doc/gcc.texi (Sending Patches): Remove.
1745
1746 2001-10-22  Hans-Peter Nilsson  <hp@bitrange.com>
1747
1748         * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin
1749         fields when comparing.
1750
1751 2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1752
1753         * arm.h (HOST_INT, HOST_UINT): Delete.  Remove all uses.
1754         * arm.c (HOST_INT, HOST_UINT): Likewise.
1755
1756 2001-10-22  Stan Shebs  <shebs@apple.com>
1757
1758         * config/darwin-protos.h (darwin_exception_section): Declare.
1759         (darwin_eh_frame_section): Declare.
1760
1761 Mon Oct 22 18:21:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
1762
1763         * i386.md (movti_rex64): Fix mode.
1764
1765 2001-10-22  Stan Shebs  <shebs@apple.com>
1766
1767         * target.h (struct gcc_target): Add asm_out.exception_section,
1768         asm_out.eh_frame_section.
1769         * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro.
1770         (TARGET_ASM_EH_FRAME_SECTION): New.
1771         (TARGET_INITIALIZER): Update.
1772         * output.h (default_exception_section): Declare.
1773         (default_eh_frame_section): Declare.
1774         * dwarf2out.c: Include target.h.
1775         (output_call_frame_info): Call target hook for eh frames.
1776         (default_eh_frame_section): New function.
1777         * except.c: Include target.h.
1778         (output_function_exception_table): Call target hook for exception
1779         section.
1780         * varasm.c (default_exception_section): Rename from
1781         exception_section, remove EXCEPTION_SECTION macro.
1782
1783         * config/darwin.h (darwin_eh_frame_section): New function.
1784         (EXCEPTION_SECTION): Remove.
1785         (TARGET_ASM_EXCEPTION_SECTION): Define.
1786         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove.
1787         (nextstep_exception_section): New function.
1788         (nextstep_eh_frame_section): New function.
1789         (TARGET_ASM_EXCEPTION_SECTION): Define.
1790         (TARGET_ASM_EH_FRAME_SECTION): Define.
1791
1792         * config/pa/som.h (EXCEPTION_SECTION): Remove.
1793         (TARGET_ASM_EXCEPTION_SECTION): Define.
1794         * config/rs6000/sysv4.h, config/rs6000/xcoff.h
1795         (EXCEPTION_SECTION): Remove.
1796         (TARGET_ASM_EXCEPTION_SECTION): Define.
1797         * config/stormy16/stormy16.h: Remove comments referencing
1798         EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP.
1799
1800         * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and
1801         TARGET_ASM_EH_FRAME_SECTION.
1802
1803 2001-10-22  Nick Clifton  <nickc@cambridge.redhat.com>
1804
1805         * config/mips/mips.md (mul_acc_si): Fix precedence of conditional
1806         terms.
1807
1808         * c-format.c: Fix spelling typo in comment.
1809
1810         * sched-int.h: Fix typo in GCC preamble.
1811
1812 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1813
1814         PR debug/4252
1815         * doc/invoke.texi: Remove references to -fdump-translation-unit.
1816
1817 2001-10-22  Richard Henderson  <rth@redhat.com>
1818
1819         * config/i386/i386.c (ix86_expand_clear): New.
1820         * config/i386/i386-protos.h: Declare it.
1821         * config/i386/i386.md (setcc peep2s): Use it.
1822         (movsi_xor): Unexport.
1823
1824 2001-10-22  Richard Henderson  <rth@redhat.com>
1825
1826         * flow.c (clear_log_links): Use free_INSN_LIST_list, not
1827         free_EXPR_LIST_list for LOG_LINKS.
1828
1829 2001-10-21  Robert Lipe  <robertlipe@usa.net>
1830
1831         * config/i386/i386.c (sco_asm_named_section): Delete.
1832         (sco_asm_out_constructor): Delete.
1833         * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h.
1834         (ASM_OUTPUT_DOUBLE_INT): Likewise.
1835         (TARGET_ASM_CONSTRUCTOR): Delete.  Use default.
1836         (TARGET_ASM_NAMED_SECTION): Use default for ELF.
1837         (EXCEPTION_SECTION): Delete EH scn renaming hack.
1838
1839 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1840
1841         * c-format.c (maybe_read_dollar_number): Use safe-ctype macros
1842         and/or fold extra calls into fewer ones.
1843         * collect2.c (dump_file): Likewise.
1844         * cppexp.c (parse_number): Likewise.
1845         * cpplex.c (_cpp_lex_direct): Likewise.
1846         * final.c (output_asm_insn, asm_fprintf): Likewise.
1847         * fix-header.c (inf_scan_ident, main): Likewise.
1848         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
1849         Likewise.
1850         * fold-const.c (real_hex_to_f): Likewise.
1851         * gen-protos.c (parse_fn_proto): Likewise.
1852         * genattrtab.c (check_attr_test, check_attr_value): Likewise.
1853         * genrecog.c (change_state, write_action): Likewise.
1854         * gensupport.c (shift_output_template): Likewise.
1855         * local-alloc.c (requires_inout): Likewise.
1856         * mips-tfile.c (IS_ASM_IDENT): Likewise.
1857         * protoize.c (is_id_char, main): Likewise.
1858         * real.c (asctoeg): Likewise.
1859         * recog.c (asm_operand_ok): Likewise.
1860         * reload.c (find_reloads): Likewise.
1861         * scan.c (scan_identget_token): Likewise.
1862         * sched-vis.c (print_value): Likewise.
1863         * stringpool.c (ggc_alloc_string): Likewise.
1864         * toplev.c (read_integral_parameter, decode_g_option): Likewise.
1865         * tradcif.y (parse_number, yylex, parse_escape): Likewise.
1866         * tradcpp.c (rescan): Likewise.
1867         * tree.c (clean_symbol_name): Likewise.
1868         * varasm.c (decode_reg_name): Likewise.
1869
1870         * alpha.h (ASM_OUTPUT_ASCII): Likewise.
1871         * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise.
1872         * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise.
1873         * m88k.c (output_ascii): Likewise.
1874         * m88k.h (OVERRIDE_OPTIONS): Likewise.
1875         * mcore.h (REG_CLASS_FROM_LETTER): Likewise.
1876         * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise.
1877         * sh.h (REG_CLASS_FROM_LETTER): Likewise.
1878
1879 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1880
1881         * langhooks.c (lang_hook_default_do_nothing,
1882         lang_hook_default_decode_option): New defaults.
1883         * langhooks.h: Make hooks unconditional and non-NULL.
1884         * toplev.c (compile_file, toplev_main): Update.
1885         * toplev.h: Update comments.
1886         * objc/objc-act.c (lang_hooks): Update to new paradigm.
1887
1888 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1889
1890         * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE.
1891
1892         * system.h (IN_RANGE): New macro.
1893
1894 2001-10-21  Zack Weinberg  <zack@codesourcery.com>
1895
1896         * aclocal.m4 (AM_WITH_NLS): Also create and substitute
1897         INTLDEPS variable, which does not include $LIBICONV.
1898         * Makefile.in: Use INTLDEPS in LIBDEPS.
1899         * configure: Regenerate.
1900
1901 2001-10-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1902
1903         * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char.
1904         * cpplex.c (lex_percent, lex_dot): Remove.
1905         (get_effective_char, skip_block_comment, skip_line_comment,
1906         parse_identifier_slow, parse_number, parse_string, save_comment,
1907         _cpp_lex_direct): Update to do lookback freely.
1908         (IF_NEXT_IS, BACKUP): New macros.
1909         * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char.
1910         * cppmacro.c (paste_tokens): Update.
1911
1912 2001-10-20  Nick Clifton  <nickc@cambridge.redhat.com>
1913
1914         * doc/invoke.texi (i386 and x86-64 Options): Fix typo.
1915
1916 2001-10-20  Hans-Peter Nilsson  <hp@axis.com>
1917
1918         * reload1.c (reload): Check CONSTANT_P before calling
1919         LEGITIMATE_PIC_OPERAND_P.
1920         * config/cris/cris.c (cris_legitimate_pic_operand): Revert
1921         workaround of 2001-10-13.
1922
1923 Sat Oct 20 15:16:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
1924
1925         * i386.c (split_di): Handle splitting of DFmode.
1926
1927 Sat Oct 20 07:27:14 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1928
1929         * emit-rtl.c (set_mem_attributes): Alignment is in bits.
1930         (adjust_address_1, offset_address): Likewise.
1931
1932         * final.c (output_asm_operand_names): New fcn, from output_asm_insn.
1933         (output_asm_insn): Call it for each line output.
1934         Don't record an operand more than once.
1935
1936         * toplev.h (struct lang_hooks): HONOR_READONLY now bool.
1937         * main.c: Include config.h and system.h, but not ansidecl.h.
1938         * Makefile.in (main.o): Update accordingly.
1939
1940 Sat Oct 20 12:05:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
1941
1942         * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64.
1943
1944 Sat Oct 20 12:01:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
1945
1946         * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter.
1947         * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies):
1948         Break out from ...
1949         (find_sub_basic_blocks): ... here;
1950         (find_many_sub_basic_blocks): New.
1951         * recog.c (split_all_insns): Update find_sub_basic_blocks call.
1952
1953         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4.
1954
1955         * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.:
1956
1957         * i386.c (split_di, split_ti): Revamp to use simplify_subreg.
1958
1959         * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new.
1960         * flow.c (update_life_info): Measure time.
1961         * c-decl.c: Include timevar.h
1962         (c_expand_body): Measure time.
1963         * toplev.c (rest_of_compilation): Measure time of mode switching
1964         separately.
1965         * Makefile.in (c-decl.o, cfgcleanup.o): Add dependency.
1966
1967         * toplev.c (flag_asynchronous_unwind_tables): New global variable.
1968         (lang_independent_options): Add asynchronous-unwind-tables
1969         (toplev_main): flag_asynchronous_unwind_tables implies
1970         flag_unwind_tables.
1971         * flags.h (flag_asynchronous_unwind_tables): Declare.
1972         * dwarf2out.c (dwarf2out_stack_adjust): Take into account
1973         flag_asynchronous_unwind_tables.
1974         (output_call_frame_info): Likewise.
1975         * invoke.texi (-fasynchronous-unwind-tables): Document.
1976         * i386.c (optimization_options): Enable
1977         flag_asynchronous_unwind_tables.
1978
1979         * i386.c (ix86_expand_setcc):  Always expect target to be QImode.
1980         * i386.md (s* expanders): Destination is QImode.
1981
1982         * toplev.c (rest_of_compilation): Do not call clear_log_links.
1983         * rtl.h (clear_log_links): Kill.
1984         * flow.c (clear_log_links): Make static; accept blocks parameter;
1985         do no clear life info.
1986         (update_life_info): Call clear_log_links.
1987
1988         * cfganal.c (forwarder_block_p): Avoid active_insn_p calls.
1989
1990 2001-10-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1991
1992         * cpplex.c (handle_newline, skip_escaped_newlines,
1993         get_effective_char, skip_block_comment, skip_line_comment,
1994         parse_identifier_slow, parse_number, parse_string,
1995         _cpp_lex_direct): Update to do more stepping back.
1996         (trigraph_ok): Similarly.  Rename trigraph_p.
1997         (SAVE_STATE, RESTORE_STATE): Remove.
1998         (BUFF_SIZE_UPPER_BOUND): Tweak.  Add sanity check.
1999
2000         * cpplib.c (destringize): Rename destringize_and_run, and
2001         call run_directive directly.
2002         (_cpp_do__Pragma): Simplify.
2003
2004 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2005
2006         * pe.c (arm_pe_unique_section): Const-ify.
2007         * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining.
2008         (switch_to_section): Add static prototype.
2009
2010         * output.h (drectve_section): Prototype.
2011
2012 2001-10-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2013
2014         * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*,
2015         fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*,
2016         parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*,
2017         i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware,
2018         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
2019         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*,
2020         i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1,
2021         i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*,
2022         i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*,
2023         i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*,
2024         i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*,
2025         i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*,
2026         ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf,
2027         mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*,
2028         powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*,
2029         powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*,
2030         powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*,
2031         powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*,
2032         powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*,
2033         powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*,
2034         rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*,
2035         sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf,
2036         v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf,
2037         cris-*-none, cris-*-linux*: Update ${tmfile} list.
2038         (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*,
2039         i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*,
2040         mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*,
2041         powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*,
2042         v850-*-*): Delete superflous ${cpu_type} setting.
2043         * config/linux.h: Delete svr4.h include.
2044         (SET_ASM_OP): Delete.
2045         * config/netware.h (INT_ASM_OP): Undef before define.
2046         * config/ptx4.h: Delete elfos.h include.
2047         (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping.
2048         * config/svr4.h: Delete elfos.h include. Update commentary.
2049         * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h,
2050         config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h,
2051         config/mn10200/mn10300.h, config/stormy16/stormy16.h,
2052         config/v850/v850.h: Delete svr4.h include.
2053         * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h,
2054         config/m68k/m68kv4.h, config/m88k/sysv4.h,
2055         config/sparc/sysv4.h: Update includes.
2056         * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h,
2057         config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h,
2058         config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h,
2059         config/m88k/dguxbcs.h: Delete includes.
2060         * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include.
2061         (PREFERRED_DEBUGGING_TYPE): Undef before defining it.
2062         * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining
2063         it.
2064         * config/m88k/dgux.h: Delete include.
2065         (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):  Undef before
2066         defining it.
2067         * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL,
2068         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it.
2069         * config/sh/elf.h: Update include.
2070         (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2071         DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes.
2072
2073 2001-10-19  Catherine Moore  <clm@redhat.com>
2074
2075         * config/stormy16/stormy-abi:  Updates to varargs descriptions.
2076         * config/stormy16/stormy16.c (stormy16_build_va_list):  Reverse
2077         base and count fields.
2078         (stormy16_expand_builtin_va_start):  last_reg_count changed to
2079         size_of_reg_args.  Use count + size in first comparison.
2080
2081 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2082
2083         * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro.
2084         * toplev.h (struct lang_hooks): New field HONOR_READONLY.
2085         * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from
2086         TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly.
2087         Set alignment from type if INDIRECT_REF.
2088         (adjust_address_1, offset_address): Simplify alignment compuitation.
2089         * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P
2090         here; done by set_mem_attributes.
2091
2092 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2093
2094         * Makefile.in (rtlanal.o): Depend on $(TM_P_H).
2095         * arm-protos.h (rdata_section, zero_init_section, common_section):
2096         Prototype.
2097         * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify.
2098         * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid
2099         traditional mode stringification.
2100         * function.c (thread_prologue_and_epilogue_insns): Wrap variable
2101         in macros controling its use.
2102         * rtlanal.c: Include tm_p.h.
2103         * varasm.c (asm_output_aligned_bss): Mark parameter with
2104         ATTRIBUTE_UNUSED.
2105         (assemble_constant_align, assemble_start_function, assemble_align,
2106         assemble_variable, assemble_trampoline_template,
2107         output_constant_def_contents): Wrap potentially empty if-stmt body
2108         in brackets.
2109
2110 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2111
2112         * a29k-protos.h (literal_section): Prototype.
2113         * a29k.h (ASM_FILE_START): Don't discard pointer qualifier.
2114         * a29k.md: Ensure function pointers are prototyped.
2115         * genattrtab.c (write_eligible_delay): Mark parameter with
2116         ATTRIBUTE_UNUSED.
2117
2118 2001-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2119
2120         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
2121         * 1750a.c (print_operand): Fix format specifier warning.
2122         * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier.
2123         * 1750a.md: Likewise.
2124         * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC.
2125         * genemit.c (output_add_clobbers): Mark parameter with
2126         ATTRIBUTE_UNUSED.
2127         * genrecog.c (write_subroutine): Likewise.
2128         * integrate.c (expand_inline_function): Delete unused variable.
2129         * varasm.c (remove_from_pending_weak_list): Wrap with
2130         ASM_WEAKEN_LABEL.
2131
2132 2001-10-19  Jakub Jelinek  <jakub@redhat.com>
2133
2134         * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg
2135         field is different to previous argument's neg field.
2136
2137         * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT.
2138
2139 Fri Oct 19 15:24:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2140
2141         * final.c (get_decl_from_op): New function.
2142         (output_asm_insn): Call it; write "*" when item with decl is address.
2143
2144 2001-10-19  Janis Johnson  <janis187@us.ibm.com>
2145
2146         * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation
2147         about 64-bit support from the 3.0_branch version.
2148
2149 2001-10-19  Zack Weinberg  <zack@codesourcery.com>
2150
2151         * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and
2152         USE_INCLUDED_LIBINTL when appropriate.
2153         * configure, config.in: Regenerate.
2154         * Makefile.in (datadir): Set to @datadir@.
2155         (intl.o): Also depend on $(CONFIG_H) and system.h.
2156
2157         * intl.c: Factor out common gettext initialization sequence.
2158         (gcc_init_libintl):  New function.
2159         * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL;
2160         otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn
2161         off NLS.  Add multiple include guard.  No need to #ifdef-guard
2162         an #undef.  Prototype gcc_init_libintl here.
2163
2164         * collect2.c (main), cppmain.c (general_init), gcc.c (main),
2165         gcov.c (main), protoize.c (main), toplev.c (toplev_main):
2166         Use gcc_init_libintl.
2167
2168 2001-10-19  Catherine Moore  <clm@redhat.com>
2169
2170         * config/stormy16/stormy16.h (ASM_COMMENT_START): Define.
2171
2172         * config/stormy16/stormy16.c (stormy16_split_move):  Make
2173         sure that REG_INC notes are present for auto_inc operands.
2174
2175 2001-10-19  Andreas Jaeger  <aj@suse.de>
2176
2177         * configure: Regenerated.
2178         * configure.in: Add x86_64 to switch statements.
2179
2180 2001-10-18  Richard Henderson  <rth@redhat.com>
2181
2182         * config/alpha/alpha.md (sibcall_osf_1): Load destination
2183         address into $27 explicitly.
2184         (sibcall_value_osf_1): Likewise.
2185
2186 Thu Oct 18 16:07:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2187
2188         * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array.
2189         (offset_address): New function.
2190         (free_emit_status): Free regno_decl.
2191         (init_emit): Pass proper number of elements to xcalloc.
2192         Allocate regno_decl.
2193         (mark_emit_status): Mark regno_decl values.
2194         * expr.c (highest_pow2_factor): New function.
2195         (expand_assigment): Use it and offset_address.
2196         Properly handle ptr_mode vs. Pmode in offset calculation.
2197         (store_constructor, expand_expr_unaligned): Likewise.
2198         (expand_expr, case COMPONENT_EXPR): Likewise.
2199         * expr.h (offset_address): New decl.
2200         * function.h (struct emit_status): Add regno_decl.
2201         (REGNO_DECL): New macro.
2202         * final.c (output_asm_name): Move in file and don't conditionalize
2203         on flag_print_asm_name.
2204         (output_asm_insn): Only call output_asm_name if flag_print_asm_name.
2205         Output names of operands, if known.
2206         * function.c (assign_parms): Set REGNO_DECL.
2207         * integrate.c (integrate_decl_tree): Likewise.
2208         * stmt.c (expand_decl): Likewise.
2209         * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies.
2210
2211 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
2212
2213         * attribs.c (handle_noinline_attribute): New function.
2214         (handle_used_attribute): Likewise.
2215         (c_common_attribute_table): Added noinline and used.
2216         * doc/extend.texi (Function Attributes): Document them.
2217         * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
2218         Warn when merging inline with attribute noinline.
2219         (start_decl, start_function): Warn if inline and attribute
2220         noinline appear in the same declaration.
2221
2222 2001-10-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2223
2224         * config.gcc: Update c4x and i370 for C front end-specific
2225         dependencies.
2226         * config/c4x/c4x-c.c: New.
2227         * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove.
2228         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
2229         New declarations.
2230         * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h.
2231         (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree):
2232         Make extern.
2233         (c4x_init_pragma): Remove.
2234         (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION,
2235         c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT,
2236         c4x_pr_ignored): Move to c4x-c.c.
2237         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
2238         * config/c4x/t-c4x: Update.
2239         * config/i370/i370-c.c: New.
2240         * config/i370/i370.c: Don't include c-lex.h or c-pragma.h.
2241         (i370_pr_map): Move to i370-c.c.
2242         * config/i370/t-i370: New.
2243
2244         * doc/tm.texi: Update.
2245
2246 2001-10-17  Stan Shebs  <shebs@apple.com>
2247
2248         * config/rs6000/rs6000.c: Make assorted mechanical formatting and
2249         typo fixes throughout.
2250         (machopic_output_stub): Remove some dead code.
2251
2252 2001-10-17  Richard Earnshaw <rearnsha@arm.com>
2253
2254         * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory
2255         leak.
2256
2257 Wed Oct 17 05:26:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2258
2259         * Makefile.in (print-rtl.o): Depend on TREE_H.
2260         * alias.c (get_alias_set): Make two passes over objects to first
2261         see if inner object is access via restricted pointer.
2262         Defer allocating alias set for restricted pointer until here.
2263         Call find_placeholder with second arg nonzero.
2264         Minor cleanups.
2265         * c-common.c (c_apply_type_quals_to_decl): Defer getting alias
2266         set for restricted pointer types.
2267         * emit-rtl.c (set_mem_attributes): Set more attributes.
2268         (set_mem_align, change_address, adjust_address_1): New functions.
2269         (change_address_1): Now static.
2270         (adjust_address, adjust_address_nv): Deleted.
2271         (replace_equiv_address): Call change_address_1.
2272         * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
2273         (find_placeholder): Get starting point from PLIST arg.
2274         (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
2275         * expr.h (set_mem_align, change_address, adjust_address_1): New decls.
2276         (adjust_address, adjust_address_nv): New macros.
2277         * print-rtl.c (tree.h): New include.
2278         (print_rtx, case MEM): Print all memory attributes.
2279
2280 2001-10-17  Richard Henderson  <rth@redhat.com>
2281
2282         * config/alpha/alpha.c (direct_call_operand): Don't fall off end.
2283
2284 2001-10-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2285
2286         * c-tree.texi: Eliminate duplicated word.
2287         * cpp.texi: Likewise.
2288         * install.texi: Likewise.
2289         * invoke.texi: Likewise.
2290         * tm.texi: Likewise.
2291
2292 2001-10-17  Michael Collison  <collison@isisinc.net>
2293
2294         * dsp16xx.c: Fix comment formatting to match GNU standards.
2295         (dsp16xx_output_function_prologue): Change type of 'size'
2296         parameter from 'int' to HOST_WIDE_INT.
2297         (dsp16xx_output_function_epilogue): Change type of 'size'
2298         parameter from 'int' to HOST_WIDE_INT.
2299
2300 2001-10-16  Richard Henderson  <rth@redhat.com>
2301
2302         * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
2303         * configure, config.in: Rebuild.
2304
2305         * config/i386/i386.c (ix86_output_addr_vec_elt): New.
2306         (ix86_output_addr_diff_elt): New.
2307         * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
2308         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2309         (JUMP_TABLES_IN_TEXT_SECTION): New.
2310         * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
2311         * config/i386/i386-protos.h: Update.
2312
2313         * config/i386/386bsd.h, config/i386/beos-elf.h,
2314         config/i386/freebsd-aout.h, config/i386/freebsd.h,
2315         config/i386/i386-interix.h, config/i386/i386elf.h,
2316         config/i386/linux.h, config/i386/netbsd-elf.h,
2317         config/i386/netbsd.h, config/i386/openbsd.h,
2318         config/i386/ptx4-i.h, config/i386/rtemself.h,
2319         config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
2320         (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
2321
2322 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
2323
2324         * stmt.c (expand_asm_operands): Update commentary.
2325
2326 2001-10-16  Stan Shebs  <shebs@apple.com>
2327
2328         * config/darwin.h (GCC_NAME): Remove, no longer used.
2329         (NO_MATH_LIBRARY): Ditto.
2330         (MATH_LIBRARY): Define to emptiness.
2331         (DWARF2_DEBUGGING_INFO): Define.
2332         (PREFERRED_DEBUGGING_TYPE): Define.
2333         (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section.
2334         (EXCEPTION_SECTION): Define.
2335         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2336         * config/darwin.c (darwin_encode_section_info): Handle case of
2337         DECL_INITIAL being error_mark_node.
2338
2339 2001-10-16  Richard Henderson  <rth@redhat.com>
2340
2341         * alpha.c (current_file_function_operand): Don't fail for profiling.
2342         (direct_call_operand): New.
2343         * alpha-protos.h: Declare it.
2344         * alpha.h (EXTRA_CONSTRAINT): Use it.
2345         (PREDICATE_CODES): Add it.
2346         (ASM_OUTPUT_MI_THUNK): Remove.
2347         * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove.
2348         * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative.
2349
2350 2001-10-16  Krister Walfridsson  <cato@df.lth.se>
2351
2352         * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define.
2353         (JUMP_TABLES_IN_TEXT_SECTION): Define.
2354
2355 Wed Oct 17 00:21:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
2356
2357         * cfg.c (free_edge): Break out from ....
2358         (remove_edge): ... here.
2359         (clear_edges): Use free_edge.
2360
2361         * att.h (ASM_QUAD): Add comment.
2362         * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define.
2363
2364 Wed Oct 17 00:01:02 CEST 2001  Jan Hubicka  <jh@suse.cz>
2365
2366         * i386.c (split_ti): New function.
2367         (ix86_split_to_parts): Support TImodes.
2368         * i386.h (VALID_INT_MODE_P): Add TImode.
2369         * i386.md (movdi splitter): Fix.
2370         (movti): Support 64bit integer registers.
2371         (movti_rex64): New function and splitter.
2372
2373         * i386.c (*_cost): Add movsx/movzx cost.
2374         * i386.h (struct processor_costs): Add movsx/movzx fields.
2375         (RTX_COSTS): Handle zero/sign extend + avoid believing that
2376         64bit operations require split on 64bit machine.
2377         (CONST_COST): Make large 64bit constants expensive on 64bit compilation.
2378
2379         * i386.c (ix86_setup_incoming_varargs): Fix mode of PLUS.
2380         (ix86_expand_move): Avoid pushes of memory if size does not match;
2381         move long constants to register.
2382         (x86_initialize_trampoline): Fix mode.
2383         * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT):
2384         Use ASM_QUAD on 64bit.
2385         * i386.md (test pattern): Disallow impossible constants.
2386         (tablejump PIC expander): Fix emitting of sum.
2387         (movdicc_rex64): Rename to movdicc.
2388         * linux64.h (LINK_SPEC): Add missing '%'.
2389
2390 2001-10-16  Alexandre Oliva  <aoliva@redhat.com>
2391
2392         * tree-inline.c (inlinable_function_p): Leave it up to the
2393         front-end to turn -finline-functions into DECL_INLINE set for all
2394         functions.
2395
2396 2001-10-16  Stan Shebs  <shebs@apple.com>
2397
2398         * config/rs6000/darwin.h (ASM_COMMENT_START): Define.
2399
2400 2001-10-16  Alan Modra  <amodra@bigpond.net.au>
2401
2402         * recog.c: Formatting and comment typo fixes.
2403
2404         * configure.in (gcc_cv_as_bfd_srcdir): New.  Use it to find gas
2405         version in single tree build.
2406         * configure: Regenerate.
2407
2408 2001-10-15  David Edelsohn  <edelsohn@gnu.org>
2409
2410         * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and
2411         MODE arguments to gen_rtx and compare operand with const0_rtx.
2412
2413 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2414
2415         * system.h: Poison old unused target macros.
2416         * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
2417         * config/stormy16/stormy16.c: Update references to obsolete macros.
2418         * config/stormy16/stormy16.h: Similarly.
2419         * config/stormy16/stormy16.md: Similarly.
2420         * config/cris/cris.h: Similarly.
2421
2422 2001-10-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2423
2424         * cpplib.c (struct pragma_entry): Store the name as a hashnode.
2425         (lookup_pragma_entry, insert_pragma_entry, do_pragma,
2426         cpp_register_pragma): Update accordingly.
2427
2428 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2429
2430         * c-pragma.h (cpp_register_pragma_space): Remove.
2431         * cpplib.h (cpp_register_pragma_space): Remove.
2432         * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
2433         (cpp_register_pragma_space): Remove.
2434         (cpp_register_pragma): Simplify using lookup_pragma_entry,
2435         add sanity checks.
2436         (do_pragma): Similarly.
2437         (_cpp_init_internal_pragmas): Don't register namespaces.
2438
2439         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
2440         Don't register namespaces.
2441         * cp/lex.c (init_cp_pragma): Similarly.
2442         * doc/tm.texi: Update.
2443
2444 2001-10-10  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2445
2446         PR c/4157
2447         * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES
2448
2449 2001-10-13  Michael Collison  <collison@dhcp-12-114.townisp.com>
2450
2451         * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and
2452         add scheduling support.
2453         * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code.
2454         * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code.
2455         * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes.
2456
2457
2458 2001-10-13  Hans-Peter Nilsson  <hp@axis.com>
2459
2460         * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around
2461         missing CONSTANT_P test in core GCC.
2462
2463 2001-10-12  Neil Booth  <neil@daikokuya.demon.co.uk>
2464
2465         * cppmain.c (struct printer): New member source.
2466         (scan_translation_unit): Fix spacing at start of lines.
2467         (cb_line_change): Update.
2468
2469         * gcc.dg/cpp/spacing2.c: New test.
2470
2471 2001-10-12  Hans-Peter Nilsson  <hp@axis.com>
2472
2473         * config/cris/arit.c: Use __builtin_labs, not abs.
2474
2475         * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define.
2476
2477         * config/cris/cris.c (cris_target_asm_function_epilogue): Move
2478         misplaced sprintf and fprintf argument.
2479
2480 2001-10-12  Zack Weinberg  <zack@codesourcery.com>
2481
2482         * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40.
2483         * configure.in, Makefile.in: Take out obsolete check-po logic.
2484         * configure, config.in: Regenerate.
2485
2486 2001-10-12  Ziemowit Laski  <zlaski@apple.com>
2487
2488         * objc/objc-act.c (finish_objc): Correct precondition for emitting
2489         symtab declarations.
2490
2491 2001-10-12  Stan Shebs  <shebs@apple.com>
2492
2493         * config/rs6000/rs6000.c: Remove uses of "register" specifier in
2494         declarations of arguments and local variables.
2495
2496 2001-10-12  Christopher Faylor  <cgf@redhat.com>
2497
2498         * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and
2499         ENDFILE_SPEC definition.
2500
2501 2001-10-12  Kazu Hirata  <kazu@hxi.com>
2502
2503         * gthr-dce.h: Fix comment formatting.
2504         * gthr-posix.h: Likewise.
2505         * gthr-single.h: Likewise.
2506         * gthr-solaris.h: Likewise.
2507         * gthr-vxworks.h: Likewise.
2508         * gthr-win32.h: Likewise.
2509
2510 2001-10-12  Jakub Jelinek  <jakub@redhat.com>
2511
2512         * final.c (output_asm_insn): Make sure assembly dialects are
2513         terminated, not nested.  Output `|' and `}' characters if they
2514         don't appear inside assembly dialect selection.
2515         * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64,
2516         rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi,
2517         rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1,
2518         strsetsi_rex_1): Add {} braces.
2519
2520 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
2521
2522         * toplev.c (compile_file): Ignore return value from yyparse.
2523         Always pop any nested binding levels after yyparse returns.
2524
2525 2001-10-11  Richard Henderson  <rth@redhat.com>
2526
2527         * doc/c-tree.texi (Expression trees): Add VTABLE_REF.
2528
2529 2001-10-11  Richard Henderson  <rth@redhat.com>
2530
2531         * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT,
2532         fall back to add_AT_long_long for large CONST_INT.
2533
2534 2001-10-11  Richard Henderson  <rth@redhat.com>
2535
2536         * config/i386/i386.md (setcc splitters): Add four splitters to
2537         simplify compound compares that simplify_comparison can't handle.
2538
2539 2001-10-11  Zack Weinberg  <zack@codesourcery.com>
2540
2541         * cpplex.c (digraph_spellings, token_spellings): Make static.
2542
2543 2001-10-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2544
2545         * unroll.c (loop_iterations): Fixup last patch.
2546
2547 2001-10-11  Richard Henderson  <rth@redhat.com>
2548
2549         * rtl.h (REG_VTABLE_REF): New.
2550         * rtl.c (reg_note_name): Add it.
2551         * combine.c (distribute_notes): Handle it.
2552         * final.c (final_scan_insn): Handle it.
2553         * tree.def (VTABLE_REF): New.
2554         * expr.c (expand_expr): Handle it.
2555         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New.
2556         * output.h: Declare them.
2557
2558 2001-10-11  Richard Henderson  <rth@redhat.com>
2559
2560         * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look
2561         for a DECL_INITIAL.
2562
2563 2001-10-11  David Edelsohn  <edelsohn@gnu.org>
2564
2565         * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only
2566         available in 64-bit mode.
2567
2568 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
2569
2570         * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none,
2571         cris-*-linux* cases.
2572         * config/cris/cris-protos.h: New file.
2573         * config/cris/cris.c: New file.
2574         * config/cris/cris.h: New file.
2575         * config/cris/cris.md: New file.
2576         * config/cris/linux.h: New file.
2577         * config/cris/aout.h: New file.
2578         * config/cris/arit.c: New file.
2579         * config/cris/cris_abi_symbol.c: New file.
2580         * config/cris/mulsi3.asm: New file.
2581         * config/cris/t-aout: New file.
2582         * config/cris/t-cris: New file.
2583         * config/cris/t-elfmulti: New file.
2584         * config/cris/t-linux: New file.
2585         * doc/invoke.texi: Add CRIS options.
2586         * doc/install.texi (Specific): Add blurb for CRIS.
2587
2588 2001-10-10  Hartmut Schirmer <SchirmerH@Innovative-Systems.de>
2589
2590         * config/float-i128.h: Make sure __STDC__VERSION__ is defined
2591         before using it.
2592         * config/float/i32.h: Likewise.
2593         * config/float-i386.h: Likewise.
2594         * config/float-i64.h: Likewise.
2595         * config/float-m68k.h: Likewise.
2596         * config/float-sh.h: Likewise.
2597         * config/float-sparc.h: Likewise.
2598
2599 2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
2600
2601         * doc/contrib.texi: Add note about CRIS port to my entry.
2602
2603 2001-10-11  Kazu Hirata  <kazu@hxi.com>
2604
2605         * basic-block.h: Fix formatting.
2606         * bitmap.h: Likewise.
2607         * cpplib.h: Likewise.
2608         * c-tree.h: Likewise.
2609         * diagnostic.h: Likewise.
2610         * flags.h: Likewise.
2611         * ggc.h: Likewise.
2612         * longlong.h: Likewise.
2613         * real.h: Likewise.
2614         * reload.h: Likewise.
2615         * rtl.h: Likewise.
2616         * tree.h: Likewise.
2617
2618 2001-10-10  Richard Henderson  <rth@redhat.com>
2619
2620         * c-parse.in (asm_operand): Allow named operands.
2621         * genconfig.c (max_recog_operands): Set to 29.
2622         * local-alloc.c (requires_inout): Skip multiple digits.
2623         * recog.c (asm_operand_ok): Likewise.
2624         (preprocess_constraints): Use strtoul for matching constraints.
2625         (constrain_operands): Likewise.
2626         * regmove.c (find_matches): Likewise.
2627         * reload.c (find_reloads): Likewise.
2628         * stmt.c (parse_output_constraint): Don't reject in-out
2629         constraint on operands > 9.  Reject '[' in constraint.
2630         (expand_asm_operands): Handle named operands.  Use strtoul
2631         for matching constraints.
2632         (check_operand_nalternatives): Split out from expand_asm_operands.
2633         (check_unique_operand_names): New.
2634         (resolve_operand_names, resolve_operand_name_1): New.
2635
2636         * doc/extend.texi (Extended Asm): Document named operands.
2637         * doc/md.texi (Simple Constraints): Document matching constraints
2638         on operands > 9.
2639
2640 2001-10-10  Richard Henderson  <rth@redhat.com>
2641
2642         * combine.c (try_combine): Handle a SEQUENCE of one insn.
2643
2644         * i386.c (test splitter): Narrow tests vs paradoxical subregs.
2645         (jcc splitters): Add two splitters to simplify compound compares
2646         that simplify_comparison can't handle.
2647
2648 2001-10-10  Richard Henderson  <rth@redhat.com>
2649
2650         * langhooks.c: Include langhooks.h.
2651         * Makefile.in (langhooks.o): Depend on it.
2652
2653 Wed Oct 10 23:49:06 EDT 2001  John Wehle  (john@feith.com)
2654
2655         * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
2656         should not be considered as a no-op.
2657         * flow.c (delete_noop_moves): Handle REG_LIBCALL notes.
2658
2659 2001-10-10  Stan Shebs  <shebs@apple.com>
2660
2661         * alias.c: Remove uses of "register" specifier in declarations
2662         of arguments and local variables.
2663         * c-common.c: Ditto.
2664         * c-convert.c: Ditto.
2665         * c-decl.c: Ditto.
2666         * c-format.c: Ditto.
2667         * c-semantics.c: Ditto.
2668         * c-typeck.c: Ditto.
2669         * caller-save.c: Ditto.
2670         * calls.c: Ditto.
2671         * cfg.c: Ditto.
2672         * cfgbuild.c: Ditto.
2673         * cfgrtl.c: Ditto.
2674         * collect2.c: Ditto.
2675         * combine.c: Ditto.
2676         * convert.c: Ditto.
2677         * cppexp.c: Ditto.
2678         * cppfiles.c: Ditto.
2679         * cse.c: Ditto.
2680         * dbxout.c: Ditto.
2681         * defaults.h: Ditto.
2682         * df.c: Ditto.
2683         * dwarf2out.c: Ditto.
2684         * dwarfout.c: Ditto.
2685         * emit-rtl.c: Ditto.
2686         * explow.c: Ditto.
2687         * expmed.c: Ditto.
2688         * expr.c: Ditto.
2689         * final.c: Ditto.
2690         * fix-header.c: Ditto.
2691         * floatlib.c: Ditto.
2692         * flow.c: Ditto.
2693         * fold-const.c: Ditto.
2694         * function.c: Ditto.
2695         * gcc.c: Ditto.
2696         * gcse.c: Ditto.
2697         * gen-protos.c: Ditto.
2698         * genattrtab.c: Ditto.
2699         * gencheck.c: Ditto.
2700         * genconfig.c: Ditto.
2701         * genemit.c: Ditto.
2702         * genextract.c: Ditto.
2703         * genflags.c: Ditto.
2704         * gengenrtl.c: Ditto.
2705         * genoutput.c: Ditto.
2706         * genpeep.c: Ditto.
2707         * genrecog.c: Ditto.
2708         * gensupport.c: Ditto.
2709         * global.c: Ditto.
2710         * gmon.c: Ditto.
2711         * graph.c: Ditto.
2712         * haifa-sched.c: Ditto.
2713         * hard-reg-set.h: Ditto.
2714         * hash.c: Ditto.
2715         * integrate.c: Ditto.
2716         * jump.c: Ditto.
2717         * lists.c: Ditto.
2718         * local-alloc.c: Ditto.
2719         * loop.c: Ditto.
2720         * mips-tdump.c: Ditto.
2721         * mips-tfile.c: Ditto.
2722         * optabs.c: Ditto.
2723         * prefix.c: Ditto.
2724         * print-rtl.c: Ditto.
2725         * read-rtl.c: Ditto.
2726         * real.c: Ditto.
2727         * recog.c: Ditto.
2728         * reg-stack.c: Ditto.
2729         * regclass.c: Ditto.
2730         * regmove.c: Ditto.
2731         * reload.c: Ditto.
2732         * reload1.c: Ditto.
2733         * reorg.c: Ditto.
2734         * resource.c: Ditto.
2735         * rtl.c: Ditto.
2736         * rtlanal.c: Ditto.
2737         * scan.c: Ditto.
2738         * sched-deps.c: Ditto.
2739         * sched-rgn.c: Ditto.
2740         * sdbout.c: Ditto.
2741         * simplify-rtx.c: Ditto.
2742         * stmt.c: Ditto.
2743         * stor-layout.c: Ditto.
2744         * toplev.c: Ditto.
2745         * tradcif.y: Ditto.
2746         * tradcpp.c: Ditto.
2747         * tree.c: Ditto.
2748         * unroll.c: Ditto.
2749         * varasm.c: Ditto.
2750         * xcoffout.c: Ditto.
2751
2752 2001-10-10  Richard Henderson  <rth@redhat.com>
2753
2754         * rtl.h (can_reverse_comparison_p): Remove.
2755
2756 2001-10-10  Christopher Faylor <cgf@redhat.com>
2757
2758         * config/i386/cygwin.h: Avoid adding include files if -nostdinc is
2759         used.
2760
2761 2001-10-10  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2762
2763         * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define.
2764         (Thanks to Chris Faylor for suggesting macro name).
2765         (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more
2766         WIN32 defines.
2767         (STANDARD_INCLUDE_DIR): Remove i386- from directory name.
2768         (STANDARD_INCLUDE_COMPONENT): Change to MINGW.
2769         (MATH_LIBRARY): Undef before definition.
2770         (OUTPUT_QUOTED_STRING): Likewise.
2771         * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS.
2772
2773 2001-10-10  Richard Henderson  <rth@redhat.com>
2774
2775         * unwind-dw2-fde.c (fde_compare_t): Change return type to int.
2776         (fde_unencoded_compare): Likewise.  Don't use subtraction to get
2777         a tristate comparison value.
2778         (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise.
2779
2780 2001-10-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2781
2782         PR c++/4512
2783         * unroll.c (loop_iterations): Ignore insns generated by loop
2784         unrolling.
2785
2786         * config.gcc (mips*-*-gnu*): Delete support.
2787         * config/mips/gnu.h: Remove.
2788
2789 2001-10-10  Kazu Hirata  <kazu@hxi.com>
2790
2791         * calls.c: Fix formatting.
2792         * c-decl.c: Likewise.
2793         * cfgcleanup.c: Likewise.
2794         * combine.c: Likewise.
2795         * cppfiles.c: Likewise.
2796         * cpplib.c: Likewise.
2797         * cppmacro.c: Likewise.
2798         * crtstuff.c: Likewise.
2799         * cse.c: Likewise.
2800         * dwarf2out.c: Likewise.
2801         * expmed.c: Likewise.
2802         * expr.c: Likewise.
2803         * fold-const.c: Likewise.
2804         * function.c: Likewise.
2805         * gcse.c: Likewise.
2806         * genattrtab.c: Likewise.
2807         * ggc-page.c: Likewise.
2808         * integrate.c: Likewise.
2809         * libgcc2.c: Likewise.
2810         * loop.c: Likewise.
2811         * optabs.c: Likewise.
2812         * profile.c: Likewise.
2813         * protoize.c: Likewise.
2814         * real.c: Likewise.
2815         * recog.c: Likewise.
2816         * reload1.c: Likewise.
2817         * reload.c: Likewise.
2818         * reorg.c: Likewise.
2819         * resource.c: Likewise.
2820         * sched-rgn.c: Likewise.
2821         * sdbout.c: Likewise.
2822         * stmt.c: Likewise.
2823         * toplev.c: Likewise.
2824         * varasm.c: Likewise.
2825
2826 2001-10-10  Janis Johnson  <janis187@us.ibm.com>, Alexandre Oliva  <aoliva@redhat.com>
2827
2828         * langhooks.c: Include rtl.h, insn-config.h and integrate.h.
2829         * Makefile.in (langhooks.o): Add dependencies.
2830
2831 Wed Oct 10 00:41:29 EDT 2001  John Wehle  (john@feith.com)
2832
2833         * rs6000.c (rs6000_emit_load_toc_table): Don't
2834         strdup the toc label.
2835         (create_TOC_reference): Likewise.
2836
2837 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2838
2839         * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent
2840         version default.
2841
2842 2001-10-09  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
2843
2844         * config/i386/i386.c (ix86_attribute_table): Correct
2845         min_len, max_len fields for dllimport, dllexport and shared.
2846
2847 2001-10-10  Joseph S. Myers  <jsm28@cam.ac.uk>
2848
2849         * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi,
2850         doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi:
2851         Consistently use "nonzero" instead of "non-zero".
2852
2853 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2854
2855         * acconfig.h: Fix comment formatting.
2856         * c-dump.h: Likewise.
2857         * c-tree.h: Likewise.
2858         * conditions.h: Likewise.
2859         * expr.h: Likewise.
2860         * function.h: Likewise.
2861         * gthr.h: Likewise.
2862         * hwint.h: Likewise.
2863         * integrate.h: Likewise.
2864         * intl.h: Likewise.
2865         * loop.h: Likewise.
2866         * optabs.h: Likewise.
2867
2868 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2869
2870         * c-common.h: Fix comment formatting.
2871         * c-dump.c: Likewise.
2872         * cfg.c: Likewise.
2873         * diagnostic.h: Likewise.
2874         * except.c: Likewise.
2875         * gcc.h: Likewise.
2876         * gcov-io.h: Likewise.
2877         * genattrtab.c: Likewise.
2878         * output.h: Likewise.
2879         * predict.h: Likewise.
2880         * reload1.c: Likewise.
2881         * reload.h: Likewise.
2882         * resource.h: Likewise.
2883         * scan.h: Likewise.
2884         * system.h: Likewise.
2885         * tree.h: Likewise.
2886         * tree-inline.c: Likewise.
2887         * tsystem.h: Likewise.
2888         * varasm.c: Likewise.
2889         * xcoffout.h: Likewise.
2890
2891 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2892
2893         * doc/gcc.texi: Document preference for "nonzero" over "non-zero".
2894
2895 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2896
2897         * config/alpha/freebsd.h, config/alpha/lib1funcs.asm,
2898         config/i386/i386elf.h, config/i386/netbsd-elf.h,
2899         config/i386/netware.h, config/mcore/gfloat.h,
2900         config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md,
2901         config/netware.h, gccbug.in: Update FSF address.
2902
2903 2001-10-09  Kazu Hirata  <kazu@hxi.com>
2904
2905         * c-common.c: Fix comment typos.
2906         * cfgrtl.c: Likewise.
2907         * collect2.c: Likewise.
2908         * cpplex.c: Likewise.
2909         * doloop.c: Likewise.
2910         * dwarf2out.c: Likewise.
2911         * dwarfout.c: Likewise.
2912         * expr.c: Likewise.
2913         * fold-const.c: Likewise.
2914         * gcc.c: Likewise.
2915         * gcov.c: Likewise.
2916         * gcse.c: Likewise.
2917         * global.c: Likewise.
2918         * ifcvt.c: Likewise.
2919         * loop.c: Likewise.
2920         * optabs.c: Likewise.
2921         * protoize.c: Likewise.
2922         * regclass.c: Likewise.
2923         * reorg.c: Likewise.
2924         * rtl.h: Likewise.
2925         * stmt.c: Likewise.
2926         * tree.h: Likewise.
2927         * doc/cpp.texi: Likewise.
2928         * doc/c-tree.texi: Likewise.
2929         * doc/extend.texi: Likewise.
2930         * doc/invoke.texi: Likewise.
2931         * doc/objc.texi: Likewise.
2932         * doc/tm.texi: Likewise.
2933
2934 2001-10-08  Richard Henderson  <rth@redhat.com>
2935
2936         * varasm.c (set_named_section_flags): Initialize "declared".
2937
2938 2001-10-08  Robert Lipe  <robertlipe@usa.net>
2939
2940         * varasm.c (struct in_named_entry): Add declared.
2941         (named_section_first_declaration): New function.
2942         (default_elf_asm_named_section): Use it.
2943         * output.h (named_section_first_declaration): New.
2944
2945 2001-10-08  Richard Henderson  <rth@redhat.com>
2946
2947         * i386.md (movsi_xor): Export.
2948         (setcc peep2): Use it when available; add an alternative to
2949         match zero_extendhisi2_and.
2950
2951 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2952
2953         * romp-protos.h (romp_initialize_trampoline): New function.
2954         * romp.c (romp_initialize_trampoline): Likewise.
2955         * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of
2956         romp_initialize_trampoline.
2957
2958 2001-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2959
2960         * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'.
2961         * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2962         * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2963         * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
2964
2965 2001-10-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2966
2967         * unroll.c (loop_iterations): Extend check for multiple back edges.
2968
2969 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
2970
2971         * langhooks.h: New file.
2972         * Makefile.in (OBJS): Added langhooks.o.
2973         (c-lang.o): Depend on langhooks.h.
2974         (c-common.o): Don't depend on tree-inline.h.
2975         (tree-inline.o): Depend on toplev.h.
2976         (langhooks.o): New rule.
2977         * c-common.c: Don't include tree-inline.h.
2978         (c_mark_lang_decl): Mark argument c as unused.
2979         (c_common_lang_init): Don't initialize hooks here.
2980         * c-lang.c: Include langhooks.h, then override some macros.
2981         (lang_hooks): Initialize with macros in langhooks.h.
2982         (c_init): Don't initialize hooks here.
2983         * toplev.c (struct lang_hooks_for_tree_inlining): New struct.
2984         (struct lang_hooks): Add tree_inlining.  Refer to langhooks.h.
2985         * tree-inline.c: Include toplev.h.  Don't define hook variables.
2986         * tree-inline.h: Don't define hook types nor declare hook
2987         variables.  Move macros to...
2988         * langhooks.c: ... new file, as functions.  Adjust all callers.
2989
2990 2001-10-08  Jeffrey A Law  <law@cygnus.com>
2991
2992         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call
2993         purge_mem_unchanging_flag on all instructions, not just on those
2994         before NOTE_INSN_FUNCTION_BEG.
2995
2996 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2997
2998         * cppmacro.c (_cpp_create_definition): Leave comments off.
2999
3000         * doc/cpp.texi: Update.
3001
3002 2001-10-08  DJ Delorie  <dj@redhat.com>
3003
3004         * c-decl.c (grokfield): Make sure the only unnamed fields
3005         we're allowing are either structs or unions.
3006         * doc/extend.texi: Add documentation for the unnamed field
3007         extension.
3008
3009 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
3010
3011         * aclocal.m4 (gcc_AC_PROG_GNAT): New.
3012         * configure.in: Use it.
3013         * configure: Regenerated.
3014         * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
3015         config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.
3016
3017 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3018
3019         * cppfiles.c (open_file): Don't mark zero-length files
3020         never-reread here.  Don't output diagnostics here either.
3021         (stack_include_file): Mark them never-reread here.
3022         (_cpp_read_file): Update.
3023
3024 2001-10-08  Richard Henderson  <rth@redhat.com>
3025
3026         * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
3027
3028 2001-10-08  Richard Henderson  <rth@redhat.com>
3029
3030         * expr.c (store_expr): When converting a CONST_INT for storage
3031         in a SUBREG, convert it to both SUBREG modes before stripping
3032         the SUBREG.
3033
3034 2001-10-08  Richard Henderson  <rth@redhat.com>
3035
3036         * varasm.c (restore_varasm_status): New.
3037         * function.h: Declare it.
3038         * function.c (pop_function_context_from): Call it.
3039
3040 2001-10-08  Richard Henderson  <rth@redhat.com>
3041
3042         * c-common.h (struct c_lang_decl): Add declared_inline.
3043         * c-tree.h (DECL_DECLARED_INLINE_P): New.
3044         * c-lang.c (c_disregard_inline_limits): Use it.
3045         * c-decl.c (duplicate_decls): Likewise.
3046         (pushdecl, redeclaration_error_message): Likewise.
3047         (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
3048         (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
3049         Set DECL_INLINE if -finline-functions.
3050         (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.
3051
3052 2001-10-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3053
3054         * cppmacro.c (funlike_invocation_p): Move some logic to caller
3055         in enter_macro_context.  Create a padding token in its own context
3056         if necessary when the search for '(' fails.
3057         (enter_macro_context): Update.
3058
3059 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3060
3061         * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
3062         genmultilib, toplev.c: Fix spelling errors of "separate" as
3063         "seperate", and corresponding spelling errors of related words.
3064
3065 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3066
3067         * builtins.c (expand_builtin_setjmp_receiver): Const-ify.
3068         * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length):
3069         Likewise.
3070         * c-dump.c (dump_option_value_info): Likewise.
3071         * c-format.c (format_length_info, format_char_info,
3072         format_flag_spec, format_flag_pair, format_kind_info): Likewise.
3073         * collect2.c (names): Likewise.
3074         * cppdefault.h (default_include): Likewise.
3075         * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise.
3076         * flow.c (life_analysis): Likewise.
3077         * gcc.c (dir_separator_str, modify_target, option_map,
3078         target_option_translations, spec_list_1, extra_specs_1,
3079         init_spec): Likewise.
3080         * gcov.c (gcov_version_string): Likewise.
3081         * genattr.c (write_units): Likewise.
3082         * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise.
3083         * gengenrtl.c (rtx_definition, defs): Likewise.
3084         * genrecog.c (pred_table): Likewise.
3085         * global.c (global_alloc): Likewise.
3086         * lcm.c (optimize_mode_switching): Likewise.
3087         * local-alloc.c (find_free_reg): Likewise.
3088         * params.h (param_info): Likewise.
3089         * predict.c (predictor_info): Likewise.
3090         * protoize.c (unexpansion_struct): Likewise.
3091         * real.c (bmask): Likewise.
3092         * recog.h (insn_operand_data, insn_data): Likewise.
3093         * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise.
3094         * stmt.c (expand_nl_goto_receiver): Likewise.
3095         * toplev.c (da, debug_args, lang_opt, documented_lang_options,
3096         target_switches, target_options): Likewise.
3097         * tradcif.y (token, tokentab2, yylex): Likewise.
3098         * tree.h (attribute_spec): Likewise.
3099
3100         * alpha.c (override_options, alpha_lookup_xfloating_lib_func):
3101         Likewise.
3102         * arc.c (arc_output_function_epilogue): Likewise.
3103         * arm.c (processors, all_cores, all_architectures,
3104         arm_override_options, isr_attribute_arg, isr_attribute_args,
3105         arm_isr_value): Likewise.
3106         * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc):
3107         Likewise.
3108         * c4x.c (c4x_int_reglist): Likewise.
3109         * d30v.c (override_options): Likewise.
3110         * h8300.c (shift_insn): Likewise.
3111         * i386.c (size_cost, i386_cost, i486_cost, pentium_cost,
3112         pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost,
3113         ix86_expand_sse_comi, ix86_expand_sse_compare, override_options,
3114         builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg,
3115         ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise.
3116         * i386.h (processor_costs, ix86_cost): Likewise.
3117         * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise.
3118         * m68hc11.h (processor_costs, m68hc11_cost): Likewise.
3119         * m68k.c (codes_68881, codes_FPA): Likewise.
3120         * m88k.c (mode_from_align, max_from_align, all_from_align,
3121         best_from_align, m_options): Likewise.
3122         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
3123         * mcore.c (mode_from_align): Likewise.
3124         * mips/elf64.h (UNIQUE_SECTION): Likewise.
3125         * mips/iris6gld.h (UNIQUE_SECTION): Likewise.
3126         * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise.
3127         * mips.h (mips_regno_to_class): Likewise.
3128         * ns32k.c (scales): Likewise.
3129         * pa.c (import_string, magic_milli): Likewise.
3130         * rs6000.c (alt_reg_names, rs6000_override_options): Likewise.
3131         * sparc.c (leaf_reg_remap, sparc_override_options,
3132         reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders):
3133         Likewise.
3134         * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise.
3135
3136 2001-10-07  Dale Johannesen  <dalej@apple.com>
3137
3138         * reload1.c (reload_reg_free_p): Teach register interference
3139         checking that multiple output reloads are emitted in
3140         reverse order.
3141         reload1.c (reload_reg_reaches_end_p):  Ditto.
3142         reload1.c (reloads_conflict):  Ditto.
3143
3144 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3145
3146         * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and
3147         NULL_TREE inside @code.
3148
3149 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3150
3151         * doc/gcc.texi: Document consistent style of "32-bit",
3152         "Objective-C", and "@code{NULL}".
3153
3154 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
3155
3156         * cpplex.c (enum spell_type): Add SPELL_NUMBER.
3157         (cpp_token_len, cpp_spell_token, cpp_output_token,
3158         _cpp_equiv_tokens): Handle it.
3159         * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and
3160         CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF.
3161         * cppexp.c (_cpp_parse_expr): Use the correct operator code in
3162         error messages.
3163
3164 Sat Oct  6 07:42:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3165
3166         * gcc.c (default_compilers): Remove .ada.
3167
3168 2001-10-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3169
3170         * doc/cppinternals.texi: Update.
3171
3172 2001-10-06  Zack Weinberg  <zack@codesourcery.com>
3173
3174         * gcc.c (main): Set this_file_error if the appropriate
3175         compiler for a language has not been installed.
3176
3177 2001-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
3178
3179         * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set.
3180
3181 2001-10-05  Joseph S. Myers  <jsm28@cam.ac.uk>
3182
3183         * gccbug.in (CATEGORIES): Add ada.
3184
3185 2001-10-05  Catherine Moore  <clm@redhat.com>
3186
3187         * config/stormy16/stormy-abi:  Document abi changes.
3188         * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine.
3189         (ICALL_REGS): New register class.
3190         (NUM_ARGUMENT_REGISTERS): Now 6.
3191         (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs
3192         in registers.
3193         (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS.
3194         * config/stormy16.md (call_internal, call_value_internal,
3195         indirect_jump): Use new 'z' constraint.
3196
3197 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3198
3199         * doc/cppinternals.texi: Update.
3200
3201 2001-10-05  Richard Henderson  <rth@redhat.com>
3202
3203         * dwarf2out.c (FRAME_BEGIN_LABEL): New.
3204         (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and
3205         the gas section-name-as-label feature.
3206
3207 2001-10-05  Neil Booth  <neil@daikokuya.demon.co.uk>
3208
3209         * doc/cppinternals.texi: Update.
3210
3211 Fri Oct  5 08:17:46 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3212
3213         * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
3214         to ensure valid SImode constants.
3215
3216 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
3217
3218         * Makefile.in (c-decl.o): Depend on tree-inline.h.
3219         (c-lang.o): Likewise, as well as insn-config.h and integrate.h.
3220         * c-decl.c: Include tree-inline.h.
3221         (c_expand_body): Call optimize_inline_calls. Determine whether
3222         a function is inlinable upfront, and only clear
3223         DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't.
3224         * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h.
3225         (c_disregard_inline_limits): New function.
3226         (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise.
3227         (c_post_options): Enable tree inlining if inlining is enabled.
3228         Don't inline trees when instrumenting functions.
3229         (c_init): Initialize lang_disregard_inline_limits and
3230         lang_cannot_inline_tree_fn.
3231         * tree-inline.c (initialize_inlined_parameters): Handle calls
3232         with fewer arguments than declared parameters, and fewer
3233         parameters than passed arguments.  Don't assume value is a
3234         DECL.
3235         (declare_return_variable): Convert return value back to the
3236         original type, if it was promoted.
3237         (tree_inlinable_function_p): New function.
3238         (inlinable_function_p): Don't look at DECL_INLINE if we're
3239         inlining all functions.  Make it work with a NULL id.
3240         Re-check DECL_UNINLINABLE after language-specific checks.
3241         * tree-inline.h (tree_inlinable_function_p): Declare it.
3242         * integrate.c (save_for_inline): Don't bother to prepare argvec
3243         when not inlining.
3244         * cse.c (check_for_label_ref): Don't check deleted labels.
3245
3246         * Makefile.in (tree-inline.o): Depend on newly-included headers.
3247         * tree-inline.c: Include headers needed for the functions moved in.
3248         (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c.
3249         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
3250         (copy_body, initialize_inlined_parameters): Likewise.
3251         (declare_return_variable, inlinable_function_p): Likewise.
3252         (expand_call_inline, expand_calls_inline): Likewise.
3253         (optimize_inline_calls, clone_body): Likewise.
3254         (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c.
3255         (copy_tree_r, remap_save_expr): Likewise.
3256
3257 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
3258
3259         * Makefile.in (OBJS): Added tree-inline.o.
3260         (c-common.o): Depend on tree-inline.h.
3261         (tree-inline.o): New target.
3262         * c-common.c: Include tree-inline.h.
3263         (c_mark_lang_decl): Don't mark saved_tree.
3264         (c_common_lang_init): Set lang_anon_aggr_type_p.
3265         * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h.
3266         (struct c_lang_decl): Moved saved_tree to tree_decl.
3267         * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs.
3268         * integrate.h (function_attribute_inlinable_p): Declare it.
3269         * integrate.c (function_attribute_inlinable_p): Export it.
3270         * tree-inline.c: New file.  Define variables declared in...
3271         * tree-inline.h: New file.  Declare functions to be moved to
3272         tree-inline.c.  Define macros and declare types and hooks for
3273         language-specific tree inlining.
3274         (flag_inline_trees): Moved definition from cp/decl2.c.
3275         * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h.
3276         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h.
3277         (struct tree_decl): Moved saved_tree from c_lang_decl and
3278         inlined_fns from C++'s lang_decl.
3279
3280 2001-10-04  Loren J. Rittle  <ljrittle@acm.org>
3281
3282         * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which
3283         propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS.
3284
3285 2001-10-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3286
3287         * doc/cppinternals.texi: Update.
3288
3289 2001-10-04  Eric Christopher  <echristo@redhat.com>
3290
3291         * config/mips/mips.c (init_cumulative_args): Remember to set
3292         cum->prototype.
3293         * config.gcc: Redo linux configuration. Add target_cpu_default
3294         of soft-float to all mipsisa32 combinations and tx39.
3295         * config/mips/linux.h: Remove include of mips.h.
3296
3297 2001-10-03  Loren J. Rittle  <ljrittle@acm.org>
3298
3299         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS,
3300         HOST_LDFLAGS and HOST_CPPFLAGS.
3301
3302 2001-10-03  Ziemowit Laski  <zlaski@apple.com>
3303
3304         * c-parse.in (objc_inherit_code, objc_pq_context,
3305         objc_public_flag): Make static.
3306         (objc_interface_context, objc_implementation_context,
3307         objc_method_context, objc_ivar_chain, objc_ivar_context): Move to
3308         global tree array in objc/objc-act.[ch].
3309         (methoddef): Remove unnecessary code.
3310
3311         * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry):
3312         Hoist struct definitions to objc-act.h.
3313         (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count,
3314         cat_count): Place declaration in objc-act.h.
3315         (objc_tree_index): Move enumeration to objc-act.h.
3316         (objc_global_trees): Place declaration and macro accessors in
3317         objc-act.h.
3318         (implementation_context): Remove duplicate; use
3319         objc_implementation_context instead:
3320         (method_context): Remove duplicate; use objc_method_context
3321         instead.
3322         (objc_ellipsis_node, objc_method_prototype_template,
3323         implemented_classes, function_type): Move global vars to
3324         objc_global_trees.
3325         (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE.
3326         (build_message_expr): Move actual construction of ObjC message
3327         send nodes to finish_message_expr.
3328         (finish_message_expr): New routine, contains code formerly in
3329         build_message_expr.
3330         * objc/objc-act.h (finish_message_expr): New prototype.
3331         (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove
3332         declarations; these vars are now part of objc_global_trees.
3333         (objc_tree_index, objc_global_trees): Move definitions from
3334         objc-act.c.
3335         * objc/objc-tree.def: Update copyright info.
3336
3337 Wed Oct  3 12:22:11 EDT 2001  John Wehle  (john@feith.com)
3338
3339         * dwarf2asm.c (unaligned_integer_asm_op): Abort if
3340         op is NULL.
3341         * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use
3342         only if TARGET_ARCH64.
3343
3344 2001-10-02  Bernd Schmidt  <bernds@redhat.com>
3345
3346         * doc/extend.texi: Fix some problems with previous checkin.
3347         * doc/invoke.texi: Likewise.
3348
3349 2001-10-02  Neil Booth  <neil@daikokuya.demon.co.uk>
3350
3351         * cpphash.h: Update comments.
3352         (cpp_context): Update.
3353         (spec_nodes): Remove n__Pragma.
3354         * cppinit.c (cpp_create_reader): Update.
3355         (builtin_array): Add _Pragma.
3356         * cpplib.h: Update comments.
3357         (NODE_DISABLED, BT_PRAGMA): New.
3358         (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes.
3359         * cppmacro.c (struct cpp_macro): Remove disabled.
3360         (builtin_macro): Return int, handle _Pragma, push the new token
3361         on the context stack.
3362         (funlike_invocation_p): Unconstify, update.
3363         (enter_macro_context): Handle builtins here.
3364         (replace_args, push_token_context, push_ptoken_context):
3365         Update for prototype changes.
3366         (_cpp_pop_context): Update.
3367         (cpp_get_token): Don't handle buitins, nor _Pragma here.
3368         (cpp_sys_macro_p): Update.
3369         (_cpp_free_definition): Clear disabled flag.
3370         (_cpp_create_definition): Upate.
3371         * cppmain.c: Update comments.
3372
3373 Tue Oct  2 12:46:01 CEST 2001  Bo Thorsen     <bo@suse.co.uk>,
3374                                 Andreas Jaeger <aj@suse.de>,
3375                                 Jan Hubicka    <jh@suse.cz>
3376
3377         * doc/invoke.texi (i386 Options): Document x86-64 options.
3378         (i386 and x86-64 Options): Rename i386 options section.
3379
3380         * config/i386/i386.h (TARGET_UNWIND_INFO): New.
3381         (TARGET_SWITCHES): Add -munwind-info.
3382         (MASK_NO_UNWIND_INFO): New.
3383         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for
3384         biarch compilation.
3385         (ASM_OUTPUT_DOUBLE_INT): New.
3386
3387         * config/i386/linux64.h: New spec file for Linux x86-64 support.
3388         * config.gcc: Fix tm_file settings for x86-64.
3389         * config/i386/x86-64.h: New file with OS independent x86-64
3390         definitions.
3391         * config/i386/biarch64.h: New file used to configure compiler
3392         to biarch/64bit compilation.
3393
3394         * config/i386/i386.c: (override_options): Set flags default
3395         for 64bit compilation.
3396
3397 Tue Oct  2 12:46:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
3398
3399         * i386.c (legitimize_pic_address): Add missing bits of 64bit support.
3400         (ix86_expand_int_movcc): Optimize DImode conditional moves with
3401         constants on x86_64.
3402         (ix86_attr_length_immediate_default): Support MODE_DI.
3403         * i386.md (fixdi splitter): Add missing "&& 1" in splitter
3404         condition.
3405         (indirect_jump, tablejump): Turn into expander.
3406
3407 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3408
3409         * c-common.c (c_format_attribute_table): Make format and
3410         format_arg attributes apply to function types rather than to
3411         decls.
3412         (is_valid_printf_arglist): Construct an attribute list and pass
3413         that to check_function_format rather than a name.
3414         * c-common.h (check_function_format): Adjust prototype.
3415         * c-decl.c (duplicate_decls): Preserve attributes from type of
3416         built-in decl when allowing for harmless conflict in types.
3417         * c-format.c (record_function_format,
3418         record_international_format, function_format_list,
3419         international_format_info, international_format_list): Remove.
3420         (function_format_info): Remove next, name and assembler_name.
3421         Make format_num and first_arg_num be unsigned HOST_WIDE_INT.
3422         (decode_format_attr): New.
3423         (handle_format_attribute): Handle receiving a type rather than a
3424         decl.  Call decode_format_attr.  Store format information in a
3425         function_format_info.
3426         (handle_format_arg_attribute): Correct comment.  Handle receiving
3427         a type rather than a decl.  Use unsigned HOST_WIDE_INT for
3428         arg_num.
3429         (check_format_info_recurse, check_format_info_main): Take argument
3430         numbers as unsigned HOST_WIDE_INT.
3431         (check_function_format): Take a list of attributes from the
3432         function type rather than a name or assembler name.  Check for
3433         format attributes in that list and the attributes on the type of
3434         the current function rather than looking through
3435         function_format_list.
3436         (check_format_info): Use unsigned HOST_WIDE_INT for argument
3437         numbers.
3438         (check_format_info_recurse): Take format_arg attributes from the
3439         type of the function calls rather than using
3440         international_format_list.  Allow for multiple format_arg
3441         attributes.
3442         * c-typeck.c (build_function_call): Pass type attributes to
3443         check_function_format rather than name or assembler name.  Don't
3444         require there to be a name or assembler name to check formats.
3445
3446 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3447
3448         * attribs.c (decl_attributes): Possibly call
3449         insert_default_attributes to insert default attributes on
3450         functions in a lazy manner.
3451         * builtin-attrs.def: New file; define the default format and
3452         format_arg attributes.
3453         * c-common.c (c_format_attribute_table): Move to earlier in the
3454         file.
3455         (c_common_nodes_and_builtins): Initialize format_attribute_table.
3456         (enum built_in_attribute, built_in_attributes,
3457         c_attrs_initialized, c_init_attributes,
3458         c_common_insert_default_attributes): New.
3459         (c_common_lang_init): Don't initialize format_attribute_table.  Do
3460         call c_init_attributes.
3461         * Makefile.in (c-common.o): Depend on builtin-attrs.def.
3462         * c-common.h (init_function_format_info): Don't declare.
3463         (c_common_insert_default_attributes): Declare.
3464         * c-decl.c (implicitly_declare, builtin_function): Call
3465         decl_attributes.
3466         (init_decl_processing): Don't call init_function_format_info.
3467         (insert_default_attributes): New.
3468         * c-format.c (handle_format_attribute,
3469         handle_format_arg_attribute): Be quiet about inappropriate
3470         declaration when applying default attributes.
3471         (init_function_format_info): Remove.
3472         * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN.
3473         (insert_default_attributes): Declare.
3474
3475 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3476
3477         * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94.
3478
3479 2001-10-01  Jim Wilson  <wilson@redhat.com>
3480
3481         * sched-deps.c (add_dependence): When elide conditional dependence,
3482         check that insn doesn't modify cond2.
3483
3484 2001-10-01  Dale Johannesen  <dalej@apple.com>
3485
3486         * config/rs6000/rs6000.h (enum processor_type): Add support
3487         for 7400 (G4) and 7450.
3488         (RTX_COSTS): Ditto.
3489         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
3490         (rs6000_issue_rate): Ditto.
3491         (rs6000_adjust_cost): Fix cycle counts for compares.
3492         (debug_stack_info):  Fix an obvious typo.
3493         * config/rs6000/rs6000.md: Add functional units for 7400 and 7450.
3494         * doc/invoke.texi: Document.
3495         * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable
3496         for Darwin.
3497         (PROCESSOR_DEFAULT): Ditto.
3498
3499 2001-10-01  Loren J. Rittle  <ljrittle@acm.org>
3500
3501         * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC.
3502         (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for
3503         later recursive make invocation.
3504
3505 2001-10-01  Hans Boehm  <boehm@acm.org>
3506
3507         * optabs.c (emit_libcall_block): When using non-call exceptions,
3508         don't add REG_LIBCALL reg notes to trapping calls.
3509
3510 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
3511
3512         * flow.c (propagate_block_delete_libcall): Remove unused first arg
3513         (propagate_one_insn):  Update for above change
3514
3515 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
3516
3517         * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase,
3518         _Unwind_GetTextRelBase): Argument is unused.
3519
3520 Mon Oct  1 19:20:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3521
3522         * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR.
3523         Loop through NOPs, placeholders, and components.
3524         Don't go through NOPs if change mode.
3525         (record_alias_subset): Do nothing if SUBSET and SET are the same.
3526         * emit-rtl.c (set_mem_alias_set): Enable check.
3527         * expr.c (find_placeholder): New function.
3528         (expand_expr, case PLACEHOLDER_EXPR): Use it.
3529         (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need
3530         to modify it and avoid unneeded copies.
3531         * expr.h (expand_expr): Always define.
3532         (find_placeholder): New declaration.
3533
3534 2001-10-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3535
3536         * config/m68hc11/m68hc11.md ("add-split"): Fix add split when
3537         operand 2 is the stack pointer.
3538         ("addr-peephole"): Fix address computation peephole when operand 2
3539         is the stack pointer.
3540
3541 Mon Oct  1 09:26:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3542
3543         * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set.
3544         (ix86_setup_incoming_varargs): Likewise.
3545
3546 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
3547
3548         * stor-layout.c (layout_type): Don't complain about too-large
3549         array here.
3550
3551 Mon Oct  1 06:43:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3552
3553         * function.c (keep_stack_depressed): Don't use delete_insn.
3554
3555         * expr.h (set_mem_alias_set): Move decl to here.
3556         * rtl.h (mem_attrs): New typedef and struct.
3557         (union rtunion_def): Add field for mem_attrs.
3558         (X0MEMATTR, MEM_ATTRS): New macros.
3559         (MEM_ALIAS_SET): Use MEM_ATTRS.
3560         (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros.
3561         (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS.
3562         (set_mem_alias_set): Delete decl from here.
3563
3564         * alias.c (set_mem_alias_set): Delete from here.
3565         * emit-rtl.c (mem_attrs_htab): New variable.
3566         (rtx_htab_mark, rtx_htab_mark_1): Deleted.
3567         (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions.
3568         (mem_attrs_mark, get_mem_attrs): Likewise.
3569         (gen_rtx_MEM): Clear MEM_ATTRS.
3570         (set_mem_attributes): Move to here.
3571         (set_mem_alias_set): Likewise, and call get_mem_attrs.
3572         (init_emit_once): const_int_htab now deletable htab.
3573         Initialize mem_attrs_htab.
3574         * explow.c (set_mem_attributes): Delete from here.
3575         * function.c (put_var_into_stack): Clear MEM_ATTRS.
3576         (gen_mem_addressof): Likewise; rework to use set_mem_attributes.
3577         * ggc-common.c (ggc_mark_rtx_children, case MEM): New case.
3578         * reload1.c (reload): Rework changing REG to MEM.
3579
3580 2001-09-30  H.J. Lu <hjl@gnu.org>
3581
3582         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
3583         * config.in: Rebuild.
3584
3585 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3586
3587         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
3588         ("tsthi_1"): Avoid allocation in register y.
3589         ("*movqi_68hc12"): Reorganize and fix constraints.
3590         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
3591         ("addqi3"): Likewise.
3592         ("addhi3"): Fix constraints.
3593         ("*logicalhi3_zexthi"): Disparage soft registers.
3594
3595 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3596
3597         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
3598         to tmp reg.
3599
3600 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3601
3602         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
3603         that we use setjmp/longjmp exceptions.
3604
3605 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
3606
3607         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
3608         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
3609         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
3610         _cpp_pool_alloc, _cpp_next_chunk): Remove.
3611         (_cpp_extend_buff, BUFF_ROOM): Update.
3612         (_cpp_append_extend_buff): New.
3613         (struct cpp_reader): Remove macro_pool, add a_buff.
3614         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
3615         macro_pool.
3616         (cpp_destroy): Free a_buff instead of macro_pool.
3617         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
3618         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
3619         _cpp_pool_alloc, ): Remove.
3620         (parse_number, parse_string): Update use of _cpp_extend_buff.
3621         (_cpp_extend_buff): Update.
3622         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
3623         * cpplib.c (glue_header_name, parse_answer):
3624         Update use of _cpp_extend_buff.
3625         (cpp_register_pragma, cpp_register_pragma_space): Use
3626         _cpp_aligned_alloc.
3627         (do_assert, do_unassert): Check for EOL, update.
3628         * cppmacro.c (stringify_arg, collect_args): Update to use
3629         _cpp_extend_buff and _cpp_append_extend_buff.
3630         (save_parameter, parse_params, alloc_expansion_token,
3631         _cpp_create_definition): Rework memory management.
3632
3633 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
3634
3635         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
3636         update md_exec_prefix.
3637         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
3638         to string constant.
3639
3640 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3641
3642         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
3643         (SELECT_CC_MODE): Use s390_select_ccmode.
3644         * config/s390/s390-protos.h (s390_select_ccmode): Add.
3645         * config/s390/s390.c (s390_select_ccmode): New.
3646         (s390_match_ccmode): Add CCLmode.
3647         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
3648         (output_branch_condition, output_inverse_branch_condition): Removed.
3649         (print_operand): Use s390_branch_condition_mnemonic.
3650         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
3651         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
3652         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
3653
3654         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
3655         when converting conditional branches to far branches.
3656         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
3657         cmpint_di): Use CCSmode instead of CCUmode.
3658
3659         * config/s390/s390.c (legitimate_la_operand_p): New.
3660         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
3661         * config/s390/s390.md (movsi): Convert load address patterns to
3662         arithmetic operations when necessary.
3663         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
3664         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
3665         (*do_la_reg_0): Don't use before reload.
3666
3667         * config/s390/s390.c (legitimize_address): Make more efficient
3668         use of two-register addressing mode.
3669
3670         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
3671         with -mno-backchain in some corner cases.
3672
3673         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
3674
3675 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
3676
3677         * reload.c (find_reloads): Mark new USE insns with QImode.
3678         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
3679         find_reloads_subreg_address): Likewise.
3680         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
3681         encountered.
3682         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
3683         CLOBBERs.
3684         (reload): Make sure there are no USEs with mode other than
3685         VOIDmode.  At the end, remove those marked with QImode.
3686
3687 2001-09-29  Per Bothner  <per@bothner.com>
3688
3689         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
3690         * Makefile.in (includedir):  Rename to local_includedir.
3691         (includedir):  Define as $(prefix)/include.
3692         * config.in (PREFIX_INCLUDE_DIR):  New variable.
3693         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
3694
3695 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
3696
3697         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
3698         storehps builtins.
3699         * doc/extend.texi (Vector Extensions): New node.
3700         * doc/invoke.texi (Machine Dependent Options): Add documentation for
3701         i386 -mmmx, -msse, -m3dnow.
3702
3703 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
3704
3705         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
3706
3707 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
3708
3709         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
3710
3711         * doc/invoke.texi (Optimize Options): Delete spurious @table.
3712
3713 2001-09-28  Richard Henderson  <rth@redhat.com>
3714
3715         * varasm.c (assemble_integer): Bound alignment check by
3716         BIGGEST_ALIGNMENT.
3717
3718         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
3719
3720 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3721
3722         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
3723
3724 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
3725
3726         Mostly from Graham Stott  <grahams@redhat.com>
3727         * c-common.c (type_for_mode): Add support for V2SFmode.
3728         * tree.c (build_common_tree_nodes_2): Likewise.
3729         * tree.h (enum tree_index, global_trees): Likewise.
3730         * config/i386/i386.c (x86_3dnow_a): New variable.
3731         (override_options): Support 3Dnow extensions.
3732         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
3733         Athlon's version of 3Dnow.
3734         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
3735         (ix86_expand_builtin): Handle them.
3736         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
3737         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
3738         TARGET_3DNOW_A): New macros.
3739         (TARGET_SWITCHES): Add 3Dnow switches.
3740         (VALID_MMX_REG_MODE_3DNOW): New macro.
3741         (VECTOR_MODE_SUPPORTED_P): Use it.
3742         (enum ix86_builtins): Add entries for 3Dnow builtins.
3743         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
3744         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
3745         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
3746         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
3747         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
3748         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
3749         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
3750         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
3751         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
3752         sfence_insn, prefetch): Make these available if TARGET_SSE or
3753         TARGET_3DNOW_A.
3754
3755 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
3756
3757         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
3758         ix86_va_start, ix86_build_va_list): Declare.
3759         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
3760         ix86_va_start, ix86_build_va_list): New global functions.
3761         * i386.md (sse_prologue_save_insn): New insn.
3762         (sse_prologue_save): New expander.
3763         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
3764         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
3765
3766 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3767
3768         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
3769         Use size_t everywhere, make definitions consistent with
3770         prototypes.
3771
3772 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
3773
3774         * gcse.c (replace_store_insn): Use delete_insn.
3775         * loop.c (move_movables): Likewise; avoid delete_insn
3776         from clobbering notes moved elsewhere.
3777         (check_dbra_loop): Use delete_insn.
3778         * ssa.c (convert_from_ssa): Likewise.
3779         * cse.c (cse_insn): Use delete_insn.
3780
3781 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3782
3783         * cpphash.h (struct cpp_buff): Make unsigned.
3784         (_cpp_get_buff): Take length of size_t.
3785         (_cpp_unaligned_alloc): New.
3786         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
3787         (struct cpp_reader): Remove ident_pool.  Add u_buff.
3788         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
3789         (cpp_destroy): Destroy u_buff, not ident_pool.
3790         * cpplex.c (parse_number, parse_string, save_comment,
3791         cpp_token_as_text): Update to use the unaligned buffer.
3792         (new_buff): Make unsigned.
3793         (_cpp_unaligned_alloc): New.
3794         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
3795         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
3796         Similarly.
3797         (collect_args): Make unsigned.
3798
3799 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
3800
3801         * cpplex.c (cpp_output_token): Use a putc loop for
3802         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
3803
3804         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
3805         * configure, config.in: Regenerate.
3806         * system.h: Replace fwrite and fprintf with their unlocked
3807         variants if available.
3808
3809 2001-09-27  Richard Henderson  <rth@redhat.com>
3810
3811         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
3812         in favour of .eh_frame.
3813
3814 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
3815
3816         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
3817         to macros.
3818         (LIBCALL_VALUE): Likewise.
3819
3820 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3821
3822         * cpphash.h: Update comment.
3823         * cpplex.c: Update comments.
3824         (_cpp_can_paste): Remove.
3825         * cpplib.h (_cpp_can_paste): Remove.
3826         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
3827         lexer rather than _cpp_can_paste.
3828
3829 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3830
3831         * doc/cppinternals.texi: Update.
3832
3833 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3834
3835         * cpphash.h (struct cpp_pool): Remove locks and locked.
3836         (struct cpp_context): Add member buff.
3837         (struct cpp_reader): Remove member argument_pool.
3838         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
3839         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
3840         * cpplex.c (chunk_suitable): Remove pool argument.
3841         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
3842         (new_buff, _cpp_extend_buff): Update.
3843         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
3844         which buffer is returned.
3845         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
3846         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
3847         * cppmacro.c (lock_pools, unlock_pools): Remove.
3848         (push_ptoken_context): Take a _cpp_buff.
3849         (enter_macro_context): Pool locking removed.
3850         (replace_args): Use a _cpp_buff for the replacement list with
3851         arguments replaced.
3852         (push_token_context): Clear buff.
3853         (expand_arg): Use _cpp_pop_context.
3854         (_cpp_pop_context): Free a context's buffer, if any.
3855
3856 2001-09-26  DJ Delorie  <dj@redhat.com>
3857
3858         * c-typeck.c (digest_init): Check for sizeless arrays.
3859
3860 2001-09-26  Richard Henderson  <rth@redhat.com>
3861
3862         * optabs.c (init_one_libfunc): Create a dummy function type
3863         instead of using error_mark_node.
3864
3865 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3866
3867         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
3868         _cpp_extend_buff, _cpp_free_buff): New.
3869         (struct cpp_reader): New member free_buffs.
3870         * cppinit.c (cpp_destroy): Free buffers.
3871         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
3872         _cpp_extend_buff, _cpp_free_buff): New.
3873         * cpplib.h (struct cpp_options): Remove unused member.
3874         * cppmacro.c (collect_args): New.  Combines the old parse_arg
3875         and parse_args.  Use _cpp_buff for memory allocation.
3876         (funlike_invocation_p, replace_args): Update.
3877
3878 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
3879
3880         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
3881
3882 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
3883
3884         * except.c (sjlj_mark_call_sites): Change address inside sequence.
3885
3886 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
3887
3888         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
3889         glibc.
3890
3891 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
3892             Jim Wilson  <wilson@redhat.com>
3893
3894         * doc/install.texi (Specific, ia64-*-linux): Document.
3895
3896 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
3897
3898         * Makefile.in (cfgrtl.o): Add.
3899         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
3900         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
3901         free_aux_for_edge): Declare.
3902         * cfg.c
3903         (HAVE_return): Undefine.
3904         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
3905         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
3906         free_aux_for_edge): New global functions.
3907         (first_delete_block): New static variable.
3908         (init_flow): Clear first_delete_block.
3909         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
3910          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
3911          try_redirect_by_replacing_jump, last_loop_beg_note,
3912          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
3913          delete_insn, delete_insn_chain, create_basic_block_structure,
3914          create_basic_block, flow_delete_block, compute_bb_for_insn,
3915          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
3916          set_block_for_new_insns, split_block, merge_blocks_nomove,
3917          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
3918          redirect_edge_and_branch, force_nonfallthru_and_redirect,
3919          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
3920          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
3921          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
3922          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
3923          purge_all_dead_edges): Move to ....
3924         * cfgrtl.c: New file; .... Here.
3925
3926         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
3927         (reroder_basic_block): Use alloc_aux_for_blocks.
3928         * predict.c (estimate_bb_frequencies): Likewise; use
3929         alloc_aux_for_edges.
3930         * profile.c (compute_branch_probabilities): Likewise.
3931         (branch_prob): Likewise.
3932         * reg-stack.c (reg_to_stack): Likewise.
3933
3934         * emit-rtl.c (emit_insns_after): Never return NULL.
3935
3936         * basic-block.h (set_block_for_new_insns): Delete.
3937         * cfgrtl.c (set_block_for_new_insns): Delete.
3938
3939         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
3940         calls when crossjumping.
3941
3942         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
3943         * unroll.c (copy_loop_body): Use delete_insn.
3944
3945         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
3946         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
3947         keep_stack_depressed): Likewise.
3948         * gcse.c (cprop_cc0_jump): Likewise.
3949         * local-alloc.c (update_equiv_regs): Likewise.
3950         * loop.c (scan_loop, loop_delete_insns): Likewise.
3951         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
3952         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
3953         delete_output_reload, delete_address_reloads_1,
3954         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
3955         Likewise.
3956         * sibcall.c (replace_call_placeholder): Likewise.
3957         * cse.c (cse_insn): Likewise.
3958
3959 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
3960
3961         From Graham Stott  <grahams@redhat.com>
3962         (def_builtin): Only define builtins appropriate for target_flags.  All
3963         callers changed.
3964         (builtin_decsription): Add new field mask which is used to determine
3965         when to define the builtin via the macro def_builtin.
3966
3967         (bdesc_comi): Initialise new mask fields.
3968         (bdesc_2srg): Likewise.
3969         (bdesc_1arg): Likewise.
3970
3971         * config/i386/i386.c (ix86_init_builtins): Correct return type
3972         building v4hi_ftype_v4hi_int_int tree node.
3973         (ix86_expand_sse_comi): Fix typo swapping operands.
3974         Don't swap comparision condition, it is already swapped.
3975         (ix86_expand_sse_compare): Before swapping operands
3976         move operand 1 into new rtx and not the target rtx.
3977         Don't swap comparison condition, it is already swapped.
3978         Always check whether we need to create a new TARGET.
3979
3980         * config/i386/i386.md: (sse_comi) Fix typos.
3981         (sse_ucomi): Likewise.
3982         (cvtss2si): Fix operand 0 contraint.
3983         (cvttss2si): Likewise.
3984         (sse_unpckhps): Fix mode for operand 2.
3985         (sse_unpcklps): Likewise.
3986
3987 2001-09-25  Graham Stott  <grahams@redhat.com>
3988
3989         * sibcall.c (skip_copy_to_return_value): Tighten return value
3990         copy check.
3991
3992 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
3993
3994         * rs6000.c (lwa_operand): Address must be word aligned.
3995
3996 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3997
3998         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
3999         number has been set.
4000         (type_hash_mark): Mark type itself.
4001
4002 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4003
4004         * c-lex.c (cb_def_pragma): Update.
4005         (c_lex): Update, and skip padding.
4006         * cppexp.c (lex, parse_defined): Update, remove unused variable.
4007         * cpphash.h (struct toklist): Delete.
4008         (union utoken): New.
4009         (struct cpp_context): Update.
4010         (struct cpp_reader): New members eof, avoid_paste.
4011         (_cpp_temp_token): New.
4012         * cppinit.c (cpp_create_reader): Update.
4013         * cpplex.c (_cpp_temp_token): New.
4014         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
4015         (cpp_output_token): Don't print leading whitespace.
4016         (cpp_output_line): Update.
4017         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
4018         do_include_common, do_line, do_ident, do_pragma,
4019         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
4020         parse_assertion): Update.
4021         (get_token_no_padding): New.
4022         * cpplib.h (CPP_PADDING): New.
4023         (AVOID_LPASTE): Delete.
4024         (struct cpp_token): New union member source.
4025         (cpp_get_token): Update.
4026         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
4027         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
4028         replace_args, quote_string, stringify_arg, parse_arg, next_context,
4029         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
4030         _cpp_backup_tokens, _cpp_create_definition): Update.
4031         (push_arg_context): Delete.
4032         (padding_token, push_token_context, push_ptoken_context): New.
4033         (make_string_token, make_number_token): Update, rename.
4034         (cpp_get_token): Update to handle tokens as pointers to const,
4035         and insert padding appropriately.
4036         * cppmain.c (struct printer): New member prev.
4037         (check_multiline_token): Constify.
4038         (do_preprocessing, cb_line_change): Update.
4039         (scan_translation_unit): Update to handle spacing.
4040         * scan-decls.c (get_a_token): New.
4041         (skip_to_closing_brace, scan_decls): Update.
4042         * fix-header.c (read_scan_file): Update.
4043
4044         * doc/cpp.texi: Update.
4045
4046 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4047
4048         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
4049         leak by passing malloc'ed pointer to reconcat, not concat.
4050
4051 2001-09-24  DJ Delorie  <dj@redhat.com>
4052
4053         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
4054
4055 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
4056
4057         * flow.c (delete_dead_jumptables): Delete jumptable if the only
4058         reference is from the literal pool.
4059
4060 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
4061
4062         * doc/install.texi (Final install): Request additional information
4063         in mail about successful builds.
4064
4065 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4066
4067         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
4068         initial value of return pointer register instead of value in frame-20.
4069         Revise comments.
4070
4071 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4072
4073         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
4074         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
4075         the libcall if there isn't a referenced identifier for the symbol.
4076
4077 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4078
4079         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
4080         non 64-bit machines.  Use these as a plabel for the trampoline.
4081         (TRAMPOLINE_SIZE): Adjust size for new words.
4082         (INITIALIZE_TRAMPOLINE): Initialize new words.
4083         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
4084         pointer to the plabel in the trampoline.
4085
4086 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4087
4088         * pa.c (function_arg): Pass floating arguments in both general and
4089         floating registers in indirect (dynamic) calls when generating code
4090         for the 32 bit ABI and the HP assembler.
4091
4092 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4093
4094         * doc/install.texi: Markup fixes.
4095         Use Solaris 2, SunOS 4 as appropriate.
4096         (Specific, *-*-solaris2*): Explain this.
4097         Unconditionally warn against /usr/ucb tools.
4098         Remove Sun as warning, obsolete.
4099         Move X11 header bug workaround here, update patches.
4100         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
4101         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
4102
4103 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
4104
4105         * errors.h (warning, error, fatal, internal_error): Don't mark
4106         with ATTRIBUTE_PRINTF_n.
4107         * toplev.h (internal_error, fatal_io_error, warning, error,
4108         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
4109         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
4110         Likewise.
4111
4112 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4113
4114         * function.c (pop_function_context_from): var_refs_queue
4115         and temp slots now in GC memory.
4116         (mark_function_status, free_after_compilation): Likewise;
4117         also struct function now in GC memory.
4118         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
4119         (combine_temp_slots): Likewise.
4120         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
4121         (prepare_function_start): Use GC memory for struct function.
4122         (mark_temp_slot): Deleted.
4123         (gcc_mark_struct_function): struct function now in GC memory.
4124
4125         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
4126         code for division, not modulus.
4127
4128         * rtl.def (MEM): Remove obsolete part of comment.
4129
4130 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
4131
4132         * c-format.c (init_function_format_info): Check __builtin_printf
4133         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
4134         in gnu89 mode.
4135
4136 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4137
4138         * c-common.c (format_attribute_table): Remove decl.
4139         * tree.h (format_attribute_table, lang_attribute_table): New decls.
4140         (lang_attribute_common): Likewise.
4141
4142         * function.c (fix_lexical_address): Use set_mem_alias_set.
4143         (expand_function_start): Likewise.
4144         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
4145
4146         * varasm.c (output_constant): Fix unused variable warning.
4147
4148         * attribs.c: New file, from c-common.c.
4149         (attribute_tables): Now four elements.
4150         (format_attribute_table, lang_attribute_common): New variables.
4151         (init_attributes): Reflect above changes.
4152         (handle_mode_attribute): Delete check for wider than uintmax.
4153         * c-common.c: Delete parts moved to attribs.c.
4154         (enum attrs): Deleted; unused.
4155         (c_format_attribute_table): New variable.
4156         (c_common_lang_init): Initialize format_attribute_table with it.
4157         * c-common.h (decl_attributes): Remove decl.
4158         * tree.h (decl_attribute): Move it to here.
4159         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
4160         (attribs.o): New rule.
4161
4162 2001-09-22  Andreas Jaeger  <aj@suse.de>
4163
4164         * builtins.c (c_getstr): Remove unused variable.
4165
4166 2001-09-21  Richard Henderson  <rth@redhat.com>
4167
4168         * reload1.c (reload): Use delete_insn instead of splatting
4169         NOTE_INSN_DELETED.
4170
4171 2001-09-21  Richard Henderson  <rth@redhat.com>
4172
4173         * reload.c (push_secondary_reload): Don't check for "=" in output
4174         constraint after ""->ALL_REGS check.
4175
4176 2001-09-21  Richard Henderson  <rth@redhat.com>
4177
4178         * predict.c (expected_value_to_br_prob): Use pc_set.
4179
4180         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
4181         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
4182
4183 2001-09-21  Richard Henderson  <rth@redhat.com>
4184
4185         * rtl.h (LCT_RETURNS_TWICE): New.
4186         * calls.c (emit_call_1): Set current_function_calls_setjmp for
4187         ECF_RETURNS_TWICE.
4188         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
4189         to ECF_RETURNS_TWICE.
4190         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
4191         call to setjmp.
4192
4193         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
4194
4195         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
4196         (JMP_BUF_SIZE): New.
4197
4198 2001-09-21  Richard Henderson  <rth@redhat.com>
4199
4200         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
4201         to R8_REGS.
4202
4203 2001-09-21  Richard Henderson  <rth@redhat.com>
4204
4205         * tree.def (FDESC_EXPR): New.
4206         * expr.c (expand_expr): Handle it.
4207         * varasm.c (initializer_constant_valid_p): Likewise.
4208         (output_constant): Likewise.
4209         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
4210         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
4211         (ASM_OUTPUT_FDESC): New.
4212         * doc/tm.texi: Document the new macros.
4213
4214 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
4215
4216         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
4217         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
4218         once merging is complete.
4219
4220 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4221
4222         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
4223
4224 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
4225
4226         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
4227         that would be invalid after a merge.
4228
4229 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
4230
4231         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
4232         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
4233         remove some labels.
4234         (flow_delete_insn): This one.
4235         (delete_insn_chain): Rename from ...; do not care labels.
4236         (flow_delete_insn_chain): ... this one.
4237         (flow_delete_block): Remove the insns one BB has been expunged.
4238         (merge_blocks_nomove): Likewise.
4239         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
4240         updating BB boundaries.
4241         (tidy_fallthru_edge): Likewise.
4242         (commit_one_edge_insertion): Likewise.
4243         * cfgbuild.c (find_basic_block): Likewise.
4244         (find_basic_blocks_1): Likewise.
4245         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
4246         (try_crossjump_to_edge): Likewise.
4247         (try_optimize_cfg): Likewise.
4248         * cse.c (delete_trivially_dead_insns): Likewise.
4249         * df.c (df_insn_delete): Likewise.
4250         * doloop.c (doloop_modify): Use delete_related_insns.
4251         * emit-rtl.c (try_split): Likewise.
4252         (remove_insn): Update BB boundaries.
4253         * expect.c (connect_post_landing_pads): Use delete_related_insns.
4254         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
4255         updating BB boundaries.
4256         (propagate_block_delete_insn): Likewise.
4257         (propagate_block_delete_libcall): Likewise.
4258         * function.c (delete_handlers): Use delete_related_insns.
4259         (thread_prologue_and_epilogue_insns): Likewise.
4260         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
4261         * genpeep.c (gen_peephole): Use delete_related_insns.
4262         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
4263         BB boundaries.
4264         (find_cond_trap): Likewise.
4265         * integrate.c (save_for_inline): Use delete_related_insns.
4266         (copy_insn_list): Likewise.
4267         * jump.c (pruge_linie_number_notes): Likewise.
4268         (duplicate_loop_exit_test): Likewise.
4269         (delete_computation): Likewise.
4270         (delete_related_insn): Rename from ...; use delete_insn
4271         (delete_insn): ... this one.
4272         (redirect_jump): Use delete_related_insns.
4273         * loop.c (scan_loop): Likewise.
4274         (move_movables): Likewise.
4275         (find_and_verify_loops): Likewise.
4276         (check_dbra_loop): Likewise.
4277         * recog.c (peephole2_optimize): Likewise.
4278         * reg-stack.c (delete_insn_for_stacker): Remove.
4279         (move_for_stack_reg): Use delete_insn.
4280         * regmove.c (combine_stack_adjustments_for_block): Likewise.
4281         * reload1.c (delete_address_reloads): Use delete_related_insns.
4282         (fixup_abnormal_edges): Use delete_insn.
4283         * recog.c (emit_delay_sequence): Use delete_related_insns.
4284         (delete_from-delay_slot): Likewise.
4285         (delete_scheduled_jump): likewise.
4286         (optimize_skip): Likewise.
4287         (try_merge_delay_insns): Likewise.
4288         (full_simple_delay_slots): Likewise.
4289         (fill_slots_from_thread): Likewise.
4290         (relax_delay_slots): Likewise.
4291         (make_return_insns): Likewise.
4292         (dbr_schedule): Likewise.
4293         * rtl.h (delete_insn): Rename to delete_related_insns.
4294         (delete_insn, delete_insn_chain): New prototypes.
4295         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
4296         by df_insn_delete already.
4297         * ssa-dce.c (delete_insn_bb): Use delete_insn.
4298         * ssa.c (convert_from_ssa): Use delete_related_insns.
4299         * unroll.c (unroll_loop): Likewise.
4300         (calculate_giv_inc): Likewise.
4301         (copy_loop_body): Likewise.
4302
4303         * i386-protos.h (ix86_libcall_value, ix86_function_value,
4304         ix86_function_arg_regno_p, ix86_function_arg_boundary,
4305         ix86_return_in_memory, ix86_function_value): Declare.
4306         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
4307         new static valurables.
4308         (x86_64_reg_class): New enum
4309         (x86_64_reg_class_name): New array.
4310         (classify_argument, examine_argument, construct_container,
4311          merge_classes): New static functions.
4312         (optimization_options): Enable flag_omit_frame_pointer and disable
4313         flag_pcc_struct_return on 64bit.
4314         (ix86_libcall_value, ix86_function_value,
4315         ix86_function_arg_regno_p, ix86_function_arg_boundary,
4316         ix86_return_in_memory, ix86_function_value): New global functions.
4317         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
4318         (function_arg_advance): Handle x86_64 passing conventions.
4319         (function_arg): Likewise.
4320         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
4321         (RETURN_IN_MEMORY): Move offline.
4322         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
4323         (FUNCTION_VALUE_REGNO_P): New macro.
4324         (FUNCTION_ARG_REGNO_P): Move offline.
4325         (struct ix86_args): Add maybe_vaarg.
4326         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
4327         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
4328
4329 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
4330
4331         * s390.md: Changed attributes for scheduling.
4332         * s390.c: (s390_adjust_cost, s390_adjust_priority)
4333         Changed scheduling
4334
4335 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
4336
4337         Table-driven attributes.
4338         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
4339         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
4340         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
4341         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
4342         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
4343         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
4344         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
4345         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
4346         * tree.h (struct tree_decl): Change machine_attributes to
4347         attributes.
4348         * doc/c-tree.texi: Document that all attributes are now attached
4349         to decls and types.
4350         * c-common.c (add_attribute, attrtab, attrtab_idx,
4351         default_valid_lang_attribute, valid_lang_attribute): Remove.
4352         (attribute_tables, attributes_initialized,
4353         c_common_attribute_table, default_lang_attribute_table): New
4354         variables.
4355         (handle_packed_attribute, handle_nocommon_attribute,
4356         handle_common_attribute, handle_noreturn_attribute,
4357         handle_unused_attribute, handle_const_attribute,
4358         handle_transparent_union_attribute, handle_constructor_attribute,
4359         handle_destructor_attribute, handle_mode_attribute,
4360         handle_section_attribute, handle_aligned_attribute,
4361         handle_weak_attribute, handle_alias_attribute,
4362         handle_no_instrument_function_attribute,
4363         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
4364         handle_no_limit_stack_attribute, handle_pure_attribute): New
4365         functions.
4366         (init_attributes, decl_attributes): Rewrite to implement
4367         table-driven attributes.
4368         * c-common.h (enum attribute_flags): Move to tree.h.
4369         * c-format.c (decl_handle_format_attribute,
4370         decl_handle_format_arg_attribute): Rename to
4371         handle_format_attribute and handle_format_arg_attribute.  Update
4372         for table-driven attributes.
4373         * c-common.h (decl_handle_format_attribute,
4374         decl_handle_format_arg_attribute): Remove prototypes.
4375         (handle_format_attribute, handle_format_arg_attribute): Add
4376         prototypes.
4377         * c-decl.c (grokdeclarator): Handle attributes nested inside
4378         declarators.
4379         * c-parse.in (setattrs, maybe_setattrs): Remove.
4380         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
4381         Update to handle nested attributes properly.
4382         (maybe_resetattrs, after_type_declarator,
4383         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
4384         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
4385         properly.
4386         (make_pointer_declarator): Update to handle nested attributes
4387         properly.
4388         * doc/extend.texi: Update documentation of limits of attributes
4389         syntax.  Warn about problems with attribute semantics in C++.
4390         * target.h (struct target): Remove valid_decl_attribute and
4391         valid_type_attribute.  Add attribute_table and
4392         function_attribute_inlinable_p.
4393         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
4394         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
4395         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
4396         Add.
4397         (TARGET_INITIALIZER): Update.
4398         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
4399         definition.
4400         (function_attribute_inlinable_p): New function.  Check for the
4401         presence of any machine attributes before using
4402         targetm.function_attribute_inlinable_p.
4403         (function_cannot_inline_p): Update.
4404         * Makefile.in (integrate.o): Update dependencies.
4405         * doc/tm.texi: Update documentation of target attributes and
4406         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
4407         * tree.c (default_valid_attribute_p, valid_machine_attribute):
4408         Remove.
4409         (default_target_attribute_table,
4410         default_function_attribute_inlinable_p): New.
4411         (lookup_attribute): Update comment to clarify handling of multiple
4412         attributes with the same name.
4413         (merge_attributes, attribute_list_contained): Allow multiple
4414         attributes with the same name but different arguments to appear in
4415         the same attribute list.
4416         * tree.h (default_valid_attribute_p): Remove prototype.
4417         (struct attribute_spec): New.
4418         (default_target_attribute_table): Declare.
4419         (enum attribute_flags): Move from c-common.h.  Add
4420         ATTR_FLAG_TYPE_IN_PLACE.
4421         (default_function_attribute_inlinable_p): Declare.
4422         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
4423         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4424         (TARGET_ATTRIBUTE_TABLE): Define.
4425         (vms_attribute_table): New.
4426         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
4427         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4428         (TARGET_ATTRIBUTE_TABLE): Define.
4429         (arc_attribute_table, arc_handle_interrupt_attribute): New.
4430         * config/arm/arm.c (arm_valid_type_attribute_p,
4431         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
4432         Remove.
4433         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
4434         define.
4435         (TARGET_ATTRIBUTE_TABLE): Define.
4436         (arm_attribute_table, arm_handle_fndecl_attribute,
4437         arm_handle_isr_attribute): New.
4438         * config/avr/avr.c (avr_valid_type_attribute,
4439         avr_valid_decl_attribute): Remove.
4440         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
4441         define.
4442         (TARGET_ATTRIBUTE_TABLE): Define.
4443         (avr_attribute_table, avr_handle_progmem_attribute,
4444         avr_handle_fndecl_attribute): New.
4445         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
4446         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4447         (TARGET_ATTRIBUTE_TABLE): Define.
4448         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
4449         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
4450         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4451         (TARGET_ATTRIBUTE_TABLE): Define.
4452         (h8300_attribute_table, h8300_handle_fndecl_attribute,
4453         h8300_handle_eightbit_data_attribute,
4454         h8300_handle_tiny_data_attribute): New.
4455         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
4456         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
4457         Remove prototypes.
4458         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
4459         declarations.
4460         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
4461         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
4462         define.
4463         (TARGET_ATTRIBUTE_TABLE): Define.
4464         (ix86_attribute_table, ix86_handle_cdecl_attribute,
4465         ix86_handle_regparm_attribute): New.
4466         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
4467         i386_pe_valid_type_attribute_p): Remove.
4468         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
4469         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
4470         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4471         (TARGET_ATTRIBUTE_TABLE): Define.
4472         (ia64_attribute_table): New.
4473         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
4474         interrupt_ident2, model_ident1, model_ident2): Remove.
4475         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4476         (TARGET_ATTRIBUTE_TABLE): Define.
4477         (init_idents): Update.
4478         (m32r_attribute_table, m32r_handle_model_attribute): New.
4479         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
4480         Remove.
4481         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4482         (TARGET_ATTRIBUTE_TABLE): Define.
4483         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
4484         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
4485         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4486         (TARGET_ATTRIBUTE_TABLE): Define.
4487         (mcore_attribute_table, mcore_handle_naked_attribute): New.
4488         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
4489         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4490         (TARGET_ATTRIBUTE_TABLE): Define.
4491         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
4492         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
4493         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
4494         (TARGET_ATTRIBUTE_TABLE): Define.
4495         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
4496         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
4497         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4498         (TARGET_ATTRIBUTE_TABLE): Define.
4499         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
4500         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4501         New.
4502         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
4503         Remove.
4504         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
4505         (TARGET_ATTRIBUTE_TABLE): Define.
4506         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
4507         New.
4508         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
4509         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
4510         (TARGET_ATTRIBUTE_TABLE): Define.
4511         (v850_attribute_table, v850_handle_interrupt_attribute,
4512         v850_handle_data_area_attribute): New.
4513         * config/v850/v850-c.c (mark_current_function_as_interrupt):
4514         Return void.  Call decl_attributes instead of
4515         valid_machine_attribute.
4516
4517 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
4518
4519         * sh-protos.h (sh_pr_n_sets): Declare.
4520         * sh.c (calc_live_regs): If the initial value for PR has been copied,
4521         look at the copy to determine if PR needs to be saved.
4522         sh_pr_n_sets: New function.
4523         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
4524         (ALLOCATE_INITIAL_VALUE): Define.
4525
4526         * sh.c (initial_elimination_offset):
4527         Fix RETURN_ADDRESS_POINTER_REGNUM case.
4528
4529 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
4530
4531         * integrate.c (allocate_initial_values): New function.
4532         * integrate.h (allocate_initial_values): Declare.
4533         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
4534         here...
4535         * reload1.c (reload): And initialization of reg_equiv_memory_loc
4536         from here...
4537         * toplev.c (rest_of_compilation): To here.
4538         Call allocate_initial_values.
4539         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
4540
4541 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4542
4543         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
4544
4545 2001-09-20  DJ Delorie  <dj@redhat.com>
4546
4547         * c-typeck.c (really_start_incremental_init): Discriminate
4548         between zero-length arrays and flexible arrays.
4549         (push_init_level): Detect zero-length arrays and handle them
4550         like fixed-sized arrays.
4551         * expr.c (store_constructor): Handle zero-length arrays and
4552         flexible arrays correctly.
4553         * doc/extend.texi: Update zero-length array notes.
4554
4555 2001-09-20  Jim Wilson  <wilson@redhat.com>
4556
4557         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
4558         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
4559         for issue port conflicts.
4560         (cycle_end_fill_slots): TYPE_L instructions take two slots.
4561
4562 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
4563
4564         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
4565         on ia64.
4566
4567 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4568
4569         * fold-const.c (hashtab.h): Include.
4570         (int_const_binop): Remove FORSIZE arg and compute from type; all
4571         callers changed.
4572         Call size_int_type_wide for all single-word constants.
4573         (size_htab_hash, size_htab_eq): New functions.
4574         (size_int_type_wide): Rework to use hash table.
4575         * ggc-common.c (hashtab.h): Include.
4576         (struct d_htab_root): New struct.
4577         (d_htab_roots): New variable.
4578         (ggc_add_deletable_htab, ggc_htab_delete): New functions
4579         (ggc_mark_roots): Handle deletable htabs.
4580         * ggc-page.c (ggc_marked_p): New function.
4581         * ggc-simple.c (ggc_marked_p): Likewise.
4582         * ggc.h: Reformatting throughout.
4583         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
4584         * tree.c (init_obstacks): Make type_hash_table a deletable root.
4585         (type_hash_add): Allocate struct type_hash from GC memory.
4586         (mark_hash_entry, mark_type_hash): Deleted.
4587         (type_hash_marked_p, type_hash_mark): New functions.
4588         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
4589
4590 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
4591
4592         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
4593         than SImode.
4594
4595 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4596
4597         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
4598         array-too-large test for signed sizetype.
4599
4600 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
4601
4602         * i386.md (indirect_jump): Allow Pmode operand.
4603         (tablejump): LIkewise; perform expansion to 64bit mode.
4604         * i386.c (symbolic_operand): Allow 64bit PIC references.
4605         (pic_symbolic_operand): Likewise.
4606         (ix86_find_base_term): Strip the 64bit PIC references.
4607         (legitimate_pic_address_disp_p): Handle 64bit PIC.
4608         (legitimize_pic_address): Likewise.
4609         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
4610         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
4611
4612 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
4613
4614         * stringpool.c (get_identifier_with_length): New function.
4615         * tree.h (get_identifier_with_length): New prototype.
4616
4617 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
4618             David Edelsohn  <edelsohn@gnu.org>
4619
4620         Revert:
4621         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
4622         already sign-extended.
4623
4624         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
4625         * config/rs6000/rs6000.c (logical_operand): Always compare op as
4626         HOST_WIDE_INT.
4627         (rs6000_emit_set_long_const): Avoid unnecessary shift.
4628         (output_profile_hook): Declare label_name const.
4629         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
4630         to match constraints.
4631
4632 2001-09-19  Stan Shebs  <shebs@apple.com>
4633
4634         * alias.c: Fix typos in comments.
4635         * sched-rgn.c (init_ready_list): Ditto.
4636         * unwind-dw2.c (uw_frame_state_for): Ditto.
4637         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
4638         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
4639         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
4640
4641 2001-09-19  Richard Henderson  <rth@redhat.com>
4642
4643         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
4644         to the exit block.
4645         * Makefile.in (cfg.o): Depend on TM_P_H.
4646
4647 2001-09-19  Richard Henderson  <rth@redhat.com>
4648
4649         * config/alpha/alpha.c (local_symbol_p): Split out from ...
4650         (local_symbolic_operand): ... here.
4651         (small_symbolic_operand): Check mode.
4652         (global_symbolic_operand): New.
4653         (input_operand): Reject symbolics if explicit relocs.
4654         (call_operand): Tidy.
4655         (alpha_legitimize_address): Use movdi_er_high_g.
4656         (alpha_expand_mov): Likewise.
4657         * config/alpha/alpha-protos.h: Update.
4658         * config/alpha/alpha.h (PREDICATE_CODES): Update.
4659         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
4660         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
4661         (UNSPECV_LDGP2): Remove.
4662         (all call patterns): Use 's' not 'i' for symbolic constraint.
4663         (call_osf call_value_osf): Use call_operand.
4664         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
4665         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
4666         (prologue_ldgp_1_er): Remove.
4667         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
4668         (builtin_setjmp_receiver_er patterns): Use them.
4669         (exception_receiver_er): Likewise.
4670
4671 2001-09-19  Richard Henderson  <rth@redhat.com>
4672
4673         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
4674
4675         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
4676         and NON_LOCAL_GOTO notes.
4677         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
4678         copy over CALL_INSN_FUNCTION_USAGE.
4679
4680 2001-09-18  Catherine Moore  <clm@redhat.com>
4681
4682         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
4683         Define as 0.
4684
4685 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
4686
4687         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
4688         new-style tm_file specification.  Specify correct tm_p_file,
4689         md_file, and out_file for s390x.
4690
4691         * config/s390/linux.h, linux64.h:  Don't include other target
4692         macro header files.  Now handled via tm_file.
4693
4694         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
4695         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
4696         are defined before use.
4697
4698 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
4699
4700         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
4701         code generation only for Gnu assembler.
4702
4703 2001-09-18  Catherine Moore  <clm@redhat.com>
4704
4705         * config/stormy16 (LIB_SPEC): Remove -lnosys.
4706
4707 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
4708
4709         * config/mips/mips.c (mips_frame_set): New.
4710         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
4711         a parallel frame-related expression with a set for each register.
4712
4713 2001-09-18  Philip Blundell  <philb@gnu.org>
4714
4715         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
4716         header files.
4717
4718 2001-09-17  Dale Johannesen  <dalej@apple.com>
4719
4720         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
4721         * config/rs6000/aix.h (FIXED_R2): Define.
4722         * config/rs6000/darwin.h (FIXED_R2): Define.
4723         * config/rs6000/sysv4.h (FIXED_R2): Define.
4724
4725 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
4726
4727         * except.c (dw2_build_landing_pads): New local
4728         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
4729         barrier after clobbers.  Fixes c++/4012.
4730
4731 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4732
4733         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
4734
4735 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
4736
4737         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
4738         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
4739
4740 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4741
4742         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
4743         alloca/strcpy.
4744
4745 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4746
4747         * cpphash.h (_cpp_lex_direct): New.
4748         * cpplex.c (_cpp_lex_token): Update.
4749         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
4750         and increment that pointer.
4751         * cppmacro.c (alloc_expansion_token): New.
4752         (lex_expansion_token): Lex macro expansion directly into
4753         macro storage.
4754
4755 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
4756
4757         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
4758
4759 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
4760
4761         * basic-block.h (free_bb_for_insn): Declare.
4762         * bb-reorder.c (label_for_bb): Use block_label.
4763         (emit_jump_to_block_after): Remove.
4764         (insert_intra_1): Do not update block_for_insn.
4765         (insert_inter_bb_scope_notes): Likewise; update bb->end
4766         * cfg.c (free_bb_for_insn): New.
4767         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
4768         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
4769         (commit_one_edge_insertion): Likewise.
4770         (commit_one_edge_insertion): Do not update BB boundary.
4771         (commit_edge_insertions): Do not call compute_bb_for_insn.
4772         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
4773         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
4774         (merge_blocks_move_successor_nojumps): Likewise.
4775         (try_crossjump_to_edge): Do not update block_for_insn.
4776         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
4777         * df.c (df_pattern_emit_later): Do not update BB boundary.
4778         (df_jump_pattern_emit_after): Likewise.
4779         (df_insn_move_before): Use emit_insn_before.
4780         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
4781          properly.
4782         (add_insn_after, add_insn_before, emit_insns_after): Update BB
4783         boundaries and basic_block_for_insn.
4784         (reorder_insns_nobb): Rename from reorder_insns.
4785         (reorder_insns): New.
4786         (emit_block_insn_before, emit_block_insn_after): Kill.
4787         * flow.c (check_function_return_warnings): Do not call
4788         compute_bb_for_insn; Do not free basic_block_for_insn.
4789         (attempt_auto_inc): Do not update basic_block_for_insn.
4790         * function.c (emit_return_into_block): Likewise;
4791         do not update BB boundaries.
4792         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
4793         (insert_insn_end_bb): Use emit_insn_before; Likewise.
4794         (pre_insert_copy_insn): Likewise.
4795         (update_ld_motion_notes): Likewise.
4796         (insert_insn_start_bb): Likewise.
4797         (replace_store_insn): Likewise.
4798         * ifcvt.c (noce_process_if_block): Likewise.
4799         (if_convert): Do not call compute_bb_for_insn.
4800         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
4801         Use emit_insn_before and emit_insn_after.
4802         * recog.c (split_all_insns): Do not update BB boundaries;
4803         Do not call compute_bb_for_insn.
4804         (peephole2_optimize): Do not update BB boundaries.
4805         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
4806         emit_insn_before.
4807         (emit_swap_insn): Likewise.
4808         (convert_regs_1): Likewise.
4809         * reload1.c (reload): Call compute_bb_for_insn.
4810         * rtl.h (reorder_insns_nobb): Declare.
4811         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
4812         * toplev.c (rest_of_compilation): Call free_bb_for_insn
4813         at places CFG is invalidated; do not call compute_bb_for_insn.
4814
4815         * cfg.c (expunge_block): Invalidate BB structure.
4816
4817         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
4818         array.
4819
4820         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
4821
4822 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4823
4824         * cpphash.h (_cpp_lex_token): Update prototype.
4825         * cpplex.c (_cpp_lex_token): New prototype.
4826         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
4827         lex_macro_node, read_flag, do_pragma_poison): Update.
4828         * cppmacro.c (cpp_get_token, parse_params,
4829         lex_expansion_token): Update.
4830
4831 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4832
4833         * cppmain.c (scan_translation_unit): Don't worry about
4834         putting a space after hashes.
4835         * cpplib.c (directive_diagnostics): New.
4836         (_cpp_handle_directive): Update to use directive_diagnostics.
4837         (run_directive): Don't toggle prevent_expansion.
4838         (do_line): Backup in case of the line extension.
4839         * cpplib.h (cpp_lexer_pos): Remove.
4840         * cppmacro.c (_cpp_create_definition): Precede a leading #
4841         with whitespace.
4842
4843 2001-09-15  Richard Henderson  <rth@redhat.com>
4844
4845         * c-typeck.c (comptypes): Handle zero-length arrays properly.
4846
4847 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4848
4849         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
4850
4851 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4852
4853         PR preprocessor/3571
4854         * tradcpp.c (handle_directive): Skip non-vertical space.
4855
4856 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4857
4858         * cppmain.c (setup_callbacks): Set line callback only
4859         if outputting preprocessed source.
4860
4861 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4862
4863         * collect2.c (main): Const-ification.
4864         * gcc.c (translate_options, process_command): Use xstrdup in
4865         lieu of xmalloc/strcpy.
4866         (main): Use concat in lieu of xmalloc/strcpy/strcat.
4867
4868 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4869
4870         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
4871         example.
4872
4873 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4874
4875         * scan-decls.c (scan_decls): Fix typo.
4876
4877 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
4878
4879         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
4880         Split mlstring_pos into mls_line and mls_col.
4881         * cppinit.c (cpp_create_reader): Initialize line to 1.
4882         (cpp_destroy): Free tokenruns.
4883         (push_include): Don't update lexer_pos.
4884         * cpplex.c (unterminated, parse_string): Update.
4885         (lex_token): Don't update lexer_pos, update.
4886         * cpplib.c (if_stack): Save line instead of line + col.
4887         (start_directive, _cpp_do__Pragma, do_else, do_elif,
4888         push_conditional, _cpp_pop_buffer): Update.
4889         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
4890         (_cpp_create_definition): Update.
4891
4892 2001-09-15  Eric Christopher  <echristo@redhat.com>
4893
4894         * config/mips/abi64.h: Add support for MEABI.
4895
4896 2001-09-15  Eric Christopher  <echristo@redhat.com>
4897
4898         * config/mips/mips.md: Add unspec #2.
4899         (reload_indi): Use.
4900         (reload_outdi): Ditto.
4901         (reload_outsi): Ditto.
4902         (HILO_delay): New.
4903
4904 2001-09-15  Eric Christopher  <echristo@redhat.com>
4905             Jason Eckhardt  <jle@redhat.com>
4906
4907         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
4908         * config/mips/isa32-linux.h: New file.
4909         * config/mips/isa3264.h: Ditto.
4910         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
4911         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
4912         (output_block_mode): Support MEABI.
4913         (function_arg): Ditto. Fix floating point arg passing.
4914         (mips_va_start): Ditto.
4915         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
4916         processors.
4917         (mips_asm_file_start): Add new section to pass abi to gdb.
4918         (function_arg_pass_by_reference): Support MEABI.
4919         (mips_parse_cpu): Support mips32 and mips64 processors.
4920         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
4921         TARGET_MIPS5KC.  Support isa32 and isa64.
4922         (processor_type): Add r4kc, r5kc, r20kc.
4923         (GENERATE_MULT3_SI): New.
4924         (GENERATE_MULT3_DI): Ditto.
4925         (GENERATE_MULT3): Remove.
4926         (ISA_HAS_64BIT_REGS): Add isa == 64.
4927         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
4928         (ISA_HAS_MADD_MSUB): New.
4929         (ISA_HAS_CLZ_CLO): Ditto.
4930         (ISA_HAS_DCLZ_DCLO): Ditto.
4931         (ABI_GAS_ASM_SPEC): New.
4932         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
4933         (ASM_SPEC): Ditto.
4934         (LINK_SPEC): Ditto.
4935         (SUBTARGET_CC1_SPEC): Ditto.
4936         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
4937         (PAD_VARARGS_DOWN): Support MEABI.
4938         (HARD_REGNO_NREGS): Move to mips.c.
4939         (ASM_OUTPUT_IDENT): Add #undef.
4940         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
4941         (mulsi3): Use GENERATE_MULT3_SI.
4942         (mulsi3_mult3): Ditto.  Support mips32, mips64.
4943         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
4944         (mul_sub_si): New pattern.
4945         (unnamed splitters): New.
4946         (muldi3): Use GENERATE_MULT3_DI.
4947         (muldi3_internal2): Ditto.
4948         (movdicc): Support mips32.
4949         * config/mips/t-isa3264: New file.
4950
4951 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
4952
4953         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
4954         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
4955         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
4956
4957         * reorg.c (fill_slots_from_thread): After call to
4958         steal_delay_list_from_target, update own_thread as new_thread may
4959         have branched.
4960
4961 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4962
4963         * cpperror.c (print_location): Take line and column, for
4964         default positioning use the previously lexed token.
4965         (_cpp_begin_message): Take line and column.
4966         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
4967         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
4968         * cpphash.h (_cpp_begin_message): Update prototype.
4969         * cppinit.c (push_include): Don't set output line.
4970         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
4971         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
4972         (do_pragma): Kludge for front ends.  Don't expand macros at all.
4973         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
4974         (struct cpp_token): Remove output_line.
4975         (struct cpp_callbacks): New member line_change.
4976         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
4977         cpp_get_token): Preserve BOL flag.
4978         (cpp_get_line): Remove.
4979         (_cpp_backup_tokens): Remove useless abort().
4980         * cppmain.c (cb_line_change): New.
4981         (scan_translation_unit): Don't worry about starting new lines here.
4982         * scan-decls.c (scan_decls): Update.
4983         * c-lex.c (c_lex, init_c_lex): Update.
4984         (cb_line_change, src_lineno): New.
4985
4986 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
4987
4988         * tree.c (append_random_chars): Generate the random
4989         characters in a reproducable fashion.
4990
4991 2001-09-14  Richard Henderson  <rth@redhat.com>
4992
4993         * config/i386/i386.c (internal_label_prefix): New.
4994         (internal_label_prefix_len): New.
4995         (override_options): Set them.
4996         (local_symbolic_operand): New.
4997         (legitimate_pic_address_disp_p): Use it.
4998         (legitimize_pic_address): Likewise.
4999
5000 2001-09-14  Marc Espie <espie@openbsd.org>
5001
5002         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
5003         correctly.
5004
5005 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5006
5007         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
5008         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
5009
5010 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
5011
5012         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
5013         invocation of SUBREG_REGNO_OFFSET.
5014
5015         * haifa-sched.c: Fix typo in FSF copyright statement.
5016         * sched-deps.c: Fix typo in FSF copyright statement.
5017         * sched-ebb.c: Fix typo in FSF copyright statement.
5018         * sched-rgn.c: Fix typo in FSF copyright statement.
5019         * sched-vis.c: Fix typo in FSF copyright statement.
5020
5021         * config.gcc: Move inclusion of arm elf specific header files
5022         from the files themselves into the tm_file variable.  Make
5023         sure that elfos.h is included before target specific elf
5024         headers.
5025         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
5026         already defined.
5027         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
5028         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
5029         ASM_OUTPUT_CASE_LABEL): Protect definition.
5030         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
5031         not already defined.
5032         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
5033         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
5034         Remove duplicate definition.
5035         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
5036         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
5037         (RDATA_SECTION_FUNCTION): Remove redundant definition.
5038         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
5039         Remove inclusion of arm/elf.h.
5040         * config/arm/unknown-elf.h: as for conix-elf.h.
5041         (STARTFILE_SPEC): Include crti.o and crtn.o.
5042         * config/arm/linux-elf.h: as for conix-elf.h.
5043         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
5044         * config/arm/strongarm-elf.h: Remove inclusion of
5045         unknown-elf.h.
5046         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
5047         * config/arm/unknown-elf-oabi.h: Remove inclusion of
5048         unknown-elf.h and elf.h.
5049         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
5050         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
5051         ASM_WEAKEN_LABEL): Remove redundant definition.
5052         * config/arm/elf.h: Test for inclusion of elfos.h
5053         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
5054         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
5055         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
5056         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
5057         redundant definition.
5058         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
5059         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
5060         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
5061         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
5062         Add rules to build crti.o and crtn.o
5063         * crti.asm: New file.
5064         * crtn.asm: New file.
5065
5066 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5067
5068         * c-parse.in (_yylex): Use _cpp_backup_tokens.
5069         * cpphash.h (struct tokenrun): Add prev.
5070         (struct lexer_state): Remove bol.
5071         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
5072         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
5073         : Remove.
5074         * cppinit.c (cpp_create_reader): Don't set bol.
5075         (cpp_destroy): Don't free lookaheads.
5076         * cpplex.c (lex_directive): Remove.
5077         (next_tokenrun): Update.
5078         (_cpp_lex_token): Clean up logic.
5079         (lex_token): Update to return a pointer to lexed token, since it
5080         can move to the start of the buffer.  Simpify newline handling.
5081         * cpplib.c (SEEN_EOL): Update.
5082         (skip_rest_of_line): Remove lookahead stuff.
5083         (end_directive): Line numbers are already incremented.  Revert
5084         to start of lexed token buffer if we can.
5085         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
5086         parse_answer): Use _cpp_backup_tokens.
5087         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
5088         instead.  Don't check for EOL.
5089         (do_include_common, do_line, do_pragma_system_header): Use
5090         skip_rest_of_line.
5091         * cpplib.h (BOL, _cpp_backup_tokens): New.
5092         * cppmacro.c (save_lookahead_token, take_lookahead_token,
5093         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
5094         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
5095         (builtin_macro): Don't use cpp_get_line.
5096         (cpp_get_line): Short term kludge.
5097         (parse_arg): Handle directives in arguments here.  Back up when
5098         appropriate.  Store EOF at end of argument list.
5099         (funlike_invocation_p): Use _cpp_backup_tokens.
5100         (push_arg_context): Account for EOF at end of list.
5101         (cpp_get_token): Remove lookahead stuff.  Update.
5102
5103 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5104
5105         * c-parse.in (yyerror): Const-ification and/or static-ization.
5106         * c-typeck.c (push_member_name): Likewise.
5107         * collect2.c (main): Likewise.
5108         * dbxout.c (dbxout_parms): Likewise.
5109         * diagnostic.c (format_with_decl): Likewise.
5110         * dwarf2out.c (output_ranges): Likewise.
5111         * dwarfout.c (fundamental_type_code): Likewise.
5112         * except.c (dw2_output_call_site_table): Likewise.
5113         * gcc.c (do_spec_1): Likewise.
5114         * genopinit.c (optabs): Likewise.
5115         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
5116         gen_declaration_1, handle_impent): Likewise.
5117         * protoize.c (default_include, in_system_include_dir, abspath):
5118         Likewise.
5119         * sched-vis.c (visualize_stall_cycles): Likewise.
5120         * sdbout.c (plain_type_1, sdbout_end_function,
5121         sdbout_end_epilogue): Likewise.
5122         * varasm.c (decode_reg_name): Likewise.
5123
5124         * 1750a.c (mod_regno_adjust): Likewise.
5125         * alpha.c (alpha_write_one_linkage,
5126         unicosmk_output_default_externs): Likewise.
5127         * arm.c (arm_condition_codes): Likewise.
5128         * arm.h (arm_condition_codes): Likewise.
5129         * avr.c (output_movsisf, encode_section_info): Likewise.
5130         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
5131         Likewise.
5132         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
5133         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
5134         * m88k.c (output_function_profiler): Likewise.
5135         * mips.c (mips_output_conditional_branch): Likewise.
5136         * ns32k.c (ns32k_out_reg_names): Likewise.
5137         * ns32k.h (ns32k_out_reg_names): Likewise.
5138         * pj.c (pj_output_rval): Likewise.
5139         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
5140         * sparc.c (sparc_flat_function_prologue,
5141         sparc_flat_function_epilogue): Likewise.
5142
5143 2001-09-13  Markus Werle <numerical.simulation@web.de>
5144             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5145
5146         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
5147         Aachen University of Technology".
5148
5149 2001-09-13  Andreas Schwab  <schwab@suse.de>
5150
5151         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
5152         C99.
5153
5154 2001-09-13  Richard Henderson  <rth@redhat.com>
5155
5156         * config/alpha/alpha.c (small_symbolic_operand): New.
5157         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
5158         (some_operand, input_operand): Don't handle HIGH.
5159         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
5160         (alpha_expand_mov): Likewise.
5161         (print_operand) [H]: Just print HIGH symbol.
5162         (print_operand_address): Handle small data.
5163         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
5164         (TARGET_SWITCHES): Add -msmall-data/large-data.
5165         (PIC_OFFSET_TABLE_REGNUM): New.
5166         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
5167         (PREDICATE_COES): Update.
5168         * config/alpha/alpha.md (adddi_er_high): New.
5169         (adddi_er_low): Handle small data.
5170         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
5171         prefer .sdata to .rodata.
5172         (SELECT_RTX_SECTION): Likewise.
5173
5174 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
5175
5176         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
5177         defining __size_t and leaving size_t undefined.
5178
5179 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
5180
5181         * basic-block.h (expunge_block): Declare.
5182         * cfg.c (expunge_block): Remove static declaration.
5183
5184 2001-09-12  Richard Henderson  <rth@redhat.com>
5185
5186         * integrate.c (copy_insn_list): Copy label name from
5187         NOTE_INSN_DELETED_LABEL.
5188
5189 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5190
5191         * c-common.c (c_tree_code_name): Const-ification.
5192         * c-decl.c (c_decode_option): Likewise.
5193         * c-typeck.c (warn_for_assignment): Likewise.
5194         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
5195         Likewise.
5196         * cppinit.c (output_deps): Likewise.
5197         * dependence.c (dependence_string, direction_string): Likewise.
5198         * dwarf2out.c (output_ranges): Likewise.
5199         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
5200         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
5201         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
5202         standard_startfile_prefix, standard_startfile_prefix_1,
5203         standard_startfile_prefix_2, tooldir_base_prefix,
5204         standard_bindir_prefix, find_a_file): Likewise.
5205         * genattrtab.c (make_length_attrs): Likewise.
5206         * gencheck.c (tree_codes): Likewise.
5207         * genemit.c (gen_split): Likewise.
5208         * genrecog.c (special_mode_pred_table): Likewise.
5209         * graph.c (graph_ext): Likewise.
5210         * protoize (default_include): Likewise.
5211         * reload.c (reload_when_needed_name): Likewise.
5212         * sched-vis.c (visualize_stall_cycles): Likewise.
5213         * tlink.c (recompile_files): Likewise.
5214         * toplev.c (decode_g_option): Likewise.
5215         * tradcpp.c (output_deps): Likewise.
5216         * varasm.c (decode_reg_name): Likewise.
5217
5218         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
5219         Const-ification.
5220         * arm.md: Likewise.
5221         * avr.c (avr_regnames, encode_section_info): Likewise.
5222         * c4x.c (float_reg_names): Likewise.
5223         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
5224         * elfos.h (const_section): Likewise.
5225         * i386.c (ix86_comp_type_attributes): Likewise.
5226         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
5227         * ia64/aix.h (UNIQUE_SECTION): Likewise.
5228         * ia64.c (type_names): Likewise.
5229         * m68hc11.c (reg_class_names): Likewise.
5230         * m88k.c (m_options): Likewise.
5231         * mips.c (mips_output_conditional_branch, mips_unique_section):
5232         Likewise.
5233         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5234         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
5235         ultra_code_names): Likewise.
5236         * sparc.h (OVERRIDE_OPTIONS): Likewise.
5237
5238 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
5239
5240         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
5241         Use --fatal-warnings option for gas.
5242         * configure: Rebuilt.
5243
5244 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5245
5246         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
5247
5248 2001-09-11  Jim Wilson  <wilson@redhat.com>
5249
5250         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
5251
5252 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5253
5254         * builtins.c (c_strlen): Treat an offset too large for a
5255         HOST_WIDE_INT as out of range.
5256
5257 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
5258
5259         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
5260         (EDGE_CRITICAL_P): New predicate.
5261         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
5262         handling.
5263         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
5264         (dump_edge_info): Remove "crit".
5265         * cfganal.c (mark_critical_edges): Kill.
5266         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
5267         * cfgcleanup.c (cleanup_cfg): Likewise.
5268         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
5269         (find_spanning_tree): Likewise.
5270         * reg-stack.c (convert_regs_1): Likewise.
5271         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
5272
5273         * basic-block.h (create_basic_block_structure): New.
5274         (create_basic_block): Update prototype.
5275         (force_nonfallthru): New.
5276         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
5277         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
5278         handle updating of block_for_insn, creating of empty BBs and BBs at
5279         the end of INSN chain.
5280         (create_basic_block): New function.
5281         (split_block): Use create_basic_block.
5282         (force_nonfallthru_and_redirect): Break out from ...; cleanup
5283         (redirect_edge_and_branch_force): ... here.
5284         (force_nonfallthru): New.
5285         (split_edge): Rewrite to use force_nonfallthru and create_block.
5286         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
5287         (find_basic_blocks): Free basic_block_for_insn.
5288         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
5289
5290         * cfg.c: Fix formating.
5291         * cfgcleanup.c: Fix formating.
5292         (merge_blocks, tail_recursion_label_p): Return bool.
5293         (merge_blocks_move_predecessor_nojumps,
5294          merge_blocks_move_successor_nojumps): Return void.
5295
5296 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
5297
5298         * configure.in: Check whether assembler supports section merging.
5299         * config.in: Rebuilt.
5300         * configure: Rebuilt.
5301         * varasm.c (variable_section, output_constant_pool): Pass alignment
5302         to SELECT_SECTION and SELECT_RTX_SECTION.
5303         (mergeable_string_section): New.
5304         (mergeable_constant_section): New.
5305         (default_elf_asm_named_section): Output SECTION_MERGE and
5306         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
5307         * output.h (mergeable_string_section): New.
5308         (mergeable_constant_section): New.
5309         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
5310         * toplev.c (flag_merge_constants): New.
5311         (f_options): Add -fmerge-constants and -fmerge-all-constants
5312         options.
5313         (toplev_main): Default to -fno-merge-constants if not optimizing.
5314         * flags.h (flag_merge_constants): Add extern.
5315         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
5316         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
5317         argument.
5318         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
5319         Define if assembler has working .subsection -1 support.
5320         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
5321         Put constant into special SHF_MERGE sections if the linker should
5322         attempt to merge duplicates.
5323         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
5324         macro argument.
5325         Put constant into special SHF_MERGE sections if the linker should
5326         attempt to merge duplicates.
5327         * config/alpha/elf.h: Likewise.
5328         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
5329         has working .subsection -1 support.
5330         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
5331         SELECT_SECTION.
5332         * config/svr3.h: Likewise.
5333         * config/darwin.h: Likewise.
5334         * config/arm/aof.h: Likewise.
5335         * config/arm/linux-elf.h: Likewise.
5336         * config/avr/avr.h: Likewise.
5337         * config/c4x/c4x.h: Likewise.
5338         * config/d30v/d30v.h: Likewise.
5339         * config/i386/dgux.h: Likewise.
5340         * config/i386/osfrose.h: Likewise.
5341         * config/i386/sco5.h: Likewise.
5342         * config/i386/svr3gas.h: Likewise.
5343         * config/ia64/aix.h: Likewise.
5344         * config/m32r/m32r.h: Likewise.
5345         * config/m68k/m68k.h: Likewise.
5346         * config/m88k/dgux.h: Likewise.
5347         * config/m88k/m88k.h: Likewise.
5348         * config/mcore/mcore-pe.h: Likewise.
5349         * config/mips/mips.h: Likewise.
5350         * config/pa/pa.h: Likewise.
5351         * config/pa/pa-linux.h: Likewise.
5352         * config/romp/romp.h: Likewise.
5353         * config/rs6000/sysv4.h: Likewise.
5354         * config/rs6000/xcoff.h: Likewise.
5355         * config/s390/linux.h: Likewise.
5356         * config/sparc/sparc.h: Likewise.
5357         * config/sparc/sysv4.h: Likewise.
5358         * config/stormy16/stormy16.h: Likewise.
5359         * config/v850/v850.h: Likewise.
5360         * config/vax/vms.h: Likewise.
5361         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
5362         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
5363         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
5364         default_elf_asm_named_section for SHF_MERGE sections.
5365
5366 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
5367
5368         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
5369         is OK.
5370
5371 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
5372
5373         * c-common.c (split_specs_attrs): Allow for empty attributes with
5374         empty TREE_PURPOSE.  Fixes PR c/4294.
5375
5376 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
5377
5378         * basic-block.h (cached_make_edge, make_single_succ): New.
5379         (make_edge): Remove first parameter.
5380         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
5381         * cfg.c (cached_make_edge): Rename from make_edge; return newly
5382         created edge; use obstack allocation.
5383         (make_edge, make_single_succ_edge): New.
5384         (first_removed_edge): New static variable.
5385         (init_flow): Initialize first_removed_edge and n_edges.
5386         (clear_edges): Use remove_edge.
5387         (flow_delete_block): Likewise.
5388         (remove_edge): Add removed edges to the removed edges list.
5389         (split_block, redirect_edge_and_branch_force, split_edge):
5390         Use make_edge.
5391         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
5392         (add_noreturn_fake_exit_edges): Likewise.
5393         (connect_infinite_loops_to_exit): Liekwise.
5394         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
5395         Use cached_make_edge.
5396         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
5397         * profile.c (branch_prob): Update make_edge call.
5398         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
5399
5400 2001-09-11  Richard Henderson  <rth@redhat.com>
5401
5402         * config/alpha/alpha.c: Tidy formatting.
5403         (local_symbolic_operand): Verify mode.
5404         (alpha_sa_mask): Ignore unicos for eh_return.
5405         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
5406         * config/alpha/alpha.md (umk divsi patterns): Remove.
5407         (extendsfdf2): Remove unicos check.
5408         (tablejump): Merge vms and unicos code; always use direct set
5409         plus label_ref use.
5410
5411 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5412
5413         * config.gcc (alpha*-*-unicosmk*): New target.
5414
5415         * config/alpha/alpha-protos.h (symbolic_operand,
5416         unicosmk_add_call_info_word, unicosmk_add_extern,
5417         unicosmk_defer_case_vector, unicosmk_unique_section,
5418         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
5419         unicosmk_asm_file_start, unicosmk_asm_file_end,
5420         unicosmk_output_common): Declare.
5421
5422         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
5423         direct_return, function_arg, alpha_va_start, alpha_va_arg,
5424         alpha_does_function_need_gp, alpha_end_function): Support Cray
5425         Unicos/Mk.
5426         (alpha_init_machine_status, alpha_mark_machine_status,
5427         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
5428         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
5429         unicosmk_asm_named_section, unicosmk_insert_attributes,
5430         unicosmk_section_type_flags, symbolic_operand,
5431         unicosmk_output_module_name, unicosmk_output_default_externs,
5432         unicosmk_output_dex, unicosmk_output_externs,
5433         unicosmk_output_addr_vec, unicosmk_ssib_name,
5434         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
5435         unicosmk_asm_file_end, unicosmk_output_common,
5436         unicosmk_section_type_flags, unicosmk_unique_section,
5437         unicosmk_add_call_info_word, unicosmk_text_section,
5438         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
5439         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
5440         unicosmk_dex_count, unicosmk_special_name): New.
5441         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
5442         TARGET_ABI_UNICOSMK.
5443         (get_aligned_mem, alpha_expand_unaligned_load,
5444         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
5445         alpha_expand_unaligned_store_words): Support big-endian mode.
5446         (print_operand): Likewise. New format specifier 't'. Use
5447         TARGET_AS_SLASH_BEFORE_SUFFIX.
5448         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
5449         (alpha_pv_save_size): Update with above change.
5450         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
5451         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
5452         Unicos/Mk.
5453
5454         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
5455         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
5456         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
5457         (EXTRA_CONSTRAINT): New constraint 'U'.
5458         (PREDICATE_CODES): Add symbolic_operand.
5459
5460         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
5461         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
5462         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
5463         (integer division and modulus patterns): Split in default and
5464         Unicos/Mk versions.
5465         (*divmodsi_internal, *divmoddi_internal): Disable for
5466         TARGET_ABI_UNICOSMK.
5467         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
5468         little-endian and big-endian versions.
5469         (ext, ins, msk): Likewise.
5470         (extv, extzv, insv): Support big-endian mode.
5471         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
5472         (call_umk, call_value_umk, *call_umk, tablejump_umk,
5473         *tablejump_umk_internal, *call_value_umk): New.
5474         (*movdi_nofix): Add pattern for loading an address into a register on
5475         TARGET_ABI_UNICOSMK.
5476         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
5477         (umk_mismatch_args, arg_home_umk): New.
5478         (various insns): Don't use mov, fmov, nop, fnop and unop.
5479         (realign): Support TARGET_ABI_UNICOSMK.
5480
5481         * config/alpha/unicosmk.h: New file.
5482         * config/alpha/t-unicosmk: New file.
5483
5484         * fixinc/inclhack.def (unicosmk_restrict): New.
5485         * fixinc/fixincl.x: Regenerate.
5486
5487         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
5488         (wchar_t): Check for and define __WCHAR_T__.
5489
5490 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
5491
5492         * combine.c (simplify_shift_const): Treat shifts by the mode
5493         size as undefined.
5494
5495 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5496
5497         * cpphash.h (struct tokenrun): New.
5498         (struct cpp_context): New member bol.
5499         (struct cpp_reader): New members.
5500         (_cpp_init_tokenrun): New.
5501         * cppinit.c (cpp_create_reader): Set up the token runs.
5502         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
5503         (lex_token): New internalised version of _cpp_lex_token.  Don't
5504         handle directives or the multiple include opimisation here any
5505         more.  Simply lex a token.
5506         * cpplib.c (run_directive): Clear bol.
5507         (_cpp_pop_buffer): Set bol.
5508         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
5509         arguments.
5510
5511 2001-09-11  Michael Meissner  <meissner@redhat.com>
5512
5513         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
5514         give an error if the user uses -mfp32.
5515         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
5516         default options.
5517         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
5518         floating point register size.
5519         (EXTRA_SPECS): Add CPP_FPR_SPEC.
5520
5521         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
5522         HOST_WIDE_INT_PRINT_DEC to properly print the result of
5523         int_size_in_bytes.
5524         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
5525         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
5526
5527 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
5528
5529         * dbxout.c (dbxout_parms): Fix typo in comment.
5530         * unroll.c (loop_find_equiv_value): Ditto.
5531         * toplev.c (rest_of_compilation): Ditto.
5532         * loop.c (scan_loop): Ditto.
5533         * dwarf2out.c (struct dw_fde_struct): Ditto.
5534
5535 2001-09-10  Zack Weinberg  <zackw@panix.com>
5536
5537         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
5538         copying identifier when we're just going to throw it away.
5539         (parse_identifier_slow): New routine to handle abnormal cases.
5540         (_cpp_lex_token): Update call site.
5541
5542         * hashtable.c (ht_lookup): Don't assume that the string we've
5543         been given is NUL-terminated.
5544         * system.h: #define __builtin_expect(a, b) to (a) if not
5545         GCC >=3.0.
5546
5547 2001-09-10  Michael Meissner  <meissner@redhat.com>
5548
5549         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
5550         binutils, gdb.
5551
5552 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
5553
5554         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
5555
5556 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5557
5558         * builtins.c (c_getstr): Correct thinko in last change and further
5559         cleanup.
5560
5561 2001-09-10  Tim Freeman <tim@fungibole.com>
5562
5563         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
5564         into varray's and register them as roots with the garbage
5565         collector so they are not collected too soon.
5566
5567 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
5568
5569         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
5570         New.
5571         * basic-block.h (flow_obstack, label_value_list,
5572         tail_recursion_label_list): Declare
5573         (tidy_fallthru_edges): Declare.
5574         (expunge_block, last_loop_beg_note): Delete.
5575         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
5576         * cfg.c: New file
5577         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
5578         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
5579         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
5580         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
5581         expunge_block, flow_delete_block, compute_bb_for_insn,
5582         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
5583         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
5584         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
5585         try_redirect_by_replacing_jump, last_loop_beg_note,
5586         redirect_edge_and_branch, redirect_edge_and_branch_force,
5587         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
5588         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
5589         commit_edge_insertions, dump_flow_info, debug_flow_info,
5590         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
5591         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
5592         Move here from flow.c
5593         * cfganal.c: New file.
5594         (forwarder_block_p, can_fallthru, mark_critical_edges,
5595          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
5596          find_unreachable_blocks, create_edge_list, free_edge_list,
5597          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
5598          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
5599          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
5600          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
5601          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
5602          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
5603         Move here from flow.c
5604         * cfgbuild.c: New file
5605         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
5606          make_edges, find_basic_blocks_1, find_basic_blocks,
5607          find_sub_basic_blocks): Move here from flow.c
5608         * cfgcleanup.c: New file.
5609         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
5610          merge_blocks_move_predecessor_nojumps,
5611          merge_blocks_move_successor_nojumps, merge_blocks,
5612          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
5613          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
5614         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
5615         if succeeded.
5616         * cfgloop.c: New file
5617         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
5618          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
5619          flow_loop_exit_edges_find, flow_loop_nodes_find,
5620          flow_loop_pre_header_scan, flow_loop_pre_header_find,
5621          flow_loop_tree_node_add, flow_loops_tree_build,
5622          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
5623          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
5624         Move here from flow.c
5625         * flow.c: Remove everything moved elsewhere
5626         * output.h (cleanup_cfg): Return bool.
5627
5628         * bb-reorder.c (reorder_block_def): Remove 'index'.
5629         (insert_intra_1): Add argument BB, set block for new note.
5630         (make_reorder_chain): Do not depdent on BB indexes.
5631         (make_reorder_chain_1): Do not use BB indexes.
5632         (label_for_bb): Likewise; set BB for new insn.
5633         (emit_jump_to_block_after): Likewise.
5634         (fixup_reoder_chain): Sanity check that all basic blocks
5635         are chained; verify newly created insn chain; remove
5636         undocnitional jump simplifying; Do not use BB indexes;
5637         properly initialize count and frequency information;
5638         dump reordered sequence.
5639         (insert_intra_bb_scope_notes): update call of insert_intra_1.
5640         (insert_inter_bb_scope_notes): Set block for new insn.
5641         (reorder_basic_blocks): Dump flow info before reoredering.
5642
5643 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5644
5645         * alias.c (clear_reg_alias_info): Use K&R format definition.
5646         Avoid unsigned warning.
5647         * builtins.c: Use "unsigned int", not "unsigned".
5648         (target_char_cast): Use host_integerp and tree_low_cst.
5649         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
5650         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
5651         (c_getstr): Likewise.
5652         (std_expand_builtin_va_arg): Use int_size_in_bytes.
5653         (builtin_memcpy_read_str): Avoid unsigned warning.
5654         (expand_builtin_memcpy): Alignments are unsigned.
5655         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
5656         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
5657         * predict.c (expensive_function_p): LIMIT now unsigned.
5658         * resource.c (mark_target_live_regs): Make some vars unsigned.
5659         * sdbout.c: Use "unsigned int", not "unsigned".
5660         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
5661         (sdbout_source_line): Likewise.
5662         (sdbout_record_type_name): Remove "const" for NAME declaration.
5663         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
5664
5665 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
5666
5667         * calls.c (store_one_arg): Expand comment.
5668
5669 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5670
5671         * calls.c (store_one_arg): Make sure that the entire argument is
5672         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
5673
5674 2001-09-09  Richard Henderson  <rth@redhat.com>
5675
5676         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
5677
5678 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
5679
5680         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
5681
5682 2001-09-09  Richard Henderson  <rth@redhat.com>
5683
5684         * config/alpha/alpha.c (alpha_next_sequence_number): New.
5685         (alpha_this_literal_sequence_number): New.
5686         (alpha_this_gpdisp_sequence_number): New.
5687         (some_operand, input_operand): Add HIGH.
5688         (local_symbolic_operand): New.
5689         (alpha_encode_section_info): New.
5690         (alpha_legitimate_address_p): Allow LO_SUM.
5691         (alpha_legitimize_address): Generate HIGH+LO_SUM.
5692         (alpha_expand_mov): Likewise.
5693         (secondary_reload_class): Check memory_operand not general_operand
5694         for FP_REGS test.
5695         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
5696         (alpha_expand_unaligned_store): Likewise.
5697         (alpha_expand_unaligned_load_words): Likewise.
5698         (alpha_expand_unaligned_store_words): Likewise.
5699         (alpha_expand_block_clear): Likewise.
5700         (print_operand): Handle %#, %*, %H.
5701         (print_operand_address): Handle LO_SUM.
5702         (find_lo_sum): New.
5703         (alpha_does_function_need_gp): Use it.
5704         (alpha_expand_block_move): Fix signed compare warnings.
5705         (alpha_sa_mask, alpha_align_insns): Likewise.
5706         * config/alpha/alpha-protos.h: Update.
5707         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
5708         (MASK_EXPLICIT_RELOCS): New.
5709         (TARGET_SWITCHES): Add -mexplicit-relocs.
5710         (EXTRA_CONSTRAINT): Add 'T'.
5711         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
5712         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
5713         (ENCODE_SECTION_INFO): Out line.
5714         (REDO_SECTION_INFO_P): New.
5715         (STRIP_NAME_ENCODING): New.
5716         (ASM_OUTPUT_LABELREF): New.
5717         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
5718         (PREDICATE_CODES): Update.
5719         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
5720         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
5721         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
5722         builtin_setjmp_receiver_er, exception_receiver_1_er,
5723         call_value_osf_1_er): New patterns.
5724         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
5725         (movqi, movhi, movsi): Add explicit $31 base register to lda.
5726         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
5727         (FINAL_PRESCAN_INSN): New.
5728
5729 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
5730
5731         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
5732
5733 2001-09-08  Andreas Jaeger  <aj@suse.de>
5734
5735         * i386.h (TARGET_SWITCHES): Fix description.
5736
5737 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
5738
5739         * rs6000.c (num_insns_constant): Compute number of instructions
5740         more accurately.
5741
5742         * doc/install.texi: Explain AIX exception handling work-around.
5743         Update URL for AIX fixes.
5744
5745 2001-09-07  Jim Wilson  <wilson@redhat.com>
5746
5747         * alias.c (clear_reg_alias_info): New.
5748         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
5749         * rtl.h (clear_reg_alias_info): Declare.
5750
5751 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5752
5753         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
5754         available.
5755         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
5756         (m16m,edivm,emulm): Change declaration to match definition.
5757
5758 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
5759
5760         * reload.c (push_reload): Check for subreg_lowpart_p instead of
5761         SUBREG_BYTE being 0 when determining if the inner part of a subreg
5762         can be reloaded.
5763
5764 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5765
5766         * c-common.c (signed_or_unsigned_type): Handle machine mode types
5767         which have no corresponding C type.
5768         * fold_const.c (target_isinf,target_isnan,target_negative): Update
5769         the representation of 64-bit doubles to work with 64-bit ints.
5770
5771 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
5772
5773         * config/mips/mips.c (override_options): Do not override ISA when ABI
5774         specified if MIPS_CPU_STRING_DEFAULT was specified.
5775
5776 2001-09-07  Richard Henderson  <rth@redhat.com>
5777
5778         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
5779         (express_from_1): Wrap lines.
5780         * rtlanal.c (commutative_operand_precedence): Rename from
5781         operand_preference; export.
5782         * rtl.h: Declare it.
5783         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
5784         (simplify_binary_operation): Invoke simplify_plus_minus on
5785         (CONST (PLUS ...)) as well.
5786         (struct simplify_plus_minus_op_data): New.
5787         (simplify_plus_minus_op_data_cmp): New.
5788         (simplify_plus_minus): Use them.  Avoid infinite recursion with
5789         simplify_binary_operation wrt CONST.
5790
5791 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
5792
5793         * h8300-protos.h (general_operand_dst_push): Remove.
5794         * h8300.c (general_operand_dst_push): Likewise.
5795         * h8300.h (OK_FOR_T): Likewise.
5796         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
5797         * h8300.md (pushqi_h8300): New.
5798         (pushqi_h8300hs): Likewise.
5799         (pushqi): Likewise.
5800         (pushhi_h8300): Likewise.
5801         (pushhi_h8300hs): Likewise.
5802         (pushhi): Likewise.
5803
5804 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5805
5806         * genattrtab.c (attr_printf): First arg is unsigned.
5807         Clean up formatting of callers.
5808
5809 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
5810
5811         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
5812         registers.
5813
5814 2001-09-07  Andreas Jaeger  <aj@suse.de>
5815
5816         * i386.h (TARGET_SWITCHES): Fix descriptions.
5817
5818 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
5819
5820         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
5821
5822 2001-09-06  Ira Ruben  <ira@apple.com>
5823
5824         Remove OP_IDENTIFIER.
5825         * tree.def (OP_IDENTIFIER): Remove.
5826         * tree.c (tree_node_kind enum): Remove op_id_kind.
5827         (tree_node_kind_names): Remove "op_identifiers".
5828         (make_node): Remove OP_IDENTIFIER test.
5829         (build_op_identifier): Removed because it isn't being used.
5830         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
5831         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
5832
5833 2001-09-06  Richard Henderson  <rth@redhat.com>
5834
5835         * simplify-rtx.c (simplify_binary_operation): Revert last change.
5836
5837 2001-09-06  Richard Henderson  <rth@redhat.com>
5838
5839         * simplify-rtx.c (simplify_binary_operation): Simplify contents
5840         of CONST.
5841
5842 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5843
5844         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
5845         number used for CR register.
5846
5847 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
5848                           Joern Rennecke (amylaar@cygnus.com)
5849
5850         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
5851         * h8300.c (initial_offset): Handle offset between RP and FP.
5852         (h8300_return_addr_rtx): New function.
5853         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
5854         return register.
5855         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
5856         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
5857         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
5858         (CAN_ELIMINATE, REGISTER_NAMES):
5859         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
5860
5861 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
5862
5863         Remove TYPE_NONCOPIED_PARTS.
5864         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
5865         (struct tree_type): Remove noncopied_parts.
5866         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
5867         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
5868         (fixed_type_p): Remove.
5869         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
5870         (expand_expr, MODIFY_EXPR): Likewise.
5871         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
5872         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
5873
5874 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
5875
5876         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
5877         compiler warnings.
5878         (mask64_operand): Likewise.
5879         (includes_rldic_lshift_p): Likewise.
5880         (includes_rldicr_lshift_p): Likewise.
5881
5882 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
5883
5884         * objc/objc-act.c (build_message_expr): If a class method cannot
5885         be found, do not issue a warning if a corresponding instance
5886         method exists in the root class.
5887
5888 2001-09-05  Richard Henderson  <rth@redhat.com>
5889
5890         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
5891
5892 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
5893
5894         * function.c (ggc_mark_struct_function): Mark f->outer.
5895         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
5896         * integrate.c (output_inline_function): ... not here.
5897
5898 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
5899
5900         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
5901
5902         * i386.c (size_cost): New static variable.
5903         (override_function): Use size_cost when -Os is specified.
5904
5905         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
5906         properly;  Use current_function_calls_eh_return.
5907         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
5908         use leave to avoid dependency chain.
5909
5910         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
5911         get BB loop_depth instead of computing it from LOOP notes.
5912
5913         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
5914
5915 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5916
5917         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5918         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5919         UNALIGNED_DOUBLE_INT_ASM_OP): Define
5920
5921 2001-09-05  Jeffrey A Law  (law@cygnus.com)
5922             Jason Merrill (jason@redhat.com)
5923
5924         * stor-layout.c (layout_type): Complain if an array's size can
5925         not be represented in a size_t.
5926
5927         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
5928
5929 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
5930
5931         * gcc.c: (process_command) Add parentheses around assignment
5932         used as truth value.
5933
5934 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
5935
5936         * config/mips/mips.c (save_restore_insns): Don't mark any register
5937         save slots as unchanging if current_function_calls_eh_return.
5938
5939 2001-09-05  Richard Henderson  <rth@redhat.com>
5940
5941         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
5942         * config/alpha/alpha-protos.h: Declare it.
5943         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
5944         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
5945         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
5946         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
5947         (REG_OK_FOR_BASE_P): Select one of the above.
5948
5949 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
5950
5951         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
5952         (crti.o): Prefix name of object file with $(T).
5953         (crtn.o): Likewise.
5954
5955 2001-09-05  David S. Miller  <davem@redhat.com>
5956
5957         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
5958         * config/sparc/linux64.h: Likewise.
5959
5960 2001-09-05  Andreas Jaeger  <aj@suse.de>
5961
5962         * doc/invoke.texi (i386 Options): -mwide-multiply is not
5963         available anymore, remove the documentation.
5964         (i386 Options): Fix typo, cleanup index entries.
5965
5966         * prefix.c (concat): Remove, we can use the version from liberty.
5967
5968 2001-09-05  Richard Henderson  <rth@redhat.com>
5969
5970         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
5971         New functions split out of md file expanders.
5972         * config/alpha/alpha-protos.h: Declare them.
5973         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
5974
5975 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5976
5977         * cppmacro.c (funlike_invocation_p): No need to restore context.
5978
5979 2001-09-04  Richard Henderson  <rth@redhat.com>
5980
5981         * reload.c (push_reload): Export.
5982         * reload.h (push_reload): Declare it.
5983
5984         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
5985         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
5986         * config/alpha/alpha.c (alpha_legitimize_address): New.
5987         (alpha_legitimize_reload_address): Likewise.
5988         * config/alpha/alpha-protos.h: Declare them.
5989
5990 2001-09-04  Stan Shebs  <shebs@apple.com>
5991
5992         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
5993         * config/darwin.c (machopic_stub_name): Account for internally
5994         generated lib calls such as memcpy.
5995
5996 2001-09-04  Richard Henderson  <rth@redhat.com>
5997
5998         * unwind.h (_UA_END_OF_STACK): New flag.
5999         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
6000
6001 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
6002
6003         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
6004
6005 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
6006
6007         * config/mips/mips.c (save_restore_insns): Change base_offset to
6008         fp_offset in second call to mips_emit_frame_related_store.
6009
6010 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
6011
6012         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
6013         sometimes be represented as a NOTE of type
6014         NOTE_INSN_DELETED_LABEL.
6015         (Insns): Document NOTE_INSN_DELETED_LABEL.
6016
6017 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
6018
6019         * c-common.h (tree_dump_index): Add more comments.
6020         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
6021         (dump_option_value_info): New struct.
6022         (dump_options): New array.
6023         (dump_switch_p): Parse switch options symbolically.
6024         * doc/invoke.texi (-fdump-ast): Rename to ...
6025         (-fdump-tree): ... here. Document that options are symbolic, and
6026         not all are applicable.
6027
6028 2001-09-04  David S. Miller  <davem@redhat.com>
6029
6030         * config/sparc/sparc.md (define_splits): Kill constraints.
6031
6032         Cleanup redundant and unused insn attributes.
6033         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
6034         binary, and move.  Mark ialu as default.
6035         (commented out define_function_unit "alu"): Kill.
6036         (define_attr "use_clobbered"): Kill.
6037         (whole file): Kill address insn type references.  Replace
6038         all unary/binary/move references with ialu.
6039         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
6040         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
6041         TYPE_IALU.
6042
6043         Simplify length insn attribute and make more judicious use
6044         of insn attribute defaulting.
6045         * config/sparc/sparc.md (all insns with length > one): Mark as
6046         insn type multi if real instructions, else use default if
6047         it is a forced splitter.
6048         (all insns with length == one): Use default insn length.
6049         (all insns of type ialu): Use default insn type.
6050
6051         Fix erroneous insn attribute settings.
6052         (addx): Set insn type to misc.
6053         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
6054         const_umulsidi3_sp64): Set insn type to imul.
6055
6056         Track SFmode vs DFmode insns according to UltraSPARC
6057         scheduling rules.
6058         * config/sparc/sparc.md ("fptype"): New attribute, default
6059         to "single".
6060         (all DFmode single insns): Mark as fptype "double".
6061
6062 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
6063
6064         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
6065
6066 2001-09-03  Richard Henderson  <rth@redhat.com>
6067
6068         * function.h (struct function): Add arg_pointer_save_area_init.
6069         * function.c (expand_function_end): Init arg_pointer_save_area.
6070         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
6071         when called from a nested function.
6072
6073 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
6074
6075         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
6076         is enabled.
6077
6078 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
6079
6080         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
6081
6082 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
6083
6084         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
6085         (emit_push_insn): Use specified padding direction when
6086         STACK_PUSH_CODE is POST_INC.
6087
6088         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
6089
6090 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6091
6092         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
6093
6094 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6095
6096         * cppinit.c (cpp_start_read): Free the imacros list as we
6097         traverse it.  Don't free the chains before returning.
6098         (_cpp_push_next_buffer): Only try pushing buffers if we've
6099         completed -imacros handling.
6100
6101 2001-08-31  Eric Christopher  <echristo@redhat.com>
6102
6103         * gcc.c (handle_braces): Add explaination for abort.
6104
6105 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
6106
6107         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
6108         move adjustment of bitpos instead.
6109
6110 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
6111
6112         * function.c: Remove all_functions.  Make outer_function_chain
6113         static.
6114         (init_function_start): Don't add new function structure to
6115         all_functions.
6116         (find_function_data, push_function_context_to,
6117         pop_function_context_from, put_var_into_stack,
6118         trampoline_address): Update for changed structure element names.
6119         (push_function_context_to): Disentangle.
6120         (free_after_compilation): Also free F.
6121         (expand_dummy_function_end): Don't free cfun here.
6122         (put_var_into_stack): Comment why we can't use find_function_data here.
6123         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
6124         (mark_function_chain): Split into maybe_mark_struct_function and
6125         ggc_mark_struct_function.  Export the latter.
6126         (init_function_once): Mark from cfun and outer_function_chain;
6127         not all_functions.
6128
6129         * function.h (struct function): Kill next_global.  Rename next
6130         to outer.  All users updated to match.
6131         (all_functions, outer_function_chain): Don't declare.
6132
6133         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
6134         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
6135         don't touch f->inlinable, after calling rest_of_compilation.
6136
6137         * tree.h: Forward-declare struct function.  Prototype
6138         ggc_mark_struct_function.
6139
6140 2001-08-31  Kazu Hirata  <kazu@hxi.com>
6141
6142         * config/h8300/h8300.md (*andorhi3): Fix typos.
6143
6144 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6145
6146         * calls.c (emit_library_call_value): Don't use a fixed
6147         argument after VA_CLOSE, i.e. out of scope in traditional C.
6148
6149         * emit-rtl.c (gen_rtvec): Likewise.
6150
6151 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6152
6153         * Makefile.in (c-pragma.o): Depend on output.h.
6154         (reorg.o): Depend on except.h.
6155
6156         * c-pragma.c: Include output.h.
6157
6158         * reorg.c: Include except.h.
6159
6160         * unwind-dw2.c: Call __builtin_alloca, not alloca.
6161
6162 2001-08-31  Richard Henderson  <rth@redhat.com>
6163
6164         * sched-deps.c (add_dependence): Don't elide dependency if the
6165         conditional used by insn is modified in elem.
6166
6167 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
6168
6169         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
6170
6171 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
6172
6173         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
6174         dump_switch_p.
6175
6176 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
6177
6178         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
6179         function.
6180         (stormy16_asm_out_constructor): New function.
6181         (TARGET_ASM_CONSTRUCTOR): Define.
6182         (TARGET_ASM_DESTRUCTOR): Define.
6183
6184 2001-08-31  Andreas Jaeger  <aj@suse.de>
6185
6186         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
6187         * loop.c (add_label_notes): Likewise.
6188         * reload.c (find_reloads): Likewise.
6189         * config/sh/sh.c (machine_dependent_reorg): Likewise.
6190
6191 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
6192
6193         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
6194         code here.  Take _Unwind_{W,Sw}ord*.
6195         (read_encoded_value_with_base): Use them.
6196         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
6197         words.
6198         (extract_cie_info): Simplify read_?leb128 handling.
6199         (execute_stack_op, execute_cfa_program): Likewise.
6200         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
6201
6202 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
6203
6204         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
6205         the frame pointer to pop the stack if convenient.
6206
6207         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
6208         Don't use post-increment before combine.
6209         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
6210         a call-saved register.
6211
6212 2001-08-31  Andreas Jaeger  <aj@suse.de>
6213
6214         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
6215         code was correct.
6216
6217 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
6218
6219         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
6220         not DIV/MOD, of course.
6221
6222 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
6223
6224         * rtl.def: Undo my patch commited 2001-08-27.
6225
6226         * genattrtab.c: Ditto.
6227
6228         * rtl.h: Ditto.
6229
6230         * sched-int.h: Ditto.
6231
6232         * target-def.h: Ditto.
6233
6234         * target.h: Ditto.
6235
6236         * haifa-sched.c: Ditto.
6237
6238         * sched-rgn.c: Ditto.
6239
6240         * sched-vis.c: Ditto.
6241
6242         * Makefile.in: Ditto.
6243
6244         * doc/md.texi: Ditto.
6245
6246         * doc/tm.texi: Ditto.
6247
6248         * doc/contrib.texi: Ditto.
6249
6250         * doc/gcc.texi: Ditto.
6251
6252         * genattrtab.h: Remove it.
6253
6254         * genautomata.c: Remove it.
6255
6256         * genattr.c: Undo my patch and Richard Henderson's patch commited
6257         2001-08-27.
6258
6259 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
6260
6261         * config.gcc (h8300-*-elf*): New case.
6262         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
6263         (SUBTARGET_CPP_SPEC): Define.
6264         (EXTRA_SPECS): Define.
6265         (SUBTARGET_EXTRA_SPECS): Define.
6266         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
6267         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
6268
6269 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
6270
6271         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
6272         (LIB2FUNCS_EXTRA): Define.
6273         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
6274         config/h8300/fixunssfsi.c: New file.
6275
6276 2001-08-30  Kazu Hirata  <kazu@hxi.com>
6277
6278         * config/h8300/h8300.md (zero_extendqihi2): Changes to
6279         define_expand to accommodate target-specific attributes.
6280         (anonymous zero_extendqihi2 patterns): New.
6281
6282 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
6283
6284         * h8300.md (*andorhi3): New pattern.
6285
6286 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
6287
6288         * h8300.c (dosize): Fix test for "sub".
6289
6290 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
6291
6292         * c-typeck.c (pointer_diff): Try to eliminate common term before
6293         doing conversions.
6294
6295 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
6296
6297         * config/arm/arm.c (arm_compute_initial_elimination_offset):
6298         Account for the saves of the FP registers.
6299
6300         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
6301         (TEXT_SECTION_ASM_OP): Define.
6302         (INIT_SECTION_ASM_OP): Define.
6303         (FINI_SECTION_ASM_OP): Define.
6304         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
6305         (RDATA_SECTION_FUNCITON): Provide prototype.
6306
6307 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
6308
6309         * reload1.c (move2add_note_store): Correct typo checking for
6310         argument pushes.
6311
6312 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
6313
6314         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
6315         note should not be considered outside the libcall block.
6316
6317 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6318
6319         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
6320
6321 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6322
6323         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
6324
6325 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6326
6327         * config/h8300/h8300-protos.h: Add a prototype for
6328         emit_logical_op.
6329         * config/h8300/h8300.c (emit_logical_op): New.
6330         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
6331         (andsi3): Likewise.
6332         (iorhi3): Likewise.
6333         (iorsi3): Likewise.
6334         (xorhi3): Likewise.
6335         (xorsi3): Likewise.
6336
6337 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6338
6339         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
6340         comparison with rtx INTVAL.
6341         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
6342         expression.
6343         * pa.h (FUNCTION_ARG_SIZE): Likewise.
6344
6345 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6346
6347         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
6348         comment typos.
6349
6350 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6351
6352         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
6353         (reg n) to (mem (pre_dec (reg n))
6354         (anonymous movsi pattern): Likewise.
6355
6356 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6357
6358         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
6359
6360 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6361
6362         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
6363         several special constants.
6364
6365 2001-08-29  Kazu Hirata  <kazu@hxi.com>
6366
6367         * config/h8300/lib1funcs.asm: Fix comment typos.
6368
6369 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6370
6371         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
6372         Fix format specifier warnings.
6373
6374         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
6375         inet_makeaddr, semctl): Prototype.
6376
6377         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
6378         (save_restore_insns): Use base_offset, not gp_offset.
6379
6380         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
6381         (ASM_OUTPUT_BYTE): Fix format specifier warning.
6382
6383 2001-08-29  Richard Henderson  <rth@redhat.com>
6384
6385         * bb-reorder.c (function_tail_eff_head): New.
6386         (record_effective_endpoints): Set it.
6387         (fixup_reorder_chain): Use it.
6388
6389 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6390
6391         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
6392
6393 2001-08-28  Dale Johannesen  <dalej@apple.com>
6394
6395         * config/darwin.c (machopic_function_base_name): Add const
6396         qualifier to a string.
6397         (darwin_encode_section_info): Ditto.
6398
6399 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6400
6401         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
6402         function definition.
6403
6404 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
6405
6406         * df.h (struct df): Add rts_order variable.
6407
6408         * df.c (df_visit_next_rts): New function.
6409         (df_visit_next): Renamed to df_visit_next_rc
6410         (df_analyse_1): Allocate/compute/free rts_order as well.
6411         (df_rd_global_compute): Use df_visit_next_rc instead of
6412         df_visit_next.
6413         (df_ru_global_compute): Use df_visit_next_rts instead of
6414         df_visit_next.
6415
6416         * flow.c (flow_reverse_top_sort_order_compute): New function.
6417
6418         * basic-block.h: Add prototype.
6419
6420 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
6421
6422         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
6423         blocks, the BB_REACHABLE is now set, rather than aux being
6424         non-NULL. Update the test to reflect this.
6425
6426 2001-08-28  Eric Christopher  <echristo@redhat.com>
6427
6428         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
6429         config/mips/crti.asm: Ditto.
6430
6431 2001-08-28  Eric Christopher <echristo@redhat.com>
6432             Richard Henderson <rth@redhat.com>
6433
6434         * c-pragma.h (add_weak): Move prototype from here...
6435         * output.h (add_weak): ... to here.
6436         * varasm.c (add_weak): Fix typo.
6437         * config/mips/crti.asm: New file.
6438         * config/mips/crtn.asm: Ditto.
6439         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
6440         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
6441         (INVOKE__main): Ditto.
6442         (INIT_SECTION_ASM_OP): New.
6443         (FINI_SECTION_ASM_OP): Ditto.
6444         (STARTFILE_SPEC): Add crti.
6445         (ENDFILE_SPEC): Add crtn.
6446         * config/mips/elf64.h: Same.
6447         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
6448         Remove.
6449         * config/mips/vxworks.h: Ditto.
6450         * config/mips/t-elf: Support crti and crtn.
6451
6452 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6453
6454         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
6455         INSN_LIST.
6456
6457 2001-08-28  Richard Henderson  <rth@redhat.com>
6458
6459         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
6460         (one_cmplbi2 splitter): Remove redundant test.
6461
6462 2001-08-28  Dale Johannesen  <dalej@apple.com>
6463
6464         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
6465
6466 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
6467
6468         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
6469
6470 2001-08-28  Stan Shebs  <shebs@apple.com>
6471
6472         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
6473         (UNALIGNED_SHORT_ASM_OP): Define.
6474         (UNALIGNED_INT_ASM_OP): Define.
6475
6476 2001-08-28  Will Cohen  <wcohen@redhat.com>
6477
6478         * config/rs6000/rs6000.md (store_multiple): Correct RTL
6479         generation for first set.
6480
6481 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
6482
6483         * flow.c (redirect_edge_succ_nodup): Return new edge.
6484         (try_simplify_condjump): Use new edge.
6485         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
6486
6487         * cse.c (cse_basic_block): Skip note instructions.
6488
6489 2001-08-27  Richard Henderson  <rth@redhat.com>
6490
6491         * combine.c (combine_simplify_rtx): Don't reverse condition
6492         if there is no reverse for the condition.
6493         (simplify_comparison): Don't simplify subregs from INT to FP.
6494
6495         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
6496         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
6497         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
6498         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
6499         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
6500         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
6501
6502 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
6503
6504         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
6505         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
6506         (pushqi1): New.
6507         (adddi_dilshr32, adddi_dishl32): Only data register can be
6508         source for mem destination.
6509
6510         * expmed.c (store_bit_field): Ignore adjustment to bitpos
6511         and use bitnum to decide about register move.
6512
6513 2001-08-27  Richard Henderson  <rth@redhat.com>
6514
6515         * genattr.c (main): Emit state_t even when not doing scheduling.
6516
6517 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
6518             Richard Henderson  <rth@redhat.com>
6519
6520         * gcse.c (reg_first_set, reg_last_set): Replace with ...
6521         (reg_avail_info, current_bb): ... these.
6522         (oprs_unchanged_p, record_last_reg_set_info): Use them.
6523         (compute_hash_table): Likewise.
6524
6525 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
6526
6527         * flow.c (verify_flow_info): Use checksums to verify edges.
6528
6529 2001-08-27  Richard Henderson  <rth@redhat.com>
6530
6531         * genautomata.c (expand_automata): Always create a description.
6532
6533 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
6534
6535         * optabs.c (expand_binop): Correctly handle the carry in multiword
6536         add/subtract operations.
6537
6538 2001-08-27  Fred Fish  <fnf@be.com>
6539
6540         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
6541         __SIZE_TYPE__.
6542
6543 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
6544
6545         * reload.c (find_reloads_toplev): Back out this change:
6546
6547         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
6548
6549         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
6550         mem if the address is a mode_dependent_address_p.
6551
6552 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6553
6554         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
6555         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
6556         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
6557         RTL constructions.
6558
6559         * genattr.c (main): New variable num_insn_reservations.  Increase
6560         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
6561         pipeline hazard recognizer interface.
6562
6563         * genattrtab.h: New file.
6564
6565         * genattrtab.c: Include genattrtab.h.
6566         (attr_printf, check_attr_test, make_internal_attr,
6567         make_numeric_value): Move protypes into genattrtab.h.  Define them
6568         as external.
6569         (num_dfa_decls): New global variable.
6570         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
6571         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
6572         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
6573         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
6574
6575         * genautomata.c: New file.
6576
6577         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
6578
6579         * sched-int.h: (curr_state): Add the external definition for
6580         automaton pipeline interface.
6581         (haifa_insn_data): Add comments for members blockage and units.
6582
6583         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6584         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6585         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6586         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6587         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6588         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6589         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
6590         macros.
6591         (TARGET_SCHED): Use the new macros.
6592
6593         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
6594         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
6595         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
6596         dfa_bubble): New members in gcc_target.sched.
6597
6598         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
6599         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
6600         (insn_queue): Redefine it as pointer to array.
6601         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
6602         INSN_QUEUE_SIZE.
6603         (max_insn_queue_index_macro_value): New variable.
6604         (curr_state, dfa_state_size, ready_try): New varaibles for
6605         automaton interface.
6606         (ready_element, ready_remove, max_issue): New function prototypes
6607         for automaton interface.
6608         (choose_ready): New function prototype.
6609         (insn_unit, blockage_range): Add comments.
6610         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
6611         FUNCTION_UNITS_SIZE == 0.
6612         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
6613         actual_hazard, potential_hazard): Add comments.
6614         (insn_cost): Use cost -1 as undefined value.  Remove
6615         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
6616         pipeline interface.
6617         (ready_element, ready_remove): New functions for automaton
6618         interface.
6619         (schedule_insn): Add new code for automaton pipeline interface.
6620         (queue_to_ready): Add new code for automaton pipeline interface.
6621         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
6622         (debug_ready_list): Print newline when the queue is empty.
6623         (max_issue): New function for automaton pipeline interface.
6624         (choose_ready): New function.
6625         (schedule_block): Add new code for automaton pipeline interface.
6626         Print ready list before scheduling each insn.
6627         (sched_init): Add new code for automaton pipeline interface.
6628         Initiate insn cost by -1.
6629         (sched_finish): Free the current automaton state and finalize
6630         automaton pipeline interface.
6631
6632         * sched-rgn.c: Include target.h.
6633         (init_ready_list, new_ready, debug_dependencies): Add new code for
6634         automaton pipeline interface.
6635
6636         * sched-vis.c: Include target.h.
6637         (get_visual_tbl_length): Add code for automaton interface.
6638         (target_units, print_block_visualization):  Add comments.
6639
6640         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
6641         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
6642         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
6643         (getruntime.o, genautomata.o): New entries.
6644         (genattrtab.o): Add new dependency file genattrtab.h.
6645         (genattrtab): Add new dependencies.  Link it with `libm.a'.
6646         (getruntime.o, hashtab.o): New entries for canadian cross.
6647
6648         * doc/md.texi: Description of automaton based model.
6649
6650         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
6651         Add comments.
6652         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6653         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6654         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6655         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6656         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6657         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6658         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
6659         hook descriptions.
6660         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
6661         MAX_DFA_ISSUE_RATE): New macro descriptions.
6662
6663         * doc/contrib.texi: Add dfa based scheduler contribution.
6664
6665         * doc/gcc.texi: Add more information about genattrtab.
6666
6667 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
6668
6669         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
6670         an RTL basic block.
6671
6672 2001-08-27  Richard Henderson  <rth@redhat.com>
6673
6674         * function.c (expand_function_end): Don't init arg_pointer_save_area.
6675         (get_arg_pointer_save_area): New.  Create an init it here.
6676         (fix_lexical_addr): Use it.
6677         * function.h: Declare it.
6678         * builtins.c (expand_builtin_setjmp_receiver): Use it.
6679         * stmt.c (expand_nl_goto_receiver): Use it.
6680
6681 2001-08-27  Richard Henderson  <rth@redhat.com>
6682
6683         * final.c (final_scan_insn): Don't enter APP_ON mode for
6684         empty asm strings.
6685
6686         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
6687         alignment for assemble_integer for DW_EH_PE_aligned.
6688         * except.c (output_function_exception_table): Likewise.
6689
6690 2001-08-26  Andreas Jaeger  <aj@suse.de>
6691
6692         * c-tree.h: Add prototyp for c_sizeof_nowarn.
6693
6694 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
6695
6696         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
6697
6698 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
6699
6700         * config/rs6000/rs6000.c (mask_operand): Rewrite without
6701         bit-shifting loop.
6702         (mask64_operand): Likewise.
6703         (rldic_operand): Delete.
6704         (includes_lshift64_p): Delete.
6705         (includes_rldic_lshift_p): New function.
6706         (includes_rldicr_lshift_p): New function.
6707         (print_operand): Don't call rldic_operand in case 'W'.
6708         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
6709         (includes_lshift64_p): Remove.
6710         (includes_rldic_lshift_p): Declare.
6711         (includes_rldicr_lshift_p): Declare.
6712         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
6713         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
6714         Replace match_operand rldic_operand predicate with
6715         const_int_operand.  Replace includes_lshift64_p condition with
6716         includes_rldic_lshift_p.
6717         <ashldi3_internal 64 bit rldicr patterns>: New.
6718
6719 2001-08-27  Andreas Jaeger  <aj@suse.de>
6720
6721         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
6722         * errors.c: Likewise.
6723         * final.c: Likewise.
6724         * dwarf2asm.c: Likewise.
6725         * doprint.c (checkit): Likewise.
6726         * diagnostic.c: Likewise.
6727         * collect2.c: Likewise.
6728         * calls.c: Likewise.
6729         * c-semantics.c (build_stmt): Likewise.
6730         * c-format.c (status_warning): Likewise.
6731         * c-errors.c (pedwarn_c99): Likewise.
6732         * builtins.c (validate_arglist): Likewise.
6733         * config/pj/pj.c (pj_printf): Likewise.
6734         * fix-header.c: Likewise.
6735         * gcc.c: Likewise.
6736         * gcov.c (fnotice): Likewise.
6737         * gensupport.c (message_with_line): Likewise.
6738         * mips-tfile.c: Likewise.
6739         * protoize.c (notice): Likewise.
6740         * read-rtl.c (fatal_with_file_and_line): Likewise.
6741         * rtl-error.c: Likewise.
6742         * tradcpp.c: Likewise.
6743         * tree.c: Likewise.
6744         * cp/tree.c (build_min_nt): Likewise.
6745         (build_min): Likewise.
6746         * cp/lex.c: Likewise.
6747         * cp/errfn.c: Likewise.
6748         * cp/rtti.c (create_pseudo_type_info): Likewise.
6749
6750 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
6751
6752         * df.c (df_uses_record): Return after recording all uses
6753         in ASM_OPERANDS.
6754
6755 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
6756
6757         * df.c (df_insn_modify): Realloc the INSN table here, if
6758         necessary, here, too.
6759
6760 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
6761
6762         * config/mips/mips.c (mips_function_value): Handle complex return
6763         values.
6764
6765 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
6766
6767         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
6768         unshared.
6769         * reload.c (make_memloc): Copy result if it is still
6770         reg_equiv_memory_loc[regno] on return.
6771         (subst_reloads) [ENABLE_CHECKING]: Check that none of
6772         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
6773         reg_equiv_mem are modified by the substitutions.
6774
6775 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
6776
6777         * predict.c (expensive_function_p): New.
6778         * rtl.h (expensive_function_p): Declare.
6779         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
6780         (use_fast_prologue_epilogue): New static variable.
6781         (expand_prologue): Set it; emit short prologues if unset.
6782         (expand_epilogue): Likewise.
6783
6784 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
6785
6786         * config.gcc: Add stormy16-*-elf case.
6787         * config/stormy16/stormy-abi: New file.
6788         * config/stormy16/stormy16-lib2.c: New file.
6789         * config/stormy16/stormy16-protos.h: New file.
6790         * config/stormy16/stormy16.c: New file.
6791         * config/stormy16/stormy16.h: New file.
6792         * config/stormy16/stormy16.md: New file.
6793         * config/stormy16/t-stormy16: New file.
6794
6795 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
6796
6797         * i386.h (no-accumulate-outgoing-args): Use proper mask.
6798
6799 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
6800
6801         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
6802         descriptor members are pointer size, not constant 4.
6803         * config/rs6000/rs6000.md (define_splits): Remove more unused
6804         constraints.
6805
6806 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6807
6808         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
6809
6810 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
6811
6812         * cp/rtti.c (VPARAMS): Fix parameter.
6813
6814 2001-08-24  Zack Weinberg  <zackw@panix.com>
6815
6816         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
6817         to zero.
6818         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
6819         to switch.
6820         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
6821         in if controlling use of insv.
6822         (extract_bit_field): Likewise, for extv and extzv.
6823
6824 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
6825
6826         * i386.md (movcc peep2): Fix load of 0.
6827
6828 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6829
6830         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
6831         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
6832
6833 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
6834
6835         * c-pragma.h: Move weak_syms and weak_decls...
6836         * varasm.c: ...here.  Now static.
6837         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
6838         depend on HANDLE_PRAGMA_WEAK.
6839
6840         * c-common.c (c_alignof, c_alignof_expr): Move here...
6841         * c-typeck.c: ...from here.
6842         * c-tree.h, c-common.h: Adjust.
6843
6844 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
6845
6846         * config/ia64/ia64.c (rws_update): If !pred, set write_count
6847         instead of incrementing it.
6848
6849         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
6850         asm ready, don't try to move them all into the same array element.
6851
6852 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
6853
6854         * function.c (thread_prologue_and_epilogue_insns): Avoid
6855         fallthru flag on edge to exit.
6856
6857         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
6858
6859         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
6860         dead edges.
6861
6862 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
6863
6864         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
6865         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
6866         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
6867         Remove prototype.
6868
6869 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
6870
6871         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
6872         replace "GNU CC" with "GCC".
6873
6874 2001-08-23  Richard Henderson  <rth@redhat.com>
6875
6876         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
6877         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
6878         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
6879         Need GR between FR and not GR_AND_FR.
6880         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
6881         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
6882         AR regs before GR regs.
6883         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
6884         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
6885         (REGISTER_MOVE_COST): Update.
6886         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
6887
6888 2001-08-23  Richard Henderson  <rth@redhat.com>
6889
6890         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
6891         a register class.
6892
6893 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
6894
6895         * reload1.c (emit_reload_insns): Don't look for notes
6896         on a NULL store_insn.
6897
6898 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6899
6900         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
6901         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
6902         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
6903         format specifier warnings.
6904         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
6905
6906 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
6907
6908         * config/i386/i386-protos.h: Correct declaration of
6909         i386_pe_asm_named_section.
6910
6911 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6912
6913         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
6914         variable i.
6915         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
6916
6917 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
6918
6919         * cpperror.c (print_location): Don't show _Pragma.
6920         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
6921         and file change callback generation here.
6922         (stack_include_file): Update use of cpp_push_buffer.
6923         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
6924         (struct cpp_buffer): Remove type, pfile members.
6925         * cppinit.c (cpp_handle_option): Use free_chain.
6926         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
6927         (skip_escaped_newlines, get_effective_char, lex_percent): Take
6928         a cpp_reader rather than a cpp_buffer.
6929         (skip_escaped_newlines, get_effective_char, skip_block_comment,
6930         skip_line_comment, parse_string, lex_percent, lex_dot,
6931         _cpp_lex_token): Update accordingly.
6932         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
6933         generation here.
6934         (cpp_push_buffer): Update prototype.
6935         (run_directive): Update use of cpp_push_buffer.
6936         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
6937         handle_assertion): Update use of run_directive.
6938         * cpplib.h (enum cpp_buffer_type): Remove.
6939         (cpp_push_buffer): Update prototype.
6940         * fix-header.c (read_scan_file): Update.
6941
6942 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6943
6944         * gcc.c (struct prefix_list): Change prefix to const char *.
6945
6946 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
6947
6948         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
6949
6950 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
6951
6952         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
6953         from a new MEM.
6954
6955         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
6956         a squeezable note.
6957         * rtl.h: Adjust.
6958         * ifcvt.c (dead_or_predicable): Adjust.
6959         * loop.c (find_and_verify_loops): Adjust.
6960         * stmt.c (expand_end_case): Adjust.
6961         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
6962         head and end insn pointers in the basic block, not just local copies.
6963         (merge_blocks_move_predecessor_nojumps): Likewise.
6964
6965 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
6966
6967         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
6968         bitmap.h, builtin-types.def, builtins.c, builtins.def,
6969         c-aux-info.c, c-common.c, c-common.def, c-common.h,
6970         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
6971         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
6972         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
6973         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
6974         conditions.h, config.gcc, configure.frag, configure.in,
6975         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
6976         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
6977         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
6978         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
6979         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
6980         emit-rtl.c, errors.c, errors.h, except.c, except.h,
6981         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
6982         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
6983         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
6984         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
6985         gencheck.c, gencodes.c, genconfig.c, genemit.c,
6986         genextract.c, genflags.c, gengenrtl.c, genmultilib,
6987         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
6988         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
6989         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
6990         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
6991         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
6992         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
6993         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
6994         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
6995         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
6996         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
6997         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
6998         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
6999         params.h, predict.c, predict.def, predict.h, prefix.c,
7000         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
7001         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
7002         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
7003         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
7004         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
7005         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
7006         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
7007         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
7008         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
7009         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
7010         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
7011         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
7012         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
7013         xcoffout.h: replace "GNU CC" with "GCC".
7014
7015 2001-08-21  Richard Henderson  <rth@redhat.com>
7016
7017         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
7018         (final_scan_insn): Consider jump tables data even if we have no
7019         independent text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
7020         ADDR_VEC_ALIGN.
7021         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
7022         (ASM_OUTPUT_CASE_END): Remove.
7023         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
7024         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
7025         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
7026
7027 2001-08-21  Richard Henderson  <rth@redhat.com>
7028
7029         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
7030         at barrier insns.  Emit stop bits before barriers.
7031
7032         * flow.c (flow_find_cross_jump): Don't consider unconditional
7033         return insns for commoning.
7034
7035         * final.c (compute_alignments): Fix typo.
7036
7037         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
7038         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
7039         (store_bit_field): Use mode_for_extraction more places.
7040         (extract_bit_field): Likewise.
7041
7042 2001-08-21  Zack Weinberg  <zackw@panix.com>
7043
7044         * caller-save.c: Don't include insn-codes.h.
7045         (reg_save_code, reg_restore_code): Make arrays of int.
7046         All uses updated to match.
7047         (insert_save, insert_restore): No need to initialize "code"
7048         variable upon declaration.
7049         * Makefile.in: update dependencies; fix typo in clean rule.
7050
7051 2001-08-21  Richard Henderson  <rth@redhat.com>
7052
7053         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
7054         (merge_if_block): Handle fallout from same.
7055
7056 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7057
7058         * builtins.c (type_to_class): Fix typo in last change.
7059
7060 2001-08-21  Richard Henderson  <rth@redhat.com>
7061
7062         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
7063         ia64_asm_output_label.
7064
7065         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
7066         copy of gp while the real gp register contains garbage.
7067
7068 2001-08-21  Zack Weinberg  <zackw@panix.com>
7069
7070         * expmed.c (mode_for_extraction): New function.
7071         (store_bit_field, extract_bit_field): Use it.
7072         * expr.h: Prototype it and provide an enum for its first argument.
7073
7074         * combine.c, function.c, recog.c: Don't include insn-codes.h.
7075         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
7076         and digging through the insn_data tables.
7077         * Makefile.in: Update dependencies.
7078
7079 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7080
7081         * cppfiles.c (stack_include_file): line-map.c now handles include
7082         depth.
7083         (handle_missing_handler): Similarly.
7084         (_cpp_execute_include): Similarly.
7085         (_cpp_pop_file_buffer): Similarly.
7086         * cpphash.h (struct cpp_reader): Remove system_include_depth,
7087         buffer_stack_depth and include_depth.
7088         * cpplib.c (do_include_common): line-map.c now handles include depth.
7089         (cpp_push_buffer): Similarly.
7090         (_cpp_pop_buffer): Similarly.
7091         * cppmacro.c (builtin_macro): Update.
7092         * line-map.c (init_line_maps): Set depth.
7093         (add_line_map): Increment "used" earlier.  Update and use the
7094         include depth.
7095         (trace_include): Use the include depth.
7096         * line-map.h (struct line_maps): New member depth.
7097
7098 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7099
7100         * cppfiles.c (stack_include_file): Don't handle -H here.
7101         * cppinit.c (cpp_start_read): Set include tracing after
7102         cpp_post_options and after stacking the main file.
7103         * line-map.c (trace_include): New.
7104         (init_line_maps, add_line_map): Update.
7105         * line-map.h (struct line_maps): New member trace_includes.
7106
7107 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7108
7109         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
7110         * cppfiles.c (stack_include_file): Only stack a file if there
7111         is something to do.  Return a boolean indicating whether a
7112         buffer was stacked or not.
7113         (_cpp_execute_include): Similarly.
7114         (_cpp_read_file): Similarly.
7115         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
7116
7117 2001-08-21  Sam Steingold  <sds@gnu.org>
7118
7119         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
7120         (RECACHE): keep obufp_before_macroname up to date
7121
7122 2001-08-21  Zack Weinberg  <zackw@panix.com>
7123
7124         * stmt.c: Don't include insn-codes.h.
7125         (expand_end_case): Machine specific logic moved to expr.c.
7126         No need to worry about __builtin_classify_type.
7127         (check_for_full_enumeration_handling, emit_case_nodes):
7128         Kill #if 0 blocks.
7129
7130         * builtins.o (expand_builtin_classify_type): Split up so code
7131         can be shared with fold_builtin_classify_type.
7132         (type_to_class, fold_builtin_classify_type): New functions.
7133         (fold_builtins): Handle __builtin_classify_type.
7134
7135         * expr.c (do_tablejump): Now static.
7136         (case_values_threshold, try_casesi, try_tablejump): New;
7137         code mostly from stmt.c (expand_end_case).
7138         (expr.h): Update prototypes.
7139
7140         * Makefile.in (stmt.o): Update dependencies.
7141
7142 2001-08-21  Will Cohen  <wcohen@redhat.com>
7143
7144         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
7145         declaration of variable i.
7146         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
7147         declaration of variable i.
7148
7149 2001-08-21  Richard Henderson  <rth@redhat.com>
7150
7151         * crtstuff.c: Fix thinko last change.  Move list tails to start
7152         of CRT_END section.  Tidy ifdefs.
7153         (__EH_FRAME_BEGIN__): Always static for ELF.
7154         (__do_global_ctors_1): Rename from __frame_dummy.
7155         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
7156         name change; don't hide __EH_FRAME_BEGIN__.
7157
7158 2001-08-21  Richard Henderson  <rth@redhat.com>
7159
7160         * gdbinit.in: Move break on exit after break on fancy_abort.
7161
7162         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
7163         sized types.
7164
7165 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7166
7167         * cpphash.h (_cpp_push_next_buffer): New.
7168         * cppinit.c (do_includes): Remove.
7169         (push_include, free_chain, _cpp_push_next_buffer): New.
7170         (cpp_start_read): Use them to rework command line option handling.
7171         (cpp_handle_option): Combine handling of -include and -imacros.
7172         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
7173         appropriate.  Always insert missing \n at EOF.
7174         * cpplib.c (start_directive): Get the directive position right.
7175         * cppmain.c (cb_file_change): Always print the first line, unless
7176         preprocessed.
7177
7178 2001-08-20  Andreas Jaeger  <aj@suse.de>
7179
7180         * profile.c (compute_branch_probabilities): Remove extra new-line
7181         in error message.
7182         * flow.c (verify_flow_info): Likewise.
7183
7184 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
7185
7186         * basic-block.h (basic_block): Add new field 'flags'.
7187         (BB_REACHABLE): Define.
7188         (expunge_block): Declare.
7189         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
7190         (EXIT_BLOCK_PTR): Ditto.
7191         (expunge_block): Remove static declaration.
7192         (cleanup_cfg): Clear bb->aux on every basic block.
7193         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
7194         computing reachability.
7195         (delete_unreachable_blocks): Delete block b if b->flags has
7196         BB_REACHABLE unset.
7197
7198 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
7199
7200         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
7201
7202 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7203
7204         * sparc.c (sparc_variable_issue): Fix typo in last change.
7205
7206 2001-08-20  Richard Henderson  <rth@redhat.com>
7207
7208         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
7209
7210 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7211
7212         * pa.h (RETURN_IN_MEMORY): Improve comment.
7213
7214 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
7215
7216         * doc/invoke.texi (Profiling options): Clarify the interactions
7217         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
7218
7219 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
7220
7221         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
7222         command.
7223
7224 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7225
7226         * gcc.c (make_relative_prefix): Allocate a sufficiently large
7227         buffer.
7228
7229 2001-08-20  Richard Henderson  <rth@redhat.com>
7230
7231         * final.c (end_final): Fix typo last change.
7232
7233 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7234
7235         * cppinit.c (init_standard_includes): The returned buffer
7236         is already malloc-ed.
7237         * gcc.c (add_prefix): Similarly.
7238         * prefix.c (translate_name): Update to support clear buffer
7239         ownership rules.
7240         (update_path): Similarly.  Be sure to free any newly allocated
7241         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
7242         (tr): New function.
7243         * prefix.h (update_path): Update prototype and document.
7244         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
7245         up and update to new buffer ownership rules.
7246         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
7247
7248 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
7249
7250         * final.c (compute_alignments): New function.
7251         (init_insn_lengths): Do not care label_align.
7252         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
7253         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
7254         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
7255         (shorted_branches): Realloc label_align array; do
7256         not call init_insn_lengths; Do not care about loop alignments.
7257         * output.h (compute_alignments): Declare.
7258         * toplev.c (rest_of_compilation): Call compute_alignments.
7259         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
7260
7261         * predict.c (block_info_def): Add npredecesors, remove nvisited;
7262         change visited to tovisit.
7263         (propagate_freq): Use faster traversing algorithm.
7264         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
7265         to tovisit; reverse meaning.
7266
7267         * predict.c (struct block_info_def): Remove nvisited.
7268         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
7269         (estimate_bb_frequencies): Call mark_dfs_back_edges.
7270
7271 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
7272
7273         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
7274         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
7275         (TARGET_FUSED_MADD): New.
7276         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
7277         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
7278         the multiply-add instructions.
7279
7280 2001-08-19  Richard Henderson  <rth@redhat.com>
7281
7282         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
7283         is aligned to pointer size.
7284
7285 2001-08-19  Richard Henderson  <rth@redhat.com>
7286
7287         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
7288         display markers during final schedule.
7289
7290 2001-08-19  Richard Henderson  <rth@redhat.com>
7291
7292         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
7293
7294 2001-08-19  Richard Henderson  <rth@redhat.com>
7295
7296         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
7297         in the same string.
7298         (ASM_NAME_TO_STRING): Remove.
7299         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
7300         in the same string.  Remove support for expressions.
7301
7302 2001-08-19  Richard Henderson  <rth@redhat.com>
7303
7304         * config/i386/i386.md (tablejump): Make an expander; handle
7305         pic relative addressing here.
7306         (tablejump_1): Rename from tablejump_pic.
7307         (casesi): Remove.
7308
7309 2001-08-19  Richard Henderson  <rth@redhat.com>
7310
7311         * regclass.c (fix_register): Fix typo.
7312
7313 2001-08-18  Richard Henderson  <rth@redhat.com>
7314
7315         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
7316         (struct _Unwind_Context): Expand br_loc to hold it.
7317         (uw_frame_state_for): Handle leaf functions better.
7318         (uw_update_reg_address): Update for br_loc change.
7319
7320 2001-08-18  Richard Henderson  <rth@redhat.com>
7321
7322         * crtstuff.c: Move list heads before code that uses them.
7323         (__JCR_LIST__): Remove initial null.
7324         (frame_dummy, __frame_dummy): Do java registration here ...
7325         (__do_global_ctors_aux): ... not here.
7326
7327         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
7328         (__do_global_dtors_aux): Update to match.
7329         (__JCR_LIST__, __do_jv_register_classes): New.
7330         (.init): Call it.
7331         * config/ia64/crtend.asm (__JCR_END__): New.
7332         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
7333         instead of an indirect LTOFF22 reloc.
7334
7335 2001-08-18  Richard Henderson  <rth@redhat.com>
7336
7337         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
7338         * regclass.c (init_reg_sets_1): Fix typo.
7339         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
7340         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
7341         (ia64_compute_frame_size): Make ar.unat live when in use.
7342         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
7343         for ar.pfs; remove ar.unat handling.
7344         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
7345         call-saved.
7346         (PREDICATE_CODES): Add ar_pfs_reg_operand.
7347         * config/ia64/ia64-protos.h: Update decls.
7348         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
7349         (sibcall_pic): Likewise.
7350
7351 2001-08-18  Richard Henderson  <rth@redhat.com>
7352
7353         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
7354         pred_rel_mutex when searching for insn_group_barrier.
7355         * config/ia64/ia64.md (cycle_display): Combine the expander
7356         and insn patterns.
7357
7358         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
7359         bit before asm as needed.
7360
7361 2001-08-18  Richard Henderson  <rth@redhat.com>
7362
7363         * timevar.def (TV_MACH_DEP): New.
7364         * toplev.c (rest_of_compilation): Use it.
7365         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
7366
7367 2001-08-18  Zack Weinberg  <zackw@panix.com>
7368
7369         * unwind-dw2.c (execute_stack_op): Add default aborts to
7370         the inner switches to prevent warnings.
7371
7372 2001-08-18  Richard Henderson  <rth@redhat.com>
7373
7374         * timevar.h (struct timevar_time_def): Change element type to float.
7375         (ticks_to_msec, clocks_to_msec): Likewise.
7376         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
7377         (get_time): Likewise.
7378         (timevar_print): Adjust zero check and printing to match.
7379
7380 2001-08-18  Zack Weinberg  <zackw@panix.com>
7381
7382         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
7383         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
7384         Eliminate overfull or underfull hboxes.
7385
7386 2001-08-18  Zack Weinberg  <zackw@panix.com>
7387
7388         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
7389
7390 2001-08-18  Zack Weinberg  <zackw@panix.com>
7391
7392         * haifa-sched.c: Convert to target hooks.  Macros replaced
7393         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
7394         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
7395         MD_SCHED_FINISH, and HAVE_cycle_display.
7396         * target-def.h (TARGET_SCHED_ADJUST_COST,
7397         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
7398         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
7399         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
7400         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
7401         New hook #defines to be overridden.
7402         (TARGET_SCHED): Bring them all together.
7403         (TARGET_INITIALIZER): Update.
7404         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
7405         instead of 'struct rtx_def *' throughout.
7406         (struct sched): New set of hooks for the scheduler.
7407         * Makefile.in (haifa-sched.o): Depend on target.h.
7408         * doc/tm.texi: Document the new scheduler hooks, together in
7409         their own section, instead of scattered around.
7410         Fix a bunch of underfull/overfull hboxes.
7411
7412         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
7413         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
7414         sparc.h: Don't define any of the old scheduler macros.
7415
7416         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
7417         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
7418         sparc.c: Create hook functions from code extracted from
7419         corresponding target header, or make existing hooks static, as
7420         appropriate.  Set the appropriate entries in targetm.
7421
7422         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
7423         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
7424         rs6000-protos.h, s390-protos.h, sparc-protos.h:
7425         Remove prototypes for functions which are now static.
7426
7427         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
7428         related gunk; the Haifa scheduler is now the only choice.
7429
7430 2001-08-18  Zack Weinberg  <zackw@panix.com>
7431
7432         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
7433         * genopinit.c: Put floating point divide insns in sdiv_optab.
7434         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
7435         * config/gofast.h, config/c4x/c4x.h,
7436         config/ia64/hpux_longdouble.h, config/mips/mips.h,
7437         config/pa/long_double.h, config/rs6000/sysv4.h,
7438         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
7439         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
7440         (init_optabs): Use init_optabv for overflow-trapping optabs.
7441         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
7442         cmp_optab RTX codes so have_insn_for can find them.
7443
7444         * optabs.c (expand_simple_binop, expand_simple_unop,
7445         have_insn_for, gen_sub3_insn): New interfaces.
7446         * expr.h: Prototype new functions.
7447         (enum optab_methods): Move here from optabs.h.
7448
7449         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
7450         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
7451         Use new functions instead of working directly with optabs.
7452         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
7453         unroll.c: Don't include optabs.h.
7454         * caller-save.c, combine.c, function.c, stmt.c: Just include
7455         insn-codes.h, not optabs.h.
7456         * Makefile.in: Update dependencies.
7457
7458         * combine.c (make_compound_operation, simplify_comparison):
7459         Fix typos testing for this or that instruction.
7460
7461 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
7462
7463         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
7464         generating libgcc.a.
7465
7466 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7467
7468         * except.c (TYPE_HASH): Delete.
7469
7470         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
7471         HOST_WIDE_INT.
7472
7473         * tree.c (TYPE_HASH): Delete.
7474
7475         * tree.h (TYPE_HASH): Define.
7476
7477 2001-08-18  Graham Stott  <grahams@redhat.com>
7478
7479         * config/mips/mips.md (adddi3_internal_2+1): Remove constraints from
7480         define_split.
7481         (adddi3_internal_2+2): Likewise.
7482         (eh_set_lr_di+1): Likewise.
7483
7484 2001-08-17  Richard Henderson  <rth@redhat.com>
7485
7486         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7487         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
7488         * dwarf2asm.c: ... here.
7489         * dwarfout.c: Remove them.
7490
7491         * varasm.c (assemble_integer): Add align parameter.
7492         (assemble_real, output_constant, output_constructor): Likewise.
7493         * output.h: Update decls.
7494         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
7495         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
7496         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
7497         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
7498         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
7499         Update all callers.
7500
7501         * final.c (end_final): Abort profile block generation if we
7502         havn't layed it out properly.
7503         * output.h (assemble_eh_integer): Remove stale decl.
7504         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
7505         (min_align): New.
7506         (assemble_integer): Handle unaligned data.
7507         (assemble_real): Abort on unaligned data.
7508         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
7509         anything useful.
7510         (default_dtor_section_asm_out_destructor): Use assemble_align.
7511         (default_named_section_asm_out_constructor): Likewise.
7512         (default_ctor_section_asm_out_constructor): Likewise.
7513         * config/darwin.c (machopic_asm_out_constructor): Likewise.
7514         (machopic_asm_out_destructor): Likewise.
7515         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
7516         (nextstep_asm_out_destructor): Likewise.
7517         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
7518         (vms_asm_out_destructor): Likewise.
7519
7520 2001-08-17  Richard Henderson  <rth@redhat.com>
7521
7522         * config/mips/iris6.h (TARGET_IRIX6): New.
7523         (current_section_name, current_section_flags): New.
7524         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
7525         (MAX_OFILE_ALIGNMENT): New.
7526         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
7527         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
7528         (copy_file_data): Split out from
7529         (mips_asm_file_end): ... here.
7530         (mips_asm_file_start): Remove extra .section directive.  Use
7531         tmpfile instead of mips_make_temp_file.
7532         (mips_unique_section): Use const char * as needed for warnings.
7533         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
7534         re-add align parameter.
7535         (iris6_asm_named_section): New.
7536         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
7537         (iris6_asm_output_align, iris6_section_align_1): New.
7538         (iris6_asm_file_start, iris6_asm_file_end): New.
7539         * config/mips/mips-protos.h: Update decls.
7540
7541 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
7542
7543         * doc/install.texi (Install GCC): Add links to build status pages.
7544         (Specific): Ditto.
7545         (Final install): Ditto; request updates for specific info
7546
7547 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7548
7549         * cpperror.c (print_location):  Don't take a file name; use the
7550         line map instead.
7551         (_cpp_begin_message): Similarly.
7552         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
7553         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
7554         (cpp_pedwarn_with_file_and_line): Remove.
7555         * cppfiles.c (stack_include_file): Update; set filename to stdin
7556         here when appropriate.
7557         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
7558         (_cpp_begin_message): Don't take a file name.
7559         * cppinit.c: Add comment.
7560         * cpplex.c: Fix end-of-directive indicator.
7561         * cpplib.c: Don't include intl.h.
7562         (run_directive, do_diagnostic): Update.
7563         (do_line): Update to not use nominal_fname.
7564         (cpp_push_buffer): Don't take a filename.
7565         * cpplib.h (struct ht): Remove.
7566         (cpp_push_buffer): Don't take a filename.
7567         (cpp_pedwarn_with_file_and_line): Remove.
7568         * cppmacro.c (struct cpp_macro): Remove file.
7569         (builtin_macro): Update.
7570         (_cpp_create_definition): Update.
7571         * cppmain.c: Correct comment.
7572         * fix-header.c (read_scan_file): Update.
7573
7574 2001-08-17  Kazu Hirata  <kazu@hxi.com>
7575
7576         * sbitmap.c: Fix comment formatting.
7577         * sched-deps.c: Likewise.
7578         * sibcall.c: Likewise.
7579         * simplify-rtx.c: Likewise.
7580         * ssa.c: Likewise.
7581         * ssa-ccp.c: Likewise.
7582         * stor-layout.c: Likewise.
7583         * timevar.c: Likewise.
7584         * toplev.c: Likewise.
7585         * unwind-dw2.c: Likewise.
7586         * unwind-dw2-fde.c: Likewise.
7587         * varasm.c: Likewise.
7588
7589 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7590
7591         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
7592         or larger than an integer in memory.
7593
7594 2001-08-17  Zack Weinberg  <zackw@panix.com>
7595
7596         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
7597         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
7598         * rtl.h: Don't forward-declare union tree_node here.  Don't
7599         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
7600         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
7601         and tree respectively.
7602         * tree.h: Don't forward-declare struct rtx_def here.  Don't
7603         typedef tree here.  Change all uses of struct rtx_def *,
7604         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
7605         and tree respectively.
7606
7607 2001-08-17  Richard Henderson  <rth@redhat.com>
7608
7609         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
7610         config/mips/openbsd.h: Fix typos last change.
7611
7612 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7613
7614         * doc/invoke.texi (Optimize Options): The default for
7615         -finline-limit is 600.
7616
7617 2001-08-17  Richard Henderson  <rth@redhat.com>
7618
7619         * varasm.c (text_section): Allow TEXT_SECTION to override the
7620         printing of TEXT_SECTION_ASM_OP.
7621         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
7622         (DATA_SECTION, BSS_SECTION): Remove.
7623         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
7624         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
7625         Rename from s/_NAME//.
7626         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
7627         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
7628         (TEXT_SECTION): ... here.  New.
7629         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
7630         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
7631         * config/mips/openbsd.h: Likewise.
7632         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
7633         (mips_asm_file_end): Likewise test.
7634         (mips_output_function_epilogue): Likewise.  Switch back to data
7635         section after emitting the function.
7636
7637         * doc/tm.texi (Sections): Document TEXT_SECTION.
7638
7639 2001-08-17  Richard Henderson  <rth@redhat.com>
7640
7641         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
7642         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
7643
7644 2001-08-17  Richard Henderson  <rth@redhat.com>
7645
7646         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
7647         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
7648         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
7649         Add aligned attribute.
7650
7651 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
7652
7653         * config/sh/sh.md: Add modes to unspecs in first insn to match
7654         those in the second.
7655
7656         * Makefile.in: Fix collect2 copy for Cygwin.
7657
7658 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
7659
7660         Install the proper patch.
7661         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
7662         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
7663         (expand_function_start): Likewise.
7664         * stmt.c (expand_decl): Likewise.
7665         * varasm.c (make_decl_rtx): Likewise.
7666
7667 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
7668
7669         * final.c: Undo my previous accidental checkin.
7670         * output.h: Likewise.
7671         * tm.texi: Likewise.
7672
7673 2001-08-16  Richard Henderson  <rth@redhat.com>
7674
7675         * varasm.c (named_section_flags): Remove align parameter.
7676         * varasm.c, dwarf2out.c: Update all callers.
7677         * output.h: Update prototypes.
7678
7679         * target.h (target.asm_out.named_section): Remove align parameter.
7680         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
7681         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
7682         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
7683         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
7684         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
7685
7686         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
7687         (get_named_section_flags, set_named_section_flags): New.
7688         (named_section_flags): Use them.
7689         (named_section): Do decl vs section flags check here...
7690         (default_section_type_flags): ... not here.
7691         (init_varasm_once): Create in_named_htab.
7692         (resolve_unique_section): Mark reloc unused.
7693
7694 2001-08-16  Richard Henderson  <rth@redhat.com>
7695
7696         * varasm.c (force_const_mem): Keep pool alignment in bits.
7697         (output_constant_pool): Use assemble_align.
7698
7699 2001-08-16  Zack Weinberg  <zackw@panix.com>
7700
7701         * doc/tm.texi: Remove extra @table command.
7702
7703 2001-08-16  Zack Weinberg  <zackw@panix.com>
7704
7705         * final.c (shorten_branches): Clear the end of the label_align
7706         array only if we made it larger.  Break up messy expressions
7707         for clarity.
7708
7709         * diagnostic.c (internal_error): Check for error recursion
7710         before doing ICE suppression.
7711
7712         * timevar.c: Timing variables now count in milliseconds.
7713         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
7714         (get_time): Not here.
7715         (timevar_print): Don't print any timer whose user, cpu, and
7716         wall times are all zero as displayed.
7717         * timevar.h: Update comment aboout units.  Make timevar
7718         counters unsigned.
7719
7720 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
7721
7722         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
7723         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
7724         (expand_function_start): Likewise.
7725         * stmt.c (expand_decl): Likewise.
7726         * varasm.c (make_decl_rtx): Likewise.
7727
7728 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
7729
7730         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
7731         (finalize_record_size): Don't set TYPE_USER_ALIGN.
7732
7733 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7734
7735         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
7736         variables.
7737
7738 2001-08-16  Andreas Jaeger  <aj@suse.de>
7739
7740         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
7741         prototype.
7742
7743 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
7744
7745         * rtl.h (only_sets_cc0_p): New prototype.
7746         * jump.c (sets_cc0_p): Handle INSN.
7747         (only_sets_cc0_p): New function.
7748         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
7749         (tidy_fallthru_edge): Likewise.
7750         * integrate.c (copy_insn_list): Likewise.
7751         * unroll.c (unroll_loop): Likewise.
7752         (copy_loop_body): Likewise.
7753
7754 2001-08-15  Jason Eckhardt  <jle@redhat.com>
7755
7756         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
7757
7758 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
7759
7760         * predict.c (struct block_info_def): Remove nvisited.
7761         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
7762         (estimate_bb_frequencies): Call mark_dfs_back_edges.
7763
7764         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
7765         (ix86_adjust_cost): Teach scheduler that latency to load operand can
7766         be masked.
7767
7768 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
7769
7770         * predict.def: Update hitrates.
7771
7772 2001-08-15  Richard Henderson  <rth@redhat.com>
7773
7774         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
7775
7776 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
7777
7778         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
7779         note from its associated jump.
7780
7781 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
7782
7783         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
7784         also on 64-bit s390x targets.
7785
7786 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
7787
7788         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
7789         function.
7790         (arm_expand_prologue): Handled nested functions which take a
7791         variable argument list.
7792         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
7793         macro with an invocation of
7794         arm_compute_initial_elimination_offset.
7795         * config/arm/arm-protos.h: Prototype
7796         arm_compute_initial_elimination_offset.
7797
7798 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7799
7800         * doc/install.texi (Specific, avr): Fix markup.
7801         (Specific, c4x): Ditto.
7802
7803 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
7804
7805         * predict.c (dump_prediction): Change `bool' parameter to `int'.
7806
7807 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
7808
7809         * Makefile.in (OBJS): Add rtl-error.o
7810         (rtl-error.o): New rule.
7811         (diagnostic.o): Adjust dependency.
7812         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
7813         error_for_asm, _fatal_insn, _fatal_insn_not_found,
7814         warning_for_asm): Move to...
7815         rtl-error.c: ...here.  New file.
7816
7817 2001-08-14  Richard Henderson  <rth@redhat.com>
7818
7819         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
7820         if USING_SJLJ_EXCEPTIONS.
7821
7822 2001-08-14  Steve Ellcey <sje@cup.hp.com>
7823
7824         * tlink.c (scan_linker_output): Check string for unsatisfied in
7825         addition to undefined and unresolved.
7826
7827 2001-08-14  Graham Stott  <grahams@redhat.com>
7828
7829         * libgcc2.c (*): Replace EH_FRAME_SECTION with
7830         EH_FRAME_SECTION_NAME.
7831
7832 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
7833
7834         * genattrtab.c (simplify_test_exp_in_temp): New function.
7835         (simplify_test_exp): Avoid explicit use of temporary obstack.
7836         (simplify_cond, insert_right_side, evaluate_eq_attr,
7837         simplify_and_tree, simplify_or_tree, eliminate_known_true):
7838         Use simplify_test_exp_in_temp.
7839         (optimize_attrs): Iterate until expression stabilizes.
7840
7841 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
7842
7843         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
7844         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
7845
7846 2001-08-13  Richard Henderson  <rth@redhat.com>
7847
7848         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
7849         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
7850         * config/arm/conix-elf.h: Likewise.
7851
7852 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
7853
7854         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
7855         in gcc.c.
7856         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7857
7858         * gcse.c (hash_scan_set): Expressions that are set as part of
7859         jump instructions are not available.
7860
7861 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
7862
7863         * config/s390/s390.c (print_operand, s390_function_prologue,
7864         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
7865
7866 2001-08-13  Richard Henderson  <rth@redhat.com>
7867
7868         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
7869         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
7870         * doc/tm.texi (Exception Region Output): Document it.
7871
7872 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
7873
7874         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
7875         DWARF2 instead of stabs by default.
7876
7877 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
7878
7879         * config/rs6000/rs6000.c: Include optabs.h.
7880
7881 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
7882
7883         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
7884         save/restore routines.
7885         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
7886
7887 2001-08-13  Andreas Jaeger  <aj@suse.de>
7888
7889         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
7890         the english is correct.
7891
7892 2001-08-13  Zack Weinberg  <zackw@panix.com>
7893
7894         * expr.h: Split out optab- and libfunc-related code to...
7895         * optabs.h, libfuncs.h: ... these new headers.
7896
7897         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
7898         (OPTABS_H): New.
7899         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
7900         dependencies.
7901         * mkconfig.sh: Don't include insn-codes.h from config.h.
7902
7903         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
7904         enum insn_code is available.  Move reload_in_optab and
7905         reload_out_optab array declarations to optabs.h.
7906         * regmove.c (gen_add3_insn): Move to optabs.c, export from
7907         there, prototype in expr.h.
7908         * gencodes.c: Cleanup: zap global variables, don't use
7909         printf where puts will do, don't bother defining MAX_INSN_CODE
7910         which nothing uses, let CODE_FOR_nothing get its value implicitly.
7911
7912         * genemit.c, genopinit.c: Include optabs.h in generated file.
7913         * genoutput.c: Include insn-codes.h in generated file.
7914         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
7915         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
7916         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
7917         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
7918         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
7919         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
7920         Include optabs.h.
7921         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
7922         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
7923         config/m88k/m88k.c, config/sparc/sparc.c:
7924         Include libfuncs.h.
7925         * reload.c: Include expr.h and optabs.h before reload.h.
7926         * config/alpha/alpha.c: Include tree.h before reload.h.
7927         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
7928         and reload.h in that order.
7929         * config/sparc/sparc.c: Include debug.h.
7930         * recog.c: Include insn-codes.h.
7931
7932 2001-08-13  Andreas Jaeger  <aj@suse.de>
7933
7934         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
7935         s390*linux.
7936
7937 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7938
7939         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
7940         * gcc.c (init_spec): Fix typo in comment.
7941         * varasm.c (data_section): Fix typo in comment.
7942
7943 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
7944
7945         * predict.c (dump_prediction): New argument "USED".
7946         (combine_predictions_for_insn): Determine the used heuristics,
7947         output the case no heuristic applied.
7948         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
7949
7950 2001-08-13  Andreas Jaeger  <aj@suse.de>
7951
7952         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
7953         register %rip.
7954
7955 2001-08-13  Kazu Hirata  <kazu@hxi.com>
7956
7957         * jump.c: Fix formatting.
7958
7959 2001-08-13  Kazu Hirata  <kazu@hxi.com>
7960
7961         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
7962         length.
7963
7964 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
7965
7966         * loop.c (check_dbra_loop): Use condjump_label to compute
7967         jump_label.
7968
7969         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
7970         to better document the files they're in.
7971
7972 2001-08-12  Zack Weinberg  <zackw@panix.com>
7973
7974         * recog.h (struct insn_operand_data): Shrink 'mode' field
7975         to 16 bits.
7976
7977 2001-08-12  Kazu Hirata  <kazu@hxi.com>
7978
7979         * gcc.c: Fix comment formatting.
7980         * gccspec.c: Likewise.
7981         * gcov.c: Likewise.
7982         * gcse.c: Likewise.
7983         * genemit.c: Likewise.
7984         * gengenrtl.c: Likewise.
7985         * genrecog.c: Likewise.
7986         * gensupport.c: Likewise.
7987         * ggc-page.c: Likewise.
7988         * global.c: Likewise.
7989         * graph.c: Likewise.
7990         * ifcvt.c: Likewise.
7991         * integrate.c: Likewise.
7992         * lcm.c: Likewise.
7993         * libgcc2.c: Likewise.
7994         * loop.c: Likewise.
7995         * mbchar.c: Likewise.
7996         * optabs.c: Likewise.
7997         * predict.c: Likewise.
7998         * prefix.c: Likewise.
7999         * profile.c: Likewise.
8000         * protoize.c: Likewise.
8001         * real.c: Likewise.
8002         * recog.c: Likewise.
8003         * regclass.c: Likewise.
8004         * regmove.c: Likewise.
8005         * reg-stack.c: Likewise.
8006         * reload1.c: Likewise.
8007         * resource.c: Likewise.
8008         * rtlanal.c: Likewise.
8009         * rtl.c: Likewise.
8010
8011 2001-08-12  Kazu Hirata  <kazu@hxi.com>
8012
8013         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
8014         a tree representing a constant is passed to the macro.
8015
8016 2001-08-12  Richard Henderson  <rth@redhat.com>
8017
8018         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
8019         (rs6000_elf_asm_out_destructor): New.
8020         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
8021         (DTORS_SECTION_ASM_OP): Remove.
8022         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8023         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
8024
8025 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
8026
8027         Revert:
8028         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8029         * gcc.c (set_collect_gcc_options): New function, split out from
8030         main.
8031         Ignore elided switches.
8032         (do_spec_1): Invoke before executing command.
8033         (set_input): Export.
8034         Move declaration ...
8035         * gcc.h (set_input): ... here.
8036         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
8037         file.
8038
8039 2001-08-12  Richard Henderson  <rth@redhat.com>
8040
8041         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
8042         thinko wrt TARGET_RELOCATABLE.
8043
8044 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
8045
8046         * fix-header.c (cb_file_change): Update prototype.
8047
8048 2001-08-11  Zack Weinberg  <zackw@panix.com>
8049
8050         * toplev.c (set_float_handler): Make static.
8051         * toplev.h: Don't prototype set_float_handler.
8052
8053         * simplify-rtx.c: Don't include setjmp.h.
8054         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
8055         New functions.
8056         (simplify_unary_operation, simplify_binary_operation): Use them,
8057         via do_float_handler.
8058
8059         * fold-const.c: Don't include setjmp.h.
8060         (exact_real_inverse_1): New function.
8061         (exact_real_inverse): Use it, via do_float_handler.
8062
8063         * varasm.c: Don't include setjmp.h.
8064         (assemble_real_1): New function.
8065         (assemble_real): Use it, via do_float_handler.
8066         Call internal_error if we get a trap here.
8067
8068         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
8069         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
8070
8071 2001-08-11  Zack Weinberg  <zackw@panix.com>
8072
8073         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
8074         STACK_BOUNDARY if not already defined.
8075
8076         * calls.c, function.c, reload1.c, explow.c: Don't default
8077         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
8078         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
8079
8080         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
8081         to run-time test.
8082
8083         * doc/tm.texi: Document that STACK_BOUNDARY is required;
8084         clarify difference between it and PREFERRED_STACK_BOUNDARY.
8085
8086 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8087
8088         * cppmacro.c (enter_macro_context): Push macro expansions even
8089         if empty.
8090
8091 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8092
8093         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
8094         (rs6000_elf_section_type_flags): Actually return a value.
8095
8096 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
8097
8098         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
8099         Clean up code: add missing comments and prototypes, fix warnings,
8100         remove obsolete code, fix spacing to conform to coding style.
8101
8102 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
8103
8104         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
8105         and TARGET_ASM_CLOSE_PAREN.
8106         (regclass_map): CC register belongs to class NO_REGS.
8107         (legitimize_pic_address): Don't generate unnecessary moves
8108         (to avoid confusing loop optimization).
8109         (check_and_change_labels): Replace jump_long by indirect_jump.
8110         (s390_final_chunkify): Don't start a new literal pool on section
8111         switch in 64-bit code.
8112         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
8113
8114         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
8115         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
8116         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
8117         modes correctly.
8118         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
8119         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
8120         (CONST_COSTS): Fixed incorrect costs.
8121
8122         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
8123         Use emit_jump instead of emit_jump_insn (gen_jump).
8124         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
8125         (to avoid confusing flow analysis).
8126         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
8127         (casesi, casesi_jump): New.
8128         (jump_long): Removed.  Functionality merged into indirect_jump.
8129         (indirect_jump): Accept address_operand, not just register_operand.
8130         (cjump_long, icjump_long): Use same logic as indirect_jump.
8131         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
8132         Fixed broken setjmp/longjmp handling.
8133         (do_builtin_setjmp_setup): Removed.
8134
8135         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
8136         broken GNU as versions that don't accept .quad with large
8137         negative values.  Use hexadecimal output instead.
8138         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
8139         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
8140         FUNCTION_EPILOGUE): Removed.  Now in targetm.
8141
8142         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
8143
8144         * config/s390/fixdfdi.h: Add missing copyright statement.
8145         Fix type conflicts on 64-bit.  Add missing SFmode routines.
8146
8147         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
8148         email address.
8149
8150 2001-08-11  Richard Henderson  <rth@redhat.com>
8151
8152         * rtl.h (REG_EH_RETHROW): Remove.
8153         * rtl.c (reg_note_name): Update.
8154         * combine.c (distribute_notes): Don't check for it.
8155
8156 2001-08-11  Richard Henderson  <rth@redhat.com>
8157
8158         * combine.c (distribute_notes): Place REG_SETJMP.
8159
8160 2001-08-11  Richard Henderson  <rth@redhat.com>
8161
8162         * doc/extend.texi (Arrays and pointers implementation): Discourage
8163         relying on sign-extension of pointers.
8164
8165 2001-08-11  H.J. Lu <hjl@gnu.org>
8166
8167         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
8168         in_dtors.
8169         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
8170         RDATA_SECTION_ASM_OP.
8171
8172 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8173
8174         * doc/install.texi (Specific, c4x): Fix cross-reference to the
8175         main manual to work both for info and HTML versions.
8176
8177 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8178             Matt Kraai <kraai@alumni.carnegiemellon.edu>
8179
8180         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
8181         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
8182         (struct cpp_pool): New member first.
8183         * cppinit.c (append_include_chain): Plug memory leaks.
8184         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
8185         Allocate pragma structures from the (aligned) macro pool to
8186         avoid leaking memory.
8187         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
8188         so we don't leak memory.
8189         * hashtable.c (ht_destroy): New.
8190         * hashtable.h (ht_destroy): New.
8191
8192 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8193             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8194
8195         * c-lex.c (map): Make const.
8196         (cb_file_change): Update for callback passing a line map.
8197         Don't assume we have a previous map.  Remove sanity check
8198         about popping too many files.
8199         * cpperror.c (print_location): Make map const.
8200         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
8201         (cpp_make_system_header): Similarly.
8202         (search_from): Similarly.
8203         (_cpp_execute_include): Don't remember where we came from.
8204         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
8205         (struct cpp_reader): Make map const.
8206         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
8207         * cpplib.c (do_line): Update; line maps now hold sysp.
8208         (cpp_push_buffer): Similarly.
8209         (_cpp_do_file_change): Similarly; callback with map instead.
8210         (cpp_get_line_maps): Constify return value.
8211         (_cpp_pop_buffer): Update.
8212         * cpplib.h (struct cpp_file_change): Remove.
8213         (struct cpp_callbacks): Update.
8214         (cpp_get_line_maps): Constify return value.
8215         * cppmacro.c (_cpp_create_definition): Update.
8216         * cppmain.c (struct printer): Constify map.
8217         (maybe_print_line): Similarly.
8218         (print_line): Similarly.  Deduce flags 1 and 2 here.
8219         (cb_file_change): Update.
8220         * line-map.c (free_line_maps): Warn regardless.
8221         (add_line_map): Return pointer to const.  When passed NULL to_file
8222         with LC_LEAVE, use the obvious values for the return point so the
8223         caller doesn't have to figure them out.
8224         (lookup_line): Return pointer to const.
8225         (print_containing_files): Take pointer to const.
8226         * line-map.h (struct line_map): New members reason, sysp.
8227         (add_line_map): Return pointer to const.
8228         (lookup_line): Similarly.
8229         (print_containing_files): Take pointer to const.
8230
8231 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
8232             Richard Henderson  <rth@redhat.com>
8233
8234         * regmove.c (regmove_optimize): Avoid setting a register twice in
8235         a parallel set.
8236
8237 2001-08-10  Richard Henderson  <rth@redhat.com>
8238
8239         * doc/extend.texi (Arrays and pointers implementation): Document
8240         behavior of pointer/integer conversion.
8241
8242 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
8243
8244         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
8245
8246 2001-08-10  Richard Henderson  <rth@redhat.com>
8247
8248         * doc/extend.texi (C Implementation): New chapter.
8249         * doc/gcc.texi (Top): Link it in.
8250
8251 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
8252
8253         * doc/install.texi (Specific): Fix CVS merge botch.
8254
8255 2001-08-10  Richard Henderson  <rth@redhat.com>
8256
8257         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
8258         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
8259
8260 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
8261
8262         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
8263         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
8264         this macro is now required.
8265
8266         * cselib.c (cselib_process_insn), flow.c (propagate_block),
8267         loop.c (find_and_verify_loops), reload.c (reload): Check
8268         for rtx code of CALL_INSN, not CALL, when deciding if we
8269         need to check for REG_SETJMP note.
8270
8271         * gcse.c (compute_hash_table, compute_store_table): Update
8272         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
8273         logic.
8274
8275         * config/avr/avr.c: Fix typo.
8276         * config/convex/convex.c (expand_movstr): Use adjust_address.
8277         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
8278         variable.
8279         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
8280         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
8281         Fix typo.
8282         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
8283         Do define STACK_BOUNDARY.
8284         * config/i370/i370.c: Include expr.h.
8285         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
8286         config/pa/som.h, config/v850/v850.h: Take in_ctors and
8287         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
8288         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
8289         * config/m88k/m88k.c: Include c-tree.h after expr.h.
8290         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
8291         * config/romp/romp.c: Include expr.h after tree.h.
8292         Include toplev.h.
8293         (output_fpop): Use xmalloc, not oballoc.
8294         * config/we32k/we32k.c: Include expr.h.
8295
8296 2001-08-10  Kazu Hirata  <kazu@hxi.com>
8297
8298         * config/h8300/h8300.h: Fix formatting.
8299
8300 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
8301
8302         * c-common.h (RETURN_NULLIFIED_P): Lose.
8303         * c-semantics.c (genrtl_return_stmt): Don't check it.
8304
8305 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8306
8307         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
8308         (mips_annotate_frame_insn): New function.
8309         (mips_emit_frame_related_store): New function.
8310         (save_restore_insns): Don't mark instructions that set up the base
8311         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
8312         the store instructions instead.
8313         (mips_expand_prologue): If the stack size is moved into a temporary
8314         register, do not mark that move as frame-related.  Add a
8315         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
8316
8317 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8318
8319         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
8320         stack slot as unchanging if current_function_calls_eh_return.
8321
8322 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
8323
8324         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
8325         access the second half of the TFmode scratch operand.
8326
8327 2001-08-10  Anthony Green  <green@redhat.com>
8328
8329         * java/class.c (emit_register_classes): Conditionalize code on
8330         JCR_SECTION_NAME.
8331
8332 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8333
8334         * doc/install.texi (Specific, avr): Fix cross-reference to the
8335         main manual to work both for info and HTML versions.
8336
8337 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8338
8339         * stmt.c (expand_null_return_1): Remove code to generate simple returns
8340         and "use_goto" argument.
8341         (expand_null_return, expand_value_return): Update all callers.
8342         * function.c (expand_function_end): Remove code to generate simple
8343         return.
8344         * config/vax/vax.md (epilogue): New expander for function return.
8345         * doc/md.texi (epilogue): Remove "if defined".
8346
8347 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
8348
8349         * Makefile.in: Partially revert my previous change:
8350         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
8351         of the hashtab.o and safe-ctype.o rules.
8352
8353 2001-08-09  Richard Henderson  <rth@redhat.com>
8354
8355         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
8356         (USE_COLLECT2): Remove duplicate definition.
8357         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
8358         (use_collect2): Remove dead code.
8359         * configure.in (use_collect2): Remove will_use_collect2 and
8360         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
8361         * configure: Rebuild.
8362
8363         * target.h (targetm.asm_out.constructor): New.
8364         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
8365         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
8366         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
8367         * varasm.c (in_ctors, in_dtors): New.
8368         (assemble_constructor, assemble_destructor): Remove.
8369         (default_stabs_asm_out_destructor): New.
8370         (default_named_section_asm_out_destructor): New.
8371         (dtors_section, default_dtor_section_asm_out_destructor): New.
8372         (default_stabs_asm_out_constructor): New.
8373         (default_named_section_asm_out_constructor): New.
8374         (ctors_section, default_ctor_section_asm_out_constructor): New.
8375         * output.h: Update declarations.
8376         * c-decl.c (c_expand_body): Use target hooks instead of
8377         assemble_constructor and assemble_destructor.
8378         * profile.c (output_func_start_profiler): Likewise.
8379         * objc/objc-act.c (finish_objc): Likewise.
8380         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
8381         for the constructor.
8382         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
8383
8384         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
8385         (DTORS_SECTION_ASM_OP): Likewise.
8386         (__CTOR_LIST__): Use attribute section when possible.
8387         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
8388
8389         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
8390         ASM_OUTPUT_CONSTRUCTOR.
8391
8392         * config/darwin.c (machopic_asm_out_constructor): New.
8393         (machopic_asm_out_destructor): New.
8394         * config/darwin-protos.h: Update declarations.
8395         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8396         (ASM_OUTPUT_DESTRUCTOR): Remove.
8397         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8398         * config/nextstep.c (nextstep_asm_out_constructor): New.
8399         (nextstep_asm_out_destructor): New.
8400         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8401         (ASM_OUTPUT_DESTRUCTOR): Remove.
8402         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8403         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
8404         ASM_OUTPUT_*STRUCTOR.
8405         * config/i386/aix386ng.h: Likewise.
8406
8407         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
8408         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
8409         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
8410         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8411         * config/lynx.h: Likewise.
8412         * config/netware.h: Likewise.
8413         * config/psos.h: Likewise.
8414         * config/alpha/alpha-interix.h: Likewise.
8415         * config/alpha/elf.h: Likewise.
8416         * config/arc/arc.h: Likewise.
8417         * config/arm/aof.h: Likewise.
8418         * config/arm/coff.h: Likewise.
8419         * config/arm/elf.h: Likewise.
8420         * config/c4x/c4x.h: Likewise.
8421         * config/h8300/h8300.h: Likewise.
8422         * config/i386/cygwin.h: Likewise.
8423         * config/i386/djgpp.h: Likewise.
8424         * config/i386/i386-coff.h: Likewise.
8425         * config/i386/i386-interix.h: Likewise.
8426         * config/i386/sco5.h: Likewise.
8427         * config/i386/vsta.h: Likewise.
8428         * config/i386/win32.h: Likewise.
8429         * config/i960/i960-coff.h: Likewise.
8430         * config/ia64/sysv4.h: Likewise.
8431         * config/m68hc11/m68hc11.h: Likewise.
8432         * config/m68k/coff.h: Likewise.
8433         * config/m68k/mot3300.h: Likewise.
8434         * config/m88k/m88k.h: Likewise.
8435         * config/mcore/mcore-pe.h: Likewise.
8436         * config/mcore/mcore.h: Likewise.
8437         * config/mips/elf.h: Likewise.
8438         * config/mips/elf64.h: Likewise.
8439         * config/mips/iris6.h: Likewise.
8440         * config/pa/pa64-hpux.h: Likewise.
8441         * config/rs6000/sysv4.h: Likewise.
8442         * config/sh/sh.h: Likewise.
8443         * config/sparc/litecoff.h: Likewise.
8444
8445         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
8446         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
8447         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8448         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8449         (ASM_OUTPUT_DESTRUCTOR): Remove.
8450         * config/a29k/a29k.c: Move include of tree.h.
8451         * config/a29k/udi.h: Delete file.
8452         * config/alpha/alpha.c (vms_asm_out_constructor): New.
8453         (vms_asm_out_destructor): New.
8454         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
8455         (EXTRA_SECTION_FUNCTIONS): Likewise.
8456         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8457         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8458         * config/c4x/c4x.c: Move include of tree.h.
8459         * config/clipper/clipper.c (clix_asm_out_constructor): New.
8460         (clix_asm_out_destructor): New.
8461         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8462         (ASM_OUTPUT_DESTRUCTOR): Remove.
8463         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8464         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8465         (TARGET_ASM_CONSTRUCTOR): New.
8466         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
8467         (sco_asm_out_constructor): New.
8468         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
8469         * config/i386/svr3gas.h: Remove stack grows up code.
8470         Remove code duplicated from i386/sysv3.h.
8471         (TARGET_ASM_CONSTRUCTOR): New.
8472         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
8473         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
8474         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8475         (TARGET_ASM_CONSTRUCTOR): New.
8476         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
8477         (m68hc11_asm_out_destructor): New.
8478         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
8479         (TARGET_ASM_DESTRUCTOR): New.
8480         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
8481         * config/m68k/dpx2.h: Properly undef all the bits inherited from
8482         config/svr3.h pertaining to section manipulation.
8483         * config/m68k/dpx2g.h: Remove #if 0 code.
8484         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
8485         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
8486         (ASM_OUTPUT_CONSTRUCTOR): Remove.
8487         (TARGET_ASM_CONSTRUCTOR): New.
8488         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
8489         (m88k_svr3_asm_out_constructor): New.
8490         (m88k_svr3_asm_out_destructor): New.
8491         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8492         (ASM_OUTPUT_DESTRUCTOR): Remove.
8493         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8494         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
8495         * config/rs6000/aix.h: Likewise.
8496         * config/mips/rtems64.h: Don't undef removed constructor related bits.
8497         * config/mips/vxworks.h: Likewise.
8498         * config/rs6000/lynx.h: Likewise.
8499         * config/sh/elf.h: Likewise.
8500         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
8501         (DTORS_SECTION_ASM_OP): New.
8502         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8503         (ASM_OUTPUT_DESTRUCTOR): Remove.
8504         * config/sparc/sol2-sld-64.h: Likewise.
8505         * config/vax/vax.c (vms_asm_out_constructor): New.
8506         (vms_asm_out_destructor): New.
8507         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
8508         (ASM_OUTPUT_DESTRUCTOR): Remove.
8509         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
8510
8511         * doc/tm.texi (@node Initialization): Update.
8512
8513 2001-08-09  Richard Henderson  <rth@redhat.com>
8514
8515         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
8516         (__do_global_dtors_aux): Use gp-relative static data to avoid
8517         one dynamic relocation.
8518         (__do_frame_setup): Register Java classes.
8519         * config/alpha/crtend.asm (__JCR_END__): New.
8520
8521 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
8522
8523         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
8524         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
8525         (GEN, STAGESTUFF): Add new files.
8526         (insn-constants.h, s-constants, tm-preds.h, s-preds,
8527         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
8528         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
8529         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
8530         as well as insn-codes.h and insn-flags.h in config.h; and no
8531         extra headers in tconfig.h and hconfig.h.
8532
8533         * gencodes.c: Eliminate code to generate predicate declarations
8534         or #defines for md-file constants.
8535         * genconstants.c, genpreds.c: New files.
8536
8537         * i386.md: Re-order guard expressions such that TARGET_64BIT
8538         comes first, when this permits better optimization.  Add
8539         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
8540         why this is desirable.
8541
8542 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
8543
8544         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
8545         (find_fde_for_dso): Remove.
8546         (_Unwind_IteratePhdrCallback): New.
8547         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
8548         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
8549
8550 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8551
8552         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
8553         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
8554
8555 2001-08-09  Graham Stott  <grahams@redhat.com>
8556
8557         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
8558         (vis_no_unit): Use it.
8559         (visualize_no_unit): Add the insn only if room exists.
8560
8561 2001-08-09  Graham Stott  <grahams@redhat.com>
8562
8563         * predict.c (estimate_probability): Replace magic numbers with
8564         appropriate enumeration.
8565
8566 2001-08-09  Graham Stott  <grahams@redhat.com>
8567
8568         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
8569         parameter.
8570         (EXTRACT_FLAGS): Likewise.
8571
8572 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
8573
8574         * config/mips/mips.c    (mips_legitimate_address_p): Check for
8575         CONST_INT in last patch.
8576
8577 2001-08-08  Anthony Green  <green@redhat.com>
8578
8579         * java/class.c (emit_register_classes): Use assemble_jcr if
8580         possible.  Keep the original mechanism as a fallback.
8581         * defaults.h (JCR_SECTION_NAME): Define if we have named section
8582         and weak symbol support.
8583         * crtstuff.c (__JCR_LIST__): Define.
8584         (__JCR_END__): Define.
8585         (_Jv_RegiserClasses): Define weak symbol if possible.
8586         (__do_global_ctors_aux): Register classes for ELF targets with
8587         weak symbol support.
8588
8589 2001-08-08  Kazu Hirata  <kazu@hxi.com>
8590
8591         * dbxout.c: Fix comment formatting.
8592         * dependence.c: Likewise.
8593         * df.c: Likewise.
8594         * diagnostic.c: Likewise.
8595         * dominance.c: Likewise.
8596         * doprint.c: Likewise.
8597         * dwarf2out.c: Likewise.
8598         * dwarfout.c: Likewise.
8599         * emit-rtl.c: Likewise.
8600         * except.c: Likewise.
8601         * explow.c: Likewise.
8602         * expmed.c: Likewise.
8603         * expr.c: Likewise.
8604         * flow.c: Likewise.
8605         * fold-const.c: Likewise.
8606         * function.c: Likewise.
8607
8608 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8609
8610         * global.c (retry_global_alloc): Avoid shadowing allocno.
8611
8612 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
8613
8614         * except.c (remove_fixup_regions): Fix typo.
8615
8616 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
8617
8618         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
8619         unsigned HOST_WIDE_INT to avoid warning.
8620         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
8621         * flow.c (set_block_for_new_insns): Likewise.
8622
8623 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
8624
8625         * sibcall.c (return_value_pseudo): New static variable.
8626         (skip_copy_to_return_value): Handle return_value_pseudo.
8627         (call_ends_block_p): Ensure that return_value_pseudo is set.
8628         (optimize_sibling_and_tail_recursive_call): Discover the
8629         load of pseudo return value in alternate exit block.
8630
8631 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
8632
8633         * calls.c (ECF_ALWAYS_RETURN): New constant.
8634         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
8635         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
8636         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
8637         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
8638         * rtl.c (reg_note_name): New name.
8639         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
8640
8641 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
8642
8643         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
8644
8645 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
8646
8647         * alias.c (get_alias_set): Return a previously calculated
8648         alias set for a VAR_DECL.
8649         * function.c (gen_mem_addressof): Calculate the alias set before
8650         touching the RTL.
8651
8652 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
8653
8654         * predict.def: Set hitrates according our experimental run.
8655
8656 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
8657
8658         * i386.h (HARD_REGNO_RENAME_OK): New macro.
8659
8660 2001-08-08  H.J. Lu <hjl@gnu.org>
8661
8662         * config/mips/mips.c (mips_unique_section): New. Copied from
8663         config/mips/elf.h.
8664
8665         * config/mips/mips-protos.h (mips_unique_section): New
8666         prototype.
8667
8668         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
8669
8670         * config/mips/little.h: New. Generic little endian mips
8671         targets. Only mips*-*-linux* is converted to use it so far.
8672
8673         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
8674         (WCHAR_TYPE): Defined
8675         (WCHAR_TYPE_SIZE): Likewise.
8676         (INIT_SUBTARGET_OPTABS): Likewise.
8677         (BSS_SECTION_ASM_OP): Likewise.
8678         (SBSS_SECTION_ASM_OP): Likewise.
8679         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8680         (ASM_DECLARE_OBJECT_NAME): Likewise.
8681         (UNIQUE_SECTION): Likewise.
8682         (EXTRA_SECTIONS): Likewise.
8683         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
8684         (ASM_OUTPUT_DESTRUCTOR): Likewise.
8685         (ASM_OUTPUT_DEF): Likewise.
8686         (HANDLE_SYSV_PRAGMA): Removed.
8687         (NO_IMPLICIT_EXTERN_C): Likewise.
8688         (TARGET_MEM_FUNCTIONS): Likewise.
8689         (STARTFILE_SPEC): Likewise.
8690         (ENDFILE_SPEC): Likewise.
8691         (LIB_SPEC): Likewise.
8692         (INVOKE__main): Likewise.
8693         (CTOR_LIST_BEGIN): Likewise.
8694         (CTOR_LIST_END): Likewise.
8695         (DTOR_LIST_BEGIN): Likewise.
8696         (DTOR_LIST_END): Likewise.
8697         (SET_ASM_OP): Likewise.
8698         (ASM_OUTPUT_SOURCE_LINE): Likewise.
8699         (ASM_OUTPUT_DEF): Likewise.
8700         (ASM_OUTPUT_IDENT): Likewise.
8701
8702         * config/mips/mips.h (ASM_SPEC): Undefine before define.
8703         (CPLUSPLUS_CPP_SPEC): Likewise.
8704         (ASM_APP_ON) Redefine only if not defined.
8705         (ASM_APP_OFF): Likewise.
8706         (ASM_OUTPUT_SOURCE_LINE): Likewise.
8707         (ASM_OUTPUT_IDENT): Likewise.
8708
8709         * config.gcc: Update tm_file for Linux/mips.
8710
8711 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
8712
8713         * cselib.c (cselib_record_sets): If insn is predicated, turn
8714         sources into IF_THEN_ELSEs.
8715
8716         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
8717         Turn into define_insn_and_split.
8718
8719         * sched-deps.c: Include "cselib.h".
8720         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
8721         Use cselib to turn memory addresses into VALUEs.
8722         (sched_analyze): Call cselib_init/cselib_finish if necessary.
8723         * sched-int.h (struct sched_info): New member USE_CSELIB.
8724         * sched-ebb.c (ebb_sched_info): Initialize it.
8725         * sched-rgn.c (rgn_sched_info): Likewise.
8726         * Makefile.in (sched-deps.o): Update dependencies.
8727
8728         * cselib.h (cselib_subst_to_values): Declare.
8729         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
8730         that have no value and autoincs to be handled by generating a new
8731         dummy value.
8732
8733 2001-08-08  Graham Stott  <grahams@redhat.com>
8734
8735         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
8736         within fixed length SEQUENCE.
8737
8738 2001-08-08  Graham Stott  <grahams@redhat.com>
8739
8740         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
8741         (diagnostic_prefixing_rule): Likewise.
8742         (diagnostic_line_cutoff): Likewise.
8743         (diagnostic_kind_count): Likewise.
8744
8745 2001-08-08  Graham Stott  <grahams@redhat.com>
8746
8747         * alias.c (find_base_decl): Delete redundent assignment.
8748
8749 2001-08-08  Graham Stott  <grahams@redhat.com>
8750
8751         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
8752         (abs): Uppercase and paranthesize macro parameter.
8753         (MEM_DEPENDENCY): Add whitespace.
8754
8755 2001-08-08  Graham Stott  <grahams@redhat.com>
8756
8757         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
8758         failure check for CONST_INT
8759
8760 2001-08-08  Graham Stott  <grahams@redhat.com>
8761
8762         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
8763         (libcall_dead_p): Likewise.
8764
8765         (mark_used_regs): Constify fmt.
8766         (find_use_as_address): Likewise.
8767
8768 2001-08-08  Graham Stott  <grahams@redhat.com>
8769
8770         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
8771          parameter.
8772
8773 2001-08-08  Graham Stott  <grahams@redhat.com>
8774
8775         * combine.c (combine_simplify_rtx): Update comment and
8776         remove erroneous test.
8777
8778 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8779
8780         * cppinit.c (cpp_finish): Pop the final buffer without comment.
8781         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
8782         take care to avoid multiple no-newline at EOF warnings in that
8783         case.
8784
8785 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
8786
8787         * calls.c (expand_call): Do not emit INSN_SETJMP note.
8788         (emit_library_call_value_1): Likewise.
8789         (emit_call_1): Emit REG_SETJMP note.
8790         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
8791         of INSN_SETJMP
8792         * cselib.c (cselib_process_insn): Likewise.
8793         * flow.c (propagate_block): Likewise.
8794         * loop.c (find_and_verify_loops): Likewise.
8795         * reload.c (find_equiv_regs): Likewise.
8796         * reload1.c (reload): Likewise.
8797         * resource.c (mark_referenced_resources,
8798         mark_set_resources): Likewise.
8799         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
8800         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
8801         * haifa-sched.c (unlink_other_notes): Likewise.
8802         (reemit_notes): Likewise.
8803         * sched-ebb.c (sched_ebb): Likewise.
8804         * sched-rgc.c (sched_region): Likewise.
8805         * rtl.c (note_insn_name): Likewise.
8806         (reg_note_name): Add REG_SETJMP
8807         * rtl.h (reg_note): Add REG_SETJMP.
8808         (insn_note): Remove NOTE_INSN_SETJMP.
8809
8810         * profile.c (branch_prob): Add fake edges for setjmp.
8811
8812 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
8813
8814         * config.gcc: Quote target_cpu_default2 correctly for
8815         powerpc*-*-* targets.
8816
8817 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8818
8819         * cpplib.h, line-map.h: Update comments.
8820         * cppmain.c (printer_init): Move inline.
8821         (maybe_print_line, print_line): Take a map pointer.
8822         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
8823         (cb_file_change): Don't use prior value of print.map.
8824
8825 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
8826
8827         * doc/install.texi: Document fine-grained multilib configuration.
8828
8829 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
8830
8831         * rtlanal.c (find_first_parameter_load): Call note_stores
8832         only on the instructions.
8833
8834 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
8835
8836         * alias.c (nonlocal_mentioned_p):
8837         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
8838         * calls.c (emit_call_1): Likewise.
8839         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
8840         * cselib.c (cselib_process_insn): Likewise.
8841         * df.c (df_insns_modify): Likewise.
8842         * flow.c (need_fake_edge_p): Likewise.
8843         (propagate_one_insn): Likewise.
8844         * haifa-sched.c (reemit_notes): Likewise.
8845         * integrate.c (copy_insn_list): Likewise.
8846         * jump.c (delete_prior_computation): Likewise.
8847         * local-alloc.c (validate_equiv_mem): Likewise.
8848         * loop.c (scan_loop): Likewise.
8849         * predict.c (estimate_probability): Likewise.
8850         * reload.c (reload): Likewise.
8851         * sched-deps (sched_analyze): Likewise.
8852         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
8853         * gcse.c (compute_hash_table): Likewise.
8854         (mark_call): Likewise.
8855         (store_killed_in_insn): Likewise.
8856
8857 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
8858
8859         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
8860
8861 2001-08-06  Richard Henderson  <rth@redhat.com>
8862
8863         * varasm.c (assemble_gc_entry): Remove.
8864         * output.h: Likewise.
8865
8866 2001-08-06  Richard Henderson  <rth@redhat.com>
8867
8868         * varasm.c (assemble_constructor): Take a symbol_ref and a
8869         priority instead of a bare string.  Move priority handling
8870         here from cp/decl2.c.
8871         * output.h: Update decls.
8872
8873         * c-decl.c (c_expand_body): Update calls to assemble_constructor
8874         and assemble_destructor.
8875         * profile.c (output_func_start_profiler): Likewise.
8876         * objc/objc-act.c (finish_objc): Likewise.
8877         (build_module_descriptor): Return the symbol not the symbol name.
8878
8879 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
8880
8881         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
8882         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
8883         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
8884         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
8885         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
8886         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
8887
8888 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8889
8890         * cpperror.c (print_containing_files): Moved to line-map.c.
8891         (print_location): line-map.c handles re-listing or otherwise.
8892         * cpphash.h (struct lexer_state): Remove next_bol.
8893         (struct cpp_buffer): Remove include_stack_listed.
8894         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
8895         Remove faked buffer handling.
8896         (_cpp_do_file_change): Tweak.
8897         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
8898         * cppmain.c (struct printer): Remove filename.
8899         (print_line, cb_file_change): Update accordingly.
8900         * line-map.c: Include intl.h.
8901         (init_line_maps): Initialize last_listed.
8902         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
8903         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
8904         (print_containing_files): New.
8905         * line-map.h (struct line_maps): New member last_listed.
8906         (print_containing_files, INCLUDED_FROM): New.
8907         * Makefile.in: Update.
8908         * po/POTFILES.in: Add line-map.c.
8909
8910 2001-08-06  Richard Henderson  <rth@redhat.com>
8911
8912         * except.c (convert_from_eh_region_ranges_1): Never mark
8913         USE or CLOBBER insns as throwing.
8914
8915         * expr.c (store_constructor): Don't clobber memory targets.
8916
8917 2001-08-06  Andreas Jaeger  <aj@suse.de>
8918
8919         * profile.c (branch_prob): Remove unused variable insn.
8920
8921         * Makefile.in (local-alloc.o): Add dependency on except.h.
8922
8923         * local-alloc.c: Include except.h for can_throw_internal prototype.
8924
8925 2001-08-06  Richard Henderson  <rth@redhat.com>
8926
8927         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
8928         * function.c (expand_main_function): Implement it.
8929         * doc/tm.texi: Document it.
8930
8931 2001-08-06  Stan Shebs  <shebs@apple.com>
8932
8933         * doc/install.texi: Document powerpc-*-darwin* details.
8934
8935 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
8936
8937         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
8938         (ASM_CPU_SPEC): Move back to rs6000.h
8939         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
8940
8941         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
8942
8943         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
8944         readded.
8945
8946         * config/rs6000/linux64.h: Ditto.
8947
8948         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
8949         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
8950         nothing.
8951
8952         Remove accidently readded definitions of FUNCTION_PROLOGUE,
8953         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
8954
8955         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
8956         to rs6000.h
8957
8958 2001-08-05  Richard Henderson  <rth@redhat.com>
8959
8960         * local-alloc.c (update_equiv_regs): Do not move insns that
8961         can throw.
8962
8963 2001-08-05  Jan Hubicka  <jh@suse.cz>
8964
8965         * Makefile.in (reload1.o): Add dedendancy on except.h
8966         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
8967         prototypes.
8968         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
8969         indicating wehther edges has been cleaned up.
8970         * reload1.c: Inlucde except.h
8971         (fixup_abnormal_edges): Accept deleted insns.
8972         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
8973         after combine.
8974
8975 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8976
8977         * cpplib.c (do_line): Correct line number after pop_buffer.
8978
8979 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
8980
8981         PR preprocessor/3824
8982         * line-map.c: Update comments.
8983         * line-map.h: Update comments.
8984         * tradcif.y: Don't consider large numbers unsigned.
8985
8986 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
8987
8988         PR preprocessor/3081
8989         * c-lex.c (map): New.
8990         (cb_file_change): Update map and use it.
8991         (cb_def_pragma, cb_define, cb_undef): Use map and line.
8992         (c_lex): Update to use map.
8993         * cpperror.c (print_location): Move to using logical line numbers.
8994         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
8995         (cpp_make_system_header): Similarly.
8996         (_cpp_execute_include): Stop line numbering hacks.  Store the
8997         line we will return to.
8998         * cpphash.h (CPP_BUF_LINE): Remove.
8999         (struct cpp_buffer): Remove lineno and pseudo_newlines.
9000         Add map and return_to_line.
9001         (_cpp_do_file_change): Update.
9002         * cppinit.c (cpp_start_read): Update line kludge.
9003         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
9004         (trigraph_ok): Use logical line numbers for diagnostics.
9005         (skip_block_comment): Likewise.
9006         (skip_whitespace): Likewise.
9007         (skip_line_comment): Use pfile->line instead.
9008         (_cpp_lex_token): Update to use logical line numbering exclusively.
9009         Handle BOL locally.  Accept new lines in directives, but keep
9010         pfile->line decremented.  Diagnostics use logical lines.  Update
9011         directive handling.
9012         * cpplib.c (SEEN_EOL): New.
9013         (skip_rest_of_line, check_eol): Use it.
9014         (end_directive): Increase line number when accepting the newline
9015         at the end of a directive.
9016         (run_directive): Simplify.
9017         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
9018         (_cpp_do_file_change): Update to take buffer line number as an
9019         argument, and store the current map in the cpp_reader.  Remove
9020         line number kludges.
9021         (_cpp_do__Pragma): Restore output position after a _Pragma.
9022         (cpp_push_buffer): Don't set output line or lineno.
9023         (_cpp_pop_buffer): Transfer more info from a faked buffer.
9024         Remove line kludge.  Set output_line.
9025         * cppmacro.c (builtin_macro): Update handling of __LINE__.
9026         (parse_arg): Use logical lines.
9027         (save_lookahead_token): Save EOFs too now.
9028         * cppmain.c (struct printer): Fix comments.
9029         (printer_init): Simplify, let caller do errors.
9030         (scan_translation_unit, check_multiline_token, dump_macro): Update.
9031         (maybe_print_line): Simplify.
9032         (print_line): Don't print a linemarker if -P.
9033         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
9034         (cb_file_change): Simplify.
9035         * line-map.h (LAST_SOURCE_LINE): Fix.
9036         (CURRENT_LINE_MAP): New.
9037
9038 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
9039
9040         * doloop.c (doloop_modify_runtime): Properly compute number of
9041         iterations if loop was unrolled.
9042
9043         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
9044         if their CSELIB_VAL_PTRs are.
9045
9046         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
9047         (setup_spill_pointers): Initialize it.
9048         (spill_restore_mem): Set it.
9049         (do_spill, do_restore): Use it to add REG_INC note.
9050         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
9051
9052         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
9053         asms if other insns are available.
9054
9055         * config/ia64/ia64.c (condop_operator): New predicate.
9056         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
9057         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
9058         patterns.
9059
9060         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
9061         temporary register than directly using a MEM.
9062
9063 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9064
9065         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
9066         parameter in last change.
9067
9068 2001-08-04  Zack Weinberg  <zackw@panix.com>
9069
9070         * sparc.md: Don't use #if inside C test expression.
9071
9072 2001-08-04  Richard Henderson  <rth@redhat.com>
9073
9074         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
9075
9076 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9077
9078         * cpphash.h (struct cpp_reader): New member directive_line.
9079         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
9080         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
9081         do_pragma): Pass line to callbacks.
9082         (start_directive): Record line of directive.
9083         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
9084         cb_include): Similarly.
9085         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
9086         Similarly.
9087
9088 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9089
9090         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
9091         comment.
9092
9093 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
9094
9095         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
9096
9097         * reload1.c (fixup_abnormal_edges): New static function.
9098         (reload): Use it.
9099
9100         * flow.c (need_fake_edge_p): New function.
9101         (flow_call_edges_add): Fix handling of noreturn and sibling calls;
9102         avoid call insn to be very last insn in the insn stream.
9103
9104         * profile.c (branch_prob): Call flow_call_edges_add instead of
9105         doing that by hand; cleanup cfg to re-merge basic blocks once
9106         we are done.
9107
9108 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9109
9110         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
9111         are also on line-map.h.
9112         * cppfiles.c (stack_include_file): Update.
9113         * cpphash.h (struct cpp_buffer): New member return_at_eof.
9114         (_cpp_pop_buffer): New.
9115         * cppinit.c (cpp_destroy, cpp_finish): Update.
9116         (do_includes): Mark each buffer to return at EOF.
9117         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
9118         return as requested.
9119         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
9120         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
9121         * cpplib.h (cpp_pop_buffer): Remove.
9122         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
9123         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
9124         buffers.
9125         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
9126         to pop buffers.
9127         (do_preprocessing): Update.
9128         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
9129         * c-parse.in (_yylex): Similarly.
9130         * scan-decls.c (scan_decls): Similarly.
9131         * line-map.h: Update comments.
9132
9133         * objc/Make-lang.in (objc-act.o): Update dependencies.
9134
9135 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9136
9137         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
9138         and soft register for operand 0.
9139         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
9140
9141 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9142
9143         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
9144         register for operand 0.
9145         ("bitcmpqi_z_used"): Allow memory for operand 0.
9146         (split "bitcmpqi"): New split to handle address reg as operand 1.
9147
9148 2001-08-04  Andreas Jaeger  <aj@suse.de>
9149
9150         * gcse.c: Revert Daniel's last patch.
9151
9152 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
9153
9154         * sparc-protos.h: Add prototypes for fp_zero_operand and
9155         reg_or_0_operand.
9156         * sh-protos.h: Add prototype for fpul_operand.
9157
9158 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
9159
9160         * doc/extend.texi (Other Builtins): Fix typo in last change.
9161
9162 2001-08-03  Richard Henderson  <rth@redhat.com>
9163
9164         * target.h (gcc_target): Add asm_out.named_section,
9165         section_type_flags, have_named_sections.
9166         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
9167         (TARGET_HAVE_NAMED_SECTIONS): New.
9168         (TARGET_SECTION_TYPE_FLAGS): New.
9169
9170         * Makefile.in (toplev.o): Depend on TARGET_H.
9171         (varasm.o, dbxout.o): Likewise.
9172         * c-common.c (decl_attributes): Check targetm.have_named_sections
9173         instead of ifdef ASM_OUTPUT_SECTION_NAME.
9174         * dbxout.c (dbxout_function_decl): Likewise.
9175         (dbxout_function_end): Likewise.
9176         * toplev.c (compile_file): Likewise.
9177         * varasm.c (exception_section): Likewise.
9178         * cp/decl2.c (finish_objects): Likewise.
9179
9180         * defaults.h (EH_FRAME_SECTION): Remove.
9181         (EH_FRAME_SECTION_ASM_OP): Remove.
9182         (EH_FRAME_SECTION_NAME): New.
9183         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
9184         (UNIQUE_SECTION_P): Remove.
9185         * dwarf2out.c (SECTION_FORMAT): Remove.
9186         (ASM_OUTPUT_SECTION): Remove.
9187         (output_call_frame_info): Use named_section_flags.
9188         (output_comp_unit, dwarf2out_start_source_file): Likewise.
9189         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
9190         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
9191         * varasm.c (in_eh_frame, eh_frame_section): Remove.
9192         (named_section_flags): New.
9193         (named_section): Use it and targetm.section_type_flags.
9194         (resolve_unique_section): New.
9195         (assemble_start_function): Use it.
9196         (asm_emit_uninitialised, assemble_variable): Likewise.
9197         (default_section_type_flags): New.
9198         (default_no_named_section, default_elf_asm_named_section): New.
9199         (default_coff_asm_named_section, default_pe_asm_named_section): New.
9200         * output.h: Update varasm.c decls.
9201         (SECTION_*): New flags.
9202
9203         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
9204         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
9205
9206         * config/elfos.h (UNIQUE_SECTION_P): Remove.
9207         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
9208         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
9209         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
9210         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
9211         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
9212         * config/mips/elf.h, config/mips/elf64.h: Likewise.
9213         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
9214         * config/pa/pa64-hpux.h,
9215
9216         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
9217         (TARGET_ASM_NAMED_SECTION): New.
9218         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
9219         * config/alpha/vms.h, config/arm/coff.h: Likewise.
9220         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
9221         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
9222         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
9223         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
9224         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
9225         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
9226         * config/i386/sco5.h, config/i386/win32.h: Likewise.
9227         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
9228         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
9229         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
9230         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
9231         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
9232         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
9233         * config/sparc/sysv4.h: Likewise.
9234
9235         * config/nextstep.h: Error until named sections implemented.
9236
9237         * config/a29k/a29k.c (a29k_asm_named_section): New.
9238         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
9239         (vms_section_type_flags, vms_asm_named_section): New.
9240         * config/arm/arm.c (arm_elf_asm_named_section): New.
9241         * config/avr/avr.c (asm_output_section_name): Remove.
9242         * config/avr/avr-protos.h: Update.
9243         * config/c4x/c4x.c (c4x_asm_named_section): New.
9244         * config/h8300/h8300.c (h8300_asm_named_section): New.
9245         * config/i386/i386.c (sco_asm_named_section): New.
9246         * config/i386/winnt.c (SECTION_PE_SHARED): New.
9247         (i386_pe_section_type_flags): New.
9248         (i386_pe_asm_named_section): New.
9249         * config/i386/i386-protos.h: Update.
9250         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
9251         * config/mcore/mcore.c (mcore_asm_named_section): New.
9252         * config/mips/mips.c (iris6_asm_named_section): New.
9253         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
9254         instead of UNIQUE_SECTION_P.
9255         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
9256         (xcoff_asm_named_section): New.
9257         * config/sh/sh.c (sh_asm_named_section): New.
9258         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
9259
9260         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
9261         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
9262         (EH_FRAME_SECTION_NAME): New.
9263         (EXCEPTION_SECTION): New.
9264         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
9265         (DEBUG_*_SECTION): Remove.
9266         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
9267         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
9268         (EH_FRAME_SECTION_ASM_OP): Remove.
9269
9270         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
9271         (ASM_OUTPUT_SECTION_NAME): Remove.
9272         (TARGET_ASM_NAMED_SECTION): New.
9273         (TARGET_HAVE_NAMED_SECTIONS): New.
9274         (TARGET_SECTION_TYPE_FLAGS): New.
9275         (EH_FRAME_SECTION_ASM_OP): Remove.
9276         (EH_FRAME_SECTION_NAME): New.
9277
9278 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
9279
9280         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
9281         for complex expressions when cfun == 0.
9282         * doc/extend.texi: Document that __builtin_constant_p can be
9283         used in data initializers as well as functions.
9284
9285 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
9286
9287         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
9288         variable I locally, instead of expecting a declaration in the
9289         calling context.
9290
9291 2001-08-03  Richard Henderson  <rth@redhat.com>
9292
9293         * except.c (collect_one_action_chain): Add an explicit cleanup
9294         action if regions surrounding a catch were encoded entirely
9295         within the call-site entry.
9296
9297 2001-08-03  Richard Henderson  <rth@redhat.com>
9298
9299         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
9300         don't take REGNO of a non-register.
9301
9302 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9303
9304         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
9305         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
9306         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
9307         (__gthread_mutex_init_function): New function for mutex initialization.
9308
9309 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9310
9311         * Makefile.in: Revert screwed up commit.
9312
9313 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9314
9315         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
9316         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
9317         merged by linker script to get a final _exit().
9318         (__do_global_dtors): New for destructor handling in specific exit
9319         section.
9320         (__do_global_ctors): New for constructors in specific install section.
9321         (__map_data_section): Map data sections before running constructors.
9322         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
9323         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
9324         (DTORS_SECTION_ASM_OP): Likewise.
9325         (CTORS_SECTION_FUNCTION): Define to force a reference to
9326         __do_global_ctors.
9327         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
9328
9329 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9330
9331         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
9332
9333         * Makefile.in: Add df.h to gcse.c dependencies.
9334
9335 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9336
9337         * varasm.c (output_constant_def_contents): Use for the length of a
9338         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
9339         depending on which is larger.
9340
9341 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
9342
9343         * gcse.c: Include df.h for use as a dataflow analyzer.
9344         Remove regvec.
9345         Declaration of reg_set_info: gone.
9346         New df_analyzer variable used by store motion.
9347         (reg_set_info): Deleted.
9348         (mark_mem_regs): New function, analyze regs used by a mem.
9349         (store_ops_ok): Use dataflow analyzer results to determine if
9350         necessary regs are changed in the block.
9351         (find_moveable_store): Remove check for symbol ref, we can handle
9352         much more complex expressions now.
9353         (compute_store_table): Remove most of the code, it's unnecessary
9354         now that the dataflow analyzer records the info for us.
9355         (store_killed_after): Add parameter to say whether to do the
9356         store_ops_okay test, used to speed up testing when we already know
9357         the answer, and just want to know if the store itself was killed.
9358         (build_store_vector): Largely rewritten to calculate the various
9359         vectors properly, and somewhat optimized.
9360         (store_motion): Init the df_analyzer, get REG_DEF chains.
9361         Also handle trapping expressions (since mems almost always trap)
9362         (simple_mem): Redefine what a simple mem is.
9363
9364 2001-08-03  DJ Delorie  <dj@redhat.com>
9365
9366         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
9367         set from a constant part of the condition.
9368
9369 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
9370
9371         * mkdeps.c (deps_add_default_target): Make local variable
9372         ``start'' a const char pointer.
9373         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
9374
9375 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9376
9377         * doc/install.texi (Configuration): Fix markup.
9378         (Specific, i?86-*-udk): Likewise.
9379         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
9380         --with-gnu-ld.
9381         Document --enable-threads and --enable-libgcj status.
9382         (Specific, mips-sgi-irix*): Canonicalize triples.
9383         (Specific, mips-sgi-irix5): Warn about problems with this config.
9384         Mention required GNU as patch.
9385         Native assembler problems are fixed.
9386         (Specific, mips-sgi-irix6): Update O32 ABI support status.
9387         Document --enable-threads and --enable-libgcj status.
9388
9389 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9390
9391         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
9392         of mkinstalldirs.
9393
9394 2001-08-03  Richard Henderson  <rth@redhat.com>
9395
9396         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
9397         constant data.
9398
9399 2001-08-03  Richard Henderson  <rth@redhat.com>
9400
9401         * rtlanal.c (find_first_parameter_load): Stop if we
9402         reach a CODE_LABEL at BOUNDARY.
9403
9404 2001-08-03  Richard Henderson  <rth@redhat.com>
9405
9406         * config/alpha/alpha.md (force_movdi): New insn.
9407         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
9408         Tweek FRP marking of VMS prologue insns.
9409         * config/alpha/vms.h (EPILOGUE_USES): New.
9410
9411 2001-08-02  Richard Henderson  <rth@redhat.com>
9412
9413         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
9414
9415 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
9416
9417         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
9418         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
9419         config/convex/convex.h, config/d30v/d30v.c,
9420         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
9421         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
9422         config/mips/mips.h, config/mn10200/mn10200.h,
9423         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
9424         config/v850/v850.h, config/vax/openbsd.h,
9425         config/vax/openbsd1.h, config/vax/ultrix.h,
9426         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
9427         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
9428         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
9429         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
9430         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
9431         in comments and documentation.
9432
9433 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9434
9435         * line-map.c: New.
9436         * line-map.h: New.
9437         * Makefile.in (line-map.o): New.
9438         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
9439         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
9440         * cpperror.c (print_containing_files): Similarly.
9441         (print_location): Update.  Don't output a space before _Pragma.
9442         * cppfiles.c (stack_include_file): Set to line 1 immediately.
9443         (stack_include_filee, cpp_make_system_header): Update.
9444         (_cpp_execute_include): Get logical line number right for calling
9445         as-yet-unterminated #include.
9446         * cpphash.h (struct cpp_reader): Add line_maps.
9447         (_cpp_do_file_change): Update.
9448         * cppinit.c (cpp_create_reader): Initialize line maps.
9449         (cpp_destroy): Destroy line maps.
9450         (cpp_start_read): Get logical line number right.
9451         * cpplex.c (parse_string): Only warn once for multi-line strings.
9452         Use boolean variable for null warning.
9453         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
9454         already.
9455         (do_include_common): End the directive early.
9456         (do_line): Don't warn about out-of-range lines in preprocessed
9457         source.  Update.  Remove unused variables.
9458         (_cpp_do_file_change): Update for new line mapping.
9459         (pragma_cb): New typedef.
9460         (cpp_register_pragma): Stop looking ahead before calling the
9461         handler.  Clean up.
9462         (do_pragma_system_header): End directive early.
9463         (cpp_get_line_maps): New.
9464         (cpp_pop_buffer): Fudge logical line.  Update.
9465         * cpplib.h: Include line-map.h
9466         (enum cpp_fc_reason): Remove.
9467         (struct cpp_file_change): Update.
9468         (cpp_get_line_maps): New.
9469         * cppmain.c (struct_printer): New member map.
9470         (cb_file_change): Update for new mappings.
9471         * fix-header.c (cb_file_change): Similarly.
9472
9473 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9474
9475         * Makefile.in (libgcc.mk): Define mkinstalldirs.
9476         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
9477
9478 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
9479
9480         * config/vax/vax.c: include expr.h.
9481
9482 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
9483
9484         * Makefile.in ($(srcdir)/configure): Only rebuild in
9485         maintainer mode.
9486         ($(srcdir)/config.in): Only define in maintainer mode.
9487         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
9488
9489 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
9490
9491         * doc/install.texi (Install GCC: Binaries): Update Bull info.
9492
9493 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9494
9495         * gcc.c (set_collect_gcc_options): New function, split out from
9496         main.
9497         Ignore elided switches.
9498         (do_spec_1): Invoke before executing command.
9499         (set_input): Export.
9500         Move declaration ...
9501         * gcc.h (set_input): ... here.
9502         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
9503         file.
9504
9505 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
9506
9507         Kill -fhonor-std.
9508         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
9509         interaction.
9510         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
9511
9512 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
9513
9514         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
9515         for the unnamed instructions it expands to.
9516
9517 2001-08-02  Richard Henderson  <rth@redhat.com>
9518
9519         * regclass.c (call_really_used_regs): Conditionally define.
9520         (init_reg_sets_1): Don't use it if not defined.
9521         (fix_register): Similarly, don't set it.
9522
9523 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9524
9525         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
9526         Correct comment that had been missed in the previous change.
9527
9528 2001-08-01  Stan Shebs  <shebs@apple.com>
9529
9530         * config/darwin.c (machopic_stub_name): Try matching by name.
9531         (update_stubs): New function.
9532         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
9533         unconditionally.
9534
9535 2001-08-01  Richard Henderson  <rth@redhat.com>
9536
9537         * except.c (output_function_exception_table): Use assemble_align.
9538         * varasm.c (assemble_eh_label): Remove.
9539         (assemble_eh_align, assemble_eh_integer): Remove.
9540
9541 2001-08-01  Robert Lipe  <robertl@caldera.com>
9542
9543         * dwarfout.c: Remove reference to README.DWARF.
9544
9545 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
9546
9547         * regclass.c (call_really_used_regs): New array for registers which
9548         are actually used by a call.
9549         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
9550         new array.
9551         (fix_register): Set call_really_used too.
9552         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
9553         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
9554
9555 2001-08-01  Richard Henderson  <rth@redhat.com>
9556
9557         * read-rtl.c (read_name): Consider \r whitespace.
9558
9559 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
9560
9561         * config.gcc: Recognize powerpc-*-netbsd*.
9562
9563         * doc/install.texi (Host/target specific installation notes for
9564         GCC): Mention powerpc-*-netbsd*.
9565
9566         * config/rs6000/netbsd.h: New file.
9567         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
9568         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
9569         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
9570         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
9571         (TARGET_VERSION): Redefine.
9572
9573         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
9574         mcall-netbsd as a match for mcall-sysv.
9575         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
9576         (ncrti.S, ncrtn.S): New targets.
9577         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
9578
9579         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
9580         "netbsd' as a V4 ABI.
9581         (ASM_SPEC): Check for -mcall-netbsd.
9582         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
9583         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
9584         (LIB_SPEC, ENDFILE_SPEC): Ditto.
9585         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
9586         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
9587         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
9588         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
9589
9590         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
9591         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
9592
9593 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
9594
9595         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
9596         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
9597         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
9598         including "unwind-pe.h".
9599
9600 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
9601
9602         * rs6000.md (define_splits): Kill unused constraints.
9603
9604 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
9605                               Jan Hubicka  <jh@suse.cz>
9606
9607         * function.c (thread_prologue_and_epilogue_insns): Kill code
9608         dealing with non-existent CFG.
9609
9610 2001-08-01  Kazu Hirata  <kazu@hxi.com>
9611
9612         * alias.c: Fix comment formatting.
9613         * bitmap.c: Likewise.
9614         * builtins.c: Likewise.
9615         * calls.c: Likewise.
9616         * c-common.c: Likewise.
9617         * c-decl.c: Likewise.
9618         * c-dump.c: Likewise.
9619         * c-lex.c: Likewise.
9620         * collect2.c: Likewise.
9621         * combine.c: Likewise.
9622         * conflict.c: Likewise.
9623         * cppfiles.c: Likewise.
9624         * cppinit.c: Likewise.
9625         * cpplex.c: Likewise.
9626         * cpplib.c: Likewise.
9627         * cppmacro.c: Likewise.
9628         * cppspec.c: Likewise.
9629         * c-pragma.c: Likewise.
9630         * crtstuff.c: Likewise.
9631         * cse.c: Likewise.
9632         * cselib.c: Likewise.
9633         * c-semantics.c: Likewise.
9634         * c-typeck.c: Likewise.
9635
9636 2001-08-01  H.J. Lu <hjl@gnu.org>
9637
9638         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
9639
9640 2001-08-01  H.J. Lu <hjl@gnu.org>
9641
9642         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
9643
9644 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
9645
9646         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
9647         contextualizing Objective-C class name lookup by the lexer.
9648         (typespec_reserved_nonattr): Disable ObjC class name lookup after
9649         seeing a TYPESPEC.
9650         (protocoldef): Add support for forward @protocol declarations.
9651         (yylexname): Suppress ObjC class name lookup in certain contexts;
9652         re-enable after lookup is complete.
9653         (_yylex): Re-enable ObjC class name lookup when certain
9654         punctuation marks are seen.
9655
9656         * objc/objc-act.c (check_protocol_recursively): New function used
9657         for finding circular dependencies in protocols.
9658         (objc_declare_protocols): New function for handling forward
9659         @protocol declarations.
9660         (receiver_is_class_object): Detect the case when 'self' is used
9661         inside of a class method.
9662         (build_message_expr): Issue a warning if class method is desired
9663         but instance method is found instead.
9664         (conforms_to_protocol): Streamline.
9665         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
9666         protocol Foo, even if 'Bar foo' does not.
9667         (check_protocols): Streamline.
9668         (start_protocol): Add checks for circular and duplicate protocol
9669         definitions.
9670         (encode_aggregate_within): For typedefs of structs, encode the
9671         underlying struct.
9672         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
9673         (objc_declare_protocols): New prototype.
9674
9675 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9676
9677         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
9678         * cpplex.c (handle_newline): Update prototype.  Maintain logical
9679         line number.
9680         (skip_escaped_newlines, skip_block_comment, parse_string):
9681         Update accordingly.
9682         (_cpp_lex_token): Update, and store token position within the token.
9683         * cpplib.h (struct cpp_token): Add line and column entries.
9684         * cppmacro.c (replace_args): Position stringified tokens correctly.
9685
9686 2001-08-01  Andreas Jaeger  <aj@suse.de>
9687
9688         * basic-block.h: Add prototype for last_loop_beg_note.
9689
9690 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
9691
9692         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
9693         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
9694         comment.
9695         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
9696         while handling WITH_CLEANUP_EXPR node. Use second operand calling
9697         expand_decl_cleanup.
9698         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
9699         the first RTX.
9700         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
9701         operand while calling simple_cst_equal.
9702         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
9703         operand is the cleanup expression, the third is the RTL_EXPR.
9704         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
9705
9706 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
9707
9708         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
9709
9710 2001-07-31  matthew green  <mrg@eterna.com.au>
9711
9712         * config.gcc (i386-*-netbsdelf): New description.
9713         * config/i386/netbsd-elf.h: New file.
9714
9715 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
9716
9717         * loop.c (check_dbra_loop): Use single_set to compute
9718         jump_label.
9719
9720 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
9721
9722         PowerPC reorg and support for powerpc64-*-linux*.
9723
9724         Also fixes emitting of constants on 32 bit and 64 bit
9725         platforms.
9726
9727         * config.gcc: powerpc64-*-linux* is a new target.
9728         Things that needed aix.h now also include xcoff.h
9729
9730         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
9731         xcoff.h.
9732         Move AIX specific stuff into aix.h.
9733         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
9734         with more than just XCOFF now.
9735         (SET_ASM_OP): Remove, now defined where needed.
9736         (FUNCTION_PROLOGUE): New macro definition.
9737         (FUNCTION_EPILOGUE): New macro definition.
9738         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
9739
9740         * config/rs6000/xcoff.h: New file.
9741
9742         * config/rs6000/linux64.h: New file.
9743
9744         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
9745
9746 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
9747
9748         * rs6000.c (print_operand_address): Handle ELF syntax.
9749         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
9750         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
9751         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
9752
9753 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
9754
9755         * rs6000.c (rs6000_override_options): Only disable
9756         flag_function_sections for XCOFF.
9757         (exact_log2_cint_operand): New predicate.
9758         (reg_or_{add,sub}_cint64_operand): New predicates.
9759         (add_operand): Compare CONST_INT with fewer function calls.
9760         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
9761         (print_operand, case 'p'): Ensure positive operand.
9762         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
9763         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
9764         (PREDICATE_CODES): Add new predicates.
9765         * rs6000.md (addsi3): Split 32-bit constants more correctly.
9766         (divsi3, modsi3): Ensure positive power-of-2.
9767         (adddi3): Use new predicate.  Split 32-bit constants more
9768         correctly.  Re-arrange splitter to handle any constant.
9769         (subdi3): Use new predicate.
9770         (divdi3, moddi3): Ensure positive power-of-2.
9771         (movdi): Use rs6000_emit_set_const.
9772         (load_toc_v4_pic_di): Delete.
9773
9774 2001-07-31  Graham Stott <grahams@redhat.com>
9775
9776         * function.c (pad_below): Revert 2001-07-26 patch.
9777
9778 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
9779
9780         * reg-stack (convert_regs_1): Fix best edge condition.
9781
9782 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
9783
9784         * jump.c (duplicate_loop_exit_test): Better test for jumps
9785         entering the loop; create loop pre_header.
9786
9787 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
9788
9789         * doc/install.texi: Add s390 and s390x as new targets.
9790         * doc/invoke.texi: Add documentation of S/390 and zSeries
9791         target options.
9792         * doc/md.texi: Add documentation of S/390 and zSeries constraints.
9793
9794 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
9795
9796         * config/m68k/m68k.md: Replace all general_operand with
9797         nonimmediate_operand for all destinations.
9798         * config/m68k/m68k.c (not_sp_operand): Likewise.
9799
9800 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
9801
9802         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
9803
9804 2001-07-30  Richard Henderson  <rth@redhat.com>
9805
9806         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
9807         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
9808
9809 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
9810
9811         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
9812         Add missing doc strings
9813         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
9814         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
9815
9816 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
9817
9818         * i386.c (ix86_output_main_function_alignment_hack): New function.
9819         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
9820
9821         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
9822         edges by EDGE_DFS_BACK flag.
9823         (dump_edge_info): Add dfs_back flag.
9824         * basic-block.h (EDGE_DFS_BACK): New constant.
9825         (mark_dfs_back_edges): Declare.
9826         * alias.c (loop_p): Remove.
9827         (mark_constant_function): Use mark_dfs_back_edges.
9828
9829         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
9830         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
9831         (compensate_edge): Break out from ...
9832         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
9833         (convert_regs_2): Set block_done once block is really done;
9834         Do updating of the predecesors counts.
9835
9836         * toplev.c (rest_of_compilation): Recompute block_for_insn
9837         before post-reload cfg_cleanup.
9838         * function.c (thread_prologue_epilogue_insns):
9839         Call set_block_for_new_insns when emitting prologue directly.
9840
9841 2001-07-30  Andreas Jaeger  <aj@suse.de>
9842
9843         * jump.c: Add prototype for mark_modified_reg.
9844
9845         * cse.c (set_live_p): Add unused attribute.
9846
9847         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
9848         overflow.
9849         (scan_for_source_files): Use long for count to avoid overflow.
9850         (output_data): Likewise.
9851         (output_data): Don't use string concatatenation to silence gcc
9852         -traditional.
9853
9854         * predict.c: Fix typos and grammar.
9855
9856         * gcse.c (insert_insn_end_bb): Remove unused variables.
9857
9858 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
9859
9860         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
9861         (attempt_auto_inc): LIkewise.
9862         (mark_used_reg): Likewise.
9863         (try_pre_increment_1): Likewise.
9864         * regclass.c (regclass): Likewise.
9865         * global.c (allocno_compare): Update comment; change scaling factor.
9866         * local-alloc.c (QTY_CMP_PRI): Likewise.
9867         * regs.h (REG_FREQ_FROM_BB): New.
9868         (REG_FREQ_MAX): Likewise.
9869
9870 2001-07-30  H.J. Lu <hjl@gnu.org>
9871
9872         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
9873         -D_GNU_SOURCE.
9874
9875 2001-07-30  H.J. Lu  (hjl@gnu.org)
9876
9877         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
9878         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
9879         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
9880
9881 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
9882
9883         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
9884         as -mthumb-interwork when -mcpu=arm7 is specified.
9885
9886 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
9887
9888         * predict.def (noreturn, loop branch, loop exit): Mark as first
9889         match heuristics.
9890
9891 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
9892
9893         * combine.c (try_combine): Avoid barrier after noop jumps.
9894
9895 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9896
9897         * cpphash.h (struct cpp_reader): Remove import_warning.
9898         * cpplib.c (skip_rest_of_line): Don't bother turning off
9899         macro expansion.
9900         (parse_include): Move include handling to...
9901         (do_include_common): ... here.  Move import warning from...
9902         (do_import): ... here.
9903         (do_pragma_poison): Don't do a callback for poison identifiers.
9904         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
9905         * cppmain.c (setup_callbacks): Similarly.
9906
9907 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
9908
9909         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
9910         handle multiple sets.
9911         * except.c (sjlj_mark_call_sites): .... here.
9912         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
9913
9914 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
9915
9916         Suggested by Richard Henderson and Richard Kenner:
9917         * combine.c (recog_for_combine): Use the fake recog
9918         only if instruction does not match.
9919         * rtl.h (NOOP_MOVE_INSN_CODE): New.
9920         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
9921
9922         * combine.c (try_combine): Discover noop jump as direct jump.
9923
9924 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
9925
9926         * df.c (df_rd_global_compute): Add successors to worklist, not
9927         current item.
9928         (df_ru_global_compute): Ditto.
9929
9930 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
9931
9932         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
9933         increment REG_N_SETS.
9934
9935 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
9936
9937         * sbitmap.h: New prototype for sbitmap_a_xor_b.
9938
9939         * sbitmap.c (sbitmap_a_xor_b): New function.
9940         ifdef the basic block stuff on IN_GCC.
9941
9942 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
9943
9944         * cppexp.c (parse_defined): Always record the macro name.
9945         (lex): Don't worry about identifiers, or special-case
9946         CPP_NOT here.
9947         (_cpp_parse_expr): Figure out at the end of the routine
9948         whether we saw a valid !defined() expression.
9949         * cppfiles.c (stack_include_file): Update for mi_valid.
9950         (_cpp_pop_file_buffer): Similarly.
9951         * cpplex.c (_cpp_lex_token): Similarly.
9952         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
9953         mi_if_not_defined, mi_lexed): Remove.
9954         (mi_valid): New.
9955         * cpplib.c (do_if): Simplify.
9956         (do_endif, push_conditional, _cpp_handle_directive): Update
9957         for renaming of mi_state to mi_valid.
9958 doc:
9959         * cpp.texi: Add index entries for digraphs, and add comment
9960         that C++ refers to them as alternative tokens.
9961
9962 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
9963
9964         * basic-block.h (CLEANUP_PRE_LOOP): New.
9965         * except.c (finish_eh_generation): Update call of cleanup_cfg.
9966         * sibcall.c (optimize_sibling_calls): Likewise.
9967         * toplev.c (rest_of_compilation): Likewise.
9968         * flow.c (try_forward_edges): Take argument MODE;
9969         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
9970         (try_optimize_cfg): Update call of try_forward_edges.
9971
9972 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
9973                                 Jan Hubicka  <jh@suse.cz>
9974
9975         * (validate_replace_rtx_1): Fix simplification of MINUS.
9976
9977 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9978
9979         PR preprocessor/3669
9980         * cppinit.c (init_dependency_output): Turn off dump requests
9981         if sending dependencies to stdout.
9982
9983 2001-07-28  Richard Henderson  <rth@redhat.com>
9984
9985         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
9986         not optimizing.
9987
9988 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
9989
9990         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
9991
9992 2001-07-28  Kazu Hirata  <kazu@hxi.com>
9993
9994         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
9995         is VAR_DECL first to prevent an ICE.
9996
9997 2001-07-28  Richard Henderson  <rth@redhat.com>
9998
9999         * varasm.c (immed_real_const_1): Don't elide special cases for
10000         nested functions.
10001         (clear_const_double_mem): Clear const_tiny_rtx too.
10002
10003 2001-07-28  Richard Henderson  <rth@redhat.com>
10004
10005         * dwarf2out.c (dw_val_class_offset): New.
10006         (struct dw_ranges_struct, dw_ranges_ref): New.
10007         (ranges_table, ranges_table_allocated): New.
10008         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
10009         (add_AT_offset, add_ranges, output_ranges): New.
10010         (print_die, output_die): Handle dw_val_class_offset.
10011         (attr_checksum, size_of_die, value_format): Likewise.
10012         (gen_lexical_block_die): Handle non-contiguous blocks.
10013         (gen_block_die): Likewise.
10014         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
10015         if needed.  Dump the ranges table.
10016         * final.c (final_start_function): Remove unnecessary notes and
10017         rebuild the block tree before numbering the blocks.
10018         * function.c (reorder_blocks_0): Walk the existing block tree
10019         to unmark all blocks.
10020         (reorder_blocks_1): Create block fragments when duplicate block
10021         notes are seen.
10022         (reorder_fix_fragments): New.
10023         (reorder_blocks): Call it.
10024         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
10025
10026 2001-07-28  Richard Henderson  <rth@redhat.com>
10027
10028         * emit-rtl.c (adjust_address): Make a copy of the memory address.
10029
10030 2001-07-28  Richard Henderson  <rth@redhat.com>
10031
10032         * flow.c (add_to_mem_set_list): New function.
10033         (init_propagate_block_info): Use it.
10034         (mark_set_1): Likewise.
10035         (insn_dead_p): Canonicalize memory address for dead store
10036         comparison.  Allow wider mode stores to kill narrower mode stores.
10037         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
10038         (invalidate_mems_from_set): Don't handle MEMs.
10039
10040 2001-07-28  Kazu Hirata  <kazu@hxi.com>
10041
10042         * config/h8300/h8300.h: Fix formatting.
10043
10044 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
10045
10046         * basic-block.h (EDGE_FREQUENCY): New macro.
10047         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
10048         for new BB/edges.
10049         * flow.c (find_sub_basic_blocks): Likewise.
10050         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
10051         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
10052
10053         * predict.c (DEF_PREDICTOR): New argument FLAGS.
10054         (HITRATE): New macro.
10055         (PRED_FLAG_FIRST_MATCH): New constant.
10056         (predictor_info): New field flgags.
10057         (combine_predictions_for_insn): Use DS theory to combine
10058         probabilities; set the edge probabilities when finished.
10059         (estimate_probability): Avoid duplicated matches
10060         of LOOP_BRANCH heuristics for nested loops; update comment.
10061         * predict.def: Add flags for each prediction, set probabilities
10062         according to B&L paper.
10063         * predict.h (DEF_PREDICTOR): New argument FLAGS.
10064
10065         * profile.c (compute_branch_probabilities):  Cleanup way the edge
10066         probabilities are computed and REG_BR_PROB notes are dropped; if
10067         values does not match, emit error.
10068         (init_branch_prob): Do error instead of warning when profile driven
10069         feedback is missing or corrupt.
10070
10071 2001-07-27  DJ Delorie  <dj@redhat.com>
10072
10073         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
10074         against a constant, try to adjust the compare to have the desired
10075         constant in it so that min/max optimizations happen more often.
10076
10077 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
10078
10079         * flow.c (last_loop_beg_note): New function.
10080         (redirect_edge_and_branch): Use it.
10081         (split_edge): Likewise.
10082
10083         * alias.c (loop_p): Avoid uninitialized memory access.
10084
10085         * flow.c (try_forward_edges): Avoid accessing freed memory.
10086
10087         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
10088         variable access.
10089
10090 2001-07-26  Andrew Haley  <aph@redhat.com>
10091         Joern Rennecke <amylaar@redhat.com>
10092
10093         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
10094         (SUBTARGET_CPP_ENDIAN_SPEC): New.
10095         (SUBTARGET_CPP_SPEC): New.
10096         (CPP_SPEC): Remove.
10097         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
10098         (SUBTARGET_CPP_PTR_SPEC): New.
10099         (CPP_DEFAULT_CPU_SPEC): New.
10100         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
10101         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
10102         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
10103         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
10104         (SUBTARGET_CPP_SPEC): Define as an empty string.
10105
10106 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10107
10108         * doc/install.texi (Configuration): Properly link the host
10109         specific instructions also when generating HTML.
10110
10111 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
10112
10113         * flow.c (redirect_edge_and_branch_force): Test
10114         target->global_live_at_start.
10115
10116 2001-07-26  Richard Henderson  <rth@redhat.com>
10117
10118         * simplify-rtx.c (avoid_constant_pool_reference): Export.
10119         * rtl.h (avoid_constant_pool_reference): Declare it.
10120         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
10121         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
10122
10123 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
10124
10125         * rtl.h (cleanup_barriers): Declare.
10126         * jump.c (cleanup_barriers): New function.
10127         * toplev.c (rest_of_compilation): Call cleanup_barriers
10128         before loop optimizer and after bb_reorder.
10129
10130         * flow.c (back_edge_of_syntactic_loop_p): New.
10131         (split_edge): Use it.
10132
10133 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10134
10135         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
10136
10137 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
10138
10139         * cse.c (cse_process_notes): Replace any registers if the address
10140         remains valid.
10141
10142 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
10143
10144         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
10145         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
10146         (propagate_block): Update prototype.
10147         * flow.c (update_life_info): Simplify the CFG and
10148         recalculate the global regs which are alive when
10149         removing dead code during a global update.
10150         (propagate_block): Return non-zero if an INSN is
10151         deleted.
10152
10153 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10154
10155         * Makefile.in (LIBICONV): Define.
10156
10157 2001-07-26  Catherine Moore  <clm@redhat.com>
10158
10159         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
10160         of conditional to avoid tree checking errors.
10161
10162 2001-07-26  Kazu Hirata  <kazu@hxi.com>
10163
10164         * regmove.c (regmove_optimize): Don't replace a reg with
10165         another reg of a different mode.
10166
10167 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
10168
10169         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
10170         limit length of dependency flush list.
10171         * params.h (MAX_PENDING_LIST_LENGTH): Define.
10172         * sched-int.h  (struct deps): Add pending_flush_length field.
10173         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
10174         has 1 element in it.
10175         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
10176         (sched_analyze): After a jump, if the pending memory flush list is too
10177         large, flush the pending lists.
10178         (init_deps): Initialize pending_flush_length to 0.
10179         * doc/invoke.texi (max_pending_list_length): Document parameter.
10180
10181 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
10182
10183         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
10184         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
10185         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
10186
10187 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10188
10189         * cpphash.h (struct_lexer_state): Delete was_skipping.
10190         Move skipping here from struct cpp_reader.
10191         * cpplex.c (parse_identifier): Update.
10192         (_cpp_lex_token): Don't skip tokens in a directive.
10193         * cpplib.c (struct if_stack): Update.
10194         (start_directive, end_directive): Don't change skipping state.
10195         (_cpp_handle_directive): Update.
10196         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
10197         (do_else, do_endif): Update; only check for excess tokens if not
10198         in a skipped conditional block.
10199         (push_conditional): Update for new struct if_stack.
10200
10201 2001-07-26  Graham Stott  <grahams@redhat.com>
10202
10203         * function.c (locate_and_pad_parm): Also pad initial offset
10204         so that the total argument size also includes the padding.
10205
10206 2001-07-26  Graham Stott <grahams@redhat.com>
10207
10208         * gensupport.c (alter_output_for_insn): Correct enable checking failure
10209         change XSTR to XTMPL.
10210
10211         (process_one_cond_exec): Likewise
10212
10213 2001-07-25  Richard Henderson  <rth@redhat.com>
10214
10215         * varasm.c (assemble_variable): Create DECL_RTL before setting
10216         TREE_ASM_WRITTEN.
10217
10218 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
10219
10220         * predict.c (estimate_probability): Avoid duplicated predictions.
10221
10222         * loop.c (find_and_verify_loops): Grok multiple barriers.
10223
10224 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10225
10226         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
10227
10228         * dbxout.c: Consistently use putc instead of fputc.
10229         (print_wide_int): New function; call instead of direct fprintf.
10230         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
10231         (dbxout_type_fields, dbxout_type_method_1): Likewise.
10232         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
10233         (print_int_cst_octal): Likewise.
10234         (print_octal): Show we wrote characters.
10235         (dbxout_type): Set have_used_extensions in more places.
10236
10237 2001-07-25  Catherine Moore  <clm@redhat.com>
10238
10239         * config/v850/v850.c (v850_va_arg):  Use addr
10240         instead of valist to build incr.
10241
10242 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
10243
10244         * flow.c (delete_dead_jumptables): New function.
10245         (life_analyzis): Call it.
10246         * bb-reorder.c (skip_insns_after_block): Handle contradictory
10247         sequences.
10248
10249 2001-07-25  Richard Henderson  <rth@redhat.com>
10250
10251         * except.c (reachable_handlers): Handle a region being removed
10252         out from under a RESX.
10253
10254 2001-07-25  Richard Henderson  <rth@redhat.com>
10255
10256         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
10257         swap GE/GT if it is an fp comparison.
10258
10259 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
10260
10261         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
10262         operands.
10263
10264 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
10265
10266         * ssa.c (rename_insn_1): Do not wrap an assignment to a
10267         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
10268         glitch.
10269
10270         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
10271         throw an exception.
10272         (visit_expression): When attempting to simplify an expression,
10273         retrieve any modes for arguments before they are simplified
10274         to constants.
10275
10276 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
10277             Janis Johnson  <janis@us.ibm.com>
10278
10279         * stmt.c (expand_goto): A nonlocal goto can be a call too.
10280         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
10281         pointer parameters to match documented usage of nonlocal_goto.
10282         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
10283         parameters to their correct order.
10284         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
10285         parameters to their correct order.
10286
10287 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
10288
10289         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
10290
10291 2001-07-25  Jan Hubicka  <jh@suse.cz>
10292             Richard Henderson  <rth@redhat.com>
10293
10294         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
10295         the sequence.
10296         (make_edges): New argument update_p; populate the edge cache if set.
10297         (find_basic_blocks): Update make_edges invocation.
10298
10299 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10300
10301         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
10302
10303 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10304
10305         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
10306         -Acpu and -Amachine.h.
10307         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
10308         Corrected header to say ELF not a.out.
10309         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
10310         when given -msoft-float.
10311
10312 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10313
10314         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
10315         extra multilib parts like arm-elf.
10316         (i960-*-coff*, i960-*-rtems): Should not use collect2.
10317         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
10318         crtfini.o as extra multilib parts.
10319
10320 2001-07-24  Joel Sherrill <joel@OARcorp.com>
10321
10322         * configure.in: Add rtems as a supported thread model.
10323         * gthr-rtems.h: Add missing entry point __gthread_active_p.
10324         * configure: Rebuilt.
10325
10326 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
10327
10328         * stor-layout.c (get_mode_alignment): make it work when
10329         BITS_PER_UNIT is not a power of two.
10330         * builtins.c (get_pointer_alignment): Likewise.
10331
10332 2001-07-24  Richard Henderson  <rth@redhat.com>
10333
10334         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
10335         the retrieved constant into the expected mode.
10336
10337 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
10338
10339         * flow.c (try_simplify_condjump): Avoid duplicated edges.
10340         (verify_flow_info): Check for duplicated edges; clarify
10341         error reporting.
10342
10343         * flow.c (block_label): Update basic_block_for_insn.
10344         (commit_edge_insertions): Call compute_bb_for_insn.
10345
10346         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
10347         returns too.
10348
10349         * flow.c (redirect_edge_and_branch,
10350         try_optimize_cfg): Use redirect_edge_succ_nodup
10351         (redirect_edge_succ_nodup): New.
10352         * basic_block.h (redirect_edge_succ_nodup): Declare.
10353
10354         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
10355         after gcse.
10356
10357 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
10358
10359         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
10360         (try_crossjump_to_edge): Update commetns.
10361         (try_crossjump_bb): Likewise.
10362
10363 2001-07-24  Richard Henderson  <rth@redhat.com>
10364
10365         * combine.c (distribute_notes): Move set of need_refresh
10366         for noop_move_p down to catch all cases.
10367
10368 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
10369
10370         * recog.c (split_all_insns_noflow): New.
10371         * rtl.h (split_all_insns_noflow): Declare.
10372         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
10373         * m68hc11.c (m68hc11_reorg): Likewise.
10374         * sh.c (machine_dependent_reorg): Likewise.
10375         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
10376         call.
10377
10378 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
10379
10380         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
10381         (ashlsi3_n splitter): Likewise.
10382         (lshrsi3_n splitter): Likewise.
10383
10384         (GOTaddr2picreg): Make const SImode.
10385         (sym_label2reg): Likewise.
10386         (symGOT2reg): Likewise.
10387         (symGOTOFF2reg) Likewise.
10388
10389         (casesi_worker_0): Make unspec SImode.
10390
10391 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
10392
10393         * config/sh/sh.c (barrier_align): Check that an operand really is
10394         an insn before extracting its INSN_CODE.
10395
10396 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
10397
10398         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
10399         dangling else.
10400
10401         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
10402         for SImode to prevent overflow.
10403
10404 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10405
10406         * config/mips/irix6-libc-compat.c: New file.
10407         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
10408         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
10409         passing workaround.
10410
10411 2001-07-24  lars brinkhoff  <lars@nocrew.org>
10412
10413         * rtl.texi (REG_POINTER): Document.
10414         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
10415         QFmode, HFmode, TQFmode, QCmode, and HCmode.
10416
10417 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
10418
10419         * flow.c (delete_noop_moves): Do not confuse libcall regions.
10420
10421 2001-07-23  Richard Henderson  <rth@redhat.com>
10422
10423         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
10424
10425 2001-07-23  Kazu Hirata  <kazu@hxi.com>
10426
10427         * config/h8300/h8300-protos.h: Add a prototype for
10428         general_operand_dst_push.
10429         * config/h8300/h8300.c (general_operand_dst_push): New.
10430         * config/h8300/h8300.h (OK_FOR_T): New.
10431         (EXTRA_CONSTRAINT): Use it.
10432         * config/h8300/h8300.md (movqi_push): Remove and integrate into
10433         the existing movqi pattern.
10434         (movhi_push): Likewise.
10435
10436         * reload.c: Fix comment typos.
10437
10438 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
10439
10440         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
10441
10442 2001-07-23  H.J. Lu  (hjl@gnu.org)
10443
10444         * doc/extend.texi: Update __builtin_return_address and
10445         __builtin_frame_address.
10446
10447 2001-07-23  Richard Henderson  <rth@redhat.com>
10448
10449         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
10450         before CSE.
10451         * config/i386/i386.md: New setcc+movzbl peephole2.
10452
10453 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10454
10455         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
10456         * objc/objc-act.c: Include debug.h.
10457         (synth_module_prologue): Save and restore debug hooks too.
10458
10459 2001-07-23  lars brinkhoff  <lars@nocrew.org>
10460
10461         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
10462         and C4X_FLOAT_FORMAT.
10463         (BOOL_TYPE_SIZE): Document.
10464
10465 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
10466
10467         * unroll.c (loop_iterations): Fix miscalculation of initial
10468         giv offset.
10469
10470 2001-07-13  Andrew Haley  <aph@redhat.com>
10471
10472         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
10473         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
10474         * config/sh/sh.c (sh_can_redirect_branch): New function.
10475         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
10476         * reorg.c (steal_delay_list_from_target): Use
10477         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
10478
10479 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
10480
10481         * flow.c (try_simplify_condjump): Unlink insn chain on
10482         fallthru edge; use can_fallthru.
10483
10484 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
10485
10486         * basic-block.h (find_sub_basic_block): Declare.
10487         * flow.c (make_edges): New arguments MIN and MAX;
10488         (find_sub_basic_blocks): Revamp to use make_edges
10489         and purge_dead_edges.
10490         (find_basic_blocks): Update call of find_sub_basic_block.
10491
10492         * recog.c (split_all_insns): Always expect CFG to be consistent;
10493         call find_sub_basic_blocks in case something has changed.
10494         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
10495         has been built.
10496
10497         * basic-block.h (delete_noop_moves): Declare.
10498         * combine.c (combine_instructions): Call it.
10499         (recog_for_combine): Tolerate noop moves
10500         (distribute_notes): Force refresh when register dies at noop move.
10501         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
10502         too.
10503         (life_analysis): Update delete_noop_moves call.
10504         (set_noop_p): Move too ...
10505         * rtlanal.c (noop_move_p): ... here.
10506         * rtl.h (noop_move_p): Declare.
10507
10508         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
10509         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
10510         after combine.
10511         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
10512         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
10513
10514 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
10515
10516         * reload.c (push_reload): Fix typo in comment.
10517         (find_reloads_address): Ditto.
10518         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
10519
10520 2001-07-22  Richard Henderson  <rth@redhat.com>
10521
10522         * flow.c: Grammar check and clarify a lot of comments.
10523         (try_simplify_condjump): Rename variables to be clearer.
10524         (try_forward_edges): Skip complex and fallthru edges.
10525         Rearrange tests to avoid duplicate checks.
10526         (flow_find_cross_jump): Likewise.
10527         (outgoing_edges_match): Allow match if neither branch has
10528         probability data.  Loosen probability match to 5%.
10529         (try_crossjump_to_edge): Hoist repeated indirection into
10530         local variables.
10531         (try_crossjump_bb): Don't check complex edges.  Eliminate
10532         redundant crossjump tests.
10533         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
10534         checks before more expensive checks.
10535
10536 2001-07-22  Richard Henderson  <rth@redhat.com>
10537
10538         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
10539         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
10540         arguments.
10541
10542 2001-07-22  Richard Henderson  <rth@redhat.com>
10543
10544         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
10545         (const_sint32_operand): Likewise.
10546         * m68k.md (anon mulsi pattern): Use const_int_operand not
10547         const_sint32_operand.
10548         (umulsi3_highpart): Zero extend a constant input.
10549         (smulsi3_highpart): Don't bother checking SImode constant.
10550         (const_umulsi3_highpart): Give op3 DImode.
10551         (const_smulsi3_highpart): Likewise.
10552
10553 2001-07-22  Richard Henderson  <rth@redhat.com>
10554
10555         * flow.c (split_block): Make sure bb_note is included in the
10556         new block when splitting before a label.
10557
10558 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
10559
10560         * basic-block.h (redirect_edge_and_branch_force,
10561         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
10562         * flow.c (redirect_edge_and_branch_force,
10563         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
10564         (redirect_edge_and_branch_force): Fix copying of lifeness information.
10565         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
10566         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
10567         instead of label; update CFG after transformation.
10568         (find_if_case_1): Update call, use redirect_edge_and_branch_force
10569         for finishing the transformation; handle even case where ELSE
10570         does not follow THEN.
10571         (find_if_case_2): Update call of dead_or_predictable; simplify
10572         CFG update.
10573
10574         * emit-rtl.c (split_branch_probability): New global variable.
10575         (try_split): Take care to set split_branch_probability and
10576         create REG_BR_PROB note for new jump insns.
10577         * md.texi (define_split): Document new feature.
10578
10579         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
10580
10581 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10582
10583         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
10584         (asm_out_file): Remove redundant declaration.
10585         (assemble_asm): Remove old #if 0 block.
10586         (assemble_variable): Remove end of function; debug output is
10587         now handled with global_decl.  Remove old #if 0 block.  Update.
10588         Remove saved_in_section and associated no-op code.
10589         * Makefile.in (varasm.o): Correct dependencies.
10590
10591 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
10592
10593         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
10594         the definition in defaults.h.
10595
10596 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
10597
10598         * jump.c: Update comments.
10599         (delete_barrier_successors, delete_unreferenced_labels,
10600         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
10601         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
10602         jump_optimize, jump_optimize_minimal): Kill.
10603         (rebuild_jump_labels): Move code from jump_optimize_1.
10604         (purge_line_number_notes): Likewise.
10605         (copy_loop_headers): Likewise.
10606         * reg-stack.c: Update comment.
10607         * stmt.c: Likewise.
10608         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
10609         JUMP_AFTER_REGSCAN): Kill.
10610         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
10611         purge_line_number_notes and copy_loop_headers.
10612
10613 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
10614            Richard Henderson  <rth@redhat.com>
10615
10616         * dbxout.c (dbxout_global_decl): New.
10617         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
10618         * sdbout.c (sdbout_finish): New.
10619         (sdbout_debug_hooks): Use it, add comments.
10620         (sdbout_global_decl): Defer initialised public vars to
10621         sdbout_finish.
10622         * varasm.c (assemble_variable): Don't output debug information
10623         for file-scope variables.
10624
10625 2001-07-22  Richard Henderson  <rth@redhat.com>
10626
10627         * config/alpha/alpha.c (get_trap_mode_suffix): New.
10628         (get_round_mode_suffix): New.
10629         (print_operand): Use them for [/].  Remove support for [&'`()+].
10630         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
10631         * config/alpha/alpha.md (attr round_suffix): New.
10632         (attr trap_suffix): New.
10633         (all insns): Set them appropriately.  Use %/ instead of the
10634         myriad punctuators.
10635
10636 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
10637
10638         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
10639
10640 2001-07-22  Richard Henderson  <rth@redhat.com>
10641
10642         * regrename.c (regrename_optimize): Compute nregs for each
10643         potential target register.
10644
10645 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
10646            Richard Henderson  <rth@redhat.com>
10647
10648         * dbxout.c (dbxout_global_decl): New.
10649         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
10650         * sdbout.c (sdbout_finish): New.
10651         (sdbout_debug_hooks): Use it, add comments.
10652         (sdbout_global_decl): Defer initialised public vars to
10653         sdbout_finish.
10654         * varasm.c (assemble_variable): Don't output debug information
10655         for file-scope variables.
10656
10657 2001-07-21  H.J. Lu  (hjl@gnu.org)
10658
10659         * config/mips/mips.c (mips_cpu): Moved into ...
10660         (override_options): Here.
10661
10662         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
10663         mips_tune.
10664         (mips_cpu): Removed.
10665
10666 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10667
10668         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
10669         ("iorqi3"): Likewise.
10670         ("xorqi3"): Likewise.
10671         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
10672         ("*subhi3_sp): Likewise.
10673         ("*subhi3"): Likewise.
10674         ("extendhisi2"): Accept D, X and Y as source operand to avoid
10675         reload problems.
10676
10677 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
10678
10679         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
10680         * config/freebsd.h: Likewise.
10681         * config/linux.h: Likewise.
10682         * config/openbsd.h: Likewise.
10683         * config/alpha/linux-elf.h: Likewise.
10684         * config/arm/linux-elf.h: Likewise.
10685         * config/d30v/d30v.h: Likewise.
10686         * config/fr30/fr30.h: Likewise.
10687         * config/ia64/aix.h: Likewise.
10688         * config/ia64/ia64.h: Likewise.
10689         * config/mips/linux.h: Likewise.
10690         * config/pj/pj.h: Likewise.
10691         * config/rs6000/linux.h: Likewise.
10692         * config/sparc/linux.h: Likewise.
10693         * config/sparc/linux64.h: Likewise.
10694
10695 2001-07-20  Bruce Korb  <bkorb@gnu.org>
10696
10697         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
10698         because getc() and char* may disagree on signedness.
10699
10700 2001-07-20  Richard Henderson  <rth@redhat.com>
10701
10702         * doc/rtl.texi (REG_DEAD): Update for current semantics.
10703
10704         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
10705         insns to delete in the presence of cc0 in a jump insn.
10706
10707 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
10708                                 Jan Hubicka  <jh@suse.cz>
10709
10710         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
10711         of doing the change by hand.
10712
10713 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
10714
10715         * rtlanal.c (set_noop_p): Return true for noop jumps.
10716
10717         * expr.c (emit_single_push_insn): Add call to push expander.
10718         * expr.h (optab_index): Add OTI_push
10719         (push_optab): New constant.
10720         * genopinit.c (optabs): Add push_optab.
10721         * optabs.c (init_optab): Init push optab.
10722         * md.texi (push??1): Document
10723
10724 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10725
10726         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
10727         expand to emit the pattern; put a REG_INC note for push/pop
10728         instructions.
10729         ("movdf", "movdf_internal"): Likewise.
10730         ("movsi", "movsi_internal"): Likewise.
10731         ("movsf", "movsf_internal"): Likewise.
10732         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
10733
10734 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10735
10736         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
10737         gen_highpart.
10738
10739 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
10740
10741         * params.def: Change default max inline insns to 100.
10742
10743 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
10744
10745         * combine.c (combine_simplify_rtx): Generate a new shift operation
10746         when simplifying the first operand of a (neg (ashift)) expression.
10747
10748 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
10749
10750         * regclass.c (N_REG_INTS): Use only 32 bits per element.
10751
10752 2001-07-20  Kelley Cook  <kelley.cook@home.com>
10753
10754         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
10755         information.   Move rest into ...
10756         (*-*-solaris): ... here.  Eliminate redundant information and
10757         reword necessary packages section.  Delete 4.x assembler bug info.
10758         (sparc-sun-*): Merge into ...
10759         (sparc-sun-sunos*): here.
10760
10761 2001-07-20  Catherine Moore  <clm@redhat.com>
10762
10763         * config/v850/v850.md (casesi): Generate LABEL_REF
10764         with Pmode.
10765
10766 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
10767
10768         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
10769         * i386.c (ix86_zero_extend_to_Pmode): Make global.
10770         * i386.md (strclrsi expander): Use it.
10771
10772 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
10773
10774         * integrate.c (copy_insn_list): handle
10775         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
10776         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
10777         identically as to CODE_LABEL.
10778
10779         * fold-const (fold): Convert A/B/C to A/(B*C) and
10780         A/(B/C) to (A/B)*C
10781
10782         * except.c (connect_post_landing_pads): Delete the RESX insns.
10783
10784 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
10785
10786         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
10787
10788         * config/mips/mips.md (nmadd/nmsub): Use macro.
10789
10790 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
10791
10792         * cppinit.c (remove_dup_dir): Make static.
10793         (remove_dup_dirs): Make static. Only warn about preempting a
10794         system directory with a non-system directory.
10795
10796 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
10797
10798         * ifcvt.c (noce_try_store_flag_constants): Correct order
10799         of parameters to trunc_int_for_mode.
10800
10801 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
10802
10803         * reorg.c (fill_simple_delay_slots): If an instruction might throw
10804         an exception that will be caught within this function, do not fill
10805         its delay slot with any subsequent instruction.
10806
10807 2001-07-19  Steve Ellcey <sje@cup.hp.com>
10808
10809         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
10810         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
10811         pointer extension instruction.
10812         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
10813         * simplify-rtx.c (simplify_unary_operation) Likewise.
10814         * explow.c (convert_memory_address) Check value of
10815         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
10816         less than zero.
10817         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
10818         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
10819         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
10820         Add Multilib Support.
10821         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
10822         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
10823         Add Multilib Support.
10824         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
10825         support.
10826         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
10827         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
10828         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
10829
10830 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
10831
10832         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
10833         old and new operands in `<', `3' and `b'.
10834
10835 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10836
10837         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
10838         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
10839         (toplev.o): Don't depend on xcoffout.h.
10840         * c-decl.c: Include debug.h
10841         (duplicate_decls): Use debug hook.
10842         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
10843         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10844         (dbxout_types): Remove.
10845         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
10846         * debug.c (do_nothing_debug_hooks): Update.
10847         (debug_true_tree, debug_nothing_rtx): New.
10848         * debug.h (struct rtx_def): New.
10849         (struct gcc_debug_hooks): New hooks ignore_block,
10850         outlining_inline_function and label.
10851         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
10852         dwarf2out_frame_finish): New.
10853         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
10854         Make static, update prototype.
10855         (dwarf2_debug_hooks): Update.
10856         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
10857         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
10858         * dwarfout.c (dwarf_debug_hooks): Update.
10859         * emit-rtl.c: Include debug.h.
10860         (remove_unnecessary_notes): Use debug hook.
10861         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
10862         (final_scan_insn): Use debug hook.
10863         * integrate.c (output_inline_function): Use debug hook.
10864         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
10865         (sdb_debug_hooks): Update.
10866         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
10867         * toplev.c: Don't include xcoffout.h.
10868         (note_outlining_of_inline_function, debug_ignore_block): Remove.
10869         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
10870         Remove.
10871         * tree.h (dwarf2out_do_frame): Remove.
10872
10873 2001-07-19  Catherine Moore  <clm@cygnus.com>
10874
10875         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
10876
10877 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
10878
10879         * reload1.c (eliminate_regs_in_insn): When updating a set
10880         to the frame pointer to the hardware frame pointer, perform
10881         the update always not just when REPLACE is set.
10882
10883         * reload1.c (choose_reload_regs): Don't inherit a reload
10884         that crosses multiple registers if registers past the first
10885         don't fit in the desired class.
10886
10887         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
10888         when negating constants.
10889
10890 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
10891
10892         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
10893         * doc/tree.texi: Ditto.
10894
10895 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
10896             Jakub Jelinek  <jakub@redhat.com>
10897
10898         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
10899         (extract_cie_info): Handle "eh" augmentation properly,
10900         remember eh_ptr.
10901         (struct frame_state, __frame_state_for): New.
10902
10903 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10904
10905         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
10906         HANDLE_SYSV_PRAGMA): Define.
10907         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
10908         previous args.
10909         (copy_object): Caller changed.
10910
10911 2001-07-19  Andreas Schwab  <schwab@suse.de>
10912
10913         * configure.in (assembler dwarf2 debug_line support): Define nop
10914         insn for m68k.
10915         * configure: Regenerated.
10916
10917 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10918
10919         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
10920         dwarfout.h.
10921         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
10922         to conditionally compiled block.
10923         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10924         * dbxout.h (dbxout_function): Remove.
10925         * debug.c (do_nothing_debug_hooks): Update.
10926         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
10927         global_decl, deferred_inline_function.
10928         * dwarf2out.c (dwarf2_debug_hooks): Update.
10929         (dwarf2out_global_decl): New.
10930         * dwarfout.c: Don't include dwarfout.h.
10931         (dwarfout_global_decl, dwarfout_function_decl,
10932         dwarfout_deferred_inline_function): New.
10933         (dwarf_debug_hooks): Update.
10934         * dwarfout.h: Remove.
10935         * final.c: Don't include dwarfout.h.
10936         * sdbout.c (sdbout_global_decl): New.
10937         (sdbout_debug_hooks): Update.
10938         * toplev.c: Don't include dwarfout.h.
10939         (check_global_declarations, rest_of_compilation): Use new debug hooks.
10940         (note_deferral_of_defined_inline_function): Remove.
10941         * toplev.h (note_deferral_of_defined_inline_function): Remove.
10942         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
10943         * ch/lex.c: Don't include dwarfout.h.
10944         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
10945         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
10946         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
10947         * cp/optimize.c: Include debug.h.
10948         (maybe_clone_body): Use debug hook.
10949         * cp/semantics.c: Include debug.h.
10950         (expand_body): Use debug hook.
10951         * po/POTFILES.in: Remove dwarfout.h.
10952
10953 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10954
10955         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
10956         * c-parse.in (yyerror, _yylex): Similarly.
10957         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
10958         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
10959         Update comments.
10960         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
10961         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
10962
10963 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
10964
10965         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
10966         in-class declaration at -g1.  Fixes c++/2814.
10967
10968 2001-07-18  Richard Henderson  <rth@redhat.com>
10969
10970         * doc/md.texi (reload_in/out): Document restrictions in predicates
10971         and constraints for these patterns.  Document empty string matching
10972         ALL_REGS.
10973
10974 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10975
10976         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
10977
10978 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
10979
10980         * cse.c: Undo my previous patch.
10981
10982 2001-07-18  Tom Tromey  <tromey@redhat.com>
10983
10984         For PR java/2812:
10985         * configure: Rebuilt.
10986         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
10987         instead.
10988         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
10989
10990 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
10991                                 Jan Hubicka  <jh@suse.cz>
10992
10993         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
10994         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
10995         * jump.c (mark_jump_label): Do not forward branches.
10996
10997 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
10998
10999         * cse.c (delete_trivially_dead_insns): Delete the libcall block
11000         when return value is unused.
11001
11002 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
11003
11004         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
11005
11006 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
11007
11008         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
11009         on error.  We can't blindly return the result of
11010         pthread_mutex_trylock because it returns a positive number on
11011         error, while we must return -1 on error.
11012         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
11013         fixes.
11014         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
11015
11016 2001-07-18  Andreas Jaeger  <aj@suse.de>
11017
11018         * integrate.c (output_inline_function): Correct type of debug_hooks.
11019
11020 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
11021
11022         * combine.c (combine_simplify_rtx): DIV can be treated
11023         associatively for floats if unsafe math optimisations are enabled.
11024
11025 2001-07-17  Richard Henderson  <rth@redhat.com>
11026
11027         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
11028
11029 2001-07-17  Richard Henderson  <rth@redhat.com>
11030
11031         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
11032         don't force the function address into a register.
11033         (expand_call, emit_library_call_value_1): Update callers.
11034         * builtins.c (expand_builtin_apply): Likewise.
11035         * expr.h (prepare_call_address): Update decl.
11036
11037 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
11038
11039         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
11040         config directory.
11041         * config/i386/chorus.h: Move up.
11042         * config/sparc/chorus.h: Likewise.
11043         * config/rs6000/chorus.h: Likewise.
11044         * config/chorus.h: Moved here.
11045
11046 2001-07-17  Andreas Schwab  <schwab@suse.de>
11047
11048         * configure.in  (assembler eh_frame optimization): Handle big
11049         endian.
11050         * configure: Regenerated.
11051
11052 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
11053
11054         * expr.c (epxand_expr): Convert divisions into multiplications by
11055         reciprocals if -ffast-math.
11056
11057 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
11058
11059         * dbxout.c (dbxout_really_begin_function): Rename to
11060         dbxout_begin_function.
11061         (dbx_debug_hooks, xcoff_debug_hooks): Update.
11062         (dbxout_begin_function): Remove.
11063         (dbxout_function): Update.
11064         (dbxout_source_line): Update prototype.
11065         * dbxout.h (dbxout_begin_function): Remove.
11066         * debug.c (do_nothing_debug_hooks): Update.
11067         (debug_nothing_tree): Update.
11068         (debug_nothing_charstar_rtx): Remove.
11069         * debug.h (union tree_node): Declare.
11070         (struct rtx_def): Remove.
11071         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
11072         begin_function.  Change source_line prototype.
11073         (debug_nothing_tree): New.
11074         (debug_nothing_charstar_rtx): Delete.
11075         (dwarf2out_begin_prologue): Moved from ...
11076         * tree.h: ... here.
11077         * dwarf2out.c (dwarf2_debug_hooks): Update.
11078         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
11079         debug info, call dwarf2out_source_line.
11080         (dwarf2out_souce_line): Update prototype.
11081         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
11082         Change prototype, make static.
11083         (dwarfout_source_line): Update prototype.
11084         (dwarf_debug_hooks): Update.
11085         * dwarfout.h (dwarfout_begin_function): Remove.
11086         * final.c (final_start_function, final_scan_insn): Use appropriate
11087         debug hooks, update to use notice_source_line.
11088         (output_source_line): Rename notice_source_line.  Don't call the
11089         source_line debug hook.
11090         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
11091         make static, update prototype.
11092         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
11093         prototype.
11094         (sdbout_end_prologue): New.
11095         (sdbout_source_line): Update prototype.
11096         (sdbout_debug_hooks): Update.
11097         (sdbout_symbol): Remove unused var.
11098         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
11099         Delete.
11100         * varasm.c: Include debug.h.
11101         (assemble_start_function): Use begin_function debug_hook.
11102         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
11103         update with prototype.
11104         (xcoffout_source_line): Update prototype.
11105         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
11106         update prototype.
11107         (xcoffout_source_line): Update prototype.
11108
11109 2001-07-17  Richard Henderson  <rth@redhat.com>
11110
11111         * c-typeck.c (build_binary_op): Do not shorten unsigned
11112         right shift after sign extension.
11113
11114 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
11115
11116         * combine.c (combine_simplify_rtx): Attempt to simplify
11117         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
11118
11119         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
11120         (simplify_binary_operation, simplify_unary_operation,
11121          simplify_relational_operation): Use it.
11122
11123         * combine.c (combine_simplify_rtx): Don't do associative law
11124         on divisions; allow associative law on floats.
11125
11126 2001-07-17  H.J. Lu <hjl@gnu.org>
11127             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11128
11129         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
11130         ASM_OUTPUT_WEAK_ALIAS are defined.
11131         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
11132         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
11133         Moved ...
11134         * config/mips/iris5.h: ... here.
11135         (HANDLE_SYSV_PRAGMA): Defined as 1.
11136         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
11137         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
11138         symbol.
11139
11140 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
11141
11142         * c-parse.in (all_prefix_attributes): New variable.
11143         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
11144         (maybe_resetattrs): New production.
11145         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
11146         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
11147         notype_initdcl, nested_function, notype_nested_function,
11148         component_decl, components, components_notype,
11149         component_declarator, component_notype_declarator,
11150         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
11151         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
11152         after a comma being applied to more than one declarator.
11153         * doc/extend.texi (Attribute Syntax): Update.  Remove
11154         documentation of bugs that are no longer present.
11155
11156 2001-07-13  Eric Christopher  <echristo@redhat.com>
11157
11158         * config/mips/mips.h: Change TUNE_MIPS* options to use
11159         mips_tune.
11160         (EXTRA_SPECS): Add cc1_cpu_spec.
11161         * config/mips/mips.md (muldf3): Fix typo.
11162
11163 2001-07-16  Richard Henderson  <rth@redhat.com>
11164
11165         * config/m68k/m68k.c: Include expr.h and reload.h.
11166         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
11167         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
11168
11169 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
11170             Richard Henderson  <rth@redhat.com>
11171
11172         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
11173         (insn_live_p): Fix fall off end of function.
11174         (dead_libcall_p): Remove COUNTS argument; update callers.
11175         (delete_trivially_dead_insns): Remove unused variables.
11176
11177 2001-07-17  Andreas Jaeger  <aj@suse.de>
11178
11179         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
11180         x86-64 pic support.
11181
11182         * lcm.c (optimize_mode_switching): Avoid warning for unused
11183         variable if !NORMAL_MODE.
11184
11185         * flow.c (try_crossjump_to_edge): Remove unused variable.
11186
11187 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11188
11189         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
11190         atexit declaration in stdlib.h.
11191
11192 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
11193
11194         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
11195
11196 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
11197
11198         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
11199         * except.c (finish_eh_generation): Update call of cleanup_cfg;
11200         do rebuild_jump_labels instead of jump_optimize
11201         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
11202         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
11203         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
11204
11205         * flow.c: Include timevar.h
11206         (find_basic_block): Push/pop timevar;
11207         (cleanup_cfg): Likewise.
11208         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
11209         * Makefile: Add dependencies on timevar.h
11210
11211         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
11212         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
11213
11214         * rtl.h (delete_trivially_dead_insns): Add new parameter.
11215         * toplev.c (rest_of_compilation): Update calls.
11216         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
11217         (delete_trivially_dead_insns): ... here; accept new argument
11218         preserve_basic_blocks; preserve basic blocks if set.
11219
11220         * reg-stack.c (stack_regs_mentioned): Return 0 if
11221         stack_regs_mentioned_data is not initialized.
11222         (reg_to_stack): Make stack_regs_mentioned survive after the
11223         reg-stack is completted; do not call cleanup_cfg.
11224         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
11225         make cleanup_cfg after bb-reorder to output to debug file.
11226
11227 2001-07-16  Richard Henderson  <rth@redhat.com>
11228
11229         * regclass.c (init_reg_sets): Use only 32 bits per initializer
11230         from int_reg_class_contents.
11231
11232 2001-07-16  Richard Henderson  <rth@redhat.com>
11233
11234         * hard-reg-set.h (regs_invalidated_by_call): Declare.
11235         * regclass.c (regs_invalidated_by_call): Move from cse.c.
11236         (init_reg_sets_1): Move initialization from cse_main.
11237         * cse.c (regs_invalidated_by_call): Move to regclass.c.
11238         (cse_main): Move its initialization also.
11239         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
11240         * flow.c (propagate_one_insn): Likewise.
11241         * gcse.c (compute_hash_table): Likewise.
11242         (compute_kill_rd, compute_store_table): Likewise.
11243         * sched-deps.c (sched_analyze_1): Likewise.
11244
11245 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
11246
11247         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
11248         gen_rtx_SET.
11249
11250 2001-07-16  Steve Ellcey <sje@cup.hp.com>
11251
11252         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
11253         in if statement so we don't access undefined memory.
11254
11255 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
11256
11257         * gcse.c: Update comment at top.
11258         Update comment on mem handling.
11259         mem_last_set, mem_first_set, mem_set_in_block: gone.
11260         Declaration of reg_set_info: gone.
11261         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
11262         pointless with load_killed_in_block_p (they are *more*
11263         conservative then it, not less, and less accurate).
11264         (oprs_not_set_p): Ditto.
11265         (alloc_gcse_mem): Don't allocate mem_set_in_block
11266         (free_gcse_mem): Don't free it, either.
11267         (record_last_mem_set_info): Update comment in front, remove
11268         mem_*set_* stuff. Note the reason we don't handle stores directly
11269         here.
11270         (compute_hash_table): Update comments to reflect reality. Remove
11271         mem_*set_* references.
11272         (reset_opr_set_tables): Remove mem_*set_* references.
11273         (mark_call): Ditto.
11274         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
11275         (mark_clobber): Ditto (on both parts, we double set here too).
11276         (expr_killed_p): Remove mem_set_in_block test.
11277         (compute_transp): Remove mem_set_in_block test.
11278
11279         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
11280         of edge, and removal of phi alternative to dump file.
11281         (ssa_ccp_substitute_constants): Add note about register now being
11282         constant, and which uses were replaced in what insns to dump file.
11283
11284 2001-07-16  Andreas Jaeger  <aj@suse.de>
11285
11286         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
11287         variables of type HOST_WIDEST_INT.
11288
11289         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
11290         (__bb_exit_func): Correct type of count_max to avoid overflow.
11291         (num_digits): Handle long long argument.
11292
11293         * combine.c (gen_lowpart_for_combine): Remove unused variable.
11294
11295 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
11296
11297         * output.h (sdb_begin_function_line): Restore as an extern
11298         variable.
11299         * sdbout.c (sdb_begin_function_line): Make extern.
11300
11301 2001-07-15  Richard Henderson  <rth@redhat.com>
11302
11303         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
11304         * genrecog.c (maybe_both_true_mode): New.
11305         (maybe_both_true_2): Use it.
11306         (write_switch): Don't put Pmode in a switch.
11307         * rtl.c (mode arrays): Don't explicitly size them.
11308
11309 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
11310
11311         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
11312         handling; move unconditional splitting before mode switching.
11313
11314         * i386.md (type): Add fistp type.
11315         (i387, length_attr, scheduling definitions): Handle this type.
11316         (fix_trunc?f?i2): Revamp to use mode switching.
11317         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
11318         * i386.h (fp_cw_mode): New enum
11319         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
11320         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
11321
11322 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11323
11324         * Makefile.in (integrate.o): Add debug.h.
11325         * integrate.c (debug.h): Add.
11326         (output_inline_function): Save, reset, and restore debug_hooks.
11327
11328 2001-07-15  Richard Henderson  <rth@redhat.com>
11329
11330         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
11331         instead of COMPARE for the EQUIV expression.
11332
11333 2001-07-15  Richard Henderson  <rth@redhat.com>
11334
11335         * flow.c (redirect_edge_and_branch_force): Initialize
11336         global_live_at_start and global_live_at_end.
11337         (allocate_bb_life_data): Export.
11338         * basic-block.h (allocate_bb_life_data): Declare.
11339         * toplev.c (rest_of_compilation): Call it.
11340
11341 2001-07-15  Richard Henderson  <rth@redhat.com>
11342
11343         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
11344         (alpha_tablejump_best_label): New.
11345         * config/alpha/alpha-protos.h: Declare them.
11346         * config/alpha/alpha.md: Use braced strings for code blocks.
11347         (tablejump_osf): Break out add with r29.
11348         (tablejump_osf_internal): Remove.
11349         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
11350         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
11351
11352 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
11353
11354         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
11355         of the movable.
11356
11357         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
11358
11359         * i386-protos.h (ix86_split_fp_branch): Update prototype.
11360         (ix86_fp_jump_nontrivial_p): New.
11361         * i386.md (fp_jcc_?): Update call of split_fp_branch;
11362         use ix86_fp_jump_nontrivial_p.
11363         * i386.c (ix86_fp_jump_nontrivial_p): New.
11364         (ix86_split_fp_branch): Accept code instead of rtx.
11365         (ix86_expand_compare): Expand comparison early in case
11366         doing so is resonably cheap.
11367
11368 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
11369
11370         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
11371         not 'machine'.
11372         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
11373         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
11374
11375 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
11376
11377         * dbxout.c (dbxout_source_line): Make static, update prototype.
11378         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
11379         (dbxout_init, dbxout_finish, dbxout_source_line,
11380         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
11381         * dbxout.h (dbxout_source_line): Delete.
11382         * debug.c (debug_nothing_file, debug_nothing_file_int,
11383         debug_nothing_file_charstar_rtx): New.
11384         (do_nothing_debug_hooks): Update.
11385         (debug_nothing_void, debug_nothing_charstar_rtx,
11386         dwarf2out_end_epilogue): New.
11387         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
11388         * debug.h (struct rtx_def): Declare.
11389         (gcc_debug_hooks): New hooks source_line, end_epilogue
11390         and end_function.
11391         (debug_nothing_void, debug_nothing_charstar_rtx,
11392         dwarf2out_end_epilogue): New.
11393         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
11394         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
11395         (dwarf2_debug_hooks): Update.
11396         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
11397         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
11398         * dwarf2out.h (dwarf2out_source_line): Remove.
11399         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
11400         Make static, update prototype.
11401         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
11402         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
11403         (dwarf_debug_hooks): Update.
11404         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
11405         dwarfout_end_function): Remove.
11406         * final.c (profile_function): Use debug hooks for ending functions
11407         and epilogues.
11408         (output_source_line, final_end_function): Update prototype,
11409         use debug hooks.
11410         (final_start_function, final_scan_insn): Update.
11411         * output.h (sdb_begin_function_line): Remove.
11412         (final_end_function): Update prototype.
11413         * sdbout.c (sdb_begin_function_line): Make static.
11414         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
11415         (sdbout_source_line): New.
11416         (sdbout_end_epilogue, sdbout_end_function): Make static, update
11417         prototypes.
11418         (sdb_debug_hooks): Update.
11419         (sdbout_init, sdbout_source_line,
11420         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
11421         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
11422         * toplev.c (compile_file, rest_of_compilation): Update.
11423         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
11424         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
11425         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
11426         Update for prototype changes.
11427         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
11428         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
11429
11430 2001-07-15  Richard Henderson  <rth@redhat.com>
11431
11432         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
11433         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
11434         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
11435         * config/alpha/alpha.c: Likewise.
11436         * config/alpha/alpha.md: Likewise.
11437         * config/alpha/alpha32.h: Likewise.
11438         * config/alpha/vms.h: Likewise.
11439         (OPEN_VMS): Remove.
11440
11441 2001-07-14  Richard Henderson  <rth@redhat.com>
11442
11443         * config/alpha/alpha.md: Use define_constants for unspec values.
11444         Substitute throughout.
11445
11446 2001-07-14  Tim Josling  <tej@melbpc.org.au>
11447
11448         * tree.def (EXPON_EXPR) remove. Never supported anyway.
11449
11450 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11451
11452         * pa.md: Remove unused constraints from define_split's.
11453
11454 2001-04-14  Richard Henderson  <rth@redhat.com>
11455
11456         * ifcvt.c (find_cond_trap): Test for exit block.
11457
11458 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
11459
11460         Re-install recently reverted patch.
11461         * emit-rtl.c (try_split): Update mark_jump_label call.
11462         * flow.c (find_sub_basic_blocks): Likewise.
11463         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
11464         jump_back_p): Kill.
11465         (mark_all_labels): Kill second parameter.
11466         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
11467         (rebuild_jump_labels, jump_optimize_minimal): Update call
11468         of jump_optimize_1.
11469         (jump_optimize_1): Kill crossjumping code.
11470         (mark_jump_label): Kill cross_jump parameter.
11471         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
11472         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
11473         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
11474          splitting.
11475         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
11476         DFI_bpro.
11477         (dump_file_info): Likewise.
11478         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
11479         reorganize passes to do reg-stack first, bb-reorder second.
11480         * invoke.texi (-d letters doc): Remove the jump2 pass.
11481
11482 2001-07-14  Richard Henderson  <rth@redhat.com>
11483
11484         * ifcvt.c (find_cond_trap): New.
11485         (find_if_header): Call it.
11486         (merge_if_block): Relax existing jump sanity check.
11487         * jump.c (jump_optimize_1): Remove conditional trap handling.
11488
11489 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
11490
11491         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
11492         millicode.
11493         (insn_refs_are_delayed): Correct comment.
11494         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
11495         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
11496         instead of r31.  Make associated insn !TARGET_64BIT, and
11497         provide an additional 64-bit insn that clobbers r2.
11498         (divsi3): Likewise.
11499         (udivsi3): Likewise.
11500         (modsi3): Likewise.
11501         (umodsi3): Likewise.
11502
11503 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
11504
11505         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
11506
11507         * flow.c (redirect_edge_and_branch_force, split_edge,
11508         try_crossjump_to_edge): Use set_block_for_new_insns.
11509         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
11510
11511 2001-07-13  H.J. Lu  (hjl@gnu.org)
11512
11513         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
11514         the correct patch.
11515
11516 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
11517
11518         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
11519
11520 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
11521
11522         * c-common.c (decl_attributes): Take a pointer to the node to
11523         which attributes are to be attached, and a flags argument.
11524         * c-common.h (enum attribute_flags): New.
11525         (decl_attributes): Update prototype.
11526         * c-decl.c (start_decl, push_parm_decl, finish_struct,
11527         finish_enum, start_function): Update calls to decl_attributes.
11528         * c-parse.in (component_declarator, component_notype_declarator,
11529         label): Update calls to decl_attributes.
11530
11531 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
11532
11533         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
11534         * config/avr/avr.c (legitimate_address_p): Return value changed
11535         from letter to register classes. For better debugging.
11536
11537 2001-07-13  Kazu Hirata  <kazu@hxi.com>
11538
11539         * jump.c (reversed_comparison_code_parts): Fix comment typos.
11540
11541 2001-07-13  H.J. Lu  (hjl@gnu.org)
11542
11543         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
11544
11545 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
11546
11547         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
11548         correctly for shared configurations.
11549         * config/t-libgcc-pic:  New.
11550         * config/{i386,m68k,sparc}/t-openbsd:  New.
11551         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
11552         Support -shared.  Support debugging libraries with -g.
11553         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
11554         frame information does not emit pointer diffs.
11555         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
11556         emit pointer diffs.
11557
11558 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
11559
11560         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
11561
11562 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
11563
11564         * combine.c (try_combine): Ensure const_int pow2 is positive.
11565
11566 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
11567
11568         * config.gcc: Add configuration for s/390.
11569         * config/s390/s390.c: New. Subroutines for code generation.
11570         * config/s390/s390.h: New. Definitions for s/390.
11571         * config/s390/s390-protos.h: New. Prototypes.
11572         * config/s390/linux.h: New. Definitions for linux for s/390.
11573         * config/s390/linux64.h: New. Definitions for linux for zSeries.
11574         * config/s390/t-linux: New. Makefile fragment.
11575         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
11576         * config/s390/fixdfdi.h: New. Fix L_fix*di.
11577
11578 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
11579
11580         * emit-rtl.c (try_split): Update mark_jump_label call.
11581         * flow.c (find_sub_basic_blocks): Likewise.
11582         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
11583         jump_back_p): Kill.
11584         (mark_all_labels): Kill second parameter.
11585         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
11586         (rebuild_jump_labels, jump_optimize_minimal): Update call
11587         of jump_optimize_1.
11588         (jump_optimize_1): Kill crossjumping code.
11589         (mark_jump_label): Kill cross_jump parameter.
11590         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
11591         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
11592         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
11593          splitting.
11594         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
11595         DFI_bpro.
11596         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
11597         reorganize passes to do reg-stack first, bb-reorder second.
11598         * invoke.texi (-d letters doc): Remove the jump2 pass.
11599
11600 2001-07-12  Steve Ellcey <sje@cup.hp.com>
11601
11602         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
11603
11604 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
11605
11606         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
11607         basic blocks.
11608         (verify_flow_info): Make diagnostics prettier.
11609
11610 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
11611
11612         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
11613
11614         * flow.c (outgoing_edges_match): Return early if condition reversal
11615         failed.
11616
11617 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
11618
11619         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
11620         (mips_move_2words): When splitting a move into two instructions,
11621         prefix the second address operand with '%D'.
11622
11623 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
11624
11625         * Makefile.in (final.o): Depend on debug.h.
11626         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
11627         (dbx_debug_hooks): Add new hooks.
11628         (xcoff_debug_hooks): New.
11629         * debug.c (debug_nothing_file_int_int): New.
11630         (do_nothing_debug_hooks): Update.
11631         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
11632         (debug_nothing_file_int_int): New.
11633         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
11634         static, update prototype.
11635         (dwarf2_debug_hooks): Update.
11636         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
11637         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
11638         static, update prototype.
11639         (dwarf_debug_hooks): Update.
11640         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
11641         * final.c: Include debug.h.
11642         (final_scan_insn): Use debug hooks when beginning and ending blocks.
11643         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
11644         static, update prototype.
11645         (sdb_debug_hooks): Update.
11646         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
11647         * toplev.c: Distinguish between xcoff and dbx.
11648
11649         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
11650         Call all debug hooks, not just dwarf ones.
11651
11652 2001-07-11  Timothy Wall  <twall@redhat.com>
11653
11654         * config.gcc: Add configuration for AIX5/IA64.
11655         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
11656         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
11657         support prefix/suffix code.
11658         * config/ia64/t-aix: New.  Makefile fragment.
11659         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
11660
11661 2001-07-11  Kazu Hirata  <kazu@hxi.com>
11662
11663         * recog.c (validate_change): Fix a comment typo.
11664
11665 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
11666
11667         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
11668         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
11669         hooks directly.
11670         * dbxout.c (dbx_debug_hooks): Add new hooks.
11671         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
11672         make static.
11673         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
11674         make static.
11675         * dbxout.h (dbxout_start_new_source_file,
11676         dbxout_resume_previous_source_file): Delete.
11677         * debug.c (do_nothing_debug_hooks): Add new hooks.
11678         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
11679         (debug_nothing_int_charstar, debug_nothing_int): New.
11680         * debug.h (gcc_debug_hooks): New hooks define, undef,
11681         start_source_file and end_source_file.
11682         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
11683         (debug_nothing_int_charstar, debug_nothing_int): New.
11684         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
11685         the conditionally compiled section.
11686         (dwarf2out_start_source_file, dwarf2out_end_source_file,
11687         dwarf2out_define, dwarf2out_undef): Make static.
11688         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
11689         dwarf2out_define, dwarf2out_undef): Remove.
11690         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
11691         (dwarfout_start_source_file, dwarfout_end_source_file,
11692         dwarfout_define, dwarfout_undef): Make static.
11693         (dwarfout_start_source_file_check,
11694         dwarfout_end_source_file_check): New.
11695         (dwarfout_define, dwarfout_finish): Update.
11696         * dwarfout.h (dwarfout_start_new_source_file,
11697         dwarfout_resume_previous_source_file, dwarfout_define,
11698         dwarfout_undef): Remove.
11699         * sdbout.c (sdb_debug_hooks): Add new hooks.
11700         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
11701         make static.
11702         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
11703         make static, take an arg.
11704         * sdbout.h (sdbout_start_new_source_file,
11705         sdbout_resume_previous_source_file): Delete.
11706         * toplev.c (debug_start_source_file, debug_end_source_file,
11707         debug_define, debug_undef): Delete.
11708         * toplev.h (debug_start_source_file, debug_end_source_file,
11709         debug_define, debug_undef): Delete.
11710
11711         * java/jcf-parse.c: Include debug.h.
11712         (parse_class_file): Update to use debug hooks directly.
11713         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
11714
11715 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11716
11717         * alias.c (set_mem_alias_set): New function.
11718         * rtl.h (set_mem_alias_set): Declare it.
11719         * builtins.c (expand_builtin_return_addr): Call it instead of
11720         using MEM_ALIAS_SET accessor.
11721         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
11722         (get_memory_rtx, expand_builtin_va_arg): Likewise.
11723         (expand_builtin_va_copy):Likewise.
11724         * caller-save.c (setup_save_areas): Likewise.
11725         * calls.c (compute_argument_addresses): Likewise.
11726         * explow.c (set_mem_attributes): Likewise.
11727         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
11728         (expand_assignment, store_constructor_field, store_field): Likewise.
11729         (expand_expr_unaligned): Likewise.
11730         * function.c (assign_stack_temp_for_type): Likewise.
11731         (put_reg_into_stack, gen_mem_addressof): Likewise.
11732         * ifcvt.c (noce_try_cmove_arith): Likewise.
11733         * reload1.c (reload, alter_reg): Likewise.
11734         * config/alpha/alpha.c (get_aligned_mem): Likewise.
11735         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
11736         (alpha_expand_unaligned_store): Likewise
11737         (alpha_expand_unaligned_load_words): Likewise.
11738         (alpha_expand_unaligned_store_words): Likewise.
11739         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
11740         (alpha_expand_epilogue): Likewise.
11741         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
11742         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
11743         * config/i386/i386.c (legitimize_pic_address): Likewise.
11744         * config/i960/i960.c (setup_incoming_varargs): Likewise.
11745         * config/ia64/ia64.c (spill_restore_mem): Likewise.
11746         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
11747         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
11748         * config/mips/mips.c (mips_va_arg): Likewise.
11749         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
11750         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
11751         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
11752         (setup_incoming_varargs, rs6000_va_arg): Likewise.
11753         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
11754         (rs6000_emit_epilogue): Likewise.
11755         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
11756         * config/sparc/sparc.c (sparc_va_arg): Likewise.
11757         * config/v850/v850.c (v850_va_arg): Likewise.
11758
11759 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
11760
11761         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
11762         when fallthru edge is present.
11763         (mege_blocks): Handle case where creation of jump insn
11764         is required.
11765
11766         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
11767         CLEANUP_POST_REGSTACK): New constants.
11768         * except.c (finish_eh_generation): Update call of cleanup_cfg,
11769         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
11770         * output.h (cleanup_cfg): Update prototype.
11771         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
11772         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
11773         cleanup_cfg call; kill missleading comment.
11774         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
11775         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
11776         parameter; control optimizations performed using it.
11777         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
11778         try_crossjump_bb): New functions.
11779
11780 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11781
11782         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
11783         extern.
11784         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
11785         pa_output_function_prologue.
11786         * pa-protos.h (pa_output_function_prologue): New prototype.
11787
11788 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11789
11790         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
11791         and low to get correct sign extension in low+high test.
11792
11793 2001-07-11  Janis Johnson <janis@us.ibm.com>
11794
11795         * gcov.c (arcdata): Use gcov_type to fix branch percentage
11796         for large hit count.
11797
11798         * profile.c (branch_prob): Fix .bbg info for computed gotos
11799         and C++ EH code.
11800
11801 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
11802
11803         * stmt.c (parse_output_constraint): New function, split out
11804         from ...
11805         (expand_asm_operands): ... here.  Use parse_output_constraint.
11806         * tree.h (parse_output_constraint): Declare it.
11807
11808 2001-07-11  Richard Henderson  <rth@redhat.com>
11809
11810         * bitmap.c: Comment some functions; fiddle whitespace.
11811         (bitmap_free): Don't export.
11812         (bitmap_element_allocate): Use memset.
11813         * bitmap.h (bitmap_free): Don't declare.
11814
11815 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
11816
11817         * gcse.c, lcm.c, sched-deps.c:
11818         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
11819
11820         * flow.c (flow_loops_find): Free dom if we found no loops, since
11821         we aren't going to save it.
11822
11823         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
11824         done.
11825
11826 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
11827
11828         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
11829
11830 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11831
11832         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
11833         #ifndef DWARF2_DEBUGGING_INFO.
11834
11835 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11836
11837         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
11838
11839 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11840
11841         * config/mips/mips.c (gen_int_relational): Tell the caller not to
11842         reverse a branch if a NE comparison is implemented with GTU.
11843
11844 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
11845             H.J. Lu  <hjl@gnu.org>
11846
11847         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
11848         constant addresses.
11849         (call_internal2): Likewise.
11850         (call_value_internal1): Likewise.
11851         (call_value_internal2): Likewise.
11852         (call_value_multiple_internal1): Likewise.
11853         (call_value_multiple_internal2): Likewise.
11854
11855 2001-07-10  Kazu Hirata  <kazu@hxi.com>
11856
11857         * calls.c (emit_library_call_value_1): Fix a comment typo.
11858         * dwarf2out.c (mem_loc_descriptor): Likewise.
11859         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
11860
11861 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
11862
11863         * simplify-rtx.c (simplify_subreg): Fix typo in comment
11864
11865 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11866
11867         * recog.c (offsettable_address_p): Handle LO_SUM case.
11868         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
11869         instead of plus_constant.
11870
11871 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11872
11873         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
11874         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
11875
11876 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11877
11878         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
11879         adjust_address_nv instead of plus_constant.
11880
11881 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
11882
11883         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
11884         dwarf2out.o): Depend on debug.h, wrap long lines.
11885         * dbxout.c: Include debug.h.
11886         (dbx_debug_hooks): New.
11887         (dbxout_init): Make static, take just 2 args.
11888         (dbxout_finish): Make static.
11889         * dbxout.h (dbxout_init, dbxout_finish): Delete.
11890         * debug.c: New file.
11891         * debug.h: New file.
11892         * dwarf2out.c: Include debug.h.
11893         (dwarf2_debug_hooks): New.
11894         (dwarf2out_init): Make static.
11895         (dwarf2out_finish): Make static, take 2 args.
11896         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
11897         * dwarfout.c: Include debug.h.
11898         (dwarf_debug_hooks): New.
11899         (dwarfout_init): Make static.
11900         (dwarfout_finish): Make static, take 2 args.
11901         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
11902         * sdbout.c: Include debug.h.
11903         (sdb_debug_hooks): New.
11904         (sdbout_init): Make static, take 2 args.
11905         * sdbout.h (sdbout_init): Delete.
11906         * toplev.c: Include debug.h.
11907         (debug_hooks): New.
11908         (compile_file): Set deubg_hooks based on command line options.
11909         Use the hooks unconditionally rather than conditional compilation.
11910
11911 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
11912
11913         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
11914         first_insn_after_basic_block_note instead.
11915
11916         * df.c (df_bb_refs_unlink): #if 0 out for now.
11917
11918 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
11919
11920         * ssa.h: Add prototype for ssa_const_prop
11921         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
11922         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
11923         (ssa_fast_dce): Remove unused variable
11924
11925 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11926
11927         * diagnostic.c (finish_diagnostic): Rename to
11928         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
11929         calls thourghout.
11930
11931 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
11932
11933         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
11934         .loc support.
11935
11936         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
11937         (dump_file): Only pad the demangled name with spaces if the
11938         mangled name was padded with spaces.
11939
11940 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
11941
11942         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
11943         edge detection.
11944
11945 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11946
11947         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
11948         extraction if no direct load if either EXPAND_CONST_ADDRESS or
11949         EXPAND_INITIALIZER.
11950
11951         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
11952         whether can put offset inside LO_SUM to check mode alignment, not size.
11953
11954 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11955
11956         * doc/tm.texi (Misc): Fix thinko.
11957
11958 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
11959
11960         * regmove.c (replace_in_call_usage): Fix warnings.
11961         * sched-deps.c (add_dependence): Fix warnings.
11962         * simplify-rtx.c (simplify_subreg): Likewise.
11963         Return NULL_RTX instead of NULL.
11964
11965         * reg-stack.c (emit_swap_insn): Eliminate warnings.
11966         (subst_asm_stack_regs): Likewise.
11967
11968         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
11969         warnings.
11970
11971         * dwarf2out.c (output_call_frame_info): Declare i as int.
11972         (build_abbrev_table): Declare n_alloc as int.
11973         (dwarf2out_finish): Initialize die.
11974         * except.c: Declare sjlj_funcdef_number as unsigned.
11975         (connect_post_landing_pads): Declare j as unsigned.
11976         (convert_to_eh_region_ranges): Initialize call_site.
11977         (output_function_exception_table): Initialize tt_format_size.
11978         * expr.c (move_by_pieces_1): Initialize to1.
11979         (store_constructor): Initialize minelt and maxelt.
11980         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
11981         * function.c (instantiate_decls): Avoid signed/unsigned warning.
11982
11983         * c-decl.c (combine_parm_decls): Unused, remove.
11984         * c-tree.h: Remove prototype for combine_parm_decls.
11985
11986         * reload.c (push_reload): Fix warning.
11987         (regno_clobbered_p): Likewise.
11988         * reload1.c (replace_pseudos_in_call_usage): Likewise.
11989         (reload_combine): Likewise.
11990
11991         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
11992         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
11993         warnings.
11994         * bitmap.c (bitmap_operation): Change user.
11995         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
11996
11997 2001-07-10  Eric Christopher  <echristo@redhat.com>
11998
11999         * config/mips/mips.c (override_options): Fix typo.
12000
12001 2001-07-09  Stan Shebs  <shebs@apple.com>
12002
12003         * target.h (struct gcc_target): New fields init_builtins and
12004         expand_builtin.
12005         * target-def.h (TARGET_INIT_BUILTINS): New macro.
12006         (TARGET_EXPAND_BUILTIN): New macro.
12007         (TARGET_INITIALIZER): Add them.
12008         * builtins.c: Include target.h.
12009         (expand_builtin): Use targetm.expand_builtin.
12010         (default_init_builtins): New function.
12011         (default_expand_builtin): New function.
12012         * expr.h (default_init_builtins): Declare.
12013         (default_expand_builtin): Declare.
12014         * c-common.c (c_common_nodes_and_builtins): Use
12015         targetm.init_builtins.
12016         * defaults.h (MD_INIT_BUILTINS): Remove.
12017         * Makefile.in (builtins.o): Depend on target.h.
12018
12019         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
12020         (TARGET_EXPAND_BUILTIN): Define.
12021         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
12022         (MD_EXPAND_BUILTIN): Remove.
12023
12024         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
12025         (TARGET_EXPAND_BUILTIN): Define.
12026         (c4x_init_builtins): Make endlink arg a local.
12027         (c4x_print_operand): Fix typos in adjust_address usages.
12028         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
12029         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
12030         (MD_EXPAND_BUILTIN): Remove.
12031
12032         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
12033         (TARGET_EXPAND_BUILTIN): Define.
12034         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
12035         (ix86_init_builtins): Call new function only if TARGET_MMX.
12036         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
12037         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
12038         (MD_EXPAND_BUILTIN): Remove.
12039
12040         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
12041         (TARGET_EXPAND_BUILTIN): Define.
12042         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
12043         (MD_EXPAND_BUILTIN): Remove.
12044
12045         * doc/tm.texi: Document these changes.
12046
12047 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
12048
12049         * basic-block.h (tree_node): Forward declare if needed.
12050         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
12051         (BLOCK_HEAD_TREE): Define.
12052         (BLOCK_END_TREE): Define.
12053         (struct loops): Rename field 'tree' to 'tree_root'.
12054         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
12055         'end_tree'.
12056         (flow_loops_tree_build): Rename reference to field 'tree' to
12057         'tree_root'.
12058         (flow_loops_level_compute): Ditto.
12059         * predict.c (estimate_bb_frequencies): Ditto.
12060         * tree.h (struct tree_common): Add field 'aux'.
12061
12062 2001-07-09  Stan Shebs  <shebs@apple.com>
12063
12064         * config/darwin.c (darwin_encode_section_info): Don't mark any
12065         DECL_EXTERNAL node as defined.
12066
12067 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12068
12069         * pa.c (pa_init_machine_status, pa_mark_machine_status,
12070         pa_free_machine_status, hppa_init_pic_save): Delete.
12071         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
12072         (hppa_profile_hook): Use hppa_pic_save_rtx.
12073         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
12074         hppa_init_pic_save): Delete.
12075         (hppa_pic_save_rtx): Declare.
12076         * pa.md (call, call_value, sibcall, sibcall_value,
12077         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
12078
12079 2001-07-09  Kazu Hirata  <kazu@hxi.com>
12080
12081         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
12082         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
12083
12084 2001-07-09  Andreas Jaeger  <aj@suse.de>
12085
12086         * output.h: Add declaration of final_forward_branch_p.
12087
12088         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
12089
12090         * varray.c: Include errors.h for internal_error and trim_filename
12091         declarations.
12092
12093         * Makefile.in (varray.o): Add errors.h.
12094
12095 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
12096
12097         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
12098         * optabs.c (have_add2_insn): Check whether the add insn chosen
12099         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
12100         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
12101
12102 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
12103
12104         * Makefile.in (OBJS): Add ssa-ccp.o
12105         (ssa-ccp.o): Add dependencies.
12106         * toplev.c (DFI_ssa_ccp): New dump file enum.
12107         (dump_file): Add entry for dumping after SSA CCP.
12108         (flag_ssa_ccp): New flag variable.
12109         (f_options): Add -fssa-ccp.
12110         (rest_of_compilation): Run SSA CCP if requested.
12111         * timevar.def (TV_SSA_CCP): New timevar.
12112         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
12113         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
12114         Fix minor typo in SSA DCE documentation.
12115         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
12116         Add documentation for new dump option.  Renumber dump files
12117         appropriately.
12118
12119 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
12120
12121         * emit-rtl.c (gen_highpart_mode): New.
12122         * rtl.h (gen_highpart_mode): Declare.
12123         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
12124         operand can be VOIDmode constant.
12125
12126 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
12127
12128         * flow.c (redirect_edge_and_branch_force): New.
12129         (can_fallthru): Ensure that basic blocks are succeeding.
12130         (try_optimize_cfg): Do not delete basic block if it is the last one.
12131
12132         * flow.c (try_redirect_by_replacing_jump): Do not remove
12133         jumps with side effects, unlink chain on fallthru edge;
12134         set block for new jump instruction; avoid basic block to
12135         over by line number note.
12136
12137         * flow.c (try_simplify_condjump): Verify that the condjump
12138         is not always falling through.
12139
12140         Re-install patch:
12141         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
12142
12143         * flow.c (forwarder_block_p): Fix for fallthru blocks.
12144         (try_redirect_by_replacing_jump): Update properly the count
12145         and frequency information.
12146
12147 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12148
12149         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
12150         address that is a LO_SUM specially.
12151         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
12152
12153         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
12154
12155         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
12156         (operand_subword): Use them.
12157         (change_address_1): Renamed from change_address; new arg VALIDATE.
12158         * expr.h: Reflect above changes; change_address now macro.
12159         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
12160         making MEM.
12161         * cselib.c (add_mem_for_addr): Likewise.
12162         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
12163         * regmove.c (try_apply_stack_adjustment): Likewise.
12164         * reload.c (push_reload, make_memloc): Likewise.
12165         * reload1.c (eliminate_regs): Likewise.
12166         * simplify-rtx.c (simplify_replace_rtx): Likewise.
12167         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
12168         adjust_addess.
12169         * combine.c (make_extraction, simplify_shift_const): Likewise.
12170         (gen_lowpart_for_combine): Likewise.
12171         * cse.c (gen_lowpart_if_possible): Likewise.
12172         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
12173         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
12174         * optabs.c (gen_move_insn): Likewise.
12175         * reload1.c (alter_reg): Likewise.
12176         * simplify-rtx.c (simplify_subreg): Likewise.
12177         * stmt.c (expand_anon_union_decl): Likewise.
12178         * recog.c (validate_replace_rtx_1): Likewise.
12179         (expr.h): Include.
12180         * Makefile.in (recog.o): Add $(EXPR_H).
12181         * explow.c (stabilize): Call replace_equiv_address.
12182         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
12183         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
12184
12185 2001-07-03  Andrew Haley  <aph@redhat.com>
12186
12187         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
12188         the mode of the memory location.
12189
12190 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
12191
12192         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
12193
12194 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
12195
12196         * final.c (output_addr_const): Use target opening and
12197         closing parentheses.
12198         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
12199         defaults, add to TARGET_ASM_OUT.
12200         * target.h (struct gcc_target): Add open_paren and close_paren.
12201         * doc/md.texi: Update.
12202         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
12203         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
12204         TARGET_ASM_CLOSE_PAREN.
12205         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
12206         Override.
12207         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
12208         Override.
12209         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
12210         * config/a29k/a29k.h: Similarly.
12211         * config/alpha/alpha.h: Similarly.
12212         * config/arc/arc.h: Similarly.
12213         * config/arm/aof.h: Similarly.
12214         * config/arm/aout.h: Similarly.
12215         * config/avr/avr.h: Similarly.
12216         * config/c4x/c4x.h: Similarly.
12217         * config/clipper/clipper.h: Similarly.
12218         * config/convex/convex.h: Similarly.
12219         * config/d30v/d30v.h: Similarly.
12220         * config/dsp16xx/dsp16xx.h: Similarly.
12221         * config/elxsi/elxsi.h: Similarly.
12222         * config/fr30/fr30.h: Similarly.
12223         * config/h8300/h8300.h: Similarly.
12224         * config/i370/i370.h: Similarly.
12225         * config/i386/i386.h: Similarly.
12226         * config/i860/i860.h: Similarly.
12227         * config/i960/i960.h: Similarly.
12228         * config/ia64/ia64.h: Similarly.
12229         * config/m32r/m32r.h: Similarly.
12230         * config/m68hc11/m68hc11.h: Similarly.
12231         * config/m68k/m68k.h: Similarly.
12232         * config/m88k/m88k.h: Similarly.
12233         * config/mcore/mcore.h: Similarly.
12234         * config/mips/mips.h: Similarly.
12235         * config/mn10200/mn10200.h: Similarly.
12236         * config/mn10300/mn10300.h: Similarly.
12237         * config/ns32k/ns32k.h: Similarly.
12238         * config/pa/pa.h: Similarly.
12239         * config/pdp11/pdp11.h: Similarly.
12240         * config/pj/pj.h: Similarly.
12241         * config/romp/romp.h: Similarly.
12242         * config/rs6000/rs6000.h: Similarly.
12243         * config/sh/sh.h: Similarly.
12244         * config/sparc/sparc.h: Similarly.
12245         * config/v850/v850.h: Similarly.
12246         * config/vax/vax.h: Similarly.
12247         * config/we32k/we32k.h: Similarly.
12248
12249 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
12250
12251         * doc/c-tree.texi: Document representation of attributes.
12252
12253 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12254
12255         * doc/tm.texi: Update some places for the rename of target to
12256         targetm.  Fix typo.
12257
12258 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12259
12260         * target.h (struct gcc_target): Add insert_attributes.
12261         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
12262         (TARGET_INITIALIZER): Update.
12263         * tree.c, tree.h (default_insert_attributes): New function.
12264         Update comments on other default functions to refer to targetm,
12265         not target.
12266         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
12267         TARGET_INSERT_ATTRIBUTES.
12268         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
12269         * c-common.c (decl_attributes): Use targetm.insert_attributes.
12270         Don't use PRAGMA_INSERT_ATTRIBUTES.
12271         * Makefile.in (c-common.o): Depend on $(TARGET_H).
12272         * c-decl.c (start_decl, start_function): Don't call
12273         SET_DEFAULT_DECL_ATTRIBUTES.
12274         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
12275         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
12276         declare.
12277         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
12278         (c4x_check_attribute): Avoid modifying attribute list itself.
12279         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
12280         Make static.
12281         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
12282         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
12283         declare.
12284         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
12285         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
12286         Make static.
12287         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
12288         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
12289         declare.
12290         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
12291         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
12292         Adjust parameters.  Make static.
12293
12294 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
12295
12296         * c-common.c (decl_attributes): Only take a single attributes
12297         parameter.
12298         * c-common.h (decl_attributes): Update prototype.
12299         * c-decl.c (start_decl, start_function): Only take a single
12300         attributes parameter.  Update calls to decl_attributes.
12301         (finish_struct, finish_enum): Update calls to decl_attributes.
12302         (push_parm_decl): Expect unified list of attributes.  Update call
12303         to decl_attributes.
12304         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
12305         notype_nested_function, component_declarator,
12306         component_notype_declarator, label): Update calls to
12307         decl_attributes.
12308         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
12309         lists that are passed to push_parm_decl.
12310         * c-tree.h (start_function, start_decl): Update prototypes.
12311         * config/sh/sh-protos.h, config/sh/sh.c
12312         (sh_pragma_insert_attributes): Only take a single attributes
12313         parameter.
12314         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
12315         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
12316         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
12317         build_module_descriptor, generate_static_references,
12318         generate_strings, build_selector_translation_table,
12319         generate_descriptor_table, generate_protocols,
12320         generate_ivars_list, generate_dispatch_table,
12321         generate_protocol_list, generate_category,
12322         generate_shared_structures, really_start_method, add_objc_decls,
12323         generate_classref_translation_entry): Update calls to start_decl
12324         and start_function.
12325         (build_tmp_function_decl, start_method_def): Unify attribute lists
12326         that are passed to push_parm_decl.
12327
12328 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
12329
12330         * final.c (no_asm_to_stream): New.
12331         (final_scan_insn): Use target structures for prologue ends
12332         and epilogue starts.
12333         * output.h (no_asm_to_stream): New.
12334         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
12335         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
12336         (TARGET_ASM_OUT): Update.
12337         * target.h (struct gcc_target): New members function_end_prologue
12338         and function_begin_epilogue.
12339         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
12340         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
12341         * config/alpha/alpha.c (output_end_prologue): Rename to
12342         alpha_output_function_end_prologue.  Use in target struct
12343         and make static.
12344         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
12345         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
12346         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
12347         ia64_output_function_end_prologue.  Use in target struct
12348         and make static.
12349         (ia64_function_prologue, ia64_funciton_epilogue): Rename
12350         mistyped prototypes.
12351         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
12352         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
12353         Delete.
12354         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
12355         an use in target struct, make static.
12356         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
12357         Delete.
12358
12359 2001-07-08  Richard Henderson  <rth@redhat.com>
12360
12361         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
12362
12363 2001-07-08  Richard Henderson  <rth@redhat.com>
12364
12365         * config/i386/i386.md: Remove constraints strings from define_split
12366         and define_peephole2 patterns.
12367         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
12368         (eh_return): Use them.
12369
12370 2001-07-08  Richard Henderson  <rth@redhat.com>
12371
12372         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
12373         Document MD_FALLBACK_FRAME_STATE_FOR.
12374
12375 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12376
12377         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
12378         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
12379         elimination.
12380         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
12381
12382 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
12383
12384         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
12385         of the label inside NAME as opposed to just the end of NAME.
12386
12387 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
12388
12389         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
12390         * config/alpha/alpha.c (alpha_init_machine_status,
12391         alpha_mark_machine_status, alpha_free_machine_status): Delete.
12392         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
12393         (vms_valid_decl_attribute_p): Make static, conditionally compile.
12394         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
12395
12396 2001-07-06  Stan Shebs  <shebs@apple.com>
12397
12398         * target.h (targetm): Rename global from "target", so as not to
12399         conflict with local variables.
12400         * c-decl.c: Ditto.
12401         * c-typeck.c: Ditto.
12402         * final.c: Ditto.
12403         * tree.c: Ditto.
12404         * cp/decl.c: Ditto.
12405         * cp/decl2.c: Ditto.
12406         * cp/typeck.c: Ditto.
12407         * 1750a/1750a.c: Ditto.
12408         * a29k/a29k.c: Ditto.
12409         * arc/arc.c: Ditto.
12410         * arm/arm.c: Ditto.
12411         * avr/avr.c: Ditto.
12412         * clipper/clipper.c: Ditto.
12413         * convex/convex.c: Ditto.
12414         * d30v/d30v.c: Ditto.
12415         * dsp16xx/dsp16xx.c: Ditto.
12416         * elxsi/elxsi.c: Ditto.
12417         * fr30/fr30.c: Ditto.
12418         * h8300/h8300.c: Ditto.
12419         * i370/i370.c: Ditto.
12420         * i386/i386.c: Ditto.
12421         * i860/i860.c: Ditto.
12422         * i960/i960.c: Ditto.
12423         * ia64/ia64.c: Ditto.
12424         * m32r/m32r.c: Ditto.
12425         * m68hc11/m68hc11.c: Ditto.
12426         * m68k/m68k.c: Ditto.
12427         * m88k/m88k.c: Ditto.
12428         * mips/mips.c: Ditto.
12429         * ns32k/ns32k.c: Ditto.
12430         * pa/pa.c: Ditto.
12431         * pdp11/pdp11.c: Ditto.
12432         * romp/romp.c: Ditto.
12433         * rs6000/rs6000.c: Ditto.
12434         * sh/sh.c: Ditto.
12435         * sparc/sparc.c: Ditto.
12436         * vax/vax.c: Ditto.
12437         * we32k/we32k.c: Ditto.
12438         * doc/tm.texi: Update the manual to match.
12439
12440 2001-07-06  Richard Henderson  <rth@redhat.com>
12441
12442         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
12443         DWARF2_UNWIND_INFO not just whether it is defined.
12444
12445 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
12446
12447         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
12448         call to simplify_binary_operation returns a new pattern.
12449
12450 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
12451
12452         * glimits.h (__SHRT_MAX__): New.
12453         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
12454         (SHRT_MAX): Define in terms of __SHRT_MAX__.
12455
12456 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
12457
12458         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
12459         avoid warnings.
12460
12461 2001-07-06  Richard Henderson  <rth@redhat.com>
12462
12463         * bitmap.c (bitmap_release_memory): Move adjacent to the
12464         allocation functions.
12465         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
12466         the implementation.  Binary search for the set bit.
12467         (bitmap_union_of_diff): Allocate the temporary on the stack
12468         instead of using xmalloc.
12469
12470 2001-07-06  Richard Henderson  <rth@redhat.com>
12471
12472         * genrecog.c (validate_pattern): Warn for constraints in
12473         define_{expand,split,peephole2}.  Remove strict_low_part
12474         before looking up match_dup.
12475
12476 2001-07-06  DJ Delorie  <dj@redhat.com>
12477
12478         * doc/gcc.texi (Makefile): Rename to be a more general purpose
12479         chapter about various build hints and history.  Add section
12480         talking about the various types of native and cross builds.
12481
12482 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
12483
12484         * Makefile.in (final.o): Depend on target.h.
12485         * final.c: Include target.h.
12486         (default_function_pro_epilogue): New.
12487         (final_start_function): Use target structure for function prologues.
12488         (final_end_function): Use target structure for function epilogues.
12489         * fold-const.c (real_hex_to_f): Constify s and p.
12490         * output.h (default_function_pro_epilogue): New.
12491         * real.h (real_hex_to_f): Update prototype.
12492         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
12493         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
12494         (TARGET_INITIALIZER): Update.
12495         * target.h (gcc_target): Add struct asm_out.
12496         * doc/tm.texi: Update.
12497
12498 config:
12499         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
12500         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
12501         in cpu/cpu.c, or rename old functions consistently.  Take
12502         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
12503         redundant macros and prototypes.  Make new functions static.
12504
12505         * 1750a/1750a.c: Similarly.
12506         * 1750a/1750a.h: Similarly.
12507         * a29k/a29k-protos.h: Similarly.
12508         * a29k/a29k.c: Similarly.
12509         * a29k/a29k.h: Similarly.
12510         * arc/arc-protos.h: Similarly.
12511         * arc/arc.c: Similarly.
12512         * arc/arc.h: Similarly.
12513         * arm/arm-protos.h: Similarly.
12514         * arm/arm.c: Similarly.
12515         * arm/arm.h: Similarly.
12516         * avr/avr-protos.h: Similarly.
12517         * avr/avr.c: Similarly.
12518         * avr/avr.h: Similarly.
12519         * clipper/clipper-protos.h: Similarly.
12520         * clipper/clipper.c: Similarly.
12521         * clipper/clipper.h: Similarly.
12522         * convex/convex.c: Similarly.
12523         * convex/convex.h: Similarly.
12524         * d30v/d30v-protos.h: Similarly.
12525         * d30v/d30v.c: Similarly.
12526         * d30v/d30v.h: Similarly.
12527         * d30v/d30v.md: Similarly.
12528         * dsp16xx/dsp16xx-protos.h: Similarly.
12529         * dsp16xx/dsp16xx.c: Similarly.
12530         * dsp16xx/dsp16xx.h: Similarly.
12531         * elxsi/elxsi.c: Similarly.
12532         * elxsi/elxsi.h: Similarly.
12533         * fr30/fr30.c: Similarly.
12534         * fr30/fr30.md: Similarly.
12535         * h8300/h8300-protos.h: Similarly.
12536         * h8300/h8300.c: Similarly.
12537         * h8300/h8300.h: Similarly.
12538         * i370/i370-protos.h: Similarly.
12539         * i370/i370.c: Similarly.
12540         * i370/i370.h: Similarly.
12541         * i386/i386.c: Similarly.
12542         * i386/osf1elf.h: Similarly.
12543         * i386/osfrose.h: Similarly.
12544         * i860/i860-protos.h: Similarly.
12545         * i860/i860.c: Similarly.
12546         * i860/i860.h: Similarly.
12547         * i960/i960-protos.h: Similarly.
12548         * i960/i960.c: Similarly.
12549         * i960/i960.h: Similarly.
12550         * ia64/ia64-protos.h: Similarly.
12551         * ia64/ia64.c: Similarly.
12552         * ia64/ia64.h: Similarly.
12553         * m32r/m32r-protos.h: Similarly.
12554         * m32r/m32r.c: Similarly.
12555         * m32r/m32r.h: Similarly.
12556         * m68hc11/m68hc11-protos.h: Similarly.
12557         * m68hc11/m68hc11.c: Similarly.
12558         * m68hc11/m68hc11.h: Similarly.
12559         * m68k/crds.h: Similarly.
12560         * m68k/dpx2.h: Similarly.
12561         * m68k/m68k-protos.h: Similarly.
12562         * m68k/m68k.c: Similarly.
12563         * m68k/m68k.h: Similarly.
12564         * m68k/news.h: Similarly.
12565         * m88k/m88k-protos.h: Similarly.
12566         * m88k/m88k.c: Similarly.
12567         * m88k/m88k.h: Similarly.
12568         * mips/mips-protos.h: Similarly.
12569         * mips/mips.c: Similarly.
12570         * mips/mips.h: Similarly.
12571         * ns32k/merlin.h: Similarly.
12572         * ns32k/ns32k.c: Similarly.
12573         * ns32k/ns32k.h: Similarly.
12574         * ns32k/tek6000.h: Similarly.
12575         * pa/pa-protos.h: Similarly.
12576         * pa/pa.c: Similarly.
12577         * pa/pa.h: Similarly.
12578         * pdp11/2bsd.h: Similarly.
12579         * pdp11/pdp11-protos.h: Similarly.
12580         * pdp11/pdp11.c: Similarly.
12581         * pdp11/pdp11.h: Similarly.
12582         * romp/romp-protos.h: Similarly.
12583         * romp/romp.c: Similarly.
12584         * romp/romp.h: Similarly.
12585         * rs6000/rs6000-protos.h: Similarly.
12586         * rs6000/rs6000.c: Similarly.
12587         * rs6000/rs6000.h: Similarly.
12588         * rs6000/sysv4.h: Similarly.
12589         * sh/sh-protos.h: Similarly.
12590         * sh/sh.c: Similarly.
12591         * sh/sh.h: Similarly.
12592         * sparc/sparc-protos.h: Similarly.
12593         * sparc/sparc.c: Similarly.
12594         * sparc/sparc.h: Similarly.
12595         * vax/vax.c: Similarly.
12596         * vax/vax.h: Similarly.
12597         * vax/vms.h: Similarly.
12598         * we32k/we32k.c: Similarly.
12599         * we32k/we32k.h: Similarly.
12600
12601 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
12602
12603         * basic-block.h (first_insn_after_basic_block_note): Declare.
12604         * flow.c (first_insn_after_basic_block_note): Define.  Moved
12605         from...
12606         * ssa.c (first_insn_after_basic_block_note): Remove.
12607         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
12608         necessary.
12609         (ssa_eliminate_dead_code): Properly update the CFG and PHI
12610         nodes when we find a dead conditional branch.  Insert BARRIERs
12611         after any blocks with no successors, but which do not have
12612         any BARRIERs.
12613
12614 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
12615
12616         * varray.c (varray_check_failed): Use internal_error.
12617
12618 2001-07-05  Andrew Haley  <aph@redhat.com>
12619
12620         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
12621         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
12622         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
12623
12624 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
12625
12626         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
12627         reference if the target constant is also a SYMBOL_REF.
12628
12629 2001-07-05  Eric Christopher  <echristo@redhat.com>
12630
12631         * config/mips/mips.h (MASK_MIPS3900): Remove.
12632         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
12633         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
12634         (TARGET_MIPS3900): Change to use mips_arch.
12635         (TARGET_MIPS4000): New.
12636         (TARGET_MIPS4100): New.
12637         (TARGET_MIPS4300): New.
12638         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
12639         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
12640         for -mipsX.
12641         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
12642         (ISA_HAS_BRANCHLIKELY): To here.
12643         (CC1_CPU_SPEC):  New.
12644         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
12645         (mips_arch_string): Declare.
12646         (mips_arch): Declare.
12647         (TARGET_OPTIONS): Add -march and -mtune.
12648
12649         * config/mips/mips.c (mips_arch_string): New.
12650         (mips_arch): New.
12651         (override_options): Handle -march for codegen and -mtune
12652         for scheduling. Use mips_arch. Move tx39 target default here.
12653         (mips_parse_cpu): Move error message to override_options.
12654
12655         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
12656
12657         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
12658
12659         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
12660         (MIPS Options): Ditto.  Change mcpu entry to historical text.
12661
12662 2001-07-05  H.J. Lu  (hjl@gnu.org)
12663
12664         * config/mips/mips.c (mips_parse_cpu): New function to parse
12665         -march=*/-mcpu=*.
12666
12667 2001-07-05  Jim Wilson  <wilson@redhat.com>
12668
12669         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
12670         * config/ia64/t-ia64: Likewise.
12671         (LIB1ASMFUNCS): Update comment.
12672
12673 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
12674
12675         * doc/install.texi (Install GCC: Binaries): Fix typo.
12676
12677 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12678
12679         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
12680         reference using the stack pointer, adjust it since we push Y
12681         temporarily.
12682         ("*ashrsi3"): Likewise.
12683         ("*lshrsi3"): Likewise.
12684
12685 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12686
12687         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
12688         when -fomit-frame-pointer is used.
12689
12690 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
12691
12692         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
12693         (try_redirect_by_replacing_jump): Reverse updating properly the
12694         count and frequency information.  Reverse removing cc0 setter.
12695         (forwarder_block_p): Reverse fixing for fallthru blocks.
12696
12697 2001-07-05  DJ Delorie  <dj@redhat.com>
12698
12699         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
12700         (translate_options): If the above is defined, use it to map
12701         given options to new options.
12702         * doc/tm.texi: Document it.
12703
12704 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
12705             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12706
12707         * doc/invoke.texi (Optimize Options): Document that -fgcse may
12708         cause programs using computed gotos to run more slowly.
12709
12710 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12711
12712         * doc/install.texi (Specific): Markup, spelling and typo fixes.
12713         Fixed sorting.
12714         Consistently require binutils 2.11.2, not prereleases.
12715         (Specific, decstation-*): Canonicalize as mips-dec-*.
12716         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
12717         always necessary.
12718         (Specific, m68k-altos): Removed reference to README.altos, deleted.
12719         (Specific, mips-*): Reword MIPS C compiler requirements.
12720         (Specific, powerpc*-*-*): New, mention --with-cpu once.
12721         (Specific, sunv5): Removed, obsolete.
12722
12723 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
12724
12725         * dwarf2out.c (output_loc_list): Use an all ones mask for
12726         .text asm output and don't rely on long long
12727         literals. Reformat some long lines.
12728
12729 2001-07-05  Andreas Jaeger  <aj@suse.de>
12730
12731         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
12732         section.
12733
12734 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12735
12736         * dwarf2out.c (dwarf2out_define): Update comment.
12737         (dwarf2out_undef): Ditto.
12738         (dwarf2out_start_source_file): Ditto.
12739         (dwarf2out_end_source_file): Ditto.
12740         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
12741         since we never call the start/end debug hook for the primary file.
12742
12743 2001-07-04  Kazu Hirata  <kazu@hxi.com>
12744
12745         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
12746         from shll.
12747
12748 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
12749
12750         * cppinit.c (remove_dup_dirs): Inform if a system include
12751         directory is being reordered.
12752         * doc/invoke.texi (Directory Options): GCC warns if you hide a
12753         system include.
12754         * doc/cpp.texi (Search Paths): Likewise.
12755         * doc/gcc.texi (Interoperation): Remove information about
12756         -I/usr/include.
12757
12758 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
12759
12760         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
12761         (VARRAY_TOP_CHAR_PTR): Likewise.
12762
12763 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12764
12765         * gcc.c (process_command): Don't assign elements of a const char*.
12766
12767 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12768
12769         * emit-rtl.c (change_address): Don't abort if invalid address while
12770         reload is in progress.
12771
12772 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12773
12774         * c-lex.c (cb_file_change): Pass line number to
12775         debug_start_source_file.
12776         (cb_undefine): Pass correct line number to debug_undef.
12777
12778         * toplev.c (debug_start_source_file): Add line number to
12779         parameters. Pass it along to dwarf2out_start_source_file.
12780         (decode_g_option): Stop resetting debug level back to normal when
12781         we change debug formats, unless the current level is
12782         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
12783         3).
12784
12785         * toplev.h (debug_start_source_file): Add line number to
12786         parameters.
12787
12788         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
12789         parameters.
12790
12791         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
12792         parameters.
12793         Output debug_macinfo data for starting file if requested.
12794         (dwarf2out_end_source_file): Output debug_macinfo data for ending
12795         file if requested.
12796         (dwarf2out_define): Output debug_macinfo data for defining a macro
12797         if requested.
12798         (dwarf2out_undef): Output debug_macinfo data for undefining a
12799         macro if requested.
12800         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
12801         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
12802         (macinfo_section_label): New. DWARF2 macro info section label.
12803         (dwarf2out_init): If we want macro info, output the start label
12804         for the section.
12805         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
12806         attribute to the compilation unit die pointing to the macro info.
12807
12808 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
12809
12810         * dwarf2out.c (new_loc_list): Move to inside #ifdef
12811         DWARF2_DEBUGGING_INFO.
12812         (add_loc_descr_to_loc_list): Ditto.
12813         (output_loc_list): Ditto.
12814         Also, fix thinko in curr not being initialized.
12815         (gen_internal_sym): Ditto.
12816
12817 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12818
12819         * emit-rtl.c (replace_equiv_address): New function.
12820         * expr.h (replace_equiv_address): New declaration.
12821         * explow.c (validize_mem): Call it instead of change_address and
12822         also call if -fforce-addr and address is constant.
12823         * expr.c: Replace more calls to change_address with adjust_address
12824         and/or replace_equiv_address or to validize_mem.
12825         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
12826         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
12827         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
12828         * config/i370/i370.md, config/i860/i860.md: Likewise.
12829         * config/i960/i960.md, config/mips/mips.c: Likewise.
12830         * config/mips/mips.md, config/pa/pa.md: Likewise.
12831         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
12832         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
12833
12834 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12835
12836         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
12837
12838         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
12839         function.
12840
12841 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12842
12843         * doc/include: New directory.
12844         * doc/fdl.texi: Move to doc/include/fdl.texi.
12845         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
12846         * doc/include/funding.texi, doc/include/gpl.texi: New files.
12847         * doc/gcc.texi: Use funding.texi and gpl.texi.
12848         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
12849         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
12850         Update dependencies and use -I $(docdir)/include.
12851
12852 2001-07-04  Anthony Green  <green@redhat.com>
12853
12854         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
12855
12856 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12857
12858         * doc/install.texi (sparc64-*-*): Remove garbage.
12859
12860 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
12861
12862         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
12863         Fix typo in last change to use adjust_address.
12864
12865 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12866
12867         * doc/install.texi (Specific): Update information for *-*-solaris*.
12868
12869 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12870
12871         * explow.c (plus_constant_wide): Reinitialize Y for restart.
12872
12873 2001-07-03  Stan Shebs  <shebs@apple.com>
12874
12875         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
12876         case for flag_no_mach_text_sections.
12877         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
12878         * config/darwin.c (flag_no_mach_text_sections): Remove.
12879         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
12880
12881 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12882
12883         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
12884         and avoid checking for constant as first operand.
12885         * recog.c (find_constant_term_loc): No longer static.
12886         (adj_offettable_operand): Delete.
12887         * rtl.h (adj_offsettable_operand): Delete declaration.
12888         (find_constant_term): Add declaration.
12889         * caller-save.c: Replace calls to adj_offsettable_operand with calls
12890         to adjust_address.
12891         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
12892         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
12893         * config/i386/i386.c, config/i386/i386.md: Likewise.
12894         * config/i860/i860.c, config/i960/i960.c: Likewise.
12895         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
12896         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
12897         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
12898         * config/mips/mips.c, config/mips/mips.md: Likewise.
12899         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
12900         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
12901         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
12902         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
12903         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
12904         * config/ns32k/ns32k.md: Likewise.
12905
12906 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
12907
12908         * rtl.c (copy_rtx): Handle 'T' format letter.
12909         * gensupport.c (collect_insn_data): Likewise.
12910         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
12911
12912 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
12913
12914         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
12915         -B option.  Use 'dir' not 'foo' as example directory name.
12916
12917 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12918
12919         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12920         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
12921
12922 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
12923
12924         * doc/cppinternals.texi: Improve formatting and logical markup.
12925
12926 2001-07-03  Andreas Jaeger  <aj@suse.de>
12927
12928         * Makefile.in (insn-recog.o): Add dependency on reload.h.
12929
12930         * genrecog.c (write_header): Include reload.h for prototypes in
12931         insn-recog.c.
12932
12933 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12934
12935 config:
12936         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
12937         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
12938         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
12939         i386_pe_valid_type_attribute_p): Add.
12940         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
12941         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
12942
12943 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12944
12945         * explow.c (plus_constant_wide, case LO_SUM): New case.
12946         (plus_constant_for_output_wide): Delete.
12947         * rtl.h (plus_constant_for_output): Delete.
12948         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
12949         instead of plus_constant_for_output.
12950         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
12951         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
12952         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
12953         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
12954         * config/sparc/sparc.md: Likewise.
12955         Convert some change_address calls to adjust_address.
12956
12957 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
12958
12959         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
12960         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
12961         documentation of -std and -Wwrite-strings.
12962
12963 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
12964
12965         * cse.c (canon_hash): Don't register registers in very small
12966         register classes, as extending their lifetime might cause
12967         reload to fail.
12968
12969 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
12970
12971         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
12972
12973         * flow.c (forwarder_block_p): Fix for fallthru blocks.
12974         (try_redirect_by_replacing_jump): Update properly the count
12975         and frequency information.
12976
12977 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
12978
12979         * toplev.c (dump_file_index): Move SSA dumps just after first
12980         jump dump.
12981         (dump_file): Corresponding changes.
12982         (rest_of_compilation): Move SSA path to just after the first
12983         jump pass.
12984         * doc/gcc.texi (Passes): Update due to movement of SSA path.
12985         * doc/invoke.texi: Update dump file #s as they were completely
12986         out of date with reality.
12987
12988 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
12989
12990         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
12991
12992         * expr.c (emit_move_insn_1): Deal with non-default
12993         STACK_PUSH_CODE.
12994
12995         * expr.c (emit_single_push_insn): Fix warning.
12996
12997 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
12998
12999         * expr.c (emit_move_insn_1): Avoid modifying
13000         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
13001
13002 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13003
13004         * emit-rtl.c (adjust_address): New function.
13005         * expr.h (adjust_address): Add declaration.
13006         * builtins.c: Replace some calls to change_address with calls to it
13007         or to validize_mem.
13008         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
13009         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
13010         * config/arm/arm.c, config/convex/convex.c: Likewise.
13011         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
13012         * config/i386/i386.c, config/i386/i386.md: Likewise.
13013         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
13014         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
13015         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
13016         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
13017         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
13018
13019 2001-07-02  Jim Wilson  <wilson@redhat.com>
13020
13021         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
13022
13023 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
13024
13025         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
13026         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
13027
13028 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
13029
13030         * cppinit.c (lang_defaults): New table.
13031         (set_lang): Just read from lang_defaults into the live options
13032         structure.
13033
13034 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
13035
13036         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
13037         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
13038         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
13039
13040 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13041
13042         * doc/install.texi: Various spelling and markup fixes.
13043         (Installing GCC): Component specific installation instructions are
13044         gone.
13045         Fix reference.
13046         Warn about removing old install dir in the presence of shared libs.
13047         (Configuration): Invoke with options target to match configure
13048         --help.
13049         Consistently refer to gas, gld pathnames.
13050         Invert --enable-multilib documentation.
13051         Remove references to old compiler versions.
13052
13053 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13054
13055         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
13056
13057 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13058
13059         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
13060         section.
13061         (Specific, mips*-sgi-irix5): Note IDO download.
13062         Reworded MIPS C hints.
13063         Use GNU as instead of GAS.
13064         Markup fixes.
13065         Removed SGI Freeware reference, IRIX 6 only.
13066         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
13067         Note N64 library requirement/workaround.
13068         Update O32 hints.
13069         Complete list of structure passing bug victims.
13070
13071 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13072
13073         * doc/install.texi: Remove CVS Id.
13074
13075 2001-07-02  Andreas Jaeger  <aj@suse.de>
13076
13077         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
13078         (find_inherently_necessary): Remove unused variable.
13079
13080 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
13081
13082         * c-common.h (TDI_inlined): New ast dump phase.
13083         (dump_flag_name): New function.
13084         * c-dump.c (dump_files): Add inlined phase.
13085         (dump_flag_name): Define.
13086         * doc/invoke.texi (-fdump-ast-inlined): Document.
13087
13088 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13089
13090         * stor-layout.c (layout_decl): Revert change to handling of alignment
13091         in packed types.
13092
13093 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13094
13095         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
13096         for FIELD_DECL.
13097
13098 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
13099
13100         * doc/tm.texi (FUNCTION_ARG): Document that the last call
13101         is special.
13102
13103 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
13104
13105         * tlink.c (recompile_files): Remove COMPILER_PATH and
13106         LIBRARY_PATH from the environment.
13107
13108 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
13109
13110         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
13111         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
13112         enumerators.
13113         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
13114
13115         * c-parse.in (OBJC_STRING): Kill.
13116         (objc_string): Decompose to [objc_string] '@' STRING.
13117         (reswords): Take the leading '@' off all the Objective C keywords.
13118         (objc_rid_sans_at): Kill.
13119         (init_reswords): Don't initialize it.
13120         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
13121         (_yylex): Kill reconsider label.  Look ahead one token after
13122         an '@'; if we get an identifier, check whether it's an
13123         Objective C @-keyword.  If so, return the keyword.  Otherwise,
13124         put back the token and return the '@' as a terminal.
13125
13126         * cpplib.c (lex_macro_node): Remove unnecessary check for
13127         leading '@' on identifier.  Clarify control flow and commentary.
13128
13129 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13130
13131         * cse.c (new_label_ref): Variable deleted.
13132         (insert): Remove set of new_label_ref.
13133         (check_for_label_ref): New function.
13134         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
13135
13136 See ChangeLog.5 for earlier changes.